Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation

Configuring Schedulers for Priority Scheduling

To configure priority scheduling, include the priority statement at the [edit class-of-service schedulers scheduler-name] hierarchy level:

[edit class-of-service schedulers scheduler-name]priority priority-level;

The priority level can be low, medium-low, medium-high, high, or strict-high. The priorities map to numeric priorities in the underlying hardware. In some cases, different priorities behave similarly, because two software priorities behave differently only if they map to two distinct hardware priorities. For more information, see Platform Support for Priority Scheduling.

Higher-priority queues transmit packets ahead of lower priority queues as long as the higher-priority forwarding classes retain enough bandwidth credit. When you configure a higher-priority queue with a significant fraction of the transmission bandwidth, the queue might lock out (or starve) lower priority traffic.

Strict-high priority queuing works differently on different platforms. For information about strict-high priority queuing on J Series Services Routers, see the J Series router documentation.

The following sections discuss priority scheduling:

Example: Configuring Priority Scheduling

Configure priority scheduling, as shown in the following example:

  1. Configure a scheduler, be-sched, with medium-low priority.
    [edit class-of-service]
    schedulers {be-sched {priority medium-low;}}
  2. Configure a scheduler map, be-map, that associates be-sched with the best-effort forwarding class.
    [edit class-of-service]
    scheduler-maps {be-map {forwarding-class best-effort scheduler be-sched;}}
  3. Assign be-map to a Gigabit Ethernet interface, ge-0/0/0.
    [edit class-of-service]
    interfaces {ge-0/0/0 {scheduler-map be-map;}}

Configuring Strict-High Priority on M Series and T Series Routers

On M Series Multiservice Edge Routers and T Series Core Routers, you can configure one queue per interface to have strict-high priority, which works the same as high priority, but provides unlimited transmission bandwidth. As long as the queue with strict-high priority has traffic to send, it receives precedence over all other queues, except queues with high priority. Queues with strict-high and high priority take turns transmitting packets until the strict-high queue is empty, the high priority queues are empty, or the high priority queues run out of bandwidth credit. Only when these conditions are met can lower priority queues send traffic.

When you configure a queue to have strict-high priority, you do not need to include the transmit-rate statement in the queue configuration at the [edit class-of-service schedulers scheduler-name] hierarchy level because the transmission rate of a strict-high priority queue is not limited by the WRR configuration. If you do configure a transmission rate on a strict-high priority queue, it does not affect the WRR operation. The transmission rate does, however, affect the calculation of the delay buffer and also serves as a placeholder in the output of commands such as the show interface queue command.

Note: A queue with strict-high priority is assured unlimited transmission bandwidth but is not actually assigned a large delay buffer. Not configuring a transmit-rate or an explicit buffer-size on a strict-high priority queue only ensures that the queue gets assigned a default minimum delay buffer, making it possible, under bursty conditions, to see tail-drops on strict-high priority queues. Assigning a small transmit-rate or an explicit temporal or percentage buffer-size to the queue ensures that the queue has a large enough buffer to hold bursts and protect against tail-drops.

strict-high priority queues might starve low priority queues. The high priority allows you to protect traffic classes from being starved by traffic in a strict-high queue. For example, a network-control queue might require a small bandwidth allocation (say, 5 percent). You can assign high priority to this queue to prevent it from being underserved.

A queue with strict-high priority supersedes bandwidth guarantees for queues with lower priority; therefore, we recommend that you use the strict-high priority to ensure proper ordering of special traffic, such as voice traffic. You can preserve bandwidth guarantees for queues with lower priority by allocating to the queue with strict-high priority only the amount of bandwidth that it generally requires. For example, consider the following allocation of transmission bandwidth:

  • Q0 BE—20 percent, low priority
  • Q1 EF—30 percent, strict-high priority
  • Q2 AF—40 percent, low priority
  • Q3 NC—10 percent, low priority

This bandwidth allocation assumes that, in general, the EF forwarding class requires only 30 percent of an interface’s transmission bandwidth. However, if short bursts of traffic are received on the EF forwarding class, 100 percent of the bandwidth is given to the EF forwarding class because of the strict-high setting.

Modified: 2016-02-24