X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fopenflow%2Fnicira-ext.h;fp=include%2Fopenflow%2Fnicira-ext.h;h=13aea66073f98d8df6c4c4d080963a1c0cc0c1e9;hb=d15a5ee594f46a855788652e687aa5d736d530fb;hp=0b543d45a77d8cb1724b60a6745434a3bf813355;hpb=e9ec7451755a50449811738b5a0adad49a864fe3;p=sliver-openvswitch.git diff --git a/include/openflow/nicira-ext.h b/include/openflow/nicira-ext.h index 0b543d45a..13aea6607 100644 --- a/include/openflow/nicira-ext.h +++ b/include/openflow/nicira-ext.h @@ -254,8 +254,18 @@ enum nx_action_subtype { * * This is useful because OpenFlow does not provide a way to match on the * Ethernet addresses inside ARP packets, so there is no other way to drop - * spoofed ARPs other than sending every packet up to the controller. */ - NXAST_DROP_SPOOFED_ARP + * spoofed ARPs other than sending every ARP packet to a controller. */ + NXAST_DROP_SPOOFED_ARP, + + /* Set the queue that should be used when packets are output. This + * is similar to the OpenFlow OFPAT_ENQUEUE action, but does not + * take the output port as an argument. This allows the queue + * to be defined before the port is known. */ + NXAST_SET_QUEUE, + + /* Restore the queue to the value it was before any NXAST_SET_QUEUE + * actions were used. */ + NXAST_POP_QUEUE }; /* Action structure for NXAST_RESUBMIT. */ @@ -280,6 +290,17 @@ struct nx_action_set_tunnel { }; OFP_ASSERT(sizeof(struct nx_action_set_tunnel) == 16); +/* Action structure for NXAST_SET_QUEUE. */ +struct nx_action_set_queue { + uint16_t type; /* OFPAT_VENDOR. */ + uint16_t len; /* Length is 16. */ + uint32_t vendor; /* NX_VENDOR_ID. */ + uint16_t subtype; /* NXAST_SET_QUEUE. */ + uint8_t pad[2]; + uint32_t queue_id; /* Where to enqueue packets. */ +}; +OFP_ASSERT(sizeof(struct nx_action_set_queue) == 16); + /* Header for Nicira-defined actions. */ struct nx_action_header { uint16_t type; /* OFPAT_VENDOR. */