Table Of 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
Configuring Multi-Level Priority Queues in a Policy Map
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
Multi-Level Priority Queues
First Published: November, 2006The 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.
History for the Multi-Level Priority Queue Feature
Release
Modification
12.2(31)SB2
This feature was introduced and implemented on the Cisco 10000 series router for the PRE3.
Finding Support Information for Platforms and Cisco IOS Software Images
Use Cisco Feature Navigator to find information about platform support and Cisco IOS software image support. Access Cisco Feature Navigator at http://www.cisco.com/go/fn. You must have an account on Cisco.com. If you do not have an account or have forgotten your username or password, click Cancel at the login dialog box and follow the instructions that appear.
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
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 P1class class-defaultpriority level 1•You cannot configure the bandwidth command and multi-level priority queuing on the same class. For example, the router rejects the following configuration:
policy-map P1class C1priority level 1bandwidth 200•You cannot configure the shape command and multi-level priority queuing on the same class. For example, the router rejects the following configuration:
policy-map P1class C1priority level 1shape average 56000•To convert a one-level (flat) service policy with multiple priority queuing configured to a hierarchical multi-level priority queuing 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
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.
You cannot configure the priority command and the priority level command on different classes in the same policy map.
How to Configure Multi-Level Priority Queues
To configure Multi-Level Priority Queues (MPQ), perform the following configuration 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
Use the following procedure to configure MPQ in a policy map.
SUMMARY STEPS
1. enable
2. configure terminal
3. policy-map policy-name
4. class class-name
5. priority level level
6. (Optional) police [cir] bps [bc] burst-normal [pir pir] [be] burst-excess [conform-action action] [exceed-action action] [violate-action action]
7. (Optional) police [cir] percent percent [bc] normal-burst-in-msec [pir pir] [be] excess-burst-in-msec [conform-action action] [exceed-action action] [violate-action action]
DETAILED STEPS
Verifying Multi-Level Priority Queues
To verify the configuration of multi-level priority queues and to display statistical information for each priority level, enter the show policy-map interface command in privileged EXEC mode.
For more information, see the "Configuration Examples for Multi-Level Priority Queues" section.
Configuration Examples for Multi-Level Priority Queues
This section provides the following configuration 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.
enableconfig terminalpolicy-map Businessclass Bronzepriority level 2police 1000exitclass Goldpriority level 1police percent 30
Note Although a policer is not required, we recommend that you 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:
policy-map Map1class Bronzepriority level 1exitclass Goldpriority rate 1000You 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(config)# policy-map Map1Router(config-pmap)# class BronzeRouter(config-pmap-c)# priority level 1Router(config-pmap-c)# police percent 30Router(config-pmap-c)# exitRouter(config-pmap)# class GoldRouter(config-pmap-c)# priority level 1Router(config-pmap-c)# police 10000Verifying Multi-Level Priority Queues: Example
The following example shows sample output from the show policy-map interface command.
Router# show policy-map interfaceSerial2/1/0Service-policy output: P1Queue 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 bpsMatch: ip precedence 2Priority: 0 kbps, burst bytes 1500, b/w exceed drops: 0Priority Level 2:0 packets, 0 bytesAdditional References
The following sections provide references related to Multi-Level Priority Queues.
Related Documents
Related Topic Document TitleBandwidth and priority queues
Comparing the Bandwidth and Priority Commands of a QoS Service Policy
Bandwidth starvation
Cisco 10000 Series Router Quality of Service Configuration Guide
Prioritizing Services > Low-Latency Priority Queuing > Bandwidth Starvation
Congestion management
Priority queues
Standards
Standard TitleNo new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.
—
MIBs
RFCs
RFC TitleNo new or modified RFCs are supported by this feature, and support for existing RFCs has not been modified by this feature.
—
Technical Assistance
Command Reference
This section documents new and modified commands only.
priority level
To configure multiple priority queues, use the priority level command in policy-map class configuration mode. To remove a previously specified priority level for a class, use the no form of this command.
priority level level
no priority level level
Syntax Description
Defaults
The priority level has a default level of 1.
Command Modes
Policy-map class configuration
Command History
Release Modification12.2(31)SB2
This command was introduced to provide multiple levels of strict priority queuing and implemented on the Cisco 10000 series router for the PRE3.
Usage Guidelines
The bandwidth and priority level commands cannot be used in the same class, within the same policy map. These commands can be used in the same policy map, however.
The shape and priority level commands cannot be used in the same class, within the same policy map. These commands can be used in the same policy map, however,
Within a policy map, you can give one or more classes priority status. 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.
You cannot specify the same priority level for two different classes in the same policy map.
You cannot specify the priority command and the priority level command for two different classes in the same policy map. For example, you cannot specify the priority bandwidth-kbps or priority percent percentage command and the priority level command for different classes.
When the priority level command is configured with a specific level of priority service, the queue-limit and random-detect commands can be used if only a single class at that level of priority is configured.
You cannot configure the default queue as a priority queue at any priority level.
Cisco 10000 Series Router Usage Guidelines
The Cisco 10000 series router supports two levels of priority service: level 1 (high) and level 2 (low). If you do not specify a priority level, the router uses the default level of 1. Level 1 specifies that low latency behavior must be given to the traffic class. The high-level queues are serviced until empty before the next level queues and non-priority queues.
Examples
The following example shows how to configure multi-level priority queues. In the example, the traffic class named Customer1 is given high priority (level 1) and the class named Customer2 is given level 2 priority. To prevent Customer2 traffic from becoming starved of bandwidth, Customer1 traffic is policed at 30 percent of the available bandwidth.
Router> enable
Router# config terminal
Router(config)# policy-map Business
Router(config-pmap)# class Customer1
Router(config-pmap-c)# priority level 1
Router(config-pmap-c)# police 30
Router(config-pmap-c)# exit
Router(config-pmap)# class Customer2
Router(config-pmap-c)# priority level 2
Related Commands
show policy-map interface
To display the packet statistics of all classes and all priority levels configured for all service policies either on the specified interface or subinterface or on a specific permanent virtual circuit (PVC) on the interface, use the show policy-map interface command in privileged EXEC mode.
show policy-map interface [type access-control] interface-name [vc [vpi/] vci] [dlci dlci]
[input | output]ATM Shared Port Adapter
show policy-map interface atm slot/subslot/port[.subinterface]
Syntax Description
Defaults
The absence of both the forward slash (/) and a vpi value defaults the vpi value to 0. If this value is omitted, information for all virtual circuits (VCs) on the specified ATM interface or subinterface is displayed.
ATM Shared Port Adapter
When used with the ATM shared port adapter, this command has no default behavior or values.
Command Modes
Privileged EXEC
ATM Shared Port Adapter
When used with the ATM shared port adapter, EXEC or privileged EXEC.
Command History
Usage Guidelines
The show policy-map interface command displays the packet statistics for classes and priority levels on the specified interface or the specified PVC only if a service policy has been attached to the interface or the PVC. The command output includes bandwidth-remaining ratios configured on traffic classes.
You can use the interface-name argument to display output for a PVC only for enhanced ATM port adapters (for example, the PA-A3) that support per-VC queueing.
The counters displayed after the show policy-map interface command is entered are updated only if congestion is present on the interface.
The show policy-map interface command displays policy information about Frame Relay PVCs only if Frame Relay Traffic Shaping (FRTS) is enabled on the interface.
The show policy-map interface command displays ECN marking information only if ECN is enabled on the interface.
To determine if shaping is active with the hierarchical queuing framework (HQF), check the queue depth field of the "(queue depth/total drops/no-buffer drops)" line in the show policy-map interface command output.
Examples
Example of Multiple Priority Queues on Serial Interface
The following sample output from the show policy-map interface command shows the types of statistical information that displays when multiple priority queues are configured. Depending upon the interface in use and the options enabled, the output you see may vary slightly from the output shown below.
Router# show policy-map interfaceSerial2/1/0Service-policy output: P1Queue 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 bpsMatch: ip precedence 2Priority: 0 kbps, burst bytes 1500, b/w exceed drops: 0Priority Level 4:0 packets, 0 bytesExample of Bandwidth-Remaining Ratios
The following sample output from the show policy-map interface command indicates that bandwidth-remaining ratios are configured for class queues. As shown in the example, the classes precedence_0, precedence_1, and precedence_2 have bandwidth-remaining ratios of 20, 40, and 60, respectively.
Router# show policy-map interface GigabitEthernet1/0/0.10Service-policy output: vlan10_policyClass-map: class-default (match-any)0 packets, 0 bytes30 second offered rate 0 bps, drop rate 0 bpsMatch: any0 packets, 0 bytes30 second rate 0 bpsQueueingqueue limit 250 packets(queue depth/total drops/no-buffer drops) 0/0/0(pkts output/bytes output) 0/0shape (average) cir 1000000, bc 4000, be 4000target shape rate 1000000bandwidth remaining ratio 10
Service-policy : child_policyClass-map: precedence_0 (match-all)0 packets, 0 bytes30 second offered rate 0 bps, drop rate 0 bpsMatch: ip precedence 0Queueingqueue limit 62 packets(queue depth/total drops/no-buffer drops) 0/0/0(pkts output/bytes output) 0/0shape (average) cir 500000, bc 2000, be 2000target shape rate 500000bandwidth remaining ratio 20Class-map: precedence_1 (match-all)0 packets, 0 bytes30 second offered rate 0 bps, drop rate 0 bpsMatch: ip precedence 1Queueingqueue limit 62 packets(queue depth/total drops/no-buffer drops) 0/0/0(pkts output/bytes output) 0/0shape (average) cir 500000, bc 2000, be 2000target shape rate 500000bandwidth remaining ratio 40Class-map: precedence_2 (match-all)0 packets, 0 bytes30 second offered rate 0 bps, drop rate 0 bpsMatch: ip precedence 2Queueingqueue limit 62 packets(queue depth/total drops/no-buffer drops) 0/0/0(pkts output/bytes output) 0/0shape (average) cir 500000, bc 2000, be 2000target shape rate 500000bandwidth remaining ratio 60Class-map: class-default (match-any)0 packets, 0 bytes30 second offered rate 0 bps, drop rate 0 bpsMatch: any0 packets, 0 bytes30 second rate 0 bpsqueue limit 62 packets(queue depth/total drops/no-buffer drops) 0/0/0(pkts output/bytes output) 0/0Related Commands
CCVP, the Cisco Logo, and the Cisco Square Bridge logo are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn is a service mark of Cisco Systems, Inc.; and Access Registrar, Aironet, BPX, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Enterprise/Solver, EtherChannel, EtherFast, EtherSwitch, Fast Step, Follow Me Browsing, FormShare, GigaDrive, GigaStack, HomeLink, Internet Quotient, IOS, IP/TV, iQ Expertise, the iQ logo, iQ Net Readiness Scorecard, iQuick Study, LightStream, Linksys, MeetingPlace, MGX, Networking Academy, Network Registrar, Packet, PIX, ProConnect, RateMUX, ScriptShare, SlideCast, SMARTnet, StackWise, The Fastest Way to Increase Your Internet Quotient, and TransPath are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries.
All other trademarks mentioned in this document or Website are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0609R)
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2006 Cisco Systems, Inc. All rights reserved.