WFQ was introduced as a solution to these problems of the queuing mechanisms:
■ FIFO queuing causes starvation, delay, and jitter.
■ Priority queuing (PQ) causes starvation of other lower priority classes and suffers from all FIFO problems within each of the four queues that it uses for prioritization.
■ Custom queuing (CQ) causes long delays and also suffers from all FIFO problems within each of the 16 queues that it uses for traffic classification.
The idea of WFQ is as follows:
■ To have a dedicated queue for each flow (no starvation, delay, or jitter within the queue)
■ To allocate bandwidth fairly and accurately among all flows (minimum scheduling delay, guaranteed service)
■ To use IP precedence as weight when allocating bandwidth
WFQ uses automatic classification. Manually defined classes are not supported.
WFQ dropping is not a simple tail drop. WFQ drops packets of the most aggressive flows.
WFQ scheduler is a simulation of a time-division multiplexing (TDM) system. The bandwidth is fairly distributed to all active flows.
Was this article helpful?