Chapter 8
Prioritizing Services
Bandwidth Starvation
In Cisco IOS Release 12.3(7)XI and later releases, to prevent the priority queue from starving other
queues, specify a guaranteed bandwidth using the police command.
Note
In Cisco IOS Release 12.0(25)S and Release 12.3(7)XI, and later releases, the priority command no
longer allows you to specify a priority rate in kbps or as a percentage of the available bandwidth.
In Cisco IOS Release 12.3(7)XI and later releases, the router allocates the bandwidth you specify in the
police command to the priority queue before it allocates bandwidth to the other queues on the link. As
a result, the amount of bandwidth allocated to the other queues is based on the bandwidth remaining after
the priority queue receives its bandwidth allocation. In a policy map, if you configure a traffic class as a
priority queue and you specify a guaranteed bandwidth, you must use the bandwidth remaining
command to configure bandwidth for other traffic classes in the policy map.
Multi-Level Priority Queues
The Multi-Level Priority Queues (MPQ) feature allows you to configure multiple priority queues for
multiple traffic classes by specifying a different priority level for each of the traffic classes in a single
service policy map. You can configure multiple service policy maps per router.
Previously, Cisco IOS-based routers could have only one strict priority queue per policy map for all
delay-sensitive traffic—the router associated all priority traffic with this one single priority queue.
However, having only one priority queue can cause significant delay in delivering traffic, especially if
the router sends high priority traffic (for example, voice) behind low priority traffic (for example, video).
Using class-based weighted fair queuing (CBWFQ) to reduce delay by heavily weighting one queue can
affect the granularity of bandwidth allocations to the other queues. The MPQ feature addresses these
issues and improves latency.
The priority command is used to specify that a class of traffic has latency requirements with respect to
other classes. For multiple priority queues, you can use the priority level command to configure a level
of priority service on a class in a policy map. Currently, the router supports two priority levels:
level 1 (high) and level 2 (low). The router places traffic with a high priority level on the outbound link
ahead of traffic with a low priority level. High priority packets, therefore, are not delayed behind low
priority packets.
The router associates a single priority queue with all of the traffic enabled with the same priority level
and services the high level priority queues until empty before servicing the next level priority queues and
non-priority queues. While the router services a queue, the service rate is as fast as possible and is
constrained only by the rate of the underlying link or parent node in a hierarchy. If a rate is configured
and the router determines that a traffic stream has exceeded the configured rate, the router drops the
exceeding packets during periods of congestion. If the link is currently not congested, the router places
the exceeding packets onto the outbound link.
When configuring MPQ on different traffic classes in a policy map, you must specify different priority
levels for the traffic classes. For example, configure one traffic class to have priority level 2 and another
class to have level 1.
If high priority traffic is not policed appropriately, bandwidth starvation of low priority traffic can occur.
Therefore, though not required, we recommend that you configure a policer for high priority traffic using
the police command. If you configure the police command for priority queues, the traffic rate is policed
to the police rate for each of the priority queues.
OL-7433-09
Cisco 10000 Series Router Quality of Service Configuration Guide
Multi-Level Priority Queues
8-3