Excess Rate and Excess Priority Configuration Examples
To configure the excess rate for nonqueuing Packet Forwarding
Engines, include the excess-rate statement at the [edit class-of-service schedulers scheduler-name]
hierarchy level.
To configure the excess priority for nonqueuing Packet Forwarding
Engines, include the excess-priority statement at the [edit class-of-service schedulers scheduler-name]
hierarchy level.
The relationship between the configured guaranteed rate, excess rate, guaranteed priority, excess priority, and offered load is not always obvious. The following tables show the expected throughput of a Gigabit Ethernet port with various bandwidth-sharing parameters configured on the queues.
The default behavior of a nonqueuing Gigabit Ethernet interface with multiple priority levels is shown in Table 1. All queues in the table get their guaranteed rate. The excess bandwidth is first offered to the excess high-priority queues. Because these use all available bandwidth, these is no remaining excess bandwidth for the low-priority queues.
Queue |
Guaranteed (Transmit) Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|
Q0 |
20% |
high |
high |
600 Mbps |
200 + 366.67 = 566.67 Mbps |
Q1 |
10% |
high |
high |
500 Mbps |
100 + 183.33 = 283.33 Mbps |
Q2 |
10% |
low |
low |
500 Mbps |
100 + 0 = 100 Mbps |
Q3 |
5% |
low |
low |
500 Mbps |
50 + 0 = 50 Mbps |
The default behavior of a nonqueuing Gigabit Ethernet interface with the same priority levels is shown in Table 2. All queues in the table get their guaranteed rate. Because all queues have the same excess priority, they share the excess bandwidth and each queue gets excess bandwidth in proportion to the transmit rate.
Queue |
Guaranteed (Transmit) Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|
Q0 |
20% |
high |
high |
500 Mbps |
200 + 244.44 = 444.44 Mbps |
Q1 |
10% |
high |
high |
500 Mbps |
100 + 122.22 = 222.22 Mbps |
Q2 |
10% |
high |
high |
500 Mbps |
100 + 122.22 = 222.22 Mbps |
Q3 |
5% |
high |
high |
500 Mbps |
50 + 61.11= 111.11 Mbps |
The default behavior of a nonqueuing Gigabit Ethernet interface with the at least one strict-high priority level is shown in Table 3. First the high priority and strict-high are serviced in a weighted round-robin fashion. The high priority queue gets its guaranteed bandwidth and the strict-high queue gets what remains. The high excess priority queue gets all the excess bandwidth.
Queue |
Guaranteed (Transmit) Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|
Q0 |
20% |
strict-high |
X |
500 Mbps |
500 Mbps |
Q1 |
10% |
high |
high |
500 Mbps |
100 + 250 = 350 Mbps |
Q2 |
10% |
low |
low |
500 Mbps |
100 + 0 = 100 Mbps |
Q3 |
5% |
low |
low |
500 Mbps |
50 + 0= 50 Mbps |
The default behavior of a nonqueuing Gigabit Ethernet interface
with the at least one strict-high priority level and a higher offered
load on Q0 is shown in Table 4. First the high priority and strict-high are serviced in a weighted
round-robin fashion. The high priority queue gets its guaranteed bandwidth
and the strict-high queue gets what remains. (The high priority queue
receives its guaranteed bandwidth unless a strict-high queue is configured,
which in certain conditions might starve the high priority queue.
To guarantee the configured transmit rate on high-priority queues,
apply the rate-limit
option to the transmit rate of the
strict-high priority queue.) There is no excess bandwidth.
Queue |
Guaranteed (Transmit) Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|
Q0 |
20% |
strict-high |
X |
1 Gbps |
900 Mbps |
Q1 |
10% |
high |
high |
500 Mbps |
100 + 0 = 100 Mbps |
Q2 |
10% |
low |
low |
500 Mbps |
0 + 0 = 0 Mbps |
Q3 |
5% |
low |
low |
500 Mbps |
0 + 0= 0 Mbps |
Now consider the behavior of the queues with configured excess rates and excess priorities.
The behavior with multiple priority levels is shown in Table 5. All queues get the guaranteed rate. The excess bandwidth is first offered to the excess high priority queues and these consume all the bandwidth. There is no remaining excess bandwidth for low priority queues.
Queue |
Guaranteed (Transmit) Rate |
Excess Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|---|
Q0 |
20% |
10% |
high |
high |
500 Mbps |
200 + 275 = 475 Mbps |
Q1 |
10% |
20% |
high |
low |
500 Mbps |
100 + 0 = 100 Mbps |
Q2 |
10% |
10% |
low |
high |
500 Mbps |
100 + 275 = 275 Mbps |
Q3 |
5% |
20% |
low |
low |
500 Mbps |
50 + 0= 50 Mbps |
The behavior with the same (high) priority levels is shown in Table 6. All queues get the guaranteed rate. Because all queues have the same excess priority, they share the excess bandwidth in proportion to their transmit rate.
Queue |
Guaranteed (Transmit) Rate |
Excess Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|---|
Q0 |
20% |
10% |
high |
high |
500 Mbps |
200 + 91.67 = 291.67 Mbps |
Q1 |
10% |
20% |
high |
high |
500 Mbps |
100 + 183.33 = 283.33 Mbps |
Q2 |
10% |
10% |
high |
high |
500 Mbps |
100 + 91.67 = 191.67 Mbps |
Q3 |
5% |
20% |
high |
high |
500 Mbps |
50 + 183.33 = 233.33 Mbps |
The behavior with at least one strict-high priority level is shown in Table 7. The high priority and strict-high queues are serviced in a weighted round-robin fashion. The high priority queue gets its guaranteed rate and the strict-high queue gets the rest. The excess high-priority queue get all the excess bandwidth.
Queue |
Guaranteed (Transmit) Rate |
Excess Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|---|
Q0 |
20% |
X |
strict-high |
X |
500 Mbps |
500 Mbps |
Q1 |
10% |
20% |
high |
low |
500 Mbps |
100 + 0 = 100 Mbps |
Q2 |
10% |
10% |
low |
high |
500 Mbps |
100 + 250 = 350 Mbps |
Q3 |
5% |
20% |
low |
low |
500 Mbps |
50 + 0 = 50 Mbps |
The behavior with at least one strict-high priority level and a higher offered load is shown in Table 8. The high priority and strict-high queues are serviced in a weighted round-robin fashion. The high priority queue gets its guaranteed rate and the strict-high queue gets the rest. There is no excess bandwidth.
Queue |
Guaranteed (Transmit) Rate |
Excess Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|---|
Q0 |
20% |
X |
strict-high |
X |
900 Mbps |
900 Mbps |
Q1 |
10% |
20% |
high |
low |
500 Mbps |
100 + 0 = 100 Mbps |
Q2 |
10% |
10% |
low |
high |
500 Mbps |
0 + 0 = 0 Mbps |
Q3 |
5% |
20% |
low |
low |
500 Mbps |
0 + 0 = 0 Mbps |
The behavior with at least one strict-high priority level and a rate limit is shown in Table 9. Queue 0 and Queue 2 are rate limited, so the maximum bandwidth they are offered is the transmit bandwidth and they will not be offered any excess bandwidth. All other queues are offered the guaranteed bandwidth and the excess is shared by the non-rate-limited queues.
Queue |
Guaranteed (Transmit) Rate |
Rate Limit |
Excess Rate |
Guaranteed Priority |
Excess Priority |
Offered Load |
Expected Throughput |
---|---|---|---|---|---|---|---|
Q0 |
20% |
Yes |
X |
strict-high |
X |
500 Mbps |
200 + 0 = 200 Mbps |
Q1 |
10% |
No |
20% |
high |
low |
500 Mbps |
100 + 275 = 375 Mbps |
Q2 |
10% |
Yes |
10% |
low |
high |
500 Mbps |
100 + 0 = 100 Mbps |
Q3 |
5% |
No |
20% |
low |
low |
500 Mbps |
50 + 275 = 325 Mbps |
Configuring the Schedulers
The following example configures schedulers, forwarding classes, and a scheduler map for an interface with excess rates and excess priorities.
[edit class-of-service schedulers] scheduler-1 { transmit-rate percent 20; priority high; excess-rate percent 10; excess-priority low; } scheduler-2 { transmit-rate percent 10; priority strict-high; } scheduler-3 { transmit-rate percent 10; priority medium-high; excess-rate percent 20; excess-priority high; } scheduler-4 { transmit-rate percent 5; priority medium-high; excess-rate percent 30; excess-priority low; }
Configuring the Forwarding Classes
[edit class-of-service] forwarding-classes { class cp_000 queue-num 0; class cp_001 queue-num 1; class cp_010 queue-num 2; class cp_011 queue-num 3; class cp_100 queue-num 4; class cp_101 queue-num 5; class cp_110 queue-num 6; class cp_111 queue-num 7; }
Configuring the Scheduler Map
[edit class-of-service scheduler-maps] scheduler-map-1 { forwarding-class cp_000 scheduler scheduler-1; forwarding-class cp_001 scheduler scheduler-2; forwarding-class cp_010 scheduler scheduler-3; forwarding-class cp_011 scheduler scheduler-4; }
Applying the Scheduler Map to the Interface
[edit interfaces] ge-1/1/0 { scheduler-map scheduler-map-1; unit 0 { family inet { address 192.168.1.2/32; } } }