Guest

Cisco IOS Software Releases 12.2 T

Low Latency Queueing with Priority Percentage Support

Table Of Contents

Low Latency Queueing with Priority Percentage Support

Feature Overview

Changes to the bandwidth Command

Changes to the priority Command

How These Commands Calculate Bandwidth

Benefits

Restrictions

Supported Platforms

Supported Standards, MIBs, and RFCs

Configuration Tasks

Specifying the Bandwidth Percentage

Verifying the Bandwidth Percentage

Configuration Examples

Specifying the Bandwidth Percentage

Mixing the Units of Bandwidth for Non-Priority Traffic

Command Reference

bandwidth (policy-map class)

priority


Low Latency Queueing with Priority Percentage Support


This feature module describes the Low Latency Queueing with Priority Percentage Support feature and includes the following sections:

Feature Overview

Supported Platforms

Supported Standards, MIBs, and RFCs

Configuration Tasks

Configuration Examples

Command Reference

Feature Overview

This feature allows you to configure bandwidth as a percentage within low latency queueing (LLQ). Specifically, you can designate a percentage of the bandwidth to be allocated to an entity (such as a physical interface, a shaped ATM permanent virtual circuit (PVC), or a shaped Frame Relay PVC) to which a policy map is attached. Traffic associated with the policy map will then be given priority treatment.

This feature also allows you to specify the percentage of bandwidth to be allocated to non-priority traffic classes.

This feature modifies two existing commands—bandwidth and priority—and this feature provides additional functionality to the way that bandwidth can be allocated using these two commands.

Changes to the bandwidth Command

This feature adds a new keyword to the bandwidth command—remaining percent. The feature also changes the functionality of the existing percent keyword. These changes result in the following commands for bandwidth: bandwidth percent and bandwidth remaining percent.

The bandwidth percent command configures bandwidth as an absolute percentage of the total bandwidth on the interface.

The bandwidth remaining percent command allows you to allocate bandwidth as a relative percentage of the total bandwidth available on the interface. This command allows you to specify the relative percentage of the bandwidth to be allocated to the classes of traffic. For instance, you can specify that 30 percent of the available bandwidth be allocated to class1, and 60 percent of the bandwidth be allocated to class2. Essentially, you are specifying the ratio of the bandwidth to be allocated to the traffic class. In this case, the ratio is 1 to 2 (30 percent allocated to class1 and 60 percent allocated to class2). The sum of the numbers used to indicate this ratio cannot exceed 100 percent. This way, you need not know the total amount of bandwidth available, just the relative percentage you want to allocate for each traffic class.

Each traffic class gets a minimum bandwidth as a relative percentage of the remaining bandwidth. The remaining bandwidth is the bandwidth available after the priority queue, if present, is given its required bandwidth, and after any Resource Reservation Protocol (RSVP) flows are given their requested bandwidth.

Because this is a relative bandwidth allocation, the packets for the traffic classes are given a proportionate weight only, and no admission control is performed to determine whether any bandwidth (in kbps) is actually available. The only error checking that is performed is to ensure that the total bandwidth percentages for the classes do not exceed 100 percent.

For more information about how this feature defines and calculates bandwidth, see the "How These Commands Calculate Bandwidth" section of this document. For the bandwidth command syntax description and usage guidelines, see the "Command Reference" section of this document.

Changes to the priority Command

This feature also adds the percent keyword to the priority command. The priority percent command indicates that the bandwidth will be allocated as a percentage of the total bandwidth of the interface. You can then specify the percentage (that is, a number from 1 to 100) to be allocated by using the percentage argument with the priority percent command.

Unlike the bandwidth command, the priority command provides a strict priority to the traffic class, which ensures low latency to high priority traffic classes.

For more information about how this feature defines and calculates bandwidth, see the "How These Commands Calculate Bandwidth" section of this document. For the priority command syntax description and usage guidelines, see the "Command Reference" section of this document.

How These Commands Calculate Bandwidth

When the bandwidth and priority commands calculate the total amount of bandwidth available on an entity, the following guidelines are invoked:

If the entity is a physical interface, the total bandwidth is the bandwidth on the physical interface.

If the entity is a shaped ATM PVC, the total bandwidth is calculated as follows:

For a variable bit rate (VBR) VC, the average shaping rate is used in the calculation.

For an available bit rate (ABR) VC, the minimum shaping rate is used in the calculation.

If the entity is a shaped Frame Relay PVC, the total bandwidth is calculated as follows:

If a minimum acceptable committed information rate (minCIR) is not configured, the CIR divided by two is used in the calculation.

If a minimum acceptable CIR is configured, the minCIR setting is used in the calculation.

For more information on bandwidth allocation, refer to the chapter "Congestion Management Overview" in the Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.2.

Benefits

This feature allows the Cisco IOS software to accommodate networks with a large number of interfaces, all with differing bandwidths. This feature is especially useful when all of those interfaces with differing bandwidths need to be associated with a policy map that allocates proportional bandwidths to multiple classes.

Additionally, configuring bandwidth in percentages is most useful when the underlying link bandwidth is unknown or the relative class bandwidth distributions are known. For interfaces that have adaptive shaping rates (such as available bit rate (ABR) virtual circuits), CBWFQ can be configured by configuring class bandwidths in percentages.

Restrictions

Dropping Excess Traffic

If the incoming high priority traffic exceeds the bandwidth percentage calculated by the priority percent command, and there is congestion in the network, the excess traffic is dropped. This is identical to the behavior demonstrated when the priority command uses bandwidth in kbps. In both cases, if the high priority traffic exceeds the bandwidth, and there is congestion in the network, excess traffic is dropped.

Exceeding the Configured Bandwidth Percentage Calculated by the bandwidth percent and priority percent Commands

By default, when the bandwidth percent and priority percent commands are used to allocate bandwidth, the sum of the bandwidth percentage allocated to the high priority traffic and the bandwidth percentage allocated to the non-priority traffic cannot exceed 75 percent of the total bandwidth available on the interface.

The remaining 25 percent of the total bandwidth available on the interface is kept in reserve for the unclassified traffic and routing traffic, if any, and proportionally divided among the defined traffic classes. To override the 75 percent limitation, use the max-reserved bandwidth command in interface configuration mode.


Note The max-reserved bandwidth command is intended for use on main interfaces only; it has no effect on virtual circuits (VCs) or ATM permanent virtual circuits (PVCs).


Supported Platforms

Cisco 1000 series

Cisco 1600 series

Cisco 1700 series

Cisco 2600 series

Cisco 3600 series

Cisco MC3810

Cisco 4500 series

Cisco 5300 series

Cisco 7100 series

Cisco 7200 series

Supported Standards, MIBs, and RFCs

Standards

No new or modified standards are supported by this feature.

MIBs

No new or modified MIBs are supported by this feature.

To obtain lists of supported MIBs by platform and Cisco IOS release, and to download MIB modules, go to the Cisco MIB web site on Cisco.com at http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml.

RFCs

No new or modified RFCs are supported by this feature.

Configuration Tasks

See the following sections for configuration tasks for the Low Latency Queueing with Priority Percentage Support feature. Each task in the list is identified as either optional or required:

Specifying the Bandwidth Percentage (Required)

Verifying the Bandwidth Percentage (Optional)

Specifying the Bandwidth Percentage

To specify the bandwidth percentage, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config-if)# policy-map policy-map

Specifies the name of the policy map to be created or modified. Enters policy-map configuration mode.

Step 2 

Router(config-pmap)# class class-name

Specifies the class so that you can configure or modify its policy. Enters policy-map class configuration mode.

Step 3 

Router(config-pmap-c)# priority {bandwidth-kbps | percent percentage} [burst]

Gives priority to a class of traffic belonging to the policy map.

Step 4 

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

Specifies the bandwidth for a class of traffic belonging to the policy map.

Verifying the Bandwidth Percentage

To display the contents of a policy map and to verify that the percentage has been configured as specified, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# show policy-map policy-map

Displays the configuration of all classes comprising 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.



Note The counters displayed for classes configured with bandwidth or priority after using the show policy-map interface command are updated only if congestion is present on the interface.


Configuration Examples

This section provides the following configuration examples:

Specifying the Bandwidth Percentage

Mixing the Units of Bandwidth for Non-Priority Traffic

Specifying the Bandwidth Percentage

The following example uses the priority percent command to specify a bandwidth percentage of 10 percent for the class called voice-percent. Then the bandwidth remaining percent command is used to specify a bandwidth percentage of 30 percent for the class called data1, and a bandwidth percentage of 20 percent for the class called data2:


policy-map policy1
 class voice-percent
       priority percent 10
 class data1
       bandwidth remaining percent 30
 class data2
       bandwidth remaining percent 20

As a result of this configuration, 10 percent of the interface bandwidth is guaranteed for the class called voice-percent. The classes called data1 and data2 get 30 percent and 20 percent of the remaining bandwidth, respectively.

Mixing the Units of Bandwidth for Non-Priority Traffic

If a particular unit (that is, kbps or percentages) is used when specifying the bandwidth for a specific class of non-priority traffic, the same bandwidth unit must be used when specifying the bandwidth for the other non-priority classes in that policy map. The bandwidth units within the same policy map must be identical. However, the unit for the priority command in the priority class can be different from the bandwidth unit of the non-priority class. The same configuration can contain multiple policy maps, however, which in turn can use different bandwidth units.

The following sample configuration contains three policy maps—policy1, policy2, and policy3. In the policy map called policy1 and the policy map called policy2, the bandwidth is specified by percentage. However, in the policy map called policy3, bandwidth is specified in kbps.


policy-map policy1
 class voice-percent
       priority percent 10
 class data1
       bandwidth percent 30
 class data2
       bandwidth percent 20
policy-map policy2
 class voice-percent
       priority percent 10
 class data1
       bandwidth remaining percent 30
 class data2
       bandwidth remaining percent 20
policy-map policy3
 class voice-percent
       priority percent 500
 class data1
       bandwidth 30
 class data2
       bandwidth 20

Command Reference

This section documents modified commands. All other commands used with this feature are documented in the Cisco IOS Quality of Service Solutions Command Reference, Release 12.2.

bandwidth (policy-map class)

priority

bandwidth (policy-map class)

To specify or modify the bandwidth allocated for a class belonging to a policy map, use the bandwidth command in policy-map class configuration mode. To remove the bandwidth specified for a class, use the no form of this command.

bandwidth {bandwidth-kbps | remaining percent percentage | percent percentage}

no bandwidth {bandwidth-kbps | remaining percent percentage | percent percentage}

Syntax Description

bandwidth-kbps

Amount of bandwidth, in number of kbps, to be assigned to the class. The amount of bandwidth varies according to the interface and platform in use.

remaining percent

Amount of guaranteed bandwidth, based on a relative percent of available bandwidth.

percentage

Used in conjunction with the remaining percent keyword, a percentage. The percentage can be a number from 1 to 100.

percent

Amount of guaranteed bandwidth, based on an absolute percent of available bandwidth.

percentage

Used in conjunction with the percent keyword, the percentage of the total available bandwidth to be set aside for the priority class. The percentage can be a number from 1 to 100.


Defaults

This command has no default behavior or values.

Command Modes

Policy-map class configuration

Command History

Release
Modification

12.0(5)T

This command was introduced.

12.0(5)XE

This command was incorporated into Cisco IOS Release 12.0(5)XE. Support for Versatile Interface Processor (VIP)-enabled Cisco 7500 series routers was added.

12.0(7)T

The percent keyword was added.

12.1(5)T

This command was integrated into Cisco IOS Release 12.1(5)T. Support for VIP-enabled Cisco 7500 series routers was added.

12.2(2)T

The remaining percent keyword was added.


Usage Guidelines

You should use the bandwidth command when you configure a policy map for a class defined by the class-map command. The bandwidth command specifies the bandwidth for traffic in that class. Class-based weighted fair queueing (CBWFQ) derives the weight for packets belonging to the class from the bandwidth allocated to the class. CBWFQ then uses the weight to ensure that the queue for the class is serviced fairly.

Besides specifying the amount of bandwidth in kbps, you can specify bandwidth as a percentage of either the available bandwidth or the total bandwidth. During periods of congestion, the classes are serviced in proportion to their configured bandwidth percentages. Available bandwidth is equal to the interface bandwidth minus the sum of all bandwidths reserved by the Resource Reservation Protocol (RSVP) feature, the IP RTP Priority feature, and the Low Latency Queueing (LLQ) feature. For a definition of total bandwidth and how it is calculated, see the "How These Commands Calculate Bandwidth" section earlier in this document.


Note It is important to remember that when the bandwidth remaining percent command is configured, hard bandwidth guarantees may not be provided and only relative bandwidths are assured. That is, class bandwidths are always proportional to the specified percentages of the interface bandwidth. When the link bandwidth is fixed, class bandwidth guarantees are in proportion to the configured percentages. If the link bandwidth is unknown or variable, class bandwidth guarantees in kbps cannot be computed.


The following restrictions apply to the bandwidth command:

The amount of bandwidth configured should be large enough to also accommodate Layer 2 overhead.

A policy map can have all the class bandwidths specified in kbps or all the class bandwidths specified in percentages but not a mix of both in the same class. However, the unit for the priority command in the priority class can be different from the bandwidth unit of the nonpriority class.

When the bandwidth percent command is configured, and a policy map containing class policy configurations is attached to the interface to stipulate the service policy for that interface, available bandwidth is assessed. If a policy map cannot be attached to a particular interface because of insufficient interface bandwidth, the policy is removed from all interfaces to which it was successfully attached. This restriction does not apply to the bandwidth remaining percent command.

For more information on bandwidth allocation, refer to the chapter "Congestion Management Overview" in the Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.2.

Examples

CBWFQ Bandwidth Guarantee Example

The following example illustrates how bandwidth is guaranteed when only CBWFQ is configured:

! The following commands create a policy map with two classes:
policy-map policy1
 class class1
  bandwidth percent 50
  exit

 class class2
  bandwidth percent 25
  exit
 end

!The following commands attach the policy to interface s3/2:
interface s3/2
 service output policy1
 end

The following output from the show policy-map command shows the configuration for the policy map called policy1:

Router# show policy-map policy1

  Policy Map policy1
    Class class1
      Weighted Fair Queueing
            Bandwidth 50 (%) Max Threshold 64 (packets)
    Class class2
      Weighted Fair Queueing
            Bandwidth 25 (%) Max Threshold 64 (packets)

The output from the show policy-map interface command shows that 50 percent of the interface bandwidth is guaranteed for the class called class1, and 25 percent is guaranteed for the class called class2. The output displays the amount of bandwidth as both a percentage and a number of kbps.


Router# show policy-map interface s3/2

 Serial3/2

  Service-policy output:policy1

    Class-map:class1 (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match:none
      Weighted Fair Queueing
        Output Queue:Conversation 265
        Bandwidth 50 (%)
        Bandwidth 772 (kbps) Max Threshold 64 (packets)
        (pkts matched/bytes matched) 0/0
        (depth/total drops/no-buffer drops) 0/0/0

    Class-map:class2 (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match:none
      Weighted Fair Queueing
        Output Queue:Conversation 266
        Bandwidth 25 (%)
        Bandwidth 386 (kbps) 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)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match:any

In this example, interface s3/2 has a total bandwidth of 1544 kbps. During periods of congestion, 50 percent (or 772 kbps) of the bandwidth is guaranteed to the class called class1, and 25 percent (or 386 kbps) of the link bandwidth is guaranteed to the class called class2.

CBWFQ and LLQ Bandwidth Allocation Example

The following output from the show policy-map command shows the configuration for a policy map called p1:

Router# show policy-map p1

  Policy Map p1
    Class voice
      Weighted Fair Queueing
            Strict Priority
            Bandwidth 500 (kbps) Burst 12500 (Bytes)
    Class class1
      Weighted Fair Queueing
            Bandwidth remaining 50 (%) Max Threshold 64 (packets)
    Class class2
      Weighted Fair Queueing
            Bandwidth remaining 25 (%) Max Threshold 64 (packets)

The following output from the show policy-map interface command on serial interface 3/2 shows that 500 kbps of bandwidth is guaranteed for the class called voice1. The classes called class1 and class2 receive 50 percent and 25 percent of the remaining bandwidth, respectively. Any unallocated bandwidth is divided proportionally among class1, class2, and any best-effort traffic classes.


Note Note that in this sample output (unlike many of the others earlier in this section) the bandwidth is displayed only as a percentage. Bandwidth expressed as a number of kbps is not displayed because the bandwidth remaining percent keyword was used with the bandwidth command. The bandwidth remaining percent keyword allows you to allocate bandwidth as a relative percentage of the total bandwidth available on the interface.


Router# show policy-map interface s3/2

 Serial3/2

  Service-policy output:p1

    Class-map:voice (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match:ip precedence 5
      Weighted Fair Queueing
        Strict Priority
        Output Queue:Conversation 264
        Bandwidth 500 (kbps) Burst 12500 (Bytes)
        (pkts matched/bytes matched) 0/0
        (total drops/bytes drops) 0/0

    Class-map:class1 (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match:none
      Weighted Fair Queueing
        Output Queue:Conversation 265
        Bandwidth remaining 50 (%) Max Threshold 64 (packets)
        (pkts matched/bytes matched) 0/0
        (depth/total drops/no-buffer drops) 0/0/0

    Class-map:class2 (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match:none
      Weighted Fair Queueing
        Output Queue:Conversation 266
        Bandwidth remaining 25 (%) 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)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match:any

Related Commands

Command
Description

class (policy-map)

Specifies the name of the class whose policy you want to create or change, and the default class (commonly known as the class-default class) before you configure its policy.

class class-default

Specifies the default class whose bandwidth is to be configured or modified.

class-map

Creates a class map to be used for matching packets to a specified class.

max-reserved-bandwidth

Changes the percent of interface bandwidth allocated for CBWFQ, LLQ, and IP RTP Priority.

policy-map

Creates or modifies a policy map that can be attached to one or more interfaces to specify a service policy.

queue-limit

Specifies or modifies the maximum number of packets the queue can hold for a class policy configured in a policy map.

random-detect (interface)

Enables WRED or DWRED.

random-detect exponential-weighting-
constant

Configures the WRED and DWRED exponential weight factor for the average queue size calculation.

random-detect precedence

Configures WRED and DWRED parameters for a particular IP precedence.

show policy-map

Displays the contents of a policy map, including the priority setting of a various policy maps.

show policy-map interface

Displays the contents of a policy map, including the priority setting of a specific interface or PVC.


priority

To give priority to a class of traffic belonging to a policy map, use the priority command in policy-map class configuration mode. To remove a previously specified priority for a class, use the no form of this command.

priority {bandwidth-kbps | percent percentage} [burst]

no priority {bandwidth-kbps | percent percentage} [burst]

Syntax Description

bandwidth-kbps

Guaranteed allowed bandwidth, in kbps, for the priority traffic. Beyond the guaranteed bandwidth, the priority traffic will be dropped in the event of congestion to ensure that the nonpriority traffic is not starved.

percent

Specifies that the amount of guaranteed bandwidth will be specified by the percent of available bandwidth.

percentage

Used in conjunction with the percent keyword, specifies the percentage of the total available bandwidth to be set aside for the priority class. The percentage can be a number from 1 to 100.

burst

(Optional) Specifies the burst size in bytes. The burst size configures the network to accommodate temporary bursts of traffic. The default burst value, which is computed as 200 milliseconds of traffic at the configured bandwidth rate, is used when the burst argument is not specified. The range of the burst is from 32 to 2,000,000 bytes.


Defaults

This command has no default behavior or values.

Command Modes

Policy-map class configuration

Command History

Release
Modification

12.0(7)T

This command was introduced.

12.0(5)XE5

This command was introduced for the Versatile Interface Processor (VIP) as part of the Distributed Low Latency Queueing (Low Latency Queueing for the VIP) feature.

12.0(9)S

This command was introduced for the VIP as part of the Distributed Low Latency Queueing (Low Latency Queueing for the VIP) feature.

12.1(2)E

The burst argument was added.

12.1(3)T

The burst argument was added.

12.1(5)T

This command was introduced for the VIP as part of the Distributed Low Latency Queueing (Low Latency Queueing for the VIP) feature.

12.2(2)T

The percent keyword and the percentage argument were added.


Usage Guidelines

This command configures low latency queueing (LLQ), providing strict priority queueing (PQ) for class-based weighted fair queueing (CBWFQ). Strict PQ allows delay-sensitive data such as voice to be dequeued and sent before packets in other queues are dequeued.

The priority command allows you to set up classes based on a variety of criteria (not just User Datagram Ports (UDP) ports) and assign priority to them, and is available for use on serial interfaces and ATM permanent virtual circuits (PVCs). A similar command, the ip rtp priority command, allows you to stipulate priority flows based only on UDP port numbers and is not available for ATM PVCs.

When the device is not congested, the priority class traffic is allowed to exceed its allocated bandwidth. When the device is congested, the priority class traffic above the allocated bandwidth is discarded.

The bandwidth and priority commands cannot be used in the same class, within the same policy map. These commands can be used together in the same policy map, however.

Within a policy map, you can give one or more classes priority status. When multiple classes within a single policy map are configured as priority classes, all traffic from these classes is queued to the same, single, priority queue.

When the policy map containing class policy configurations is attached to the interface to stipulate the service policy for that interface, available bandwidth is assessed. If a policy map cannot be attached to a particular interface because of insufficient interface bandwidth, then the policy is removed from all interfaces to which it was successfully attached.

For more information on bandwidth allocation, refer to the chapter "Congestion Management Overview" in the Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.2.

Examples

The following example configures PQ with a guaranteed bandwidth of 50 kbps and a one-time allowable burst size of 60 bytes for the policy map called policy1:

router(config)# policy-map policy1
router(config-pmap)# class voice
router(config-pmap-c)# priority 50 60

In the following example, 10 percent of the available bandwidth is reserved for the class called voice on interfaces to which the policy map called policy1 has been attached:

router(config)# policy-map policy1
router(config-pmap)# class voice
router(config-pmap-c)# priority percent 10

Related Commands

Command
Description

bandwidth

Specifies or modifies the bandwidth allocated for a class belonging to a policy map.

ip rtp priority

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

ip rtp reserve

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

max-reserved-bandwidth

Changes the percent of interface bandwidth allocated for CBWFQ, LLQ, and IP RTP Priority.

show interfaces fair-queue

Displays information and statistics about WFQ for a VIP-based interface.

show policy-map

Displays the contents of a policy map, including the priority setting of a various policy maps.

show policy-map interface

Displays the contents of a policy map, including the priority setting of a specific interface or PVC.

show queue

Displays the contents of packets inside a queue for a particular interface or VC.