Queuing Tools: CBWFQ and LLQ

Queuing Tools: CBWFQ and LLQ
This section hits the highlights of the modern queuing tools in Cisco IOS and covers detailed
configuration for the more popular tools—specifically class-based weighted fair queuing
(CBWFQ) and low-latency queuing (LLQ). Because the CCIE Routing and Switching exam
blueprint no longer includes the priority queuing (PQ) and custom queuing (CQ) legacy queuing
methods, they are not covered in this book. Furthermore, WFQ is covered only in the context of
CBWFQ and not as a standalone feature.
Cisco created CBWFQ and LLQ using some of the best concepts from the legacy queuing
methods PQ and CQ, as well as WFQ, while adding several additional features. CBWFQ reserves
bandwidth for each queue, and provides the ability to use WFQ concepts for packets in the default
(class-default) queue. LLQ adds to CBWFQ the concept of a priority queue, but unlike legacy PQ,
LLQ prevents the high-priority queue from starving other queues. Additionally, both CBWFQ and
LLQ use MQC for configuration, which means that they have robust classification options,
including NBAR.
CBWFQ and LLQ use almost identical configuration; the one major difference is whether the
bandwidth command (CBWFQ) or the priority command (LLQ) is used to configure the tool.
Because both tools use MQC, both use class maps for classification and policy maps to create a
set of classes to be used on an interface. The classes defined in the policy map each define a single
queue; as a result, the terms queue and class are often used interchangeably when working with
LLQ and CBWFQ.
CBWFQ and LLQ support 64 queues/classes. The maximum queue length can be changed, with
the maximum possible value and the default length varying based on the model of router and the
amount of memory installed. They both also have one special queue called the class-default queue.
This queue exists even if it is not configured. If a packet does not match any of the explicitly
configured classes in a policy map, IOS places the packet into the class-default class/queue.
CBWFQ settings can be configured for the class-default queue.
The sections that follow cover the details of CBWFQ and then LLQ.