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:
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user