Low Latency Queuing is almost identical to CB-WFQ. However with LLQ , you can instruct one or more class-maps to direct traffic into a priority queue.
Realize that when you place packets in a PQ , you are not only allocation a bandwidth amount for that traffic but you are also performing policing (that is limiting the available bandwidth for that traffic).
Why are we policing ?
This is necessary to prevent higher-priority traffic from starving out lower-priority traffic.
Please also consider that if you give priority to multiple class-maps , the packets assigned to will go into the same queue.Packets which are queued in the priority queue can’t be fragmented , which is a consideration for slower links.
LLQ is the cisco preferred queuing method for latensy-sensitive traffic such as voice and video.
The WFQ mechanism made sure that no traffic was starved out. However, WFQ did not make a specific amount of bandwidth available for defined traffic types.
You can, however, specify a minimum amount of bandwidth to make available for various traffic types using the CB-WFQ mechanism.
CB-WFQ is configured through the tree-step MQC process. Using MQC, you can create up to 63 class-maps and assign a minimum amount of bandwidth for each one.
Why not 64 ?
Because the default class-map is already configured.
Traffic for each class-map goes into a separate queue. Therefore, one queue can be overflowing , while other queues are still accepting packets.
Bandwidth for class-maps can be specified following 3 ways:
- Percentage of bandwidth
- Percentage of remaining bandwidth
By default , each queue that is used by CB-WFQ has a capacity of 64 packets. Also , only 75 percent of an interface’s bandwidth can be allocated by default.
The remaining 25 percent is reserved for nonclassified overhead traffic ( CDP,LMI,Routing,..)
But you can always overcome this limitation with the command max-reserved-bandwidth <<percentage>>.
CB-WFQ is therefore an attractive queuing mechanism thanks to MQC configuration and the ability to assign a minimum bandwidth allocation.
The only major drawback to CB_WFQ is its inability to give priority treatment to any class. To overcome this drawback, Low Latency Queuing (LLQ) was created tosupport traffic prioritization.
WFQ is enabled by default on slow-speed interfaces (< 2,048 Mbps).
WFQ allocates a queue for each flow, for as many as 256 flows by default.
WFQ uses IP Precedence values to provide a weighting to Fair Queuing(FQ).
How FQ is different from WFQ ?
A router has 2 types of queues:
- A hardware queue
- A software queue
The hardware queue , which is most of the time the transmit queues (TxQ) , uses FIFO queuing and it is only when the hardware queue is full that the software queue will handle these packets.
So remember that it is only valid when you are experiencing interface congestion (overflow of the hardware queue).
FIFO is also the default mechanism for software queue for higher speed interfaces ( > 2048 Mbps)
This queuing mechanism is the same as the Round Robin Queuing but this time ,we are placing a weight on the various queues which will service a different number of bytes or packets from the queues during a round robin cycle .
CQ ( Custom Queuing) is an example of Weighted Round Robin.
This type of queuing places traffic into multiples queues and packets are removed from these queues in a round-robin fashion which avoids the protocol-starvation issue that PQ suffered from.(See PQ post)