From: Ben Pfaff Date: Mon, 6 May 2013 17:55:06 +0000 (-0700) Subject: ofp-actions: Switch away from odd use of "q" in "enqueue" action format. X-Git-Tag: sliver-openvswitch-2.0.90-1~5^2~45 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=b55f2f799b6340a89fd282ac28f6eff8d8492bf5 ofp-actions: Switch away from odd use of "q" in "enqueue" action format. The formatting of the "enqueue" action uses a "q" to separate the port number from the queue number, as in "enqueue:123q456". This is different from every other action. This commit improves the situation by: * Switching the formatting to use a colon (e.g. "enqueue:123:456"), which is a little less odd-looking but still accepted by older versions of Open vSwitch. * Improving the parser to accept "enqueue(123,456)" also. Signed-off-by: Ben Pfaff --- diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c index 6c90d5ca2..abc950529 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -3281,7 +3281,7 @@ ofpact_format(const struct ofpact *a, struct ds *s) enqueue = ofpact_get_ENQUEUE(a); ds_put_format(s, "enqueue:"); ofputil_format_port(enqueue->port, s); - ds_put_format(s, "q%"PRIu32, enqueue->queue); + ds_put_format(s, ":%"PRIu32, enqueue->queue); break; case OFPACT_OUTPUT_REG: diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c index 915dc90a0..0fbe9f09a 100644 --- a/lib/ofp-parse.c +++ b/lib/ofp-parse.c @@ -179,12 +179,13 @@ static char * WARN_UNUSED_RESULT parse_enqueue(char *arg, struct ofpbuf *ofpacts) { char *sp = NULL; - char *port = strtok_r(arg, ":q", &sp); + char *port = strtok_r(arg, ":q,", &sp); char *queue = strtok_r(NULL, "", &sp); struct ofpact_enqueue *enqueue; if (port == NULL || queue == NULL) { - return xstrdup("\"enqueue\" syntax is \"enqueue:PORT:QUEUE\""); + return xstrdup("\"enqueue\" syntax is \"enqueue:PORT:QUEUE\" or " + "\"enqueue(PORT,QUEUE)\""); } enqueue = ofpact_put_ENQUEUE(ofpacts); diff --git a/tests/ofp-actions.at b/tests/ofp-actions.at index 244c9eee1..cdca8ca1f 100644 --- a/tests/ofp-actions.at +++ b/tests/ofp-actions.at @@ -39,7 +39,7 @@ AT_DATA([test-data], [dnl # actions=mod_tp_dst:443 000a 0008 01bb 0000 -# actions=enqueue:10q55 +# actions=enqueue:10:55 000b 0010 000a 000000000000 00000037 # actions=resubmit:5 diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index 82ad87f82..20fb1704c 100644 --- a/utilities/ovs-ofctl.8.in +++ b/utilities/ovs-ofctl.8.in @@ -1056,10 +1056,10 @@ written in the upper half of register 0. This form of \fBoutput\fR uses an OpenFlow extension that is not supported by standard OpenFlow switches. . -.IP \fBenqueue:\fIport\fB:\fIqueue\fR +.IP \fBenqueue(\fIport\fB,\fIqueue\fB)\fR Enqueues the packet on the specified \fIqueue\fR within port \fIport\fR, which must be an OpenFlow port number or keyword -(e.g. \fBLOCAL\fR).. The number of supported queues depends on the +(e.g. \fBLOCAL\fR). The number of supported queues depends on the switch; some OpenFlow implementations do not support queuing at all. . .IP \fBnormal\fR