Cisco IOS XE Quality of Service Solutions Configuration Guide, Release 2
Multi-Level Priority Queues

Table Of Contents

Multi-Level Priority Queues

Finding Feature Information

Contents

Prerequisites for Multi-Level Priority Queues

Restrictions for Multi-Level Priority Queues

Information About Multi-Level Priority Queues

Benefits of Multi-Level Priority Queues

Multi-Level Priority Queues Functionality

Traffic Policing and Multi-Level Priority Queues

How to Configure Multi-Level Priority Queues

Configuring Multi-Level Priority Queues in a Policy Map

Prerequisites

Verifying Multi-Level Priority Queues

Configuration Examples for Multi-Level Priority Queues

Configuring Multi-Level Priority Queues: Example

Unacceptable MPQ Configurations: Examples

Verifying Multi-Level Priority Queues: Example

Additional References

Related Documents

Standards

MIBs

RFCs

Technical Assistance

Feature Information for Multi-Level Priority Queues


Multi-Level Priority Queues


First Published: December 4, 2006
Last Updated: March 2, 2009

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. Having multiple priority queues enables the router to place delay-sensitive traffic (for example, voice) on the outbound link before delay-insensitive traffic. As a result, high-priority traffic receives the lowest latency possible on the router.

Finding Feature Information

For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the "Feature Information for Multi-Level Priority Queues" section.

Use Cisco Feature Navigator to find information about platform support and Cisco IOS XE Software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.

Contents

Prerequisites for Multi-Level Priority Queues

Restrictions for Multi-Level Priority Queues

Information About Multi-Level Priority Queues

How to Configure Multi-Level Priority Queues

Configuration Examples for Multi-Level Priority Queues

Additional References

Feature Information for Multi-Level Priority Queues

Prerequisites for Multi-Level Priority Queues

You must configure traffic classes using the class-map command.

Restrictions for Multi-Level Priority Queues

You cannot configure both the priority command and the priority level command for two different classes in the same policy map.

You cannot specify the same priority level for two different classes in the same policy map.

You cannot configure the default queue as a priority queue at any level. For example, the router rejects the following configuration:

policy-map P1
 class class-default
  priority level 1

You cannot configure the bandwidth command and multi-level priority queueing on the same class. For example, the router rejects the following configuration:

policy-map P1
 class C1
  priority level 1
  bandwidth 200

You cannot configure the shape command and multi-level priority queueing on the same class. For example, the router rejects the following configuration:

policy-map P1
 class C1
  priority level 1
  shape average 56000

To convert a one-level (flat) service policy with multiple priority queueing configured to a hierarchical multi-level priority queueing service policy, you must first detach the flat service policy from the interface using the no service-policy command and then add a child policy map to it.

Information About Multi-Level Priority Queues

To configure multi-level priority queues, you should understand the following concepts:

Benefits of Multi-Level Priority Queues

Multi-Level Priority Queues Functionality

Traffic Policing and Multi-Level Priority Queues

Benefits of 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, routers based on Cisco IOS XE Software 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 queueing (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.

Multi-Level Priority Queues Functionality

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 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.

You cannot configure the priority command and the priority level command on different classes in the same policy map.

Traffic Policing and Multi-Level Priority Queues

Bandwidth guarantees can be given to other classes only if traffic policing is enabled on the priority queue.

Using the priority and police commands, multi-level priority queues can be configured to police traffic in one of the following ways:

Conditional traffic policing, as illustrated below:

policy-map my_policy
  class voice
    priority 400000   <<< Priority queue conditionally policed to 400M
  class gold
    bandwidth 400000 <<<< 400M min guaranteed to class gold

With conditional traffic policing on the queue, you run the risk of sudden degredation in priority service when an interface becomes congested. You can go from an instance of a priority class using the entire link to suddenly traffic being policed to configured value. You need to know the available bandwidth and use some form of admission control to ensure your offered loads do not exceed the available bandwidth.


Note With the conditional policing, traffic policing does not engage unless the interface is congested.


Unconditional traffic policing, as illustrated below:

policy-map my_policy
  class voice
    priority           <<< Indicates priority scheduling
    police 400000000   <<< Traffic policed to 400M
  class gold
    bandwidth 400000  <<<400M min guaranteed to class gold

The priority class is configured with an "always on" (unconditional) policer. The priority class is always policed to the configured value regardless of whether the interface is congested.

The advantage of an unconditional policer is that you always know how much priority traffic will be offered to the downstream devices, thus making your bandwidth planning much simpler.

This is the recommended choice.

Absolute priority queue (no traffic policing)

If traffic policing is not configured, the priority traffic may consume the entire interface bandwidth.

How to Configure Multi-Level Priority Queues

To configure the Multi-Level Priority Queues (MPQ) feature, perform the following tasks:

Configuring Multi-Level Priority Queues in a Policy Map (required)

Verifying Multi-Level Priority Queues (optional)

Configuring Multi-Level Priority Queues in a Policy Map

To configure MPQ in a policy map, complete the following steps.

Prerequisites

The traffic classes, class maps, and policy maps must exist. To create traffic classes, class maps, and policy maps, use the Modular Quality of Service (QoS) Command-Line Interface (CLI) (MQC). For information about using the MQC, see the "Applying QoS Features Using the MQC" module.

SUMMARY STEPS

1. enable

2. configure terminal

3. policy-map policy-name

4. class class-name

5. priority level level

6. police cir bps

or

police cir percent percent

7. end

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

policy-map policy-name

Example:

Router(config)# policy-map Premium

Creates or modifies a policy map and enters policy-map configuration mode.

Enter the name of the policy map.

Step 4 

class class-name

Example:

Router(config-pmap)# class business

Specifies a traffic class and enters policy-map class configuration mode.

Enter the name of a previously configured traffic class.

Step 5 

priority level level

Example:

Router(config-pmap-c)# priority level 2

Assigns priority to a traffic class at the priority level specified.

Enter the level of priority assigned to the priority class. Valid values are 1 (high priority) and 2 (low priority). The default is 1.

Note Do not specify the same priority level for two different classes in the same policy map.

Step 6 

police cir bps 
Example:

Router(config-pmap-c)# police cir 8000


(Optional) Configures traffic policing based on a bits per second (bps) rate.

Enter the cir keyword and a value for the bps argument. Note the following:

cir is the committed information rate and is based on the interface shape rate. This keyword indicates an average rate at which the policer meters traffic.

bps specifies the average rate in bits per second (bps). Valid values are from 8000 to 2488320000 bps.

 

or

 

police cir percent percent

Example:

Router(config-pmap-c)# police cir percent 20


(Optional) Configures traffic policing based on a percentage of bandwidth available on the interface.

Enter the cir keyword, the percent keyword, and a value for the percent argument. Note the following:

cir is the committed information rate and is based on the interface shape rate. Indicates an average rate at which the policer meters traffic.

percent percent indicates to use the percentage of available bandwidth specified in percent to calculate the CIR. Valid values are from 1 to 100.

Step 7 

end

Example:

Router(config-pmap-c)# end

(Optional) Exits policy-map class mode.

Verifying Multi-Level Priority Queues

To verify the configuration of multi-level priority queues and to display statistical information for each priority level, complete the following steps.

SUMMARY STEPS

1. enable

2. show policy-map interface type number

3. exit

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

show policy-map interface type number

Example:

Router# show policy-map interface serial4/0/0

Displays the packet statistics of all classes that are configured for all service policies either on the specified interface or subinterface or on a specific PVC on the interface.

Enter the interface type and number.

Step 3 

exit

Example:

Router# exit

(Optional) Exits privileged EXEC mode.

Configuration Examples for Multi-Level Priority Queues

This section provides the following examples:

Configuring Multi-Level Priority Queues: Example

Unacceptable MPQ Configurations: Examples

Verifying Multi-Level Priority Queues: Example

Configuring Multi-Level Priority Queues: Example

The following example shows how to configure multiple priority queues. The policy map named Business has two traffic classes: Bronze and Gold. Bronze traffic has a level 2 (low) priority, while Gold traffic has level 1 (high) priority. To prevent bandwidth starvation of Bronze traffic, the Gold traffic is policed at 30 percent of the interface bandwidth.

Router> enable
Router# configure terminal
Router(config)# policy-map Business
Router(config-pmap)# class Bronze
Router(config-pmap-c)# priority level 2
Router(config-pmap-c)# police cir 1000
Router(config-pmap-c)# exit
Router(config-pmap)# class Gold
Router(config-pmap-c)# priority level 1
Router(config-pmap-c)# police cir percent 30
Router(config-pmap-c)# end

Note Although a policer is not required, configure policing for priority traffic to prevent bandwidth starvation of low priority traffic. When policing is configured, the traffic rate is policed to the police rate for each of the priority queues.


Unacceptable MPQ Configurations: Examples

You cannot specify both the priority command and the priority level command for two different classes in the same policy map. For example, the router does not accept the following configuration:

Router> enable
Router# configure terminal
Router(config)# policy-map Map1
Router(config-pmap)# class Bronze
Router(config-pmap-c)# priority level 1
Router(config-pmap-c)# exit
Router(config-pmap)# class Gold
Router(config-pmap-c)# priority rate 1000
Router(config-pmap-c)# end

You cannot specify the same priority level for two different classes in the same policy map. For example, the router does not accept the following configuration:

Router> enable
Router# configure terminal
Router(config)# policy-map Map1
Router(config-pmap)# class Bronze
Router(config-pmap-c)# priority level 1
Router(config-pmap-c)# police cir percent 30
Router(config-pmap-c)# exit
Router(config-pmap)# class Gold
Router(config-pmap-c)# priority level 1
Router(config-pmap-c)# police cir 10000
Router(config-pmap-c)# end

Verifying Multi-Level Priority Queues: Example

The following is partial sample output from the show policy-map interface command.

Router# show policy-map interface serial2/1/0

Serial2/1/0
Service-policy output: P1
Queue statistics for all priority classes:
.
.
.
Class-map: Gold (match-all)
0 packets, 0 bytes				/*Updated for each priority level configured.*/
5 minute offered rate 0 bps, drop rate 0 bps
Match: ip precedence 2
Priority: 0 kbps, burst bytes 1500, b/w exceed drops: 0
Priority Level 2:
0 packets, 0 bytes

Additional References

The following sections provide references related to multi-level priority queues.

Related Documents

Related Topic
Document Title

QoS commands: complete command syntax, command modes, command history, defaults, usage guidelines, and examples

Cisco IOS Quality of Service Solutions Command Reference

Priority queues

"Applying QoS Features Using the MQC" module

Creating classes, class maps, and policy maps

"Applying QoS Features Using the MQC" module


Standards

Standard
Title

No new or modified standards are supported, and support for existing standards has not been modified.


MIBs

MIB
MIBs Link

No new or modified MIBs are supported, and support for existing MIBs has not been modified.

To locate and download MIBs for selected platforms, Cisco IOS XE Software releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs


RFCs

RFC
Title

No new or modified RFCs are supported, and support for existing RFCs has not been modified.


Technical Assistance

Description
Link

The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

http://www.cisco.com/techsupport


Feature Information for Multi-Level Priority Queues

Table 1 lists the release history for this feature.

Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which Cisco IOS XE Software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.


Note Table 1lists only the Cisco IOS XE Software release that introduced support for a given feature in a given Cisco IOS XE Software release train. Unless noted otherwise, subsequent releases of that Cisco IOS XE Software release train also support that feature.


Table 1 Feature Information for Multi-Level Priority Queues 

Feature Name
Releases
Feature Information

Multi-Level Priority Queues

Cisco IOS XE 2.1

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. Having multiple priority queues enables the router to place delay-sensitive traffic (for example, voice) on the outbound link before delay-insensitive traffic. As a result, high-priority traffic receives the lowest latency possible on the router.

This feature was implemented on the Cisco ASR 1000 Series Routers.

The following commands were introduced or modified: priority level, show policy-map interface.