Table Of Contents
QoS—Hierarchical Queueing Framework (HQF)
Prerequisites for QoS—Hierarchical Queueing Framework (HQF)
Restrictions for QoS—Hierarchical Queueing Framework (HQF)
Information About QoS—Hierarchical Queueing Framework (HQF)
Background of QoS—Hierarchical Queueing Framework (HQF)
Functions of QoS—Hierarchical Queueing Framework (HQF)
Benefits of QoS—Hierarchical Queueing Framework (HQF)
New Functionality in QoS—Hierarchical Queueing Framework (HQF)
Behavioral Changes in QoS—Hierarchical Queueing Framework (HQF)
How to Configure QoS—Hierarchical Queueing Framework (HQF)
Attaching an MQC Policy to a Map Class
Verifying the HQF Configuration
Configuration Examples for QoS—Hierarchical Queueing Framework (HQF)
Configuring QoS—Hierarchical Queueing Framework (HQF): Example
Verifying the HQF Configuration: Example
Feature Information for QoS—Hierarchical Queueing Framework (HQF)
QoS—Hierarchical Queueing Framework (HQF)
First Published: March 16, 2006Last Updated: December 2, 2008The QoS—Hierarchical Queueing Framework (HQF) feature enables you to manage quality of service (QoS) at three different levels—the physical interface level, the logical interface level, and the class level of scheduling for applying QoS queueing and shaping mechanisms by using the modular QoS command-line interface (CLI) (MQC) to provide a granular and flexible overall QoS architecture.
Finding Feature Information
Your software release may not support all the features documented in this module. 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 QoS—Hierarchical Queueing Framework (HQF)" section.
Use Cisco Feature Navigator to find information about platform support and Cisco IOS, Catalyst OS, 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 QoS—Hierarchical Queueing Framework (HQF)
•Restrictions for QoS—Hierarchical Queueing Framework (HQF)
•Information About QoS—Hierarchical Queueing Framework (HQF)
•How to Configure QoS—Hierarchical Queueing Framework (HQF)
•Configuration Examples for QoS—Hierarchical Queueing Framework (HQF)
•Feature Information for QoS—Hierarchical Queueing Framework (HQF)
Prerequisites for QoS—Hierarchical Queueing Framework (HQF)
•Configure MQC in your network.
Restrictions for QoS—Hierarchical Queueing Framework (HQF)
Service policies with queueing features cannot coexist on child and parent interfaces, such as tunnel and physical interfaces, or subinterface and physical interfaces, simultaneously.
Information About QoS—Hierarchical Queueing Framework (HQF)
To use the QoS—HQF feature, you should understand the following concepts:
•Background of QoS—Hierarchical Queueing Framework (HQF)
•Functions of QoS—Hierarchical Queueing Framework (HQF)
•Benefits of QoS—Hierarchical Queueing Framework (HQF)
•New Functionality in QoS—Hierarchical Queueing Framework (HQF)
•Behavioral Changes in QoS—Hierarchical Queueing Framework (HQF)
Background of QoS—Hierarchical Queueing Framework (HQF)
MQC provides the means for you to configure QoS using a generic CLI applicable to all types of interfaces and protocols. MQC builds configurations that depend on HQF for queueing and shaping.
For example, to support Frame Relay, extensions to the HQF mechanism were required so that fragmentation could be provided within the queueing framework. These extensions enable priority queueing (PQ) configurations to be set up to support latency-sensitive traffic.
Functions of QoS—Hierarchical Queueing Framework (HQF)
HQF provides queueing and shaping capabilities. HQF is a logical engine used to support QoS features. The HQF hierarchy is a tree structure that is built using policy maps.
When data passes through an interface using HQF, the data is classified so that it traverses the branches of the tree. Data arrives at the top of the tree and is classified on one of the leaves. Data then traverses down the hierarchy (tree) until it is transmitted out the interface at the root (trunk).
For example, the following configuration builds the hierarchy shown in Figure 1:
policy-map classclass c1bandwidth 14class c2bandwidth 18policy-map map1class class-defaultshape average 64000service-policy classpolicy-map map2class class-defaultshape average 96000map-class frame-relay fr1service-policy output map1map-class frame fr2service-policy output map2interface serial4/1encapsulation frame-relayframe-relay interface-dlci 16class fr1frame-relay interface-dlci 17class fr2Figure 1 HQF Tree Structure
Benefits of QoS—Hierarchical Queueing Framework (HQF)
The QoS—Hierarchical Queueing Framework (HQF) feature provides the following benefits:
•Faster deployment of QoS queueing and shaping in large-scale networks.
•Consistent queueing behavior applied with common MQC CLI across all main Cisco IOS software releases, making implementation of QoS easier and transparent regardless of the Cisco IOS software release being used.
•Common functionality for both distributed and non-distributed implementations, providing consistency of QoS feature behavior across all software-forwarding hardware, thus making implementation of QoS easier and transparent regardless of the platform being used.
•Behavioral consistency across hardware, resulting in accelerated delivery of feature enhancements and new QoS features in different Cisco IOS software releases.
•Multiple levels of packet scheduling.
•Support for integrated class-based shaping and queueing.
•The ability to apply fair queueing and drop policies on a per-class basis.
New Functionality in QoS—Hierarchical Queueing Framework (HQF)
The QoS—Hierarchical Queueing Framework (HQF) feature introduces the following functionality:
Hierarchical Policy with Queueing Features at Every Level
You can apply class-based queueing to any traffic class in the parent or child level of a hierarchical policy and obtain service levels for different sessions or subscribers.
In the example shown below, the traffic belonging to class parent-c2 has more scheduling time than class parent-c1:
policy-map childclass child-c1bandwidth 400class child-c2bandwidth 400policy-map parentclass parent-c1 <------------------bandwidth 1000service-policy childclass parent-c2 <------------------bandwidth 2000service-policy childShaping in an ATM PVC Policy
You can apply class-based shaping within an ATM PVC as shown in the following example:
policy-map p1class c1shape average 1000000class c2shape average 1000000interface atm1/0.1pvc 1/100service-policy output p1policy-map p1class c1shape average 1000000class c2shape average 1000000interface atm1/0.1pvc 1/100service-policy output p1Child Policy in a Priority Class
You can apply a child policy to a class with priority enabled as shown in the following example. The child policy can contain police or set features, but not queueing features.
policy-map p1class c1priority 256service-policy childBehavioral Changes in QoS—Hierarchical Queueing Framework (HQF)
The QoS—Hierarchical Queueing Framework (HQF) feature introduces the following behavioral changes in some QoS features:
Flow-Based Fair-Queueing Support in Class-Default
The fair-queueing behavior for the class-default class is flow-based. This is a change from the weighted fair queueing (WFQ) behavior in previous releases. With flow-based fair queueing, the flow queues in the class-default class are scheduled equally instead of by weight based on the IP Precedence bits.
Default Queueing Implementation for Class-Default
When you do not explicitly configure the class-default class in a policy map, its default queueing behavior is FIFO. You can configure the bandwidth, fair-queue, or service-policy commands in the class-default class to achieve different queueing behaviors.
Class-Default and Bandwidth
The bandwidth assigned to the class-default class is the unused interface bandwidth not consumed by user-defined classes. By default, the class-default class receives a minimum of 1% of the interface bandwidth.
Default Queueing Implementation for Shape Class
When you configure the shape command in a class, the default queueing behavior for the shape queue is FIFO instead of weighted fair queueing (WFQ). You can configure the bandwidth, fair-queue, or service-policy commands in shape class to achieve different queueing behaviors.
Policy Map and Interface Bandwidth
In HQF, a policy map can reserve up to 100 percent of the interface bandwidth. If you do not assign an explicit bandwidth guarantee to the class-default class, you can assign a maximum of 99 percent of the interface bandwidth to user-defined classes and reserve the other 1percent for the class-default class.
Note If you are migrating to Cisco IOS Release 12.4(20)T and the configured policy map allocates 100 percent of the bandwidth to the user-defined classes, an error message appears in the console after booting the HQF image. The message indicates that the allocated bandwidth exceeds the allowable amount, and the service policy is rejected. In HQF, you must reconfigure the policy to account for the minimum 1 percent bandwidth guaranteed for the class-default. Then you can apply a service policy to the interface.
Per-Flow Queue Limit in Fair Queue
In HQF, when you enable fair queuing, the default per-flow queue limit is 1/4 of the class queue limit. If you do not enable the queue limit in a class, the default per-flow queue limit is 16 packets (1/4 of 64).
Over-Subscription Support for Multiple Policies on Logical Interfaces
When you attach a shaping policy to multiple logical interfaces including a subinterface, and the sum of the shape rate exceeds the physical interface bandwidth, congestion at the physical interface results in back pressure to each logical interface policy. This back pressure causes each policy to reduce the output rate down to its fair share of the interface bandwidth.
Here is an example: 10 subinterface policies each shaped to 2 Mbps, physical interface has 10 Mbps bandwidth (2:1 oversubscription), when all 10 subinterfaces are sending at 2 Mbps, each subinterface gets a throughput of 1 Mbps (10 Mbps/10 subinterfaces).
FRF.12 and FRF.9
With HQF implementation, when you enable Frame Relay fragmentation (FRF.12) on an FR PVC or FR main interface, priority class packets are no longer subject to fragmentation. Priority packets, regardless of the packet size, always interleave among data fragments.
When you enable Frame Relay payload compression (FRF.9) on an FR PVC or main interface, priority class packets are no longer compressed. When you enable both FRF.12 and FRF.9, priority class packets are neither fragmented nor compressed.
User-Defined Classes Added to Policy Maps Attached to Logical Interfaces
A policy map may be configured with multiple user-defined classes and may contain a default class, called class-default. Optionally, a policy map may contain just the class-default, as illustrated below:
policy-map parent class class-default service-policy childTypically, at this point, you would attach the policy map to the interface. After the policy map has been attached the interface, the HQF would allow you to add a user-defined class to the policy map.
However, HQF behavior has now changed so that this kind of modification is no longer permitted on a logical interface. If you want to add a user-defined class to a policy map (and that policy map has already been attached to a logical interface), you must first remove the policy map from the logical interface. Then add the user-defined class to the policy map and reattach the policy map to the logical interface.
Note This behavior change applies only to logical interfaces. It does not apply to physical interfaces.
How to Configure QoS—Hierarchical Queueing Framework (HQF)
This section contains the following procedures:
•Configuring a Service Policy (required)
•Attaching an MQC Policy to a Map Class (required)
•Verifying the HQF Configuration (optional)
Configuring a Service Policy
Perform the following task to configure a service policy and attach it to the main interface. This action also installs HQF on the interface.
SUMMARY STEPS
1. enable
2. configure terminal
3. policy-map [type access-control] policy-map-name
4. class [class-name | class-default]
5. shape [average | peak] cir [bc] [be]
6. interface type number
7. encapsulation frame-relay [cisco | ietf]
8. service-policy [type access-control] {input | output} policy-map-name
9. end
DETAILED STEPS
Attaching an MQC Policy to a Map Class
Perform the following task to attach an MQC policy to a map class. This action also enables HQF.
SUMMARY STEPS
1. enable
2. configure terminal
3. map-class frame-relay map-class-name
4. service-policy [type access-control] {input | output} policy-map-name
5. interface type number
6. frame-relay class name
7. frame-relay interface-dlci dlci [cisco | ietf] [voice-cir cir] [ppp virtual-template-name]
8. end
DETAILED STEPS
Verifying the HQF Configuration
Perform the following task to verify that HQF has been installed and enabled on an interface.
Note You can use the following show command in user EXEC or privileged EXEC mode.
SUMMARY STEPS
1. enable
2. show policy-map interface [type access-control] interface-name [vc [vpi/] vci] [dlci dlci]
[input | output]3. exit
DETAILED STEPS
Configuration Examples for QoS—Hierarchical Queueing Framework (HQF)
This section provides configuration examples for the QoS—Hierarchical Queueing Framework (HQF) feature.
•Configuring QoS—Hierarchical Queueing Framework (HQF): Example
•Verifying the HQF Configuration: Example
Configuring QoS—Hierarchical Queueing Framework (HQF): Example
There are two main tasks for configuring this feature:
•Configuring a policy map
•Attaching the policy map to a map class
In the following example, a policy map called shape is configured on serial interface 4/3 and attached in the output direction. Its parameters include a class class-default, a traffic shaping average of 256000 bps, and Frame Relay encapsulation.
Router# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)# policy-map shapeRouter(config-pmap)# class class-defaultRouter(config-pmap-c)# shape average 256000Router(config-pmap-c)# interface serial4/3Router(config-if)# encapsulation frame-relayRouter(config-if)# service-policy output shapeRouter(config-if)# endIn the following example, the policy map called shape is attached to serial interface 4/3 in the output direction and is associated with a map class called shape. There is also a PVC being associated with DLCI 16.
Router# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)# map-class frame-relay shapeRouter(config-map-class)# service-policy output shapeRouter(config-map-class)# interface serial4/3Router(config-if)# frame-relay class shapeRouter(config-if)# frame interface-dlci 16Router(config-fr-dlci)# endVerifying the HQF Configuration: Example
In the following example, shaping is active with HQF installed on serial interface 4/3. All traffic is classified to the class-default queue.
Router# show policy-map interface serial4/3Serial4/3Service-policy output: shapeClass-map: class-default (match-any)2203 packets, 404709 bytes30 second offered rate 74000 bps, drop rate 14000 bpsMatch: anyQueueingqueue limit 64 packets(queue depth/total drops/no-buffer drops) 64/354/0(pkts output/bytes output) 1836/337280shape (average) cir 128000, bc 1000, be 1000target shape rate 128000lower bound cir 0, adapt to fecn 0Service-policy : LLQqueue stats for all priority classes:queue limit 64 packets(queue depth/total drops/no-buffer drops) 0/0/0(pkts output/bytes output) 0/0Class-map: c1 (match-all)0 packets, 0 bytes30 second offered rate 0 bps, drop rate 0 bpsMatch: ip precedence 1Priority: 32 kbps, burst bytes 1500, b/w exceed drops: 0Class-map: class-default (match-any)2190 packets, 404540 bytes30 second offered rate 74000 bps, drop rate 14000 bpsMatch: anyqueue limit 64 packets(queue depth/total drops/no-buffer drops) 63/417/0(pkts output/bytes output) 2094/386300Additional References
The following sections provide references related to the QoS—Hierarchical Queueing Framework (HQF) feature.
Related Documents
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
The following commands are introduced or modified in the feature or features documented in this module. For information about these commands, see the Cisco IOS Quality of Service Solutions Command Reference at http://www.cisco.com/en/US/docs/ios/qos/command/reference/
qos_book.html. For information about all Cisco IOS commands, use the Command Lookup Tool at http://tools.cisco.com/Support/CLILookup or the Cisco IOS Master Command List, All Releases, at http://www.cisco.com/en/US/docs/ios/mcl/allreleasemcl/all_book.html.•bandwidth (policy-map class)
•fair-queue (WFQ)
•max-reserved-bandwidth
•police (two rates)
•queue-limit
•random-detect
•random-detect atm-clp-based
•random-detect cos-based
•random-detect prec-based
•random-detect precedence
•shape-max buffers
•show policy-map
•show policy-map interface
•show queue
•show queueing
Feature Information for QoS—Hierarchical Queueing Framework (HQF)
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, Catalyst OS, and 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 1 lists only the Cisco IOS software release that introduced support for a given feature in a given Cisco IOS software release train. Unless noted otherwise, subsequent releases of that Cisco IOS software release train also support that feature.
Glossary
latency—The delay on a router between the time a device receives a packet and the time that packet is forwarded out the destination port.
MQC—modular quality of service (QoS) command-line interface (CLI). A way to specify a traffic class independently of QoS policies.
policy map—Any defined rule that determines the use of resources within the network. A QoS policy map identifies the traffic class to which it applies and the instructions for one or more actions to take on that traffic.
QoS—quality of service. A measure of performance for a transmission system that reflects its transmission quality and service availability. Quality of service focuses on achieving appropriate network performance for networked applications; it is superior to best effort performance.
CCDE, CCENT, Cisco Eos, Cisco Lumin, Cisco Nexus, Cisco StadiumVision, Cisco TelePresence, Cisco WebEx, the Cisco logo, DCE, and Welcome to the Human Network are trademarks; Changing the Way We Work, Live, Play, and Learn and Cisco Store are service marks; and Access Registrar, Aironet, AsyncOS, Bringing the Meeting To You, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, CCVP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Collaboration Without Limitation, EtherFast, EtherSwitch, Event Center, Fast Step, Follow Me Browsing, FormShare, GigaDrive, HomeLink, Internet Quotient, IOS, iPhone, iQuick Study, IronPort, the IronPort logo, LightStream, Linksys, MediaTone, MeetingPlace, MeetingPlace Chime Sound, MGX, Networkers, Networking Academy, Network Registrar, PCNow, PIX, PowerPanels, ProConnect, ScriptShare, SenderBase, SMARTnet, Spectrum Expert, StackWise, The Fastest Way to Increase Your Internet Quotient, TransPath, WebEx, and the WebEx logo 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. (0809R)
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, 2008 Cisco Systems, Inc. All rights reserved.