#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"
static void parse_options(int argc, char *argv[]);
static void usage(void) NO_RETURN;
-static void reload(struct unixctl_conn *, const char *args);
+static unixctl_cb_func reload;
static bool need_reconfigure;
static struct unixctl_conn **conns;
if (retval) {
ovs_fatal(retval, "could not listen for control connections");
}
- unixctl_command_register("vswitchd/reload", reload);
+ unixctl_command_register("vswitchd/reload", reload, NULL);
- 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;
}
unixctl_server_run(unixctl);
dp_run();
+ netdev_run();
if (need_reconfigure) {
poll_immediate_wake();
bridge_wait();
unixctl_server_wait(unixctl);
dp_wait();
+ netdev_wait();
poll_block();
}
}
static void
-reload(struct unixctl_conn *conn, const char *args UNUSED)
+reload(struct unixctl_conn *conn, const char *args UNUSED, void *aux UNUSED)
{
need_reconfigure = true;
conns = xrealloc(conns, sizeof *conns * (n_conns + 1));
cfg_read();
bridge_reconfigure();
mgmt_reconfigure();
- port_reconfigure();
for (i = 0; i < n_conns; i++) {
unixctl_command_reply(conns[i], 202, NULL);
"use --help for usage");
}
+ cfg_init();
config_file = argv[0];
error = cfg_set_file(config_file);
if (error) {