Weighted random early detection (WRED) is a queueing discipline for a network scheduler suited for congestion avoidance. It is an extension to random early detection (RED) where a single queue may have several different sets of queue thresholds. Each threshold set is associated to a particular traffic class.
For example, a queue may have lower thresholds for lower-priority packets. A queue buildup will cause the lower-priority packets to be dropped, hence protecting the higher-priority packets in the same queue. In this way quality of service prioritization is made possible for important packets from a pool of packets using the same buffer.
It is more likely that standard traffic will be dropped instead of higher-priority traffic.
On Cisco switches, WRED is restricted to
Non-IP traffic will be dropped more often than TCP/IP traffic because it is treated with the lowest possible precedence.
WRED proceeds in this order when a packet arrives:
The average queue size depends on the previous average as well as the current size of the queue. The calculation formula is given below:
where is the user-configurable exponential weight factor, is the old average and is the current queue size. The previous average is more important for high values of . Peaks and lows in queue size are smoothed by a high value. For low values of , the average queue size is close to the current queue size.