Transmission Scheduling Overview
The packets in a queue are transmitted based on their transmission priority, transmit rate, and the available bandwidth.
By default, each queue can exceed the assigned bandwidth if additional bandwidth is available from other queues. When a forwarding class does not fully use the allocated transmission bandwidth, the remaining bandwidth can be used by other forwarding classes if they receive a larger amount of offered load than the bandwidth allocated. A queue receiving traffic within its bandwidth configuration is considered to have positive bandwidth credit, and a queue receiving traffic in excess of its bandwidth allocation is considered to have negative bandwidth credit.
The queues in a logical interface do not use the available buffer from other queues for packet transmission. Instead, the packets transmitted to a queue consider only the buffer size available in its own queue.
A queue with positive credit does not need to use leftover bandwidth, because it can use its own allocation. For such queues, packets are transmitted based on the priority of the queue, with packets from higher-priority queues transmitting first. The transmit rate is not considered during transmission. In contrast, a queue with negative credit needs a share of the available leftover bandwidth.
The leftover bandwidth is allocated to queues with negative credit in proportion to the configured transmit rate of the queues within a given priority set. The queues for an interface are divided into sets based on their priority. If no transmit rate is configured, each queue in the set receives an equal percentage of the leftover bandwidth. However, if a transmit rate is configured, each queue in the set receives the configured percentage of the leftover bandwidth.
Table 1 shows a sample configuration of priority and transmit rate on six queues. The total available bandwidth on the interface is 100 Mbps.
Queue |
Scheduling Priority |
Transmit Rate |
Incoming Traffic |
---|---|---|---|
0 |
Low |
10% |
20 Mbps |
1 |
High |
20% |
20 Mbps |
2 |
High |
30% |
20 Mbps |
3 |
Low |
30% |
20 Mbps |
4 |
Medium-high |
No transmit rate configured |
10 Mbps |
5 |
Medium-high |
No transmit rate configured |
20 Mbps |
In this example, queues are divided into three sets based on their priority:
High priority set—Consists of queue 1 and queue 2. Packets use 40 Mbps (20+20) of the available bandwidth (100 Mbps) and are transmitted first. Because of positive credit, the configured transmit rate is not considered.
Medium-high priority set—Consists of queue 4 and queue 5. Packets use 30 Mbps (10+20) of the remaining 60 Mbps bandwidth. Because of positive credit, the transmit rate is not considered. If the queues had negative credit, they would receive an equal share of the leftover bandwidth because no transmit rate is configured.
Low priority set—Consists of queue 0 and queue 3. Packets share the 30 Mbps of leftover bandwidth based on the configured transmit rate. The distribution of bandwidth is in proportion to the assigned percentages. Because the total assigned percentage is 40 (10 + 30), each queue receives a share of bandwidth accordingly. Thus queue 0 receives 7.5 Mbps (10/40 x 30), and queue 3 receives 22.5 Mbps (30/40 x 30).