Configuring Weighted Fair Queueing
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contents
Configuring Weighted Fair QueueingLast Updated: September 02, 2011
Feature History
This module describes the tasks for configuring flow-based weighted fair queueing (WFQ), distributed WFQ (DWFQ), and class-based WFQ (CBWFQ), and distributed class-based WFQ (DCBWFQ) and the related features described in the following section, which provide strict priority queueing (PQ) within WFQ or CBWFQ:
Finding Feature InformationYour 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 Table at the end of this document. Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required. Flow-Based Weighted Fair Queueing Configuration Task ListWFQ provides traffic priority management that automatically sorts among individual traffic streams without requiring that you first define access lists. WFQ can also manage duplex data streams such as those between pairs of applications, and simplex data streams such as voice or video. There are two categories of WFQ sessions: high bandwidth and low bandwidth. Low-bandwidth traffic has effective priority over high-bandwidth traffic, and high-bandwidth traffic shares the transmission service proportionally according to assigned weights. When WFQ is enabled for an interface, new messages for high-bandwidth traffic streams are discarded after the configured or default congestive messages threshold has been met. However, low-bandwidth conversations, which include control message conversations, continue to enqueue data. As a result, the fair queue may occasionally contain more messages than its configured threshold number specifies. With standard WFQ, packets are classified by flow. Packets with the same source IP address, destination IP address, source TCP or User Datagram Protocol (UDP) port, or destination TCP or UDP port belong to the same flow. WFQ allocates an equal share of the bandwidth to each flow. Flow-based WFQ is also called fair queueing because all flows are equally weighted. The Cisco IOS software provides two forms of flow-based WFQ:
Flow-based WFQ uses a traffic data stream discrimination registry service to determine to which traffic stream a message belongs. Refer to the table accompanying the description of the fair-queue (WFQ) command in the Cisco IOS Quality of Service Solutions Command Reference for the attributes of a message that are used to classify traffic into data streams. Defaults are provided for the congestion threshold after which messages for high-bandwidth conversations are dropped, and for the number of dynamic and reservable queues; however, you can fine-tune your network operation by changing these defaults. Refer to the tables accompanying the description of the fair-queue (WFQ) command in the Cisco IOS Quality of Service Solutions Command Reference for the default number of dynamic queues that WFQ and CBWFQ use when they are enabled on an interface or ATM VC. These values do not apply for DWFQ. If you enable flow-based DWFQ and then enable class-based DWFQ (either QoS-group based or ToS-based), class-based DWFQ will replace flow-based DWFQ. If you enable class-based DWFQ and then want to switch to flow-based DWFQ, you must disable class-based DWFQ using the no fair-queue class-based command before enabling flow-based DWFQ. If you enable one type of class-based DWFQ and then enable the other type, the second type will replace the first. DWFQ runs only on Cisco 7000 series routers with an RSP-based RSP7000 interface processor or Cisco 7500 series routers with a VIP-based VIP2-40 or greater interface processor. (A VIP2-50 interface processor is strongly recommended when the aggregate line rate of the port adapters on the VIP is greater than DS3. A VIP2-50 interface processor is required for OC-3 rates.) DWFQ can be configured on interfaces but not subinterfaces. It is not supported on Fast EtherChannel, tunnel, or other logical or virtual interfaces such as MLP. For flow-based DWFQ, packets are classified by flow. Packets with the same source IP address, destination IP address, source TCP or UDP port, destination TCP or UDP port, and protocol belong to the same flow. To configure flow-based WFQ, perform the tasks described in the following sections. Flow-based WFQ is supported on unavailable bit rate (UBR), variable bit rate (VBR), and available bit rate (ABR) ATM connections. Monitoring Fair Queueing
Distributed Weighted Fair Queueing Configuration Task ListTo configure DWFQ, perform one of the mutually exclusive tasks described in the following sections:
Configuring Flow-Based DWFQSUMMARY STEPS
DETAILED STEPS Configuring QoS-Group-Based DWFQSUMMARY STEPS
DETAILED STEPS
Configuring Type of Service-Based DWFQSUMMARY STEPS
DETAILED STEPS
Class-Based Weighted Fair Queueing Configuration Task ListCBWFQ is supported on VBR and ABR ATM connections. It is not supported on UBR connections.
Defining Class MapsSUMMARY STEPS
DETAILED STEPS
Configuring Class Policy in the Policy MapTo configure a policy map and create class policies that make up the service policy, use the policy-map command to specify the policy map name, then use one or more of the following commands to configure policy for a standard class or the default class:
For each class that you define, you can use one or more of the listed commands to configure class policy. For example, you might specify bandwidth for one class and both bandwidth and queue limit for another class. The default class of the policy map (commonly known as the class-default class) is the class to which traffic is directed if that traffic does not satisfy the match criteria of other classes whose policy is defined in the policy map. You can configure class policies for as many classes as are defined on the router, up to the maximum of 64. However, the total amount of bandwidth allocated for all classes included in a policy map must not exceed 75 percent of the available bandwidth on the interface. The other 25 percent is used for control and routing traffic. (To override the 75 percent limitation, use the max-reserved bandwidth command.) If not all of the bandwidth is allocated, the remaining bandwidth is proportionally allocated among the classes, based on their configured bandwidth. The class-default class is used to classify traffic that does not fall into one of the defined classes. Once a packet is classified, all of the standard mechanisms that can be used to differentiate service among the classes apply. The class-default class was predefined when you created the policy map, but you must configure it. If no default class is configured, then by default the traffic that does not match any of the configured classes is flow classified and given best-effort treatment. To configure class policies in a policy map, perform the optional tasks described in the following sections. If you do not perform the steps in these sections, the default actions are used.
Configuring Class Policy Using Tail DropSUMMARY STEPS
DETAILED STEPS
Configuring Class Policy Using WRED Packet DropSUMMARY STEPS
DETAILED STEPS
Configuring the Class-Default Class Policy for WFQSUMMARY STEPS
DETAILED STEPS
Attaching the Service Policy and Enabling CBWFQ
Modifying the Bandwidth for an Existing Policy Map ClassSUMMARY STEPS
DETAILED STEPS
Modifying the Queue Limit for an Existing Policy Map ClassSUMMARY STEPS
DETAILED STEPS
Deleting Class Maps From Service Policy MapsSUMMARY STEPS
DETAILED STEPS
Verifying Configuration of Policy Maps and Their Classes
Distributed Class-Based Weighted Fair Queueing Configuration Task ListTo configure DCBWFQ, perform the tasks described in the following sections. Although all the tasks are listed as optional, you must complete the task in either the first or second section. DCBWFQ is configured using user-defined traffic classes and service policies. Traffic classes and service policies are configured using the Modular Quality of Service Command-Line Interface (CLI) feature.
Modifying the Bandwidth for an Existing Traffic ClassSUMMARY STEPS
DETAILED STEPS
Modifying the Queue Limit for an Existing Traffic ClassSUMMARY STEPS
DETAILED STEPS
Monitoring and Maintaining DCBWFQ
IP RTP Priority Configuration Task ListFrame Relay Traffic Shaping (FRTS) and Frame Relay Fragmentation (FRF.12 or higher) must be configured before the Frame Relay IP RTP Priority feature is used. Configuring IP RTP Priority
Frame Relay IP RTP Priority Configuration Task List
Configuring Frame Relay IP RTP Priority
Verifying Frame Relay IP RTP Priority
Frame Relay PVC Interface Priority Configuration Task List
Configuring PVC Priority in a Map ClassSUMMARY STEPS
DETAILED STEPS
Enabling Frame Relay PIPQ and Setting Queue LimitsSUMMARY STEPS
DETAILED STEPS
Assigning a Map Class to a PVCSUMMARY STEPS
DETAILED STEPS
Verifying Frame Relay PIPQ
Monitoring and Maintaining Frame Relay PIPQ
Low Latency Queueing Configuration Task ListMonitoring and Maintaining LLQ
Distributed LLQ Configuration Task List
Configuring a Priority Queue for an Amount of Available BandwidthSUMMARY STEPS
DETAILED STEPS
Configuring a Priority Queue for a Percentage of Available BandwidthSUMMARY STEPS
DETAILED STEPS
Configuring a Transmission Ring Limit on an ATM PVCSUMMARY STEPS
DETAILED STEPS
Configuring a Transmission Ring Limit on an ATM SubinterfaceSUMMARY STEPS
DETAILED STEPS
Monitoring and Maintaining Distributed LLQ
Low Latency Queueing for Frame Relay Configuration Task List
Defining Class MapsSUMMARY STEPS
DETAILED STEPS
Configuring Class Policy in the Policy MapTo configure a policy map and create class policies that make up the service policy, begin with the policy-map command to specify the policy map name. Then use one or more of the following commands to configure the policy for a standard class or the default class:
For each class that you define, you can use one or more of the commands listed to configure the class policy. For example, you might specify bandwidth for one class and both bandwidth and queue limit for another class. The default class of the policy map (commonly known as the class-default class) is the class to which traffic is directed if that traffic does not satisfy the match criteria of the other classes defined in the policy map. The class-default class is used to classify traffic that does not fall into one of the defined classes. Even though the class-default class is predefined when you create the policy map, you still have to configure it. If a default class is not configured, then traffic that does not match any of the configured classes is given best-effort treatment, which means that the network will deliver the traffic if it can, without any assurance of reliability, delay prevention, or throughput. You can configure class policies for as many classes as are defined on the router, up to the maximum of 64. However, the total amount of bandwidth allocated for all classes in a policy map must not exceed the minimum committed information rate (CIR) configured for the VC minus any bandwidth reserved by the frame-relay voice bandwidth and frame-relay ip rtp priority commands. If the minimum CIR is not configured, the bandwidth defaults to one half of the CIR. If all of the bandwidth is not allocated, the remaining bandwidth is allocated proportionally among the classes on the basis of their configured bandwidth. To configure class policies in a policy map, perform the tasks described in the following sections.
Configuring Class Policy for a LLQ Priority QueueSUMMARY STEPS
DETAILED STEPS
Configuring Class Policy Using a Specified Bandwidth and WRED Packet DropSUMMARY STEPS
DETAILED STEPS
Configuring the Class-Default Class PolicySUMMARY STEPS
DETAILED STEPS
Verifying Configuration of Policy Maps and Their Classes
Monitoring and Maintaining LLQ for Frame RelayFor a list of commands that can be used to monitor LLQ for Frame Relay, see the previous section "Verifying Configuration of Policy Maps and Their Classes." Configuring Burst Size in LLQ Configuration Task ListVerifying the LLQ Burst Size
Per-VC Hold Queue Support for ATM Adapters Configuration Task List
Examples DWFQ ConfigurationExample Flow-Based DWFQThe following example enables DWFQ on the HSSI interface 0/0/0: Router(config)# interface Hssi0/0/0 Router(config-if)# description 45Mbps to R2 Router(config-if)# ip address 200.200.14.250 255.255.255.252 Router(config-if)# fair-queue The following is sample output from the show interfaces fair-queue command for this configuration:
Router# show interfaces hssi 0/0/0 fair-queue
Hssi0/0/0 queue size 0
packets output 35, drops 0
WFQ: global queue limit 401, local queue limit 200
Example QoS-Group-Based DWFQThe following example configures QoS-group-based DWFQ. Committed access rate (CAR) policies are used to assign packets with an IP Precedence value of 2 to QoS group 2, and packets with an IP Precedence value of 6 are assigned to QoS group 6. Router(config)# interface Hssi0/0/0 Router(config-if)# ip address 188.1.3.70 255.255.255.0 Router(config-if)# rate-limit output access-group rate-limit 6 155000000 2000000 8000000 conform-action set-qos-transmit 6 exceed-action drop Router(config-if)# rate-limit output access-group rate-limit 2 155000000 2000000 8000000 conform-action set-qos-transmit 2 exceed-action drop Router(config-if)# fair-queue qos-group Router(config-if)# fair-queue qos-group 2 weight 10 Router(config-if)# fair-queue qos-group 2 limit 27 Router(config-if)# fair-queue qos-group 6 weight 30 Router(config-if)# fair-queue qos-group 6 limit 27 ! Router(config)# access-list rate-limit 2 2 Router(config)# access-list rate-limit 6 6 The following sample output shows how to view WFQ statistics using the show interfaces fair-queue command:
Router# show interfaces fair-queue
Hssi0/0/0 queue size 0
packets output 806232, drops 1
WFQ: aggregate queue limit 54, individual queue limit 27
max available buffers 54
Class 0: weight 60 limit 27 qsize 0 packets output 654 drops 0
Class 2: weight 10 limit 27 qsize 0 packets output 402789 drops 0
Class 6: weight 30 limit 27 qsize 0 packets output 402789 drops 1
Example ToS-Based DWFQThe following example configures type of service (ToS)-based DWFQ using the default parameters: Router# configure terminal Router(config)# interface Hssi0/0/0 Router(config-if)# fair-queue tos Router(config-if)# end The following is output of the show running-config command for the HSSI interface 0/0/0. Notice that the router automatically adds the default weights and limits for the ToS classes to the configuration. interface Hssi0/0/0 ip address 188.1.3.70 255.255.255.0 fair-queue tos fair-queue tos 1 weight 20 fair-queue tos 1 limit 27 fair-queue tos 2 weight 30 fair-queue tos 2 limit 27 fair-queue tos 3 weight 40 fair-queue tos 3 limit 27 The following sample output shows how to view DWFQ statistics using the show interfaces fair-queue command:
Router# show interfaces fair-queue
Hssi0/0/0 queue size 0
packets output 1417079, drops 2
WFQ: aggregate queue limit 54, individual queue limit 27
max available buffers 54
Class 0: weight 10 limit 27 qsize 0 packets output 1150 drops 0
Class 1: weight 20 limit 27 qsize 0 packets output 0 drops 0
Class 2: weight 30 limit 27 qsize 0 packets output 775482 drops 1
Class 3: weight 40 limit 27 qsize 0 packets output 0 drops 0
Examples CBWFQ Configuration
Example Class Map ConfigurationIn the following example, ACLs 101 and 102 are created. Next, two class maps are created and their match criteria are defined. For the first map class, called class1, the numbered ACL 101 is used as the match criterion. For the second map class, called class2, the numbered ACL 102 is used as the match criterion. Packets are checked against the contents of these ACLs to determine if they belong to the class. Router(config)# access-list 101 permit udp host 10.10.10.10 host 10.10.10.20 range 16384 20000 Router(config# access-list 102 permit udp host 10.10.10.10 host 10.10.10.20 range 53000 56000 Router(config)# class-map class1 Router(config-cmap)# match access-group 101 Router(config-cmap)# exit Router(config-cmap)# class-map class2 Router(config-cmap)# match access-group 102 Router(config-cmap)# exit Example Policy CreationIn the following example, a policy map called policy1 is defined to contain policy specification for the two classes, class1 and class2. The match criteria for these classes were defined in the previous "Example Class Map Configuration" section. For class1, the policy specifies the bandwidth allocation request and the maximum number of packets that the queue for this class can accumulate. For class2, the policy specifies only the bandwidth allocation request, so the default queue limit of 64 packets is assumed. Router(config)# policy-map policy1 Router(config-pmap)# class class1 Router(config-pmap-c)# bandwidth 3000 Router(config-pmap-c)# queue-limit 30 Router(config-pmap-c)# exit Router(config-pmap)# class class2 Router(config-pmap-c)# bandwidth 2000 Router(config-pmap-c)# exit Example Policy Attachment to InterfacesThe following example shows how to attach an existing policy map. After you define a policy map, you can attach it to one or more interfaces to specify the service policy for those interfaces. Although you can assign the same policy map to multiple interfaces, each interface can have only one policy map attached at the input and one policy map attached at the output. The policy map in this example was defined in the previous section, "Example Policy Creation." Router(config)# interface e1/1 Router(config-if)# service output policy1 Router(config-if)# exit Router(config)# interface fa1/0/0 Router(config-if)# service output policy1 Router(config-if)# exit Example CBWFQ Using WRED Packet DropIn the following example, the class map called class1 is created and defined to use the input FastEthernet interface 0/1 as a match criterion to determine if packets belong to the class. Next, the policy map policy1 is defined to contain policy specification for class1, which is configured for WRED packet drop. Router(config)# class-map class1 Router(config-cmap)# match input-interface FastEthernet0/1 ! Router(config)# policy-map policy1 Router(config-pmap)# class class1 Router(config-pmap-c)# bandwidth 1000 Router(config-pmap-c)# random-detect ! Router(config)# interface serial0/0 Router(config-if)# service-policy output policy1 ! Examples Display Service Policy Map Content
All Classes for a Specified Service Policy MapThe following example displays the contents of the service policy map called pol1:
Router# show policy-map po1
Policy Map po1
Weighted Fair Queueing
Class class1
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class2
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class3
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class4
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class5
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class6
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class7
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class8
Bandwidth 937 (kbps) Max thresh 64 (packets)
All Classes for All Service Policy MapsThe following example displays the contents of all policy maps on the router:
Router# show policy-map
Policy Map poH1
Weighted Fair Queueing
Class class1
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class2
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class3
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class4
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class5
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class6
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class7
Bandwidth 937 (kbps) Max thresh 64 (packets)
Class class8
Bandwidth 937 (kbps) Max thresh 64 (packets)
Policy Map policy2
Weighted Fair Queueing
Class class1
Bandwidth 300 (kbps) Max thresh 64 (packets)
Class class2
Bandwidth 300 (kbps) Max thresh 64 (packets)
Class class3
Bandwidth 300 (kbps) Max thresh 64 (packets)
Class class4
Bandwidth 300 (kbps) Max thresh 64 (packets)
Class class5
Bandwidth 300 (kbps) Max thresh 64 (packets)
Class class6
Bandwidth 300 (kbps) Max thresh 64 (packets)
Specified Class for a Service Policy MapThe following example displays configurations for the class called class7 that belongs to the policy map called po1: Router# show policy-map po1 class class7 Class class7 Bandwidth 937 (kbps) Max Thresh 64 (packets) All Classes for All Service Policy Maps on a Specified InterfaceThe following example displays configurations for classes on the output Ethernet interface 2/0. The numbers shown in parentheses are for use with the Management Information Base (MIB).
Router# show policy-map interface
e2/0
Ethernet2/0
Service-policy output:p1 (1057)
Class-map:c1 (match-all) (1059/2)
19 packets, 1140 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match:ip precedence 0 (1063)
Weighted Fair Queueing
Output Queue:Conversation 265
Bandwidth 10 (%) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map:c2 (match-all) (1067/3)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match:ip precedence 1 (1071)
Weighted Fair Queueing
Output Queue:Conversation 266
Bandwidth 10 (%) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map:class-default (match-any) (1075/0)
8 packets, 2620 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match:any (1079)
Examples Distributed CBWFQ Configuration
Example Traffic Class ConfigurationIn the following example, two traffic classes are created and their match criteria are defined. For the first traffic class, called class1, the numbered ACL 101 is used as the match criterion. For the second traffic class, called class2, the numbered ACL 102 is used as the match criterion. Packets are checked against the contents of these ACLs to determine if they belong to the traffic class. Router(config)# class-map class1 Router(config-cmap)# match access-group 101 Router(config-cmap)# exit Router(config)# class-map class2 Router(config-cmap)# match access-group 102 Router(config-cmap)# exit Example Traffic Policy CreationIn the following example, a traffic policy called policy1 is defined to associate QoS features with the two traffic classes, class1 and class2. The match criteria for these traffic classes were defined in the previous "Example Class Map Configuration" section. For class1, the QoS policies include bandwidth allocation request and maximum packet count limit for the queue reserved for the traffic class. For class2, the policy specifies only a bandwidth allocation request, so the default queue limit of 64 packets is assumed. Router(config)# policy-map policy1 Router(config-pmap)# class class1 Router(config-pmap-c)# bandwidth 3000 Router(config-pmap-c)# queue-limit 30 Router(config-pmap)# exit Router(config-pmap)# class class2 Router(config-pmap-c)# bandwidth 2000 Router(config-pmap)# exit Example Traffic Policy Attachment to an InterfaceThe following example shows how to attach an existing traffic policy to an interface. After you define a traffic policy, you can attach it to one or more interfaces to specify a traffic policy for those interfaces. Although you can assign the same traffic policy to multiple interfaces, each interface can have only one traffic policy attached at the input and one policy map attached at the output at one time. Router(config)# interface fe1/0/0 Router(config-if)# service output policy1 Router(config-if)# exit Examples IP RTP Priority Configuration
Example CBWFQ ConfigurationThe following example first defines a CBWFQ configuration and then reserves a strict priority queue: ! The following commands define a class map: Router(config)# class-map class1 Router(config-cmap)# match access-group 101 Router(config-cmap)# exit ! The following commands create and attach a policy map: Router(config)# policy-map policy1 Router(config-pmap)# class class1 Router(config-pmap-c)# bandwidth 3000 Router(config-pmap-c)# queue-limit 30 Router(config-pmap-c)# random-detect Router(config-pmap-c)# random-detect precedence 0 32 256 100 Router(config-pmap-c)# exit Router(config)# interface Serial1 Router(config-if)# service-policy output policy1 ! The following command reserves a strict priority queue: Router(config-if)# ip rtp priority 16384 16383 40 The queue-limitand random-detectcommands are optional commands for CBWFQ configurations. The queue-limitcommand is used for configuring tail drop limits for a class queue. The random-detectcommand is used for configuring RED drop limits for a class queue, similar to the random-detect command available on an interface. Example Virtual Template ConfigurationThe following example configures a strict priority queue in a virtual template configuration with CBWFQ. Router(config)# multilink virtual-template 1 Router(config)# interface virtual-template 1 Router(config-if)# ip address 172.16.1.1 255.255.255.0 Router(config-if)# no ip directed-broadcast Router(config-if)# ip rtp priority 16384 16383 25 Router(config-if)# service-policy output policy1 Router(config-if)# ppp multilink Router(config-if)# ppp multilink fragment-delay 20 Router(config-if)# ppp multilink interleave Router(config-if)# end Router(config)# interface Serial0/1 Router(config-if)# bandwidth 64 Router(config-if)# ip address 1.1.1.2 255.255.255.0 Router(config-if)# no ip directed-broadcast Router(config-if)# encapsulation ppp Router(config-if)# ppp multilink Router(config-if)# end
Example Multilink Bundle ConfigurationThe following example configures a strict priority queue in a multilink bundle configuration with WFQ. The advantage to using multilink bundles is that you can specify different ip rtp priority parameters on different interfaces. The following commands create multilink bundle 1, which is configured for a maximum ip rtp priority bandwidth of 200 kbps. Router(config)# interface multilink 1 Router(config-if)# ip address 172.17.254.161 255.255.255.248 Router(config-if)# no ip directed-broadcast Router(config-if)# ip rtp priority 16384 16383 200 Router(config-if)# no ip mroute-cache Router(config-if)# fair-queue 64 256 0 Router(config-if)# ppp multilink Router(config-if)# ppp multilink fragment-delay 20 Router(config-if)# ppp multilink interleave The following commands create multilink bundle 2, which is configured for a maximum ip rtp priority bandwidth of 100 kbps: Router(config)# interface multilink 2 Router(config-if)# ip address 172.17.254.162 255.255.255.248 Router(config-if)# no ip directed-broadcast Router(config-if)# ip rtp priority 16384 16383 100 Router(config-if)# no ip mroute-cache Router(config-if)# fair-queue 64 256 0 Router(config-if)# ppp multilink Router(config-if)# ppp multilink fragment-delay 20 Router(config-if)# ppp multilink interleave In the next part of the example, the multilink-group command configures serial interface 2/0 to be part of multilink bundle 1: Router(config)# interface serial 2/0 Router(config-if)# bandwidth 256 Router(config-if)# no ip address Router(config-if)# no ip directed-broadcast Router(config-if)# encapsulation ppp Router(config-if)# no ip mroute-cache Router(config-if)# no fair-queue Router(config-if)# clockrate 256000 Router(config-if)# ppp multilink Router(config-if)# multilink-group 1 Next, serial interface 2/1 is configured to be part of multilink bundle 2. Router(config)# interface serial 2/1 Router(config-if)# bandwidth 128 Router(config-if)# no ip address Router(config-if)# no ip directed-broadcast Router(config-if)# encapsulation ppp Router(config-if)# no ip mroute-cache Router(config-if)# no fair-queue Router(config-if)# clockrate 128000 Router(config-if)# ppp multilink Router(config-if)# multilink-group 2 Example DebugThe following example shows sample output from the debug priority command. In this example, 64 indicates the actual priority queue depth at the time the packet was dropped.
Router# debug priority
*Feb 28 16:46:05.659:WFQ:dropping a packet from the priority queue 64
*Feb 28 16:46:05.671:WFQ:dropping a packet from the priority queue 64
*Feb 28 16:46:05.679:WFQ:dropping a packet from the priority queue 64
*Feb 28 16:46:05.691:WFQ:dropping a packet from the priority queue 64
*Feb 28 16:46:05.699:WFQ:dropping a packet from the priority queue 64
*Feb 28 16:46:05.711:WFQ:dropping a packet from the priority queue 64
*Feb 28 16:46:05.719:WFQ:dropping a packet from the priority queue 64
Examples Frame Relay IP RTP Priority ConfigurationExample Strict Priority Service to Matching RTP PacketsThe following example first configures the Frame Relay map class called voip and then applies the map class to PVC 100 to provide strict priority service to matching RTP packets. In this example, RTP packets on PVC 100 with UDP ports in the range 16384 to 32764 will be matched and given strict priority service. map-class frame-relay voip frame-relay cir 256000 frame-relay bc 2560 frame-relay be 600 frame-relay mincir 256000 no frame-relay adaptive-shaping frame-relay fair-queue frame-relay fragment 250 frame-relay ip rtp priority 16384 16380 210 interface Serial5/0 ip address 10.10.10.10 255.0.0.0 no ip directed-broadcast encapsulation frame-relay no ip mroute-cache load-interval 30 clockrate 1007616 frame-relay traffic-shaping frame-relay interface-dlci 100 class voip frame-relay ip rtp header-compression frame-relay intf-type dce Examples Frame Relay PVC Interface PQ ConfigurationThis section provides configuration examples for Frame Relay PIPQ. This example shows the configuration of four PVCs on serial interface 0. DLCI 100 is assigned high priority, DLCI 200 is assigned medium priority, DLCI 300 is assigned normal priority, and DLCI 400 is assigned low priority. The following commands configure Frame Relay map classes with PVC priority levels: Router(config)# map-class frame-relay HI Router(config-map-class)# frame-relay interface-queue priority high Router(config-map-class)# exit Router(config)# map-class frame-relay MED Router(config-map-class)# frame-relay interface-queue priority medium Router(config-map-class)# exit Router(config)# map-class frame-relay NORM Router(config-map-class)# frame-relay interface-queue priority normal Router(config-map-class)# exit Router(config)# map-class frame-relay LOW Router(config-map-class)# frame-relay interface-queue priority low Router(config-map-class)# exit The following commands enable Frame Relay encapsulation and Frame Relay PIPQ on serial interface 0. The sizes of the priority queues are set at a maximum of 20 packets for the high priority queue, 40 for the medium priority queue, 60 for the normal priority queue, and 80 for the low priority queue. Router(config)# interface Serial0 Router(config-if)# encapsulation frame-relay Router(config-if)# frame-relay interface-queue priority 20 40 60 80 The following commands assign priority to four PVCs by associating the DLCIs with the configured map classes: Router(config-if)# frame-relay interface-dlci 100 Router(config-fr-dlci)# class HI Router(config-fr-dlci)# exit Router(config-if)# frame-relay interface-dlci 200 Router(config-fr-dlci)# class MED Router(config-fr-dlci)# exit Router(config-if)# frame-relay interface-dlci 300 Router(config-fr-dlci)# class NORM Router(config-fr-dlci)# exit Router(config-if)# frame-relay interface-dlci 400 Router(config-fr-dlci)# class LOW Router(config-fr-dlci)# exit Examples LLQ Configuration
Example ATM PVC ConfigurationIn the following example, a strict priority queue with a guaranteed allowed bandwidth of 50 kbps is reserved for traffic that is sent from the source address 10.10.10.10 to the destination address 10.10.10.20, in the range of ports 16384 through 20000 and 53000 through 56000. First, the following commands configure access list 102 to match the desired voice traffic: Router(config)# access-list 102 permit udp host 10.10.10.10 host 10.10.10.20 range 16384 20000 Router(config)# access-list 102 permit udp host 10.10.10.10 host 10.10.10.20 range 53000 56000 Next, the class map voice is defined, and the policy map called policy1 is created; a strict priority queue for the class voice is reserved, a bandwidth of 20 kbps is configured for the class bar, and the default class is configured for WFQ. The service-policy command then attaches the policy map to the PVC interface 0/102 on the subinterface atm1/0.2. Router(config)# class-map voice Router(config-cmap)# match access-group 102 Router(config)# policy-map policy1 Router(config-pmap)# class voice Router(config-pmap-c)# priority 50 Router(config-pmap)# class bar Router(config-pmap-c)# bandwidth 20 Router(config-pmap)# class class-default Router(config-pmap-c)# fair-queue Router(config)# interface atm1/0.2 Router(config-subif)# pvc 0/102 Router(config-subif-vc)# service-policy output policy1 Example Virtual Template ConfigurationThe following example configures a strict priority queue in a virtual template configuration with CBWFQ. Traffic on virtual template 1 that is matched by access list 102 will be directed to the strict priority queue. First, the class map voice is defined, and the policy map called policy1 is created. A strict priority queue (with a guaranteed allowed bandwidth of 50 kbps) is reserved for the class called voice. Router(config)# class-map voice Router(config-cmap)# match access-group 102 Router(config)# policy-map policy1 Router(config-pmap)# class voice Router(config-pmap-c)# priority 50 Next, the service-policy command attaches the policy map called policy1 to virtual template 1. Router(config)# multilink virtual-template 1 Router(config)# interface virtual-template 1 Router(config-if)# ip address 172.16.1.1 255.255.255.0 Router(config-if)# no ip directed-broadcast Router(config-if)# service-policy output policy1 Router(config-if)# ppp multilink Router(config-if)# ppp multilink fragment-delay 20 Router(config-if)# ppp multilink interleave Router(config-if)# end Router(config)# interface serial 2/0 Router(config-if)# bandwidth 256 Router(config-if)# no ip address Router(config-if)# no ip directed-broadcast Router(config-if)# encapsulation ppp Router(config-if)# no fair-queue Router(config-if)# clockrate 256000 Router(config-if)# ppp multilink Example Multilink Bundle ConfigurationThe following example configures a strict priority queue in a multilink bundle configuration with CBWFQ. Traffic on serial interface 2/0 that is matched by access list 102 will be directed to the strict priority queue. The advantage to using multilink bundles is that you can specify different priority parameters on different interfaces. To specify different priority parameters, you would configure two multilink bundles with different parameters. First, the class map voice is defined, and the policy map called policy1 is created. A strict priority queue (with a guaranteed allowed bandwidth of 50 kbps) is reserved for the class called voice. Router(config)# class-map voice Router(config-cmap)# match access-group 102 Router(config)# policy-map policy1 Router(config-pmap)# class voice Router(config-pmap-c)# priority 50 The following commands create multilink bundle 1. The policy map called policy1 is attached to the bundle by the service-policy command. Router(config)# interface multilink 1 Router(config-if)# ip address 172.17.254.161 255.255.255.248 Router(config-if)# no ip directed-broadcast Router(config-if)# no ip mroute-cache Router(config-if)# service-policy output policy1 Router(config-if)# ppp multilink Router(config-if)# ppp multilink fragment-delay 20 Router(config-if)# ppp multilink interleave In the next part of the example, the multilink-group command configures serial interface 2/0 to be part of multilink bundle 1, which effectively directs traffic on serial interface 2/0 that is matched by access list 102 to the strict priority queue: Router(config)# interface serial 2/0 Router(config-if)# bandwidth 256 Router(config-if)# no ip address Router(config-if)# no ip directed-broadcast Router(config-if)# encapsulation ppp Router(config-if)# no fair-queue Router(config-if)# clockrate 256000 Router(config-if)# ppp multilink Router(config-if)# multilink-group 1 Examples Distributed LLQ Configuration
Example Enabling PQ for an Amount of Available Bandwidth on an ATM SubinterfaceThe priority command can be enabled on an ATM subinterface, and that subinterface must have only one enabled ATM PVC. This configuration provides a sufficient amount of ATM PVC support. In the following example, a priority queue with a guaranteed allowed bandwidth of 50 kbps is reserved for traffic that is sent from the source address 10.10.10.10 to the destination address 10.10.10.20, in the range of ports 16384 through 20000 and 53000 through 56000. First, the following commands configure access list 102 to match the desired voice traffic: Router(config)# access-list 102 permit udp host 10.10.10.10 host 10.10.10.20 range 16384 20000 Router(config)# access-list 102 permit udp host 10.10.10.10 host 10.10.10.20 range 53000 56000 Next, the traffic class called voice is defined, and the policy map called policy1 is created; a priority queue for the class voice is reserved with a guaranteed allowed bandwidth of 50 kpbs and an allowable burst size of 60 bytes, a bandwidth of 20 kbps is configured for the class called bar, and the default class is configured for flow-based fair queuing. The service-policy command then attaches the policy map to the PVC interface 0/102 on the subinterface atm1/0. Router(config)# class-map voice Router(config-cmap)# match access-group 102 Router(config)# policy-map policy1 Router(config-pmap)# class voice Router(config-pmap-c)# priority 50 60 Router(config-pmap)# class bar Router(config-pmap-c)# bandwidth 20 Router(config-pmap)# class class-default Router(config-pmap-c)# fair-queue Router(config)# interface atm1/0 Router(config-subif)# pvc 0/102 Router(config-subif)# service-policy output policy1 Example Enabling PQ for a Percentage of Available Bandwidth on an ATM SubinterfaceThe priority percentcommand can be enabled on an ATM subinterface, and that subinterface must have only one enabled ATM PVC. This configuration provides a sufficient amount of ATM PVC support. In the following example, a priority queue with a guaranteed allowed bandwidth percentage of 15 percent is reserved for traffic that is sent from the source address 10.10.10.10 to the destination address 10.10.10.20, in the range of ports 16384 through 20000 and 53000 through 56000. First, the following commands configure access list 102 to match the desired voice traffic: Router(config)# access-list 102 permit udp host 10.10.10.10 host 10.10.10.20 range 16384 20000 Router(config)# access-list 102 permit udp host 10.10.10.10 host 10.10.10.20 range 53000 56000 Next, the traffic class called voice is defined, and the policy map called policy1 is created; a priority queue for the class voice is reserved with a guaranteed allowed bandwidth percentage of 15 percent, a bandwidth percentage of 20 percent is configured for the class called bar, and the default class is configured for flow-based fair queueing. The service-policy command then attaches the policy map to the ATM subinterface 1/0.2. Router(config)# class-map voice Router(config-cmap)# match access-group 102 Router(config)# policy-map policy1 Router(config-pmap)# class voice Router(config-pmap-c)# priority percent 15 Router(config-pmap)# class bar Router(config-pmap-c)# bandwidth percent 20 Router(config-pmap)# class class-default Router(config-pmap-c)# fair-queue Router(config)# interface atm1/0.2 Router(config-subif)# service-policy output policy1 Example Limiting the Transmission Ring Limit on an ATM PVC SubinterfaceIn the following example, the number of particles on the transmission ring of an ATM PVC subinterface is limited to ten particles: Router(config)# interface ATM1/0/0.1 point-to-point Router(config-subif)# pvc 2/200 Router(config-if-atm-vc)# tx-ring-limit 10 The tx-ring-limit command can be applied to several ATM PVC subinterfaces on a single interface. Every individual PVC can configure a transmission ring limit. Examples LLQ for Frame Relay ConfigurationThe following example shows how to configure a PVC shaped to a 64K CIR with fragmentation. The shaping queue is configured with a class for voice, two data classes for IP precedence traffic, and a default class for best-effort traffic. WRED is used as the drop policy on one of the data classes. The following commands define class maps and the match criteria for the class maps: ! class-map voice match access-group 101 ! class-map immediate-data match access-group 102 ! class-map priority-data match access-group 103 ! access-list 101 permit udp any any range 16384 32767 access-list 102 permit ip any any precedence immediate access-list 103 permit ip any any precedence priority The following commands create and define a policy map called mypolicy: ! policy-map mypolicy class voice priority 16 class immediate-data bandwidth 32 random-detect class priority-data bandwidth 16 class class-default fair-queue 64 queue-limit 20 The following commands enable Frame Relay fragmentation and attach the policy map to DLCI 100: ! interface Serial1/0.1 point-to-point frame-relay interface-dlci 100 class fragment ! map-class frame-relay fragment frame-relay cir 64000 frame-relay mincir 64000 frame-relay bc 640 frame-relay fragment 50 service-policy output mypolicy Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at www.cisco.com/go/trademarks. Third party trademarks mentioned 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. (1005R) Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||