2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 06:15:47 +00:00

Add Nicira extension for modifying queue without transmitting

The OpenFlow OFPAT_ENQUEUE action sets a queue id and outputs the packet
in one shot.  There are times in which the queue should be set, but the
output port is not yet known.  This commit adds the NXAST_SET_QUEUE and
NXAST_POP_QUEUE Nicira extension actions to modify the queue
configuration without requiring a port argument.

CC: Jeremy Stribling <strib@nicira.com>
CC: Keith Amidon <keith@nicira.com>
This commit is contained in:
Justin Pettit
2010-10-02 00:27:23 -07:00
parent 9ebc44ae8c
commit eedc0097f4
7 changed files with 91 additions and 2 deletions

View File

@@ -267,6 +267,17 @@ str_to_action(char *str, struct ofpbuf *b)
nah = put_action(b, sizeof *nah, OFPAT_VENDOR);
nah->vendor = htonl(NX_VENDOR_ID);
nah->subtype = htons(NXAST_DROP_SPOOFED_ARP);
} else if (!strcasecmp(act, "set_queue")) {
struct nx_action_set_queue *nasq;
nasq = put_action(b, sizeof *nasq, OFPAT_VENDOR);
nasq->vendor = htonl(NX_VENDOR_ID);
nasq->subtype = htons(NXAST_SET_QUEUE);
nasq->queue_id = htonl(str_to_u32(arg));
} else if (!strcasecmp(act, "pop_queue")) {
struct nx_action_header *nah;
nah = put_action(b, sizeof *nah, OFPAT_VENDOR);
nah->vendor = htonl(NX_VENDOR_ID);
nah->subtype = htons(NXAST_POP_QUEUE);
} else if (!strcasecmp(act, "output")) {
put_output_action(b, str_to_u32(arg));
} else if (!strcasecmp(act, "enqueue")) {