|
|
This chapter describes the tasks for configuring weighted fair queueing (WFQ), VIP-Distributed WFQ (DWFQ), and class-based WFQ (CBWFQ) and the following related features, which provide strict priority queueing within WFQ or CBWFQ:
For complete conceptual information, see the section "Weighted Fair Queueing" in the chapter "Congestion Management Overview" in this book.
For a complete description of the QoS commands in this chapter, refer to the Cisco IOS Quality of Service Solutions Command Reference. To locate documentation of other commands that appear in this chapter, use the command reference master index, or search online.
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:
To configure flow-based WFQ, perform the tasks in the following sections. The first section is required; the other section is optional.
Flow-based WFQ is supported on unavailable bit rate (UBR), variable bit rate (VBR), and available bit rate (ABR) ATM connections.
See the end of this chapter for the section "Flow-Based WFQ Configuration Examples."
To configure flow-based fair queueing on an interface, use the following command in interface configuration mode:
| Command | Purpose |
|---|---|
Router(config-if)# fair-queue [congestive-discard-threshold [dynamic-queues [reservable-queues]]] | Configures an interface to use fair queueing. |
Flow-based WFQ uses a traffic data stream discrimination registry service to determine to which traffic stream a message belongs. See 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. See 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.
![]() |
Note WFQ is the default queueing mode on interfaces that run at E1 speeds (2.048 Mbps) or below. It is enabled by default for physical interfaces that do not use Link Access Procedure, Balanced (LAPB), X.25, or Synchronous Data Link Control (SDLC) encapsulations. WFQ is not an option for these protocols. WFQ is also enabled by default on interfaces configured for Multilink PPP (MLP). However, if custom queueing or priority queueing is enabled for a qualifying link, it overrides fair queueing, effectively disabling it. Additionally, WFQ is automatically disabled if you enable autonomous or silicon switching. |
To monitor flow-based fair queueing services in your network, use one or more of the following commands in EXEC mode:
| Command | Purpose |
|---|---|
Router# show interfaces [interface] fair-queue | Displays information about an interface configured for WFQ and DWFQ. |
Router# show queue interface-type interface-number | Displays the contents of packets inside a queue for a particular interface or VC. |
Router# show queueing fair | Displays status of the fair queueing configuration. |
To configure DWFQ, perform one of the following mutually-exclusive tasks:
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 a Route Switch Processor-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.
To configure flow-based DWFQ, use the following commands in interface configuration mode:
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.
In general, you should not change the aggregate or individual limit value from the default. Use the fair-queue aggregate-limit and fair-queue individual-limit commands only if you have determined that you would benefit from using different values, based on your particular situation.
To configure QoS-group-based DWFQ, use the following commands in interface configuration mode:
In general, you should not change the aggregate, individual, or class limit value from the default. Use the fair-queue aggregate-limit, fair-queue individual-limit, and fair-queue limit commands only if you have determined that you would benefit from using different values, based on your particular situation.
To configure ToS-based DWFQ, use the following commands in interface configuration mode:
In general, you should not change the aggregate, individual, or class limit value from the default. Use the fair-queue aggregate-limit, fair-queue individual-limit, and fair-queue limit commands only if you have determined that you would benefit from using different values, based on your particular situation.
To monitor DWFQ, use one or more of the following commands in EXEC mode:
| Command | Purpose |
|---|---|
Router# show interfaces | Displays the statistical information specific to a serial interface. |
Router# show interfaces [interface] fair-queue | Displays information about an interface configured for WFQ and DWFQ. |
CBWFQ is supported on VBR and ABR ATM connections. It is not supported on UBR connections.
See the end of this chapter for the section "CBWFQ Configuration Examples."
![]() |
Note For information on how to configure per-VC WFQ and CBWFQ, see the chapter "Configuring IP to ATM Class of Service" in this book. |
To 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.
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.
To configure class policies in a policy map, perform the tasks in the following sections:
To configure a policy map and create class policies that make up the service policy, use the first command in global configuration mode to specify the policy map name, then use the following commands in policy-map class configuration mode to configure policy for a standard class. To configure policy for the default class, see the section "Configuring the Class-Default Class Policy."
To configure policy for more than one class in the same policy map, repeat Step 2 through Step 4. Note that because this set of commands uses the queue-limit command, the policy map uses tail drop, not Weighted Random Early Detection (WRED) packet drop.
To configure a policy map and create class policies comprising the service policy, use the first global configuration command to specify the policy map name, then use the following policy-map class configuration commands to configure policy for a standard class. To configure policy for the default class, see the section "Configuring the Class-Default Class Policy."
To configure policy for more than one class in the same policy map, repeat Step 2 through Step 5. Note that this set of commands uses WRED packet drop, not tail drop.
![]() |
Note If you configure a class in a policy map to use WRED for packet drop instead of tail drop, you must ensure that WRED is not configured on the interface to which you intend to attach that service policy. |
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.
By default, the class-default class is defined as flow-based WFQ. However, configuring the default class with the bandwidth policy-map class configuration command disqualifies the default class as flow-based WFQ.
| Command | Purpose | |
|---|---|---|
Step 1 | Router(config)# policy-map policy-map | Specifies the name of the policy map to be created or modified. |
Step 2 | Router(config-pmap)# class class-default default-class-name | Specifies the default class so that you can configure or modify its policy. |
Step 3 | Router(config-pmap-c)#or Router(config-pmap-c)# fair-queue [number-of-dynamic-queues] | Specifies the amount of bandwidth in kbps, or percentage of available bandwidth, to be assigned to the class. The amount of bandwidth configured should be large enough to also accommodate Layer2 overhead. Specifies the number of dynamic queues to be reserved for use by flow-based WFQ running on the default class. The number of dynamic queues is derived from the bandwidth of the interface. See 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. |
Step 4 | Router(config-pmap-c)# queue-limit number-of-packets | Specifies the maximum number of packets that the queue for the default class can accumulate. |
To configure a policy map and configure the class-default class to use WRED packet drop, use the first global configuration command to specify the policy map name, then use the following policy-map class configuration commands to configure policy for the default class:
| Command | Purpose | |
|---|---|---|
Step 1 | Router(config)# policy-map policy-map | Specifies the name of the policy map to be created or modified. |
Step 2 | Router(config-pmap)# class class-default default-class-name | Specifies the default class so that you can configure or modify its policy. |
Step 3 | Router(config-pmap-c)#or Router(config-pmap-c)# fair-queue [number-of-dynamic-queues] | Specifies the amount of bandwidth in kbps, or percentage of available bandwidth, to be assigned to the class. The amount of bandwidth configured should be large enough to also accommodate Layer2 overhead. Specifies the number of dynamic queues to be reserved for use by flow-based WFQ running on the default class. The number of dynamic queues is derived from the bandwidth of the interface. See 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. |
Step 4 | Router(config-pmap-c)# random-detect | Enables WRED. The class policy will drop packets using WRED instead of tail drop. |
Step 5 | Router(config-pmap-c)# random-detect exponential-weighting-constant exponent and/or Router(config-pmap-c)# random-detect precedence precedence min-threshold max-threshold mark-prob-denominator | Configures the exponential weight factor used in calculating the average queue length. Configures WRED parameters for packets with a specific IP Precedence. Repeat this command for each precedence. |
| Command | Purpose |
|---|---|
Router(config-if)#service-policy output policy-map | Enables CBWFQ and attaches the specified service policy map to the output interface. |
Configuring CBWFQ on a physical interface is only possible if the interface is in the default queueing mode. Serial interfaces at E1 (2.048 Mbps) and below use WFQ by default--other interfaces use FIFO by default. Enabling CBWFQ on a physical interface overrides the default interface queueing method. Enabling CBWFQ on an ATM PVC does not override the default queueing method.
| Command | Purpose | |
|---|---|---|
Step 1 | Router(config)#policy-map policy-map | Specifies the name of the policy map containing the class to be modified. |
Step 2 | Router(config-pmap)#class class-name | Specifies the name of a class whose bandwidth you want to modify. |
Step 3 | Router(config-pmap-c)# | Specifies the new amount of bandwidth in kbps, or percentage of available bandwidth, to be used to reconfigure the class. The amount of bandwidth configured should be large enough to also accommodate Layer2 overhead. |
| Command | Purpose | |
|---|---|---|
Step 1 | Router(config)#policy-map policy-map | Specifies the name of the policy map containing the class to be modified. |
Step 2 | Router(config-pmap)#class class-name | Specifies the name of a class whose queue limit you want to modify. |
Step 3 | Router(config-pmap-c)# | Specifies the new maximum number of packets that can be enqueued for the class to be reconfigured. The default and maximum number of packets is 64. |
To change the maximum reserved bandwidth allocated for CBWFQ, LLQ, and the IP RTP Priority feature, use the following command in interface configuration mode:
| Command | Purpose |
|---|---|
Router(config-if)#max-reserved-bandwidth percent | Changes the maximum configurable bandwidth for CBWFQ, LLQ, and IP RTP Priority. The default is 75 percent. |
To delete a policy map, use the following command in global configuration mode:
| Command | Purpose |
|---|---|
Router(config)#no policy-map policy-map | Specifies the name of the policy map to be deleted. |
To display the contents of a specific policy map, a specific class from a specific policy map, or all policy maps configured on an interface, use one of the following commands in global configuration mode:
The counters displayed after issuing the show policy-map interface command are updated only if congestion is present on the interface.
To configure IP RTP Priority, perform the tasks in the following sections. The first task is required; the remaining tasks are optional.
See the end of this chapter for the section "IP RTP Priority Configuration Examples."
![]() |
Note Because the ip rtp priority command gives absolute priority over other traffic, it should be used with care. In the event of congestion, if the traffic exceeds the configured bandwidth, then all the excess traffic is dropped. |
The ip rtp reserve and ip rtp priority commands cannot be configured on the same interface.
![]() |
Note The frame-relay ip rtp priority command provides strict priority queueing for Frame Relay PVCs. For more information, refer to the Cisco IOS Quality of Service Solutions Command Reference. |
To change the maximum reserved bandwidth allocated for CBWFQ, LLQ, and the IP RTP Priority feature, use the following command in interface configuration mode:
| Command | Purpose |
|---|---|
Router(config-if)#max-reserved-bandwidth percent | Changes the maximum configurable bandwidth for CBWFQ, LLQ, and IP RTP Priority. The default is 75 percent. |
To see the contents of the priority queue (such as queue depth and the first packet queued), use the following command in EXEC mode:
| Command | Purpose |
|---|---|
Router#show queue interface-type interface-number | Displays queueing configuration and statistics for a particular interface. |
To tune your RTP bandwidth or decrease RTP traffic if the priority queue is experiencing drops, use one or more of the following commands in EXEC mode:
| Command | Purpose |
|---|---|
Router# debug priority | Displays priority queueing events. |
Router#show queue interface-type interface-number | Displays queueing configuration and statistics for a particular interface. |
To configure Frame Relay IP RTP Priority, perform the tasks in the following sections. The first task is required; the remaining tasks are optional.
See the end of this chapter for the section "Frame Relay IP RTP Priority Configuration Examples."
![]() |
Note Because the frame-relay ip rtp priority command gives absolute priority over other traffic, it should be used with care. In the event of congestion, if the traffic exceeds the configured bandwidth, then all the excess traffic is dropped. |
To verify the Frame Relay IP RTP Priority feature, use one of the following commands in EXEC mode:
To tune your RTP bandwidth or decrease RTP traffic if the priority queue is experiencing drops, use the following command in EXEC mode:
| Command | Purpose |
|---|---|
Router# debug priority | Displays priority queueing events. |
See the end of this chapter for the section "Low Latency Queueing Configuration Examples."
To give priority to a class within a policy map, use the following command in policy-map class configuration mode:
| Command | Purpose |
|---|---|
Router(config-pmap-c)#priority bandwidth |
To change the maximum reserved bandwidth allocated for CBWFQ, LLQ, and the IP RTP Priority feature, use the following command in interface configuration mode:
| Command | Purpose |
|---|---|
Router(config-if)#max-reserved-bandwidth percent | Changes the maximum configurable bandwidth for CBWFQ, LLQ, and IP RTP Priority. The default is 75 percent. |
| Command | Purpose |
|---|---|
Router# show queue interface-type interface-number | Displays queueing configuration and statistics for a particular interface. |
The priority queue is the queue whose conversation ID is equal to the number of dynamic queues plus 8. The packets in the priority queue have a weight of 0.
To tune your RTP bandwidth or decrease RTP traffic if the priority queue is experiencing drops, use one or more of the following commands in EXEC mode:
Router(config)# interface Serial 3/0 Router(config-if)# ip unnumbered Ethernet 0/0 Router(config-if)# fair-queue 64 512 18
For information on how to configure WFQ, see the section "Flow-Based Weighted Fair Queueing Configuration Task List" earlier in this chapter.
The following examples provide DWFQ configuration examples:
For information on how to configure DWFQ, see the section "VIP-Distributed Weighted Fair Queueing Configuration Task List" earlier in this chapter.
The following example enables DWFQ on the HSSI 0/0/0 interface:
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
The following example configures QoS-group-based DWFQ. CAR policies are used to assign packets with an IP precedence of 2 to QoS group 2, and packets with IP precedence 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
Use the show interfaces fair-queue command to view WFQ statistics.
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
The following example configures 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 Hssi0/0/0 interface. 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
Use the show interfaces fair-queue command to view DWFQ statistics.
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
The following sections provide CBWFQ configuration examples:
For information on how to configure CBWFQ, see the section "Class-Based Weighted Fair Queueing Configuration Task List" earlier in this chapter.
Router(config)# access-list 101 permit udp host 10.10.10.10 host 10.10.10.20 range 16384 20000 Router(config-if)# access-list 101 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
In 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 section "Class Map Configuration Example."
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
The policy map in this example was defined in the previous section, "Policy Creation Example."
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
In the following example, the class map class1is created and defined to use the input interface FastEthernet0/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 !
All Classes for a Specified Service Policy Map
The following example displays the contents of the po1 service policy map:
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 Maps
The 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 Map
The following example displays configurations for the class called class7 that belongs to the policy map 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 Interface
The following example displays configurations for classes on the output interface e1/1:
Router# show policy-map interface e1/1
Ethernet1/1 output : po1 Weighted Fair Queueing Class class1 Output Queue: Conversation 264 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11548/0/0 Class class2 Output Queue: Conversation 265 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11546/0/0 Class class3 Output Queue: Conversation 266 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11546/0/0 Class class4 Output Queue: Conversation 267 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11702/0/0 Class class5 Output Queue: Conversation 268 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11701/0/0 Class class6 Output Queue: Conversation 269 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11702/0/0 Class class7 Output Queue: Conversation 270 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11857/0/0 Class class8 Output Queue: Conversation 271 Bandwidth 937 (kbps) Max Threshold 64 (packets) (total/discards/tail drops) 11858/1/0
The following sections provide IP RTP Priority configuration examples:
The 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-limit and random-detect commands are optional commands for CBWFQ configurations. The queue-limit command is used for configuring tail drop limits for a class queue. The random-detect command is used for configuring RED drop limits for a class queue, similar to the random-detect command available on an interface.
The following example configures a strict priority queue in a virtual template configuration with CBWFQ. The max-reserved-bandwidth command changes the maximum reserved bandwidth allocated for CBWFQ and IP RTP Priority from the default (75 percent) to 80 percent.
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)# max-reserved-bandwidth 80 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
![]() |
Note To make the virtual-access interface function properly, the bandwidth policy-map class configuration command should not be configured on the virtual template. It needs to be configured on the actual interface, as shown in the example. |
The 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. The max-reserved-bandwidth command changes the maximum reserved bandwidth allocated for WFQ and IP RTP Priority.
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 router(config-if)# max-reserved-bandwidth 80
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
The following example shows a sample output from the debug priority command:
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
In this example, 64 indicates the actual priority queue depth at the time the packet was dropped.
This section provides the following configuration examples:
This section provides the following configuration examples:
For information on how to configure Frame Relay IP RTP Priority queueing, see the section "Frame Relay IP RTP Priority Configuration Task List" earlier in this chapter.
The 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:
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
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.
The following sections provide low latency queueing configuration examples:
For information on how to configure low latency queueing, see the section "Frame Relay IP RTP Priority Configuration Task List" earlier in this chapter.
In 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 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 PVC 0/102 on 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 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-vc)# service-policy output policy1
The 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 policy1 is created. A strict priority queue (with a guaranteed allowed bandwidth of 50 kbps) is reserved for the class 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 policy1 to the 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
First, the class map voice is defined, and the policy map policy1 is created. A strict priority queue (with a guaranteed allowed bandwidth of 50 kbps) is reserved for the class 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 policy1 policy map 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
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Posted: Mon Aug 21 21:38:13 PDT 2000
Copyright 1989-2000©Cisco Systems Inc.