Enqueue
Queue configuration takes place outside the OpenFlow protocol based on weights for a particular queue using Weighted Round Robin (WRR) scheduling.
There are two distinct parts that form the enqueue mechanism:
Assuming that a queue is already configured, you can associate a flow with an OFPAT_ENQUEUE action which forwards the packet through the specific queue on a port. Note that an enqueue action overrides any TOS or VLAN_PCP-related behavior that is potentially defined in the flow, but the packet is not changed or modified due to an enqueue. A total of 8 queues per port are supported.
In case of stacking, queue 7 is reserved for stacking messages. Any queue set to 7 is reclassified to queue 6. When there is no stacking, the standalone queue set to 7 remains as 7.
Use Case: OpenFlow Meter and Enqueue
QoS is usually implemented to provide appropriate levels of service to support Service Level Agreements (SLAs). You have the ability to meter and determine customer traffic according to the bandwidth guaranteed provided to the customer by way of a combination of OpenFlow v1.0.0 or v1.3.0 actions. The policing must be fine-grained and flexible enough as supported by OpenFlow match semantics. For instance, the match criteria for rate limiting one application may be based on a VLAN tag and, for another application, it may be based on the Layer 4 UDP or TCP port. The confirm action sets the appropriate queue ID for the packets, while the exceed action may cause the traffic to be dropped in case of congestion or remarked to a lower priority and with a different queue ID. When the packet is forwarded to a port using the output action, the queue ID determines which queue attached to this port is used for scheduling and forwarding the packet.