X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-controller.c;h=f97797472447539348946347178870cff49bdae8;hb=b2fda3effc787f265b5ad5dfa967ac00627bd075;hp=c38c8123669f91f7284596c41b24e221e9ef5e48;hpb=88ca35eed0ce0bc65e45122c24e33f50e8339bb8;p=sliver-openvswitch.git diff --git a/utilities/ovs-controller.c b/utilities/ovs-controller.c index c38c81236..f97797472 100644 --- a/utilities/ovs-controller.c +++ b/utilities/ovs-controller.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. @@ -139,7 +139,6 @@ main(int argc, char *argv[]) ovs_fatal(0, "no active or passive switch connections"); } - die_if_already_running(); daemonize_start(); retval = unixctl_server_create(unixctl_path, &unixctl); @@ -228,6 +227,7 @@ new_switch(struct switch_ *sw, struct vconn *vconn) cfg.mode = (action_normal ? LSW_NORMAL : learn_macs ? LSW_LEARN : LSW_FLOOD); + cfg.exact_flows = exact_flows; cfg.max_idle = set_up_flows ? max_idle : -1; cfg.default_flows = &default_flows; cfg.default_queue = default_queue; @@ -261,6 +261,7 @@ static void read_flow_file(const char *name) { enum nx_flow_format flow_format; + bool flow_mod_table_id; FILE *stream; stream = fopen(optarg, "r"); @@ -269,7 +270,10 @@ read_flow_file(const char *name) } flow_format = NXFF_OPENFLOW10; - while (parse_ofp_add_flow_file(&default_flows, &flow_format, stream)) { + flow_mod_table_id = false; + while (parse_ofp_flow_mod_file(&default_flows, + &flow_format, &flow_mod_table_id, + stream, OFPFC_ADD)) { continue; } @@ -306,28 +310,27 @@ parse_options(int argc, char *argv[]) OPT_MUTE, OPT_WITH_FLOWS, OPT_UNIXCTL, - VLOG_OPTION_ENUMS + VLOG_OPTION_ENUMS, + DAEMON_OPTION_ENUMS }; static struct option long_options[] = { - {"hub", no_argument, 0, 'H'}, - {"noflow", no_argument, 0, 'n'}, - {"normal", no_argument, 0, 'N'}, - {"wildcard", no_argument, 0, 'w'}, - {"max-idle", required_argument, 0, OPT_MAX_IDLE}, - {"mute", no_argument, 0, OPT_MUTE}, - {"queue", required_argument, 0, 'q'}, - {"port-queue", required_argument, 0, 'Q'}, - {"with-flows", required_argument, 0, OPT_WITH_FLOWS}, - {"unixctl", required_argument, 0, OPT_UNIXCTL}, - {"help", no_argument, 0, 'h'}, - {"version", no_argument, 0, 'V'}, + {"hub", no_argument, NULL, 'H'}, + {"noflow", no_argument, NULL, 'n'}, + {"normal", no_argument, NULL, 'N'}, + {"wildcard", no_argument, NULL, 'w'}, + {"max-idle", required_argument, NULL, OPT_MAX_IDLE}, + {"mute", no_argument, NULL, OPT_MUTE}, + {"queue", required_argument, NULL, 'q'}, + {"port-queue", required_argument, NULL, 'Q'}, + {"with-flows", required_argument, NULL, OPT_WITH_FLOWS}, + {"unixctl", required_argument, NULL, OPT_UNIXCTL}, + {"help", no_argument, NULL, 'h'}, + {"version", no_argument, NULL, 'V'}, DAEMON_LONG_OPTIONS, VLOG_LONG_OPTIONS, -#ifdef HAVE_OPENSSL - STREAM_SSL_LONG_OPTIONS - {"peer-ca-cert", required_argument, 0, OPT_PEER_CA_CERT}, -#endif - {0, 0, 0, 0}, + STREAM_SSL_LONG_OPTIONS, + {"peer-ca-cert", required_argument, NULL, OPT_PEER_CA_CERT}, + {NULL, 0, NULL, 0}, }; char *short_options = long_options_to_short_options(long_options); @@ -399,13 +402,11 @@ parse_options(int argc, char *argv[]) VLOG_OPTION_HANDLERS DAEMON_OPTION_HANDLERS -#ifdef HAVE_OPENSSL STREAM_SSL_OPTION_HANDLERS case OPT_PEER_CA_CERT: stream_ssl_set_peer_ca_cert_file(optarg); break; -#endif case '?': exit(EXIT_FAILURE);