Configuring MDRR on Enhanced Queuing DPCs
The guaranteed rate (CIR) at the interface set level is implemented using modified deficit round-robin (MDRR). The Enhanced Queuing DPC hardware provides four levels of strict priority. There is no restriction on the number of queues for each priority. MDRR is used among queues of the same priority. Each queue has one priority when it is under the guaranteed rate and another priority when it is over the guaranteed rate but under the shaping rate (PIR). The Enhanced Queuing DPC hardware implements the priorities with 256 service profiles. Each service profile assigns eight priorities for eight queues. One set is for logical interfaces under the guaranteed rate and another set is for logical interfaces over the guaranteed rate but under the shaping rate. Each service profile is associated with a group of 16 level 3 schedulers, so there is a unique service profile available for all 256 groups at level 3, giving 4096 logical interfaces.
The Junos OS provides three priorities for traffic under the guaranteed rate and one reserved priority for traffic over the guaranteed rate that is not configurable. The Junos OS provides three priorities when there is no guaranteed rate configured on any logical interface.
The relationship between Junos OS priorities and the Enhanced Queuing DPC hardware priorities below and above the guaranteed rate (CIR) is shown in Table 1.
Junos OS Priority |
Enhanced Queuing DPC Hardware Priority Below Guaranteed Rate |
Enhanced Queuing DPC Hardware Priority Above Guaranteed Rate |
---|---|---|
Strict-high |
High |
High |
High |
High |
Low |
Medium-high |
Medium-high |
Low |
Medium-low |
Medium-high |
Low |
Low |
Medium-low |
Low |
To configure MDRR, configure a scheduler at the [edit class-of-service schedulers]
hierarchy level:
[edit class-of-service schedulers] scheduler-name { buffer-size (seconds | percent percentage | remainder | temporal microseconds); priority priority-level; transmit-rate (percent percentage | rate | remainder) <exact | rate-limit>; }
The following example creates two schedulers for MDRR:
[edit class-of-service schedulers] best-effort-scheduler { transmit-rate percent 30; # if no shaping rate buffer-size percent 30; priority high; } expedited-forwarding-scheduler { transmit-rate percent 40; # if no shaping rate buffer-size percent 40; priority strict-high; }
The use of both shaping rate and a guaranteed rate at the interface set level (level 2) is not supported.
MDRR is provided at three levels of the scheduler hierarchy of the Enhanced Queuing DPC with a granularity of 1 through 255. There are 64 MDRR profiles at the queue level, 16 at the interface set level, and 32 at the physical interface level.
Queue transmit rates are used for queue level MDRR profile weight
calculation. The queue MDRR weight is calculated differently based
on the mode set for sharing excess bandwidth. If you configure the equal
option for excess bandwidth, then the queue MDRR weight
is calculated as:
Queue weight = (255 * Transmit-rate-percentage) / 100
If you configure the proportional
option for excess
bandwidth, which is the default, then the queue MDRR weight is calculated
as:
Queue weight = Queue-transmit-rate / Queue-base-rate, where
Queue-transmit-rate = (Logical-interface-rate * Transmit-rate-percentage) / 100, and
Queue-base-rate = Excess-bandwidth-proportional-rate / 255
To configure the way that the Enhanced Queuing DPC should handle
excess bandwidth, configure the excess-bandwidth-share
statement
at the [edit interface-set interface-set-name]
hierarchy level. By default, the excess bandwidth is set
to proportional
with a default value of 32.64 Mbps.
In this mode, the excess bandwidth is shared in the ratio of the logical
interface shaping rates. If set to equal
, the excess bandwidth
is shared equally among the logical interfaces.
This example sets the excess bandwidth sharing to proportional at a rate of 100 Mbps with a shaping rate of 80 Mbps.
[edit interface-set example-interface-set] excess-bandwidth-share proportional 100m; output-traffic-control-profile PIR-80Mbps;
Shaping rates established at the logical interface level are used to calculate the MDRR weights used at the interface set level. The 16 MDRR profiles are set to initial values, and the closest profile with rounded values is chosen. By default, the physical port MDRR weights are preset to the full bandwidth on the interface.