X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2Fovs-vswitchd.c;h=d98af469dc894ee4eb98077beb9a9add3c5fc62c;hb=03292c465464a1bb10b07ea5036ce64083984dd3;hp=01a0e7edf2d03e50cc37b205715278f39c1dc9c2;hpb=a14bc59fb8f27db193d74662dc9c5cb8237177ef;p=openvswitch diff --git a/vswitchd/ovs-vswitchd.c b/vswitchd/ovs-vswitchd.c index 01a0e7ed..d98af469 100644 --- a/vswitchd/ovs-vswitchd.c +++ b/vswitchd/ovs-vswitchd.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2009 Nicira Networks +/* Copyright (c) 2008, 2009, 2010 Nicira Networks * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,12 +28,13 @@ #include "command-line.h" #include "compiler.h" #include "daemon.h" +#include "dpif.h" #include "fault.h" #include "leak-checker.h" #include "mgmt.h" +#include "netdev.h" #include "ovs-vswitchd.h" #include "poll-loop.h" -#include "port.h" #include "proc-net-compat.h" #include "process.h" #include "signals.h" @@ -80,10 +81,12 @@ main(int argc, char *argv[]) } unixctl_command_register("vswitchd/reload", reload); - cfg_read(); + retval = cfg_read(); + if (retval) { + ovs_fatal(retval, "could not read config file"); + } mgmt_init(); bridge_init(); - port_init(); mgmt_reconfigure(); need_reconfigure = false; @@ -93,11 +96,15 @@ main(int argc, char *argv[]) vlog_reopen_log_file(); reconfigure(); } - mgmt_run(); + if (mgmt_run()) { + need_reconfigure = true; + } if (bridge_run()) { need_reconfigure = true; } unixctl_server_run(unixctl); + dp_run(); + netdev_run(); if (need_reconfigure) { poll_immediate_wake(); @@ -106,6 +113,8 @@ main(int argc, char *argv[]) mgmt_wait(); bridge_wait(); unixctl_server_wait(unixctl); + dp_wait(); + netdev_wait(); poll_block(); } @@ -113,7 +122,7 @@ main(int argc, char *argv[]) } static void -reload(struct unixctl_conn *conn, const char *args UNUSED) +reload(struct unixctl_conn *conn, const char *args OVS_UNUSED) { need_reconfigure = true; conns = xrealloc(conns, sizeof *conns * (n_conns + 1)); @@ -128,7 +137,6 @@ reconfigure(void) cfg_read(); bridge_reconfigure(); mgmt_reconfigure(); - port_reconfigure(); for (i = 0; i < n_conns; i++) { unixctl_command_reply(conns[i], 202, NULL); @@ -217,6 +225,7 @@ parse_options(int argc, char *argv[]) "use --help for usage"); } + cfg_init(); config_file = argv[0]; error = cfg_set_file(config_file); if (error) { @@ -228,7 +237,7 @@ parse_options(int argc, char *argv[]) static void usage(void) { - printf("%s: virtual switch daemon\n" + printf("%s: Open vSwitch daemon\n" "usage: %s [OPTIONS] CONFIG\n" "CONFIG is a configuration file in ovs-vswitchd.conf(5) format.\n", program_name, program_name);