X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-controller.c;h=92b84ae12838b8d9f45c420f654d9b1e50333614;hb=f22716dcca299b863dd72eb193fb1283c5f686da;hp=8de3400854ea37635f7325b38e574bdcb3643893;hpb=9794e806040d4643e376ae7a5cdf5e7cdcfc3c16;p=openvswitch diff --git a/utilities/ovs-controller.c b/utilities/ovs-controller.c index 8de34008..92b84ae1 100644 --- a/utilities/ovs-controller.c +++ b/utilities/ovs-controller.c @@ -36,9 +36,9 @@ #include "unixctl.h" #include "util.h" #include "vconn.h" - #include "vlog.h" -#define THIS_MODULE VLM_controller + +VLOG_DEFINE_THIS_MODULE(controller) #define MAX_SWITCHES 16 #define MAX_LISTENERS 16 @@ -67,6 +67,9 @@ static int max_idle = 60; * of their messages (for debugging fail-open mode). */ static bool mute = false; +/* -q, --queue: OpenFlow queue to use, or the default queue if UINT32_MAX. */ +static uint32_t queue_id = UINT32_MAX; + /* --unixctl: Name of unixctl socket, or null to use the default. */ static char *unixctl_path = NULL; @@ -87,8 +90,6 @@ main(int argc, char *argv[]) proctitle_init(argc, argv); set_program_name(argv[0]); - time_init(); - vlog_init(); parse_options(argc, argv); signal(SIGPIPE, SIG_IGN); @@ -211,10 +212,11 @@ static void new_switch(struct switch_ *sw, struct vconn *vconn) { sw->rconn = rconn_create(60, 0); - rconn_connect_unreliably(sw->rconn, vconn); + rconn_connect_unreliably(sw->rconn, vconn, NULL); sw->lswitch = lswitch_create(sw->rconn, learn_macs, exact_flows, set_up_flows ? max_idle : -1, action_normal); + lswitch_set_queue(sw->lswitch, queue_id); } static int @@ -256,6 +258,7 @@ parse_options(int argc, char *argv[]) {"wildcard", no_argument, 0, 'w'}, {"max-idle", required_argument, 0, OPT_MAX_IDLE}, {"mute", no_argument, 0, OPT_MUTE}, + {"queue", required_argument, 0, 'q'}, {"unixctl", required_argument, 0, OPT_UNIXCTL}, {"help", no_argument, 0, 'h'}, {"version", no_argument, 0, 'V'}, @@ -311,6 +314,10 @@ parse_options(int argc, char *argv[]) } break; + case 'q': + queue_id = atoi(optarg); + break; + case OPT_UNIXCTL: unixctl_path = optarg; break; @@ -359,6 +366,7 @@ usage(void) " --max-idle=SECS max idle time for new flows\n" " -N, --normal use OFPAT_NORMAL action\n" " -w, --wildcard use wildcards, not exact-match rules\n" + " -q, --queue=QUEUE OpenFlow queue ID to use for output\n" " --unixctl=SOCKET override default control socket name\n" " -h, --help display this help message\n" " -V, --version display version information\n");