Warning: Undefined array key "kkmods_kkpostslider" in /home/clients/bb1b7c38f63c1b363aa0114be7911e68/web/collaboration/wp-content/plugins/kk-divi-mods/kk_divi_mods.php on line 67
Weighted Fair Queuing – WFQ | Cisco Collaboration

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 ?

When emptying the queues , FQ does byte-by-byte scheduling. Specifically , FQ looks 1 byte deep into each queue to determine whether an entire packet can be sent out an interface an do it again for the next byte. This has as result that smaller traffic flows and smaller sizes have priority over bandwidth-hungry flows with large packets.

Fair Queuing scheduling

With WFQ , a packet’s IP Precedence influences the order in which that packet is emptied from a queue . The order of packet servicing with WFQ is based on sequence numbers , where packets with the lowest sequence numbers are transmitted first !

The sequence number is the weight of packet multiplied by the number of byte-t-byte rounds that must be completed to service the packet.

Prior to IOS 12.0.5T , the formula for weight was as follows :

Weight = 4096 / ( IP Precedence + 1 )

In more recent IOS,the formula for weight is as follows :

Weight = 32384 / ( IP Precedence + 1 )

So let’s take back our previous example :

A1 = (32384 / ( 5+1)) *128 = 690 859

A2 = (32384 / ( 5+1)) *128 + A1 = 1 381 717

A3 = (32384 / ( 5+1)) *128 + A2 = 2 072 576

B1 = (32384 / ( 0+1)) * 96 = 3 108 864

C1 = (32384 / ( 0+1)) * 70 = 2 226 880

So now with WFQ applied , the queues are emptied in the following order.

Weighted Fair Queuing scheduling

Although WFQ is easy to configure ( it is enabled by default on interces below 2,048 Mbps), although WFQ is supported on all IOS versions , it has its limitations !

Specifically, WFQ canot guarantee a specific amount of bandwidth for an application.And also if more than 256 flows exist, by default, more than one flow one flow can be forced to share the same queue.