Configuring WRED on Enhanced Queuing DPCs
Shaping to drop out-of-profile traffic is done on the Enhanced Queuing DPC at all levels but the queue level. However, weighed random early detection (WRED) is done at the queue level with much the same result. With WRED, the decision to drop or send the packet is made before the packet is placed in the queue.
WRED shaping on the Enhanced Queuing DPC is similar to the IQ2 PIC, but involves only two levels, not 64. The probabilistic drop region establishes a minimum and a maximum queue depth. Below the minimum queue depth, the drop probability is 0 (send). Above the maximum level, the drop probability is 100 (certainty).
There are four drop profiles associated with each queue. These correspond to each of four loss priorities (low, medium-low, medium-high, and high). Sixty-four sets of four drop profiles are available (32 for ingress and 32 for egress). In addition, there are eight WRED scaling profiles in each direction.
To configure WRED, include the drop-profiles
statement at the [edit class-of-service]
hierarchy level:
[edit class-of-service] drop-profiles { profile-name { fill-level percentage drop-probability percentage; } }
The following example is an Enhanced Queuing DPC drop profile for expedited forwarding traffic:
[edit class-of-service drop-profiles] drop-ef { fill-level 20 drop-probability 0; # Minimum Q depth fill-level 100 drop-probability 100; # Maximum Q depth }
Note that only two fill levels can be specified for the Enhanced
Queuing DPC. You can configure the interpolate
statement,
but only two fill levels are used. The delay-buffer-rate
statement in the traffic control profile determines the maximum
queue size. This delay buffer rate is converted to a packet delay
buffers, where one buffer is equal to 512 bytes. For example,
at 10 Mbps, the Enhanced Queuing DPC allocates 610 delay
buffers when the delay-buffer rate is set to 250 milliseconds.
The WRED threshold values are specified in terms of absolute buffer
values.
The WRED scaling factor multiples all WRED thresholds (both minimum and maximum) by the value specified. There are eight values in all: 1, 2, 4, 8, 16, 32, 64, and 128. The WRED scaling factor is chosen to best match the user-configured drop profiles. This is done because the hardware supports only certain values of thresholds (all values must be a multiple of 16). So if the configured value of a threshold is 500 (for example), the multiple of 16 is 256 and the scaling factor applied is 2, making the value 512, which allows the value of 500 to be used. If the configured value of a threshold is 1500, the multiple of 16 is 752 and the scaling factor applied is 2, making the value 1504, which allows the value of 1500 to be used
Hierarchical RED is used to support the oversubscription of the delay buffers (WRED is only configured at the queue, physical interface, and PIC level). Hierarchical RED works with WRED as follows:
If any level accepts the packet (the queue depth is less than the minimum buffer level), then this level accepts the packet.
If any level probabilistically drops the packet, then this level drops the packet.
However, these rules might lead to the accepting of packets under loaded conditions which might otherwise have been dropped. In other words, the logical interface accepts packets if the physical interface is not congested.