X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-openflowd.c;h=d2e0336f36aa4ce228527759ec7949b9f1fe265b;hb=bbb1951c485766b82b365b7f25ec917867b2ecf4;hp=153267f3f0329705827a854e2089b28c9bae9e5d;hpb=00a250d2a69ab369fb01054a8cf9b33f6be7bb0b;p=openvswitch diff --git a/utilities/ovs-openflowd.c b/utilities/ovs-openflowd.c index 153267f3..d2e0336f 100644 --- a/utilities/ovs-openflowd.c +++ b/utilities/ovs-openflowd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -128,10 +128,19 @@ main(int argc, char *argv[]) size_t i; SVEC_FOR_EACH (i, port, &s.ports) { - error = dpif_port_add(dpif, port, 0, NULL); + struct netdev *netdev; + + error = netdev_open_default(port, &netdev); + if (error) { + ovs_fatal(error, "%s: failed to open network device", port); + } + + error = dpif_port_add(dpif, netdev, NULL); if (error) { ovs_fatal(error, "failed to add %s as a port", port); } + + netdev_close(netdev); } } @@ -207,8 +216,6 @@ parse_options(int argc, char *argv[], struct ofsettings *s) OPT_SW_DESC, OPT_SERIAL_DESC, OPT_DP_DESC, - OPT_ACCEPT_VCONN, - OPT_NO_RESOLV_CONF, OPT_BR_NAME, OPT_FAIL_MODE, OPT_INACTIVITY_PROBE, @@ -225,7 +232,8 @@ parse_options(int argc, char *argv[], struct ofsettings *s) OPT_UNIXCTL, OPT_ENABLE_DUMMY, VLOG_OPTION_ENUMS, - LEAK_CHECKER_OPTION_ENUMS + LEAK_CHECKER_OPTION_ENUMS, + DAEMON_OPTION_ENUMS }; static struct option long_options[] = { {"datapath-id", required_argument, 0, OPT_DATAPATH_ID}, @@ -234,8 +242,6 @@ parse_options(int argc, char *argv[], struct ofsettings *s) {"sw-desc", required_argument, 0, OPT_SW_DESC}, {"serial-desc", required_argument, 0, OPT_SERIAL_DESC}, {"dp-desc", required_argument, 0, OPT_DP_DESC}, - {"accept-vconn", required_argument, 0, OPT_ACCEPT_VCONN}, - {"no-resolv-conf", no_argument, 0, OPT_NO_RESOLV_CONF}, {"config", required_argument, 0, 'F'}, {"br-name", required_argument, 0, OPT_BR_NAME}, {"fail", required_argument, 0, OPT_FAIL_MODE}, @@ -274,8 +280,6 @@ parse_options(int argc, char *argv[], struct ofsettings *s) controller_opts.max_backoff = 8; controller_opts.probe_interval = 5; controller_opts.band = OFPROTO_IN_BAND; - controller_opts.accept_re = NULL; - controller_opts.update_resolv_conf = true; controller_opts.rate_limit = 0; controller_opts.burst_limit = 0; s->unixctl_path = NULL; @@ -327,14 +331,6 @@ parse_options(int argc, char *argv[], struct ofsettings *s) s->dp_desc = optarg; break; - case OPT_ACCEPT_VCONN: - controller_opts.accept_re = optarg; - break; - - case OPT_NO_RESOLV_CONF: - controller_opts.update_resolv_conf = false; - break; - case OPT_FAIL_MODE: if (!strcmp(optarg, "open") || !strcmp(optarg, "standalone")) { s->fail_mode = OFPROTO_FAIL_STANDALONE; @@ -457,17 +453,11 @@ parse_options(int argc, char *argv[], struct ofsettings *s) argc -= optind; argv += optind; - if (argc < 1) { - ovs_fatal(0, "need at least one non-option arguments; " + if (argc < 2) { + ovs_fatal(0, "need at least two non-option arguments; " "use --help for usage"); } - /* Set accept_controller_regex. */ - if (!controller_opts.accept_re) { - controller_opts.accept_re - = stream_ssl_is_configured() ? "^ssl:.*" : "^tcp:.*"; - } - /* Rate limiting. */ if (controller_opts.rate_limit && controller_opts.rate_limit < 100) { VLOG_WARN("Rate limit set to unusually low value %d", @@ -490,9 +480,6 @@ parse_options(int argc, char *argv[], struct ofsettings *s) svec_add(&controllers, argv[i]); } } - if (argc < 2) { - svec_add(&controllers, "discover"); - } /* Set up controllers. */ s->n_controllers = controllers.n; @@ -501,27 +488,16 @@ parse_options(int argc, char *argv[], struct ofsettings *s) s->controllers[i] = controller_opts; s->controllers[i].target = controllers.names[i]; } - - /* Sanity check. */ - if (controller_opts.band == OFPROTO_OUT_OF_BAND) { - for (i = 0; i < s->n_controllers; i++) { - if (!strcmp(s->controllers[i].target, "discover")) { - ovs_fatal(0, "Cannot perform discovery with out-of-band " - "control"); - } - } - } } static void usage(void) { printf("%s: an OpenFlow switch implementation.\n" - "usage: %s [OPTIONS] [TYPE@]DATAPATH [CONTROLLER...]\n" + "usage: %s [OPTIONS] [TYPE@]DATAPATH CONTROLLER...\n" "where DATAPATH is a local datapath (e.g. \"dp0\")\n" "optionally with an explicit TYPE (default: \"system\").\n" - "Each CONTROLLER is an active OpenFlow connection method. If\n" - "none is given, ovs-openflowd performs controller discovery.\n", + "Each CONTROLLER is an active OpenFlow connection method.\n", program_name, program_name); vconn_usage(true, true, true); printf("\nOpenFlow options:\n" @@ -532,9 +508,6 @@ usage(void) " --sw-desc=SW Identify software as SW\n" " --serial-desc=SERIAL Identify serial number as SERIAL\n" " --dp-desc=DP_DESC Identify dp description as DP_DESC\n" - "\nController discovery options:\n" - " --accept-vconn=REGEX accept matching discovered controllers\n" - " --no-resolv-conf do not update /etc/resolv.conf\n" "\nNetworking options:\n" " --fail=open|closed when controller connection fails:\n" " closed: drop all packets\n"