Class-Based Weighted Fair Queuing (CBWFQ) schedules classified packets across separate queues when an interface cannot transmit them immediately. It replaces a single FIFO queue with weighted round-robin service and protects each queue from starvation during congestion. section 10.2.3 section 10.4.2
CBWFQ operates through these core behaviors:
- Classifies packets and places them into separate queues rather than one default FIFO queue. section 10.2.3
- Services queues in cyclical order using weighted round-robin scheduling. section 10.4.2
- Guarantees each queue a configured minimum bandwidth share during congestion. section 10.4.2
- Supports up to 64 queues. section 10.4.2
- Avoids queue starvation but does not provide the fastest service for delay-sensitive traffic, because packets may wait while other queues are serviced. section 10.4.2 section 10.7
Four-queue scheduling
With four queues, a simple round-robin sequence is 1, 2, 3, 4, 1, 2, 3, 4. CBWFQ weights the queues so each receives at least its configured bandwidth, even when other queues remain congested. section 10.4.2
Figure 10.19 Class-Based Weighted Fair Queuing (CBWFQ). Packets are classified and queued. The CBWFQ scheduler ensures that each queue receives at least its guaranteed bandwidth, even if other queues are congested.
Use the diagram to follow packet classification, queue placement, and guaranteed-bandwidth scheduling under congestion. section 10.4.2
