Configuring Weighted Fair Queueing

Table Of Contents

Configuring Weighted Fair Queueing

Flow-Based Weighted Fair Queueing Configuration Task List

Configuring WFQ

Monitoring Fair Queueing

Distributed Weighted Fair Queueing Configuration Task List

Configuring Flow-Based DWFQ

Configuring QoS-Group-Based DWFQ

Configuring Type of Service-Based DWFQ

Monitoring DWFQ

Class-Based Weighted Fair Queueing Configuration Task List

Defining Class Maps

Configuring Class Policy in the Policy Map

Configuring Class Policy Using Tail Drop

Configuring Class Policy Using WRED Packet Drop

Configuring the Class-Default Class Policy

Attaching the Service Policy and Enabling CBWFQ

Modifying the Bandwidth for an Existing Policy Map Class

Modifying the Queue Limit for an Existing Policy Map Class

Configuring the Bandwidth Limiting Factor

Deleting Classes

Deleting Policy Maps

Verifying Configuration of Policy Maps and Their Classes

Distributed Class-Based Weighted Fair Queueing Configuration Task List

Modifying the Bandwidth for an Existing Traffic Class

Modifying the Queue Limit for an Existing Traffic Class

Monitoring and Maintaining DCBWFQ

IP RTP Priority Configuration Task List

Configuring IP RTP Priority

Configuring the Bandwidth Limiting Factor

Verifying IP RTP Priority

Monitoring and Maintaining IP RTP Priority

Frame Relay IP RTP Priority Configuration Task List

Configuring Frame Relay IP RTP Priority

Verifying Frame Relay IP RTP Priority

Monitoring and Maintaining Frame Relay IP RTP Priority

Frame Relay PVC Interface Priority Configuration Task List

Configuring PVC Priority in a Map Class

Enabling Frame Relay PIPQ and Setting Queue Limits

Assigning a Map Class to a PVC

Verifying Frame Relay PIPQ

Monitoring and Maintaining Frame Relay PIPQ

Low Latency Queueing Configuration Task List

Configuring LLQ

Configuring the Bandwidth Limiting Factor

Verifying LLQ

Monitoring and Maintaining LLQ

Distributed LLQ Configuration Task List

Configuring a Priority Queue for an Amount of Available Bandwidth

Configuring a Priority Queue for a Percentage of Available Bandwidth

Configuring a Transmission Ring Limit

Verifying Distributed LLQ

Verifying a Transmission Ring Limit

Monitoring and Maintaining Distributed LLQ

Low Latency Queueing for Frame Relay Configuration Task List

Defining Class Maps

Configuring Class Policy in the Policy Map

Configuring Class Policy for a LLQ Priority Queue

Configuring Class Policy Using a Specified Bandwidth and WRED Packet Drop

Configuring the Class-Default Class Policy

Attaching the Service Policy and Enabling LLQ for Frame Relay

Verifying Configuration of Policy Maps and Their Classes

Monitoring and Maintaining LLQ for Frame Relay

Configuring Burst Size in LLQ Configuration Task List

Configuring the LLQ Bandwidth

Configuring the LLQ Burst Size

Verifying the LLQ Burst Size

Per-VC Hold Queue Support for ATM Adapters Configuration Task List

Configuring the per-VC Hold Queue on an ATM Adapter

Verifying the Configuration of the per-VC Hold Queue on an ATM Adapter

Flow-Based WFQ Configuration Examples

DWFQ Configuration Examples

Flow-Based DWFQ Example

QoS-Group-Based DWFQ Example

ToS-Based DWFQ Example

CBWFQ Configuration Examples

Class Map Configuration Example

Policy Creation Example

Policy Attachment to Interfaces Example

CBWFQ Using WRED Packet Drop Example

Display Service Policy Map Content Examples

All Classes for a Specified Service Policy Map

All Classes for All Service Policy Maps

Specified Class for a Service Policy Map

All Classes for All Service Policy Maps on a Specified Interface

Distributed CBWFQ Configuration Examples

Traffic Class Configuration Example

Traffic Policy Creation Example

Traffic Policy Attachment to an Interface Example

IP RTP Priority Configuration Examples

CBWFQ Configuration Example

Virtual Template Configuration Example

Multilink Bundle Configuration Example

Debug Example

Frame Relay IP RTP Priority Configuration Examples

Strict Priority Service to Matching RTP Packets Example

Frame Relay PVC Interface PQ Configuration Examples

LLQ Configuration Examples

ATM PVC Configuration Example

Virtual Template Configuration Example

Multilink Bundle Configuration Example

Distributed LLQ Configuration Examples

Enabling PQ for an Amount of Available Bandwidth on an ATM Subinterface Example

Enabling PQ for a Percentage of Available Bandwidth on an ATM Subinterface Example

Limiting the Transmission Ring Limit on an ATM Interface Example

Limiting the Transmission Ring Limit on an ATM PVC Subinterface Example

LLQ for Frame Relay Configuration Examples

Burst Size in LLQ Configuration Examples

Per-VC Hold Queue Support for ATM Adapters Examples


Configuring Weighted Fair Queueing


This chapter 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:

IP RTP Priority Queueing

Frame Relay IP RTP Priority Queueing

Frame Relay PVC Interface Priority Queueing

Low Latency Queueing

Distributed Low Latency Queueing

Low Latency Queueing (LLQ) for Frame Relay

Burst Size in Low Latency Queueing

Per-VC Hold Queue Support for ATM Adapters

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.

To identify the hardware platform or software image information associated with a feature, use the Feature Navigator on Cisco.com to search for information about the feature or refer to the software release notes for a specific release. For more information, see the "Identifying Supported Platforms" section in the "Using Cisco IOS Software" chapter in this book.

Flow-Based Weighted Fair Queueing Configuration Task List

WFQ 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:

Standard WFQ, which is enabled by default on all serial interfaces that run at 2 Mbps or below, and can run on all Cisco serial interfaces.

Distributed WFQ, which runs only on Cisco 7000 series routers with a Route Switch Processor (RSP)-based RSP7000 interface processor or Cisco 7500 series routers with a Versatile Interface Processor (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.) For configuration information on DWFQ, see the section "Distributed Weighted Fair Queueing Configuration Task List" later in this chapter.

To configure flow-based WFQ, perform the tasks described in the following sections. The task in the first section is required; the task in the remaining section is optional.

Configuring WFQ (Required)

Monitoring Fair Queueing (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."

Configuring WFQ

To configure flow-based WFQ 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 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.


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 (CQ) or priority queueing (PQ0 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.


Monitoring Fair Queueing

To monitor flow-based fair queueing services in your network, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# show interfaces [interface]

Displays statistical information specific to an interface.

Router# show queue interface-type interface-number

Displays the contents of packets inside a queue for a particular interface or virtual circuit (VC).

Router# show queueing fair

Displays status of the fair queueing configuration.


Distributed Weighted Fair Queueing Configuration Task List

To configure DWFQ, perform one of the mutually exclusive tasks described in the following sections:

Configuring Flow-Based DWFQ

Configuring QoS-Group-Based DWFQ

Configuring Type of Service-Based DWFQ

Monitoring DWFQ (Optional)

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.

See the end of this chapter for the section "DWFQ Configuration Examples."

Configuring Flow-Based DWFQ

To configure flow-based DWFQ, use the following commands in interface configuration mode:

 
Command
Purpose

Step 1 

Router(config-if)# fair-queue

Enables flow-based DWFQ.

Step 2 

Router(config-if)# fair-queue aggregate-limit aggregate-packet

(Optional) Sets the total number of buffered packets before some packets may be dropped. Below this limit, packets will not be dropped.

Step 3 

Router(config-if)# fair-queue individual-limit individual-packet

(Optional) Sets the maximum queue size for individual per-flow queues during periods of congestion.

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.

Configuring QoS-Group-Based DWFQ

To configure QoS-group-based DWFQ, use the following commands in interface configuration mode:

 
Command
Purpose

Step 1 

Router(config-if)# fair-queue qos-group

Enables QoS-group-based DWFQ.

Step 2 

Router(config-if)# fair-queue qos-group number weight weight

For each QoS group, specifies the percentage of the bandwidth to be allocated to each class.

Step 3 

Router(config-if)# fair-queue aggregate-limit aggregate-packet

(Optional) Sets the total number of buffered packets before some packets may be dropped. Below this limit, packets will not be dropped.

Step 4 

Router(config-if)# fair-queue individual-limit individual-packet

(Optional) Sets the maximum queue size for every per-flow queue during periods of congestion.

Step 5 

Router(config-if)# fair-queue qos-group number limit class-packet

(Optional) Sets the maximum queue size for a specific QoS group queue during periods of congestion.

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.

Configuring Type of Service-Based DWFQ

To configure type of service (ToS)-based DWFQ, use the following commands in interface configuration mode:

 
Command
Purpose

Step 1 

Router(config-if)# fair-queue tos

Enables ToS-based DWFQ

Step 2 

Router(config-if)# fair-queue tos number weight weight

(Optional) For each ToS class, specifies the percentage of the bandwidth to be allocated to each class.

Step 3 

Router(config-if)# fair-queue aggregate-limit aggregate-packet

(Optional) Sets the total number of buffered packets before some packets may be dropped. Below this limit, packets will not be dropped.

Step 4 

Router(config-if)# fair-queue individual-limit individual-packet

(Optional) Sets the maximum queue size for every per-flow queue during periods of congestion.

Step 5 

Router(config-if)# fair-queue tos number limit class-packet

(Optional) Sets the maximum queue size for a specific ToS queue during periods of congestion.

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.

Monitoring DWFQ

To monitor DWFQ, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# show interfaces [interface]

Displays the statistical information specific to an interface.

Router# show queueing fair-queue

Displays status of the fair queueing configuration.


Class-Based Weighted Fair Queueing Configuration Task List

To configure CBWFQ, perform the tasks described in the following sections. The tasks in the first three sections are required; the tasks in the remaining sections are optional.

Defining Class Maps (Required)

Configuring Class Policy in the Policy Map (Required)

Attaching the Service Policy and Enabling CBWFQ (Required)

Modifying the Bandwidth for an Existing Policy Map Class (Optional)

Modifying the Queue Limit for an Existing Policy Map Class (Optional)

Configuring the Bandwidth Limiting Factor (Optional)

Deleting Classes (Optional)

Deleting Policy Maps (Optional)

Verifying Configuration of Policy Maps and Their Classes (Optional)

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

For information on how to configure per-VC WFQ and CBWFQ, see the chapter "Configuring IP to ATM Class of Service" in this book.

Defining Class Maps

To create a class map containing match criteria against which a packet is checked to determine if it belongs to a class—and to effectively create the class whose policy can be specified in one or more policy maps—use the first command in global configuration mode to specify the class map name, then use one of the following commands in class-map configuration mode, as needed:

 
Command
Purpose

Step 1 

Router(config)# class-map class-map-name

Specifies the name of the class map to be created.

Step 2 

Router(config-cmap)# match access-group {access-group | name access-group-name}


or


Router(config-cmap)# match input-interface interface-name



or

Router(config-cmap)# match protocol protocol



or


Router(config-cmap)# match mpls experimental number

Specifies the name of the access control list (ACL) against whose contents packets are checked to determine if they belong to the class. CBWFQ supports numbered and named ACLs.

Specifies the name of the input interface used as a match criterion against which packets are checked to determine if they belong to the class.

Specifies the name of the protocol used as a match criterion against which packets are checked to determine if they belong to the class.

Specifies the value of the EXP field to be used as a match criterion against which packets are checked to determine if they belong to the class.

Other match criteria can be used when defining class maps. For additional match criteria, see the section "Creating a Traffic Class" in the chapter "Configuring the Modular Quality of Service Command-Line Interface" in this book.

Configuring Class Policy in the Policy Map

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:

class

bandwidth (policy-map class)

fair-queue (for class-default class only)

queue-limit or random-detect

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.

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 Drop (Optional)

Configuring Class Policy Using WRED Packet Drop (Optional)

Configuring the Class-Default Class Policy (Optional)

Configuring Class Policy Using Tail Drop

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, as needed, to configure policy for a standard class. To configure policy for the default class, see the section "Configuring the Class-Default Class Policy" in this chapter.

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

Specifies the name of a class to be created and included in the service policy.

Step 3 

Router(config-pmap-c)# bandwidth {bandwidth-kbps | percent percent}

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 Layer 2 overhead.

Step 4 

Router(config-pmap-c)# queue-limit number-of-packets

Specifies the maximum number of packets that can be queued for the class.

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.

Configuring Class Policy Using WRED Packet Drop

To configure a policy map and create class policies comprising the service policy, use the first command in global configuration mode, as needed, to specify the policy map name, then use the following commands in policy-map class configuration mode, as needed, to configure policy for a standard class. To configure policy for the default class, see the section "Configuring the Class-Default Class Policy" in this chapter.

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

Specifies the name of a class to be created and included in the service policy.

Step 3 

Router(config-pmap-c)# bandwidth {bandwidth-kbps | percent percent}

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 Layer 2 overhead.

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


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.

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.


Configuring the Class-Default Class 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.

To configure a policy map and configure the class-default class to use tail drop, use the first command in global configuration mode to specify the policy map name, then to configure policy for the default class use the following commands in policy-map class configuration mode:

 
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)# bandwidth {bandwidth-kbps | percent percent}



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

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 command in global configuration mode to specify the policy map name, then to configure policy for the default class use the following commands in policy-map class configuration mode:

 
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)# bandwidth {bandwidth-kbps | percent percent}



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

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


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.

Attaching the Service Policy and Enabling CBWFQ

To attach a service policy to the output interface and enable CBWFQ on the interface, use the following command in interface configuration mode. When CBWFQ is enabled, all classes configured as part of the service policy map are installed in the fair queueing system.

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 permanent virtual circuit (PVC) does not override the default queueing method.

Modifying the Bandwidth for an Existing Policy Map Class

To change the amount of bandwidth allocated for an existing class, use the following commands beginning in global configuration mode:

 
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)# bandwidth {bandwidth-kbps | percent percent}

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 Layer 2 overhead.

Modifying the Queue Limit for an Existing Policy Map Class

To change the maximum number of packets that can accrue in a queue reserved for an existing class, use the following commands beginning in global configuration mode:

 
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)# queue-limit number-of-packets

Specifies the new maximum number of packets that can be queued for the class to be reconfigured. The default and maximum number of packets is 64.

Configuring the Bandwidth Limiting Factor

To change the maximum reserved bandwidth allocated for Resource Reservation Protocol (RSVP), CBWFQ, LLQ, IP RTP Priority, Frame Relay IP RTP Priority, and Frame Relay PVC Interface Priority Queueing (PIPQ), use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# max-reserved-bandwidth percent

Changes the maximum configurable bandwidth for RSVP, CBWFQ, LLQ, IP RTP Priority, Frame Relay IP RTP Priority, and Frame Relay PVC Interface Priority Queueing. The default is 75 percent.


Deleting Classes

To delete one or more class maps from a service policy map, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config)# policy-map policy-map

Specifies the name of the policy map containing the classes to be deleted.

Step 2 

Router(config-pmap)# no class class-name

Specifies the name of the classes to be deleted.

Step 3 

Router(config-pmap-c)# no class class-default

Deletes the default class.

Deleting Policy Maps

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.


Verifying Configuration of Policy Maps and Their Classes

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 the following commands in EXEC mode, as needed:

Command
Purpose

Router# show policy-map policy-map

Displays the configuration of all classes that make up the specified policy map.

Router# show policy-map policy-map class class-name

Displays the configuration of the specified class of the specified policy map.

Router# show policy-map interface interface-name

Displays the configuration of all classes configured for all policy maps on the specified interface.

Router# show queue interface-type interface-number

Displays queueing configuration and statistics for a particular interface.


The counters displayed after issuing the show policy-map interface command are updated only if congestion is present on the interface.

Distributed Class-Based Weighted Fair Queueing Configuration Task List

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

Modifying the Bandwidth for an Existing Traffic Class (Optional)

Modifying the Queue Limit for an Existing Traffic Class (Optional)

Monitoring and Maintaining DCBWFQ (Optional)

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. For information on how to configure QoS with the Modular QoS CLI, see the chapter "Configuring the Modular Quality of Service Command-Line Interface" in this book.

See the end of this chapter for the section "Verifying Configuration of Policy Maps and Their Classes."

Modifying the Bandwidth for an Existing Traffic Class

To change the amount of bandwidth allocated for an existing traffic class in congested environments, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config)# policy-map policy-map

Specifies the name of the traffic policy to be created or modified.

Step 2 

Router(config-pmap)# class class-name


Specifies the name of a traffic class whose bandwidth you want to modify.

Step 3 

Router(config-pmap-c)# bandwidth bandwidth-kbps

Specifies the amount of allocated bandwidth, in kbps, to be reserved for the traffic class in congested network environments.

After configuring the traffic policy with the policy-map command, you must still attach the traffic policy to an interface before it is successfully enabled. For information on attaching a traffic policy to an interface, see the chapter "Configuring the Modular Quality of Service Command-Line Interface" in this book.

Modifying the Queue Limit for an Existing Traffic Class

To change the maximum number of packets that can accrue in a queue reserved for an existing traffic class, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config)# policy-map policy-map

Specifies the name of the traffic policy to be created or modified.

Step 2 

Router(config-pmap)# class class-name

Specifies the name of a traffic class whose queue limit you want to modify.

Step 3 

Router(config-pmap-c)# queue-limit number-of-packets

Specifies the new maximum number of packets that can be queued for the traffic class to be reconfigured. The default and maximum number of packets is 64.

After configuring the service policy with the policy-map command, you must still attach the traffic policy to an interface before it is successfully enabled. For information on attaching a traffic policy to an interface, see the chapter "Configuring the Modular Quality of Service Command-Line Interface" in this book.

Monitoring and Maintaining DCBWFQ

To display the configuration of a traffic policy and its associated traffic classes, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# show policy-map

Displays all configured traffic policies.

Router# show policy-map policy-map-name

Displays the user-specified traffic policy.

Router# show policy-map interface

Displays statistics and configurations of all input and output policies attached to an interface.

Router# show policy-map interface interface-spec

Displays configuration and statistics of the input and output policies attached to a particular interface.

Router# show policy-map interface interface-spec input

Displays configuration and statistics of the input policy attached to an interface.

Router# show policy-map interface interface-spec output

Displays configuration statistics of the output policy attached to an interface.

Router# show policy-map [interface [interface-spec [input | output] [class class-name]]]]

Displays the configuration and statistics for the class name configured in the policy.


IP RTP Priority Configuration Task List

To configure IP RTP Priority, perform the tasks described in the following sections. The task in the first section is required; the tasks in the remaining sections are optional.

Configuring IP RTP Priority (Required)

Configuring the Bandwidth Limiting Factor (Optional)

Verifying IP RTP Priority (Optional)

Monitoring and Maintaining IP RTP Priority (Optional)

See the end of this chapter for the section "IP RTP Priority Configuration Examples."

Frame Relay Traffic Shaping (FRTS) and Frame Relay Fragmentation (FRF.12) must be configured before the Frame Relay IP RTP Priority feature is used. For information about configuring FRTS and FRF.12, refer to the Cisco IOS Wide-Area Networking Configuration Guide.

Configuring IP RTP Priority

To reserve a strict priority queue for a set of RTP packet flows belonging to a range of UDP destination ports, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip rtp priority starting-rtp-port-number port-number-range bandwidth

Reserves a strict priority queue for a set of RTP packet flows belonging to a range of UDP destination ports.



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

The frame-relay ip rtp priority command provides strict PQ for Frame Relay PVCs. For more information about this command, refer to the Cisco IOS Quality of Service Solutions Command Reference.

Configuring the Bandwidth Limiting Factor

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.


Verifying IP RTP Priority

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


Monitoring and Maintaining IP RTP Priority

To tune your RTP bandwidth or decrease RTP traffic if the priority queue is experiencing drops, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# debug priority

Displays priority queueing output if packets are dropped from the priority queue.

Router# show queue interface-type interface-number

Displays queueing configuration and statistics for a particular interface.


Frame Relay IP RTP Priority Configuration Task List

To configure Frame Relay IP RTP Priority, perform the tasks described in the following sections. The task in the first section is required; the tasks in the remaining sections are optional.

Configuring Frame Relay IP RTP Priority (Required)

Verifying Frame Relay IP RTP Priority (Optional)

Monitoring and Maintaining Frame Relay IP RTP Priority (Optional)

See the end of this chapter for the section "Frame Relay IP RTP Priority Configuration Examples."

Configuring Frame Relay IP RTP Priority

To reserve a strict priority queue on a Frame Relay PVC for a set of RTP packet flows belonging to a range of UDP destination ports, use the following command in map-class configuration mode:

Command
Purpose

Router(config-map-class)# frame-relay ip rtp priority starting-rtp-port-number port-number-range bandwidth

Reserves a strict priority queue for a set of RTP packet flows belonging to a range of UDP destination ports.



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

Verifying Frame Relay IP RTP Priority

To verify the Frame Relay IP RTP Priority feature, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# show frame relay pvc

Displays statistics about PVCs for Frame Relay interfaces.

Router# show queue interface-type interface-number

Displays fair queueing configuration and statistics for a particular interface.

Router# show traffic-shape queue

Displays information about the elements queued at a particular time at the VC data-link connection identifier (DLCI) level.


Monitoring and Maintaining Frame Relay IP RTP Priority

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 output if packets are dropped from the priority queue.


Frame Relay PVC Interface Priority Configuration Task List

To configure the Frame Relay PVC Interface Priority feature, perform the tasks described in the following sections. The tasks in the first three sections are required; the tasks in the remaining sections are optional.

Configuring PVC Priority in a Map Class (Required)

Enabling Frame Relay PIPQ and Setting Queue Limits (Required)

Assigning a Map Class to a PVC (Required)

Verifying Frame Relay PIPQ (Optional)

Monitoring and Maintaining Frame Relay PIPQ (Optional)

See the end of this chapter for the section "Frame Relay PVC Interface PQ Configuration Examples."

Configuring PVC Priority in a Map Class

To configure PVC priority within a map class, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config)# map-class frame-relay map-class-name

Specifies a Frame Relay map class.

Step 2 

Router(config-map-class)# frame-relay interface- queue priority {high | medium | normal | low}

Assigns a PVC priority level to a Frame Relay map class.

Enabling Frame Relay PIPQ and Setting Queue Limits

To enable Frame Relay (FR) PIPQ and set the priority queue sizes, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config)# interface type number [name-tag]

Configures an interface type and enters interface configuration mode.

Step 2 

Router(config-if)# encapsulation frame-relay [cisco | ietf]

Enables Frame Relay encapsulation.

Step 3 

Router(config-if)# frame-relay interface-queue priority [high-limit medium-limit normal-limit low-limit]

Enables Frame Relay PIPQ and sets the priority queue limits.

Assigning a Map Class to a PVC

To assign a map class to a specific PVC, use the following commands beginning in interface configuration mode:

 
Command
Purpose

Step 1 

Router(config-if)# frame-relay interface-dlci dlci

Specifies a single PVC on a Frame Relay interface.

Step 2 

Router(config-fr-dlci)# class map-class-name

Associates a map class with a specified PVC.

Verifying Frame Relay PIPQ

To verify the configuration of Frame Relay (FR) PIPQ, use the following commands in privileged EXEC mode, as needed:

Command
Purpose

Router# show frame-relay pvc [interface interface][dlci]

Displays statistics about PVCs for Frame Relay interfaces.

Router# show interfaces [type number][first][last]

Displays the statistical information specific to a serial interface.

Router# show queueing [custom | fair | priority | random-detect [interface atm_subinterface [vc [[vpi/] vci]]]]

Lists all or selected configured queueing strategies.


Monitoring and Maintaining Frame Relay PIPQ

To monitor and maintain Frame Relay (FR) PIPQ, use the following commands in privileged EXEC mode, as needed:

Command
Purpose

Router# debug priority

Displays priority queueing output if packets are dropped from the priority queue.

Router# show frame-relay pvc [interface interface][dlci]