2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-25 15:07:05 +00:00

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 <blp@nicira.com>
This commit is contained in:
Ben Pfaff
2013-05-06 10:55:06 -07:00
parent aee0979b2c
commit b55f2f799b
4 changed files with 7 additions and 6 deletions

View File

@@ -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:

View File

@@ -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);

View File

@@ -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

View File

@@ -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