The weighted random early detection (WRED) feature is supported on some platforms to avoid congestion in traffic queues or QoS profiles. WRED improves upon the TCP congestion control mechanism.
The TCP congestion control mechanism on hosts detects congestion when packets are lost and lowers the packet transmission rate in response. At the switch, packets are dropped when a queue is full. When multiple hosts forward packets that are dropped, multiple hosts reduce the transmission rate. This creates a global synchronization problem as multiple hosts overwhelm a queue and then simultaneously lower their transmission rate and under utilize the queue.
WRED is an extension to random early detection (RED), which calculates an average queue size and randomly discards packets in proportion to the queue usage. At low usage levels, no packets are discarded. As the average queue size exceeds configured thresholds, packets are discarded in proportion to the queue usage. Discarding packets early causes some (but not all) hosts to reduce their transmission rate, which reduces queue congestion. The random nature of the discard process reduces the global synchronization problem.
WRED extends RED by applying different discard rules for different types of traffic. Typically, WRED is used on core routers and takes action based on the packet contents established at edge routers. Edge routers can use the IP precedence or DSCP value to mark packets as committed (green), conforming (yellow), or exceeded (red). The marking process and these colors are described in Introduction to Rate Limiting, Rate Shaping, and Scheduling.
The ExtremeXOS WRED implementation varies per platform and allows you to configure the following:
WRED does not drop packets at calculated average queue sizes below the minimum threshold (although packets would be dropped if the queue fills).
When the calculated average queue size rises above the maximum threshold, WRED drops packets at the maximum drop rate. When the calculated average falls between the minimum and maximum thresholds, packets are randomly dropped at a proportional rate between zero and the maximum drop rate. As the queue fills, more packets are dropped.
The average weight parameter provides some control over how the average queue size is calculated and the probability of packet drop. Increasing the avg_weight value reduces the probability that traffic is dropped. Conversely, decreasing the avg_weight value increases the probability that traffic is dropped.
On BlackDiamond 8900 c- and xl-series modules and Summit X460 and X480 switches, you can configure up to three WRED profiles or configurations per QoS profile, enabling you to create custom WRED configurations for up to 24 traffic flows (3 WRED profiles x 8 QoS profiles).
Each QoS profile supports WRED profiles for the following colors of traffic:
On BlackDiamond X8 series switches, BlackDiamond 8900 xm-series modules, and Summit X460-G2, X670, X670-G2, and X770 switches, you can configure up to four WRED profiles or configurations per QoS profile, enabling you to create custom WRED configurations for up to 32 traffic flows (4 WRED profiles x 8 QoS profiles).
Each QoS profile supports WRED profiles for the following colors of traffic:
Without support for non-TCP traffic management, non-TCP traffic could monopolize a QoS profile in which TCP traffic is regulated, effectively giving non-TCP traffic priority over TCP traffic. With support for both TCP and non-TCP traffic, WRED allows you to regulate different types of traffic independently, giving you greater control over which type of traffic is dropped first and most frequently.
The typical WRED configuration establishes the lowest probability for packet drop for green traffic, which conforms to established limits along the transmission path. A typical WRED configuration establishes a higher probability for packet drop for red colored traffic, because it has already exceeded established limits earlier in the transmission path. All traffic (green and red) is dropped when the queue is full, so the goal is to configure the WRED settings for each color in such a way as to prevent the queue from filling frequently.