cc/td/doc/product/aggr/10000
hometocprevnextglossaryfeedbacksearchhelp
PDF

Table of Contents

Configuring Quality of Service

Configuring Quality of Service

This chapter explains how to configure the following types of Quality of Service (QoS) on the Cisco 10000 Edge Services Router (ESR):

In addition, the Cisco 10000 supports QoS policy propagation through the Border Gateway Protocol (QPPB). For a QPPB configuration example, see "Configuration Examples." For information about configuring QPPBs, refer to the online Cisco 10000 ESR Useful Links document.

General QoS Configuration Procedure

You can configure WRED, CAR, and other qualities of service by performing the following tasks:

    1. Create a QoS boilerplate that defines the criteria for prioritizing traffic.

    2. Apply the boilerplate to an interface.

Figure 9-1 shows an overview of the QoS process.

Creating a QoS Boilerplate

This section provides the information you need to create a QoS boilerplate. To create a QoS boilerplate, perform two procedures:

    1. Create a class map—The class map tells the Cisco 10000 ESR how to recognize the packets that are subject to QoS.

    2. Create a policy map—The policy map lists QoS services to be applied to packets described by one or more class maps.

Creating a Class Map

Use the following procedure to create a class map:


Step 1   Assign a name to your class map by entering the class-map name command. The following example creates a class map named mink.

Router(config)# class-map mink

Router(config-cmap)#
 

As the example shows, after you enter the class-map name command, you enter class map configuration mode (config-cmap).


Note   Some IOS documents refer to the QoS configuration modes as the modular CLI.


Figure 9-1:
QoS Process


Step 2   Describe the characteristics of the packets that are subject to QoS by entering the match command. In the following example, the packet is described as being associated to access group 10 and having the IP precedence bit set to 1.

Router(config-cmap)# match access-group 10 

Router(config-cmap)# match ip precedence 1

 

Step 3   Exit class map configuration mode.

Router(config-cmap)# exit

Router(config)
 

As a result of the creation of a class map, the router can recognize packets that are subject to QoS. You must now tell the router the action to take on those packets.

Creating a Policy Map

To create a policy map, use this procedure:


Step 1   Assign a name to your policy map by entering the policy-map name command. In the following example, a policy map named lynx is created:

Router(config)# policy-map lynx

Router(config-pmap)#
 

As the example shows, after you enter the policy-map name command, you enter policy map configuration mode (config-pmap).

Step 2   Associate the policy map with a class map.

Router(config-pmap)# class mink

Router(config-pmap-c)#
 

As the example shows, after you enter the class name command, you enter the policy map class configuration mode (config-pmap-c).

Step 3   Describe the QoS actions you want the router to perform when the router encounters a packet that has the characteristics described by the class map. In this example, the router executes default behavior for the police command. (See the "Specifying a Committed Access Rate" section for details.)

Router(config-pmap-c)# police 80000

 

Step 4   Exit policy map configuration mode.

Router(config-pmap-c)# exit

Router(config-pmap)# exit

Router(config)#
 

You have completed the creation of a QoS boilerplate, which can be assigned to an interface.

Assigning a QoS Boilerplate to an Interface

Use the service-policy command to assign a QoS boilerplate to an interface. In the following example, the policy map lynx is assigned to traffic that enters the gigabit Ethernet interface of a Cisco 10000 ESR:

Router(config)# interface gigabitethernet 1/0/0

Router(config-if)# service-policy input lynx

Class Map Commands

This section describes commands for creating and modifying class maps.

Creating a Class Map

You can create a class map and enter class-map configuration mode by entering the class-map command.

class-map [match-any | match-all] class-map-name

[no] class-map class-map-name

 

Where:

The default value is match-all.

Use the no class-map command to delete a class map.

Cisco IOS software supports a maximum of 255 unique class maps.

In the following example, a class-map named mink is created. In the example, the default value of match-all is used.

Router(config)# class-map mink

Router(config-cmap)# 

Matching Attributes

Use the match command to define the characteristics of the packets that belong to the class map.

match match_statement

[no] match match_statement

 

Where match_statement is one of the following:

Use the no form of this command to disable the match attributes.

Enter one or more match commands to construct your mapping rules. Each packet is compared to the criteria specified by the match commands to determine if the packet contains the attribute you specify.

The Cisco 10000 ESR supports a maximum of 16 match statements in a class map.

In the following example, a class map is created that tells the router to look for packets that belong to access group 1 and have an IP precedence value of 3 or 7:

Router(config)# class-map mink

Router(config-cmap)# match access-group 1

Router(config-cmap)# match ip precedence 3 7

Policy Map Commands

This section describes commands for creating and modifying policy maps.

Creating a Policy Map

You can create a policy map and enter policy-map configuration mode by entering the policy-map command from global configuration mode.

policy-map policy-map-name

[no] policy-map policy-map-name

 

Where policy-map-name is any word or number.

Use the no form of the command to remove a policy map.

In the following example, a policy map named lynx is created:

Router(config)# policy-map lynx

Router(config-pmap)#

Assigning a Class to a Policy Map

Use the class class-map-name command from policy-map configuration mode to assign a class map to a policy map.

class class-map-name

[no] class class-map-name

 

Where class-map-name is the name assigned to the class map.

Use the no form of the command to remove a class.

You can use a special class map name called class-default on a given interface to do the following:

After you enter the class class-map-name command, you enter policy-map class configuration mode, in which you can enter QoS policies.


Tips A packet is processed by a policy map as soon as a match is found. When you assign class names to a policy map, assign the first name to the class that is most likely to be used. This can improve QoS performance.

In the following example, the class map named mink is assigned to the policy map named lynx:

Router(config)# policy-map lynx

Router(config-pmap)# class mink

Router(config-pmap-c)#
 

In the following example, the default class map is assigned to the policy map named lynx:

Router(config)# policy-map lynx

Router(config-pmap)# class class-default

Router(config-pmap-c)#

Specifying a Committed Access Rate

To specify a committed access rate (CAR), enter the police command while you are in policy-map class configuration mode. You can use this command to control low-priority traffic, so that an interface has more bandwidth for high-priority traffic or to enforce a specific rate on an interface.

police bps [normal-burst | max-burst | conform-action action | 
exceed-action action]
[no] police [normal-burst | max-burst | conform-action action | 
exceed-action action]
 

Where:


Table 9-1: CAR Actions
Action Description

drop

Drop all matched traffic.

set-dscp-transmit value

Mark unmatched traffic with a new dscp value. Value is in the range 0 to 63.

set-prec-transmit value

Mark matched traffic with a new IP precedence value. Value is in the range 0 to 7.

set-qos-transmit value

Mark matched traffic with a new QoS value. Value is in the range 0 to 99.

transmit

Forward traffic.

If you enter only police bps at the command line, the default behavior is that traffic that conforms to the bps value is transmitted and traffic that exceeds the bps value is dropped.

Use the no form of the command to disable policing.

In the following example, CAR is assigned to the class named mink:

Router(config)# policy-map lynx

Router(config-pmap)# class mink

Router(config-pmap-c)# police 720000 90000 90000 conform-action 
transmit exceed-action drop

Enabling Weighted Random Early Detection

Use the random-detect command to enable WRED, which randomly discards packets based on IP precedence settings.


Note   On the OC-12 ATM line card, you can only use WRED on the main interface or on variable bit rate (VBR) PVCs. You cannot use WRED on PVCs configured for an unspecified bit rate (UBR).

random-detect [ewc value | prec prec-value min-value max-value 
mark-denom]
[no] random-detect [ewc value | prec prec-value min-value max-value 
mark-denom]
 

Where:


Tips In most cases, the benefits of WRED can be best realized if you use the random-detect keyword without arguments.


Table 9-2: Precedence Values
Value
Description

precedence

A value of 0 to 7, where 0 typically represents low priority traffic that can be aggressively managed (dropped) and 7represents high priority traffic.

min-value

Specifies a minimum threshold. Enter a value in the range1to 32768.

max-value

Specifies a maximum threshold. Enter a value in the range1to 32768.

mark-denom

Specifies drop probability. Enter a value in the range 1 to 65535. For example, if you set this value to 256, 1 out of 256 packets is dropped when the average queue is at the maximum threshold.

Use the no form of the command to disable WRED.


Note   WRED can be assigned only to the class class-default. WRED affects all packets that pass through the interface to which the service policy is attached.

The following example shows the implementation of WRED:

Router(config)# policy-map lynx

Router(config-pmap)# class class-default

Router(config-pmap-c)# random-detect

Specifying a Queue Limit

This section describes how to specify the number of packets held by the queue. Increase the queue limit to reduce the number of packets dropped due to temporary congestion on the assigned interface. Queue limit operates on the default tail-drop method of congestion management.You cannot use the queue limit command on ATM PVCs configured for unspecified bit rate (UBR).


Note   On the OC-12 ATM line card, you can only apply queue limits to the main interface or on variable bit rate (VBR) PVCs. You cannot apply queue limits to PVCs configured for unspecified bit rate (UBR).

queue-limit packets

[no] queue-limit =
 

Where packets is a number of packets from 1 to 32768.

Use the no form of the command to return the queue limit to its default value.

Use the show interface command to find out the current queue limit. Setting the queue limit to a high value might reduce the number of packet buffers available to other interfaces.


Note   Only the default class supports queue-limit.

In the following example, the queue limit is set to 500 packets:

Router(config)# policy-map lynx

Router(config-pmap)# class class-default

Router(config-pmap-c)# queue-limit 500

Applying Set Values

The set command allows you to specify a bit value that can be used by other routers to manage QoS. You can enable a set by entering the set command.

set {ip {dscp value | precedence value} | qos-group value | atm-clp}
[no] set {ip {dscp value | precedence value} | qos-group value}
 

Where:

Use the no form of the command to return the set values to their defaults.

In the following example, bit values are set for IP precedence and a QoS group:

Router(config)# policy-map lynx

Router(config-pmap)# class mink

Router(config-pmap-c)# set ip precedence 7

Router(config-pmap-c)# set qos-group 8

Service-Policy Command

To associate a policy map with an interface, use the service-policy command.

service-policy [input | output] name

[no] service-policy [input | output] name

 

Where:

Use the no form of the command to remove a service policy from an interface.

No more than two service policies can be associated with an interface, one for input and one for output.

On ATM cards, you can apply the policy map to the main interface and to individual PVCs. The policy map assigned to a PVC takes precedence over one assigned to the main interface.

In the following example, the policy map lynx is applied to the input queue of a gigabit Ethernet card:

Router(config)# interface gigabitethernet 1/0/0

Router(config-if)# service-policy input lynx

 

In the following example, a policy map is applied to an ATM PVC:

Router(config)# interface atm 3/0/0

Router(config-if)# pvc 0/101

Router(config-if-atm-vc)# service-policy input lynx

 

Show Commands

This section lists show commands you can use to get information on class maps and policy maps.

show policy map

This command displays the policy maps and lists information about the configurations. For example:

Router# show policy-map

 Policy Map lynx
  class  mink
   set qos-group 8
 Policy Map jaguar
  class  class-default
   random-detect
   random-detect exponential-weighting-constant 9
   random-detect precedence 0 16 32 10
   random-detect precedence 1 18 32 10
   random-detect precedence 2 20 32 10
   random-detect precedence 3 22 32 10
   random-detect precedence 4 24 32 10
   random-detect precedence 5 26 32 10
   random-detect precedence 6 28 32 10
   random-detect precedence 7 30 32 10

show policy-map interface

This command generates detailed information and statistics about a policy map.

Router# show policy-map interface serial 2/0/0/5:4

 Serial2/0/0/5:4 
  service-policy input: lynx
    class-map: mink (match-all)
      0 packets, 0 bytes
      5 minute rate 0 bps
      match: access-group 3
      set:
        qos-group 8

show class-map

This command lists the class maps and displays their match statements. For example:

Router# show class-map

 Class Map match-all mink (id 3)
   Match access-group  3
 
 Class Map match-all pink (id 4)
   Match access-group  23
   Match qos-group  32
 
 Class Map match-any class-default (id 0)
   Match any
 Class Map match-all customer_pri (id 2)
 
 

hometocprevnextglossaryfeedbacksearchhelp
Posted: Tue Oct 3 09:48:47 PDT 2000
Copyright 1989-2000©Cisco Systems Inc.