Classification, Marking, and Policing


Information About Classification, Marking, and Policing Policies

How to Configure Classification, Marking, and Policing Policies


NoteFor complete syntax and usage information for the commands used in this chapter, see these publications:

http://www.cisco.com/en/US/products/ps11845/prod_command_reference_list.html

Cisco IOS Release 15.0SY supports only Ethernet interfaces. Cisco IOS Release 15.0SY does not support any WAN features or commands.



Tip For additional information about Cisco Catalyst 6500 Series Switches (including configuration examples and troubleshooting information), see the documents listed on this page:

http://www.cisco.com/en/US/products/hw/switches/ps708/tsd_products_support_series_home.html

Participate in the Technical Documentation Ideas forum


Information About Classification, Marking, and Policing Policies

Classification, Marking, and Policing Policy Overview

Traffic Classification

Traffic Marking

Information about Policing

Classification, Marking, and Policing Policy Overview

The classification, marking, and policing configuration is defined by the policies attached to an interface. Classification, marking, and policing are unaffected by any QoS commands configured on ingress interfaces or by queueing policies.

Traffic Classification

Traffic classification allows the network to recognize traffic as it falls into classes that you have configured. Network traffic must be classified to apply specific QoS to it.

Classification can be inclusive (for example, all of the traffic in a Layer 2 VLAN or all of the traffic passing through an interface) or classification can be very specific (for example, you can use a class map with match commands that recognize specific aspects of the traffic).

You can classify and apply QoS (for example, marking) and then, on another interface or network device, classify again based on the marked value and apply other QoS.

The PFC and any DFCs supports a single match command in class-map match-all class maps, except that the match protocol command can be configured in a class map with the match dscp or match precedence command.

The PFC and any DFCs supports multiple match commands in class-map match-any class maps.


Note PFC QoS supports a maximum of 9 commands that match DSCP or IP precedence values in class maps and ACLs.


Class maps can use the match commands listed in Table 61-1 to configure a traffic class that is based on the match criteria.

Table 61-1 Traffic Classification Class Map match Commands and Match Criteria 

match Commands
Direction
Match Criteria

match access-group {access_list_number | name access_list_name}

Both

Access control list (ACL).

Note Use ACLs to match the following:
—CoS value
—VLAN ID
—Packet length

match any

Both

Any match criteria.

match cos

Ingress

CoS value.

match discard-class

Both

Discard class value.

match dscp

Note The match protocol command can be configured in a class map with the match dscp command.

Both

DSCP value.

match l2 miss

Ingress

Layer 2 traffic flooded in a VLAN because it is addressed to a currently unlearned MAC-Layer destination address.

match mpls experimental topmost

Both

MPLS EXP value in the topmost label.

match precedence

Note The match protocol command can be configured in a class map with the match precedence command.

Both

IP precedence values.

match protocol {arp | ip | ipv6}

Note The match protocol command can be configured in a class map with the match dscp or match precedence command.

Both

Protocol.

match qos-group

Both

QoS group ID.


The PFC and any DFCs supports these ACL types for use with the match access group command:

Protocol
Numbered ACLs
Extended ACLs
Named ACLs

IPv4

Yes:
1 to 99
1300 to 1999

Yes:
100 to 199
2000 to 2699

Yes

IPv6

Not applicable

Yes (named)

Yes

MAC Layer

Not applicable

Not applicable

Yes

ARP

Not applicable

Not applicable

Yes


Traffic Marking


Note Policing can also mark traffic.


Marking network traffic allows you to set or modify the attributes for a specific class of traffic, which allows class-based QoS features to recognize traffic classes based on the marking. There are two traffic marking methods:

You can apply a configured value with a policy-map set command. Table 61-2 lists the available policy-map set commands and the corresponding attribute.

Table 61-2 Configured-Value Policy-Map Commands 

set Commands
Traffic Attribute
Ingress?
Egress?

set cos cos_value

Layer 2 CoS value

Y

Y

set dscp dscp_value

Layer 3 DSCP value

Y

Y

set precedence precedence_value

Layer 3 IP precedence value

Y

Y

set dscp tunnel dscp_value

Layer 3 DSCP value in the tunnel header of a Generic Routing Encapsulation (GRE) tunneled packet

Y

Y

set discard-class discard_value

Discard-class value

Y

Y

set qos-group group_id

QoS group ID

Y

Y

set mpls experimental imposition exp_value

MPLS experimental (EXP) field on all imposed label entries

Y

Y

set mpls experimental topmost exp_value

MPLS experimental (EXP) field on all topmost label entries

Y

Y


You can apply a map to received values with a policy-map set command. Table 61-3 lists the available policy-map set commands and the corresponding attribute.

Table 61-3 Mapped-Value Policy-Map Commands 

set Commands
Map Name
Traffic Attribute
Ingress?
Egress?

set dscp cos

dscp-cos-map

Layer 3 DSCP value

Y

N

set dscp precedence

dscp-precedence-map

Layer 3 DSCP value

Y

N


Information about Policing

Overview of Policing

Per-Interface Policers

Aggregate Policers

Microflow Policers

Overview of Policing

You can configure policers to do the following:

Mark traffic

Limit bandwidth utilization and mark traffic

Policers can be applied to ingress and egress interfaces. Ingress policing is applied first, followed by egress policing.

Policing can rate limit incoming and outgoing traffic so that it adheres to the traffic forwarding rules defined by the QoS configuration. Sometimes these configured rules for how traffic should be forwarded through the system are referred to as a contract. If the traffic does not adhere to this contract, it is marked down to a lower DSCP value or dropped.

Policing does not buffer out-of-profile packets. As a result, policing does not affect transmission delay. In contrast, traffic shaping works by buffering out-of-profile traffic, which moderates traffic bursts. (PFC QoS does not support shaping.)

The PFC and DFCs support ingress and egress PFC QoS, which includes ingress and egress policing. Policers act on ingress traffic per-port or per-VLAN. For egress traffic, the policers act per-VLAN only.

Policing uses the Layer 2 frame size. You specify the bandwidth utilization limit as a committed information rate (CIR). You can also specify a higher peak information rate (PIR). Packets that exceed a rate are "out of profile" or "nonconforming."

In each policer, you specify if out-of-profile packets are to be dropped or to have a new DSCP value applied to them (applying a new DSCP value is called "markdown"). Because out-of-profile packets do not retain their original priority, they are not counted as part of the bandwidth consumed by in-profile packets.

If you configure a PIR, the PIR out-of-profile action cannot be less severe than the CIR out-of-profile action. For example, if the CIR out-of-profile action is to mark down the traffic, then the PIR out-of-profile action cannot be to transmit the traffic.

For all policers, PFC QoS uses a configurable global table that maps the internal DSCP value to a marked-down DSCP value. When markdown occurs, PFC QoS gets the marked-down DSCP value from the table. You cannot specify marked-down DSCP values in individual policers.


NoteBy default, the markdown table is configured so that no markdown occurs: the marked-down DSCP values are equal to the original DSCP values. To enable markdown, configure the table appropriately for your network.

When you apply both ingress policing and egress policing to the same traffic, both the input policy and the output policy must either mark down traffic or drop traffic. PFC QoS does not support ingress markdown with egress drop or ingress drop with egress markdown.


Per-Interface Policers

PFC QoS applies the bandwidth limits specified in a per-interface policer to matched traffic. For example, if you configure a per-interface policer to allow 1 Mbps for all matched TFTP traffic, it limits the TFTP traffic to 1 Mbps.

You define per-interface policers in a policy map class with the police command. If you attach per-interface policers to multiple ingress ports, each one polices the matched traffic on each ingress port separately.

Aggregate Policers

Aggregate Policer Overview

Distributed Aggregate Policers

Nondistributed Aggregate Policers

Aggregate Policer Overview

PFC QoS applies the bandwidth limits specified in an aggregate policer cumulatively to all flows in matched traffic. For example, if you configure an aggregate policer to allow 1 Mbps for all TFTP traffic flows on VLAN 1 and VLAN 3, it limits the TFTP traffic for all flows combined on VLAN 1 and VLAN 3 to 1 Mbps.

You create named aggregate policers with the platform qos aggregate-policer command. If you attach a named aggregate policer to multiple ingress ports, it polices the matched traffic from all the ingress ports to which it is attached.

You can configure up to 1,023 aggregate policers; the configured aggregate policers can be applied to interfaces to configure up to 16,384 policer instances.

Distributed Aggregate Policers

When distributed aggregate policing is enabled, aggregate policers synchronize policing on interfaces supported by different DFC-equipped switching modules or the PFC. Distributed aggregate policing applies to the first 4,096 aggregate policer instances of these types:

Aggregate policers applied to VLAN, tunnel, or port channel interfaces.

Shared aggregate policers.

Aggregate policers in egress policies.

With distributed aggregate policing enabled, aggregate policers in excess of the hardware-supported capacity function as nondistributed aggregate policers.

Nondistributed Aggregate Policers

Nondistributed aggregate policing works independently on each DFC-equipped switching module and independently on the PFC, which supports any non-DFC-equipped switching modules. Aggregate policing does not combine flow statistics from different DFC-equipped switching modules. You can display aggregate policing statistics for each DFC-equipped switching module and for the PFC and any non-DFC-equipped switching modules supported by the PFC.

Each PFC or DFC polices independently, which might affect QoS features being applied to traffic that is distributed across the PFC and any DFCs. Examples of these QoS feature are:

Policers applied to a port channel interface.

Policers applied to a switched virtual interface.

Egress policers applied to either a Layer 3 interface or an SVI.

Policers affected by this restriction deliver an aggregate rate that is the sum of all the independent policing rates.

Microflow Policers

PFC QoS applies the bandwidth limit specified in a microflow policer separately to each flow in matched traffic. For example, if you configure a microflow policer to limit the TFTP traffic to 1 Mbps on VLAN 1 and VLAN 3, then 1 Mbps is allowed for each flow in VLAN 1 and 1 Mbps for each flow in VLAN 3. In other words, if there are three flows in VLAN 1 and four flows in VLAN 3, the microflow policer allows each of these flows 1 Mbps.

You can configure PFC QoS to apply the bandwidth limits in a microflow policer as follows:

You can create microflow policers with up to 127 different rate and burst parameter combinations.

You create microflow policers in a policy map class with the police flow command.

You can configure a microflow policer to use only source addresses, which applies the microflow policer to all traffic from a source address regardless of the destination addresses.

You can configure a microflow policer to use only destination addresses, which applies the microflow policer to all traffic to a destination address regardless of the source addresses.

For MAC-Layer microflow policing, PFC QoS considers MAC-Layer traffic with the same protocol and the same source and destination MAC-Layer addresses to be part of the same flow, including traffic with different EtherTypes. You can configure MAC ACLs to filter IPX traffic.

You cannot apply microflow policing to ARP traffic.

With releases earlier than Release 15.1(1)SY1, policies attached with the output keyword do not support microflow policing.

You can include both an aggregate policer and a microflow policer in each policy map class to police a flow based on both its own bandwidth utilization and on its bandwidth utilization combined with that of other flows.


Note If traffic is both aggregate and microflow policed, then the aggregate and microflow policers must both be in the same policy-map class and each must use the same conform-action and exceed-action keyword option: drop, set-dscp-transmit, set-prec-transmit, or transmit.


For example, you could create a microflow policer with a bandwidth limit suitable for individuals in a group, and you could create a named aggregate policer with bandwidth limits suitable for the group as a whole. You could include both policers in policy map classes that match the group's traffic. The combination would affect individual flows separately and the group aggregately.

For policy map classes that include both an aggregate and a microflow policer, PFC QoS responds to an out-of-profile status from either policer and, as specified by the policer, applies a new DSCP value or drops the packet. If both policers return an out-of-profile status, then if either policer specifies that the packet is to be dropped, it is dropped; otherwise, PFC QoS applies a marked-down DSCP value.

How to Configure Classification, Marking, and Policing Policies

Enabling Distributed Aggregate Policing

Configuring a Class Map

Configuring a Policy Map

Attaching a Policy Map to an Interface

Configuring Dynamic Per-Session Attachment of a Policy Map

Enabling Distributed Aggregate Policing

To enable distributed aggregate policing, perform this task:

Command
Purpose

Router(config)# platform qos police distributed {strict | loose}

Enables distributed aggregate policing.

The strict keyword prevents application of aggregate policers to interfaces that would exceed available hardware acceleration resources.

The loose keyword allows application of aggregate policers as nondistributed to interfaces that would exceed available hardware acceleration resources.


This example shows how to enable strict distributed aggregate policing globally:

Router(config)# platform qos police distributed strict 
Router(config)#
 
   

This example shows how to disable distributed aggregate policing globally:

Router(config)# no platform qos police distributed 
Router(config)#

Configuring a Class Map

Creating a Class Map

Configuring Filtering in a Class Map

Verifying Class Map Configuration

Creating a Class Map

To create a class map, perform this task:

Command
Purpose

Router(config)# class-map [match-all | match-any] class_name

Creates a class map.

Note If you do not enter a match keyword, the default is match-all.


Configuring Filtering in a Class Map

To configure filtering in a class map, enter match commands as described in Table 61-1, "Traffic Classification Class Map match Commands and Match Criteria".

Verifying Class Map Configuration

To verify class map configuration, perform this task:

 
Command
Purpose

Step 1 

Router (config-cmap)# end

Exits configuration mode.

Step 2 

Router# show class-map class_name

Verifies the configuration.

This example shows how to create a class map named ipp5 and how to configure filtering to match traffic with IP precedence 5:

Router# configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)# class-map ipp5 
Router(config-cmap)# match ip precedence 5 
Router(config-cmap)# end 
 
   

This example shows how to verify the configuration:

Router# show class-map ipp5 
 Class Map match-all ipp5 (id 1)
   Match ip precedence 5

Configuring a Policy Map

Policy Map Overview

Creating a Policy Map

Policy Map Class Configuration Guidelines and Restrictions

Creating a Policy Map Class and Configuring Filtering

Configuring Policy Map Class Actions

Verifying Policy Map Configuration

Policy Map Overview

Policy maps can contain one or more policy map classes, each with different policy map commands.

Configure a separate policy map class in the policy map for each type of traffic that an interface receives. Put all commands for each type of traffic in the same policy map class. PFC QoS does not attempt to apply commands from more than one policy map class to matched traffic.

Creating a Policy Map

To create a policy map, perform this task:

Command
Purpose

Router(config)# policy-map policy_name

Creates a policy map.


Policy Map Class Configuration Guidelines and Restrictions

PFC QoS does not support the class class_name destination-address, class class_name input-interface, class class_name qos-group, and class class_name source-address policy map commands.

PFC QoS supports the class default policy map command.

PFC QoS does not detect the use of unsupported commands until you attach a policy map to an interface.

PFC QoS does not support multiple ACL matches per class.

Creating a Policy Map Class and Configuring Filtering

To create a policy map class and configure it to filter with a class map, perform this task:

Command
Purpose

Router(config-pmap)# class class_name

Creates a policy map class and configures it to filter with a class map.

Note PFC QoS supports class maps that contain a single match command.


Configuring Policy Map Class Actions

Policy Map Class Action Restrictions

Configuring Policy Map Class Marking

Configuring the Policy Map Class Trust State

Configuring Policy Map Class Policing

Policy Map Class Action Restrictions

Policy maps can contain one or more policy map classes.

Put all commands for each type of traffic in the same policy map class.

PFC QoS only applies commands from one policy map class to traffic. After traffic has matched the filtering in one policy map class, QoS does not apply the filtering configured in other policy map classes.

For hardware-switched traffic, PFC QoS does not support the bandwidth, priority, queue-limit, or random-detect policy map class commands. You can configure these commands because they can be used for software-switched traffic.

PFC QoS does not support the set qos-group policy map class commands.

PFC QoS supports the set ip dscp and set ip precedence policy map class commands for IPv4 traffic.

You can use the set ip dscp and set ip precedence commands on non-IP traffic to mark the internal DSCP value, which is the basis of the egress Layer 2 CoS value.

The set ip dscp and set ip precedence commands are saved in the configuration file as set dscp and set precedence commands.

PFC QoS supports the set dscp and set precedence policy map class commands for IPv4 and IPv6 traffic.

You cannot do all three of the following in a policy map class:

Mark traffic with the set commands

Configure the trust state

Configure policing

In a policy map class, you can either mark traffic with the set commands or do one or both of the following:

Configure the trust state

Configure policing


Note When configure policing, you can mark traffic with policing keywords.


Configuring Policy Map Class Marking

PFC QoS supports policy map class marking for all traffic with set policy map class commands. To configure policy map class marking, perform this task:

Command
Purpose

Router(config-pmap-c)# set {dscp dscp_value | precedence ip_precedence_value}

Configures the policy map class to mark matched traffic with the configured DSCP or IP precedence value.


Configuring the Policy Map Class Trust State


Note You cannot attach a policy map that configures a trust state with the service-policy output command.


To configure the policy map class trust state, perform this task:

Command
Purpose

Router(config-pmap-c)# trust {cos | dscp | ip-precedence}

Configures the policy map class trust state, which selects the value that PFC QoS uses as the source of the initial internal DSCP value.


When configuring the policy map class trust state, note the following information:

Enter the no trust command to use the trust state configured on the ingress port (this is the default).

With the cos keyword, PFC QoS sets the internal DSCP value from received or ingress port CoS.

With the dscp keyword, PFC QoS uses received DSCP.

With the ip-precedence keyword, PFC QoS sets DSCP from received IP precedence.

Configuring Policy Map Class Policing

Policy Map Class Policing Restrictions

Using a Named Aggregate Policer

Configuring a Per-Interface Policer

Configuring a Per-Interface Microflow Policer

Policy Map Class Policing Restrictions

PFC QoS does not support the set-qos-transmit policer keyword.

PFC QoS does not support the set-dscp-transmit or set-prec-transmit keywords as arguments to the exceed-action keyword.

PFC QoS does not detect the use of unsupported keywords until you attach a policy map to an interface.

Policing with the conform-action transmit keywords sets the port trust state of matched traffic to trust DSCP or to the trust state configured by a trust command in the policy map class.

Using a Named Aggregate Policer

To use a named aggregate policer, perform this task:

Command
Purpose

Router(config-pmap-c)# police aggregate aggregate_name

Configures the policy map class to use a previously defined named aggregate policer.


When distributed aggregate policing is enabled, note the following information:

Distributed aggregate policers synchronize policing on interfaces supported by different DFC-equipped switching modules or the PFC. Distributed aggregate policing applies to the first 4,096 aggregate policers of these types:

—Aggregate policers applied to VLAN, tunnel, or port channel interfaces.

—Shared aggregate policers.

—Aggregate policers in egress policies.

Distributed aggregate policers in excess of the hardware-supported capacity function as nondistributed aggregate policers.

When distributed aggregate policing is not enabled, note the following information:

Aggregate policing works independently on each DFC-equipped switching module and independently on the PFC, which supports any non-DFC-equipped switching modules. Aggregate policing does not combine flow statistics from different DFC-equipped switching modules. You can display aggregate policing statistics for each DFC-equipped switching module and for the PFC and any non-DFC-equipped switching modules supported by the PFC.

Each PFC or DFC polices independently, which might affect QoS features being applied to traffic that is distributed across the PFC and any DFCs. Examples of these QoS feature are:

—Policers applied to a port channel interface.

—Policers applied to a switched virtual interface.

—Egress policers applied to either a Layer 3 interface or an SVI.

Policers affected by this restriction deliver an aggregate rate that is the sum of all the independent policing rates.

Configuring a Per-Interface Policer

To configure a per-interface policer, perform this task:

Command
Purpose

Router(config-pmap-c)# police bits_per_second normal_burst_bytes [maximum_burst_bytes] [pir peak_rate_bps] [[[conform-action {drop | set-dscp-transmit dscp_value | set-prec-transmit ip_precedence_value | transmit}] exceed-action {drop | policed-dscp | transmit}] violate-action {drop | policed-dscp | transmit}]

Creates a per-interface policer and configures the policy-map class to use it.


When you apply both ingress policing and egress policing to the same traffic, both the input policy and the output policy must either mark down traffic or drop traffic. PFC QoS does not support ingress markdown with egress drop or ingress drop with egress markdown.

Policing uses the Layer 2 frame size.

See the "Restrictions for PFC QoS" section for information about rate and burst size granularity.

The valid range of values for the CIR bits_per_second parameter is as follows:

Minimum—32 kilobits per second, entered as 32000

Maximum—128 gigabits per second, entered as 128000000000

The normal_burst_bytes parameter sets the CIR token bucket size.

The maximum_burst_bytes parameter sets the PIR token bucket size.

When configuring the size of a token bucket, note the following information:

Because the token bucket must be large enough to hold at least one frame, configure the token bucket size to be larger than the maximum size of the traffic being policed.

For TCP traffic, configure the token bucket size as a multiple of the TCP window size, with a minimum value at least twice as large as the maximum size of the traffic being policed.

The maximum_burst_bytes parameter must be set larger than the normal_burst_bytes parameter.

To sustain a specific rate, set the token bucket size to be at least the rate value divided by 2000.

The minimum token bucket size is 1 byte, entered as 1.

The maximum token bucket size is 512 megabytes, entered as 512000000.

The valid range of values for the pir bits_per_second parameter is as follows:

Minimum—32 kilobits per second, entered as 32000 (the value cannot be smaller than the CIR bits_per_second parameters)

Maximum—128 gigabits per second, entered as 128000000000

(Optional) You can specify a conform action for matched in-profile traffic as follows:

The default conform action is transmit, which sets the policy map class trust state to trust DSCP unless the policy map class contains a trust command.

To set PFC QoS labels in untrusted traffic, you can enter the set-dscp-transmit keyword to mark matched untrusted traffic with a new DSCP value or enter the set-prec-transmit keyword to mark matched untrusted traffic with a new IP precedence value. The set-dscp-transmit and set-prec-transmit keywords are only supported for IP traffic. PFC QoS sets egress ToS and CoS from the configured value.

You can enter the drop keyword to drop all matched traffic.

Ensure that aggregate and microflow policers that are applied to the same traffic each specify the same conform-action behavior.

(Optional) For traffic that exceeds the CIR, you can specify an exceed action as follows:

For marking without policing, you can enter the transmit keyword to transmit all matched out-of-profile traffic.

The default exceed action is drop, except with a maximum_burst_bytes parameter (drop is not supported with a maximum_burst_bytes parameter).


Note When the exceed action is drop, PFC QoS ignores any configured violate action.


You can enter the policed-dscp-transmit keyword to cause all matched out-of-profile traffic to be marked down as specified in the markdown map.


Note When you create a policer that does not use the pir keyword and the maximum_burst_bytes parameter is equal to the normal_burst_bytes parameter (which is the case if you do not enter the maximum_burst_bytes parameter), the exceed-action policed-dscp-transmit keywords cause PFC QoS to mark traffic down as defined by the policed-dscp max-burst markdown map.


(Optional) for traffic that exceeds the PIR, you can specify a violate action as follows:

For marking without policing, you can enter the transmit keyword to transmit all matched out-of-profile traffic.

The default violate action is equal to the exceed action.

You can enter the policed-dscp-transmit keyword to cause all matched out-of-profile traffic to be marked down as specified in the markdown map.

This example shows how to create a policy map named max-pol-ipp5 that uses the class-map named ipp5, which is configured to trust received IP precedence values and is configured with a maximum-capacity aggregate policer and with a microflow policer:

Router# configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)# policy-map max-pol-ipp5 
Router(config-pmap)# class ipp5 
Router(config-pmap-c)# trust ip-precedence 
Router(config-pmap-c)# police 2000000000 2000000 conform-action set-prec-transmit 6 
exceed-action policed-dscp-transmit 
Router(config-pmap-c)# police flow 10000000 10000 conform-action set-prec-transmit 6 
exceed-action policed-dscp-transmit 
Router(config-pmap-c)# end 

Configuring a Per-Interface Microflow Policer

To configure a per-interface microflow policer, perform this task:

Command
Purpose

Router(config-pmap-c)# police flow [mask {src-only | dest-only | full-flow}] bits_per_second normal_burst_bytes [[[conform-action {drop | set-dscp-transmit dscp_value | set-prec-transmit ip_precedence_value transmit}] exceed-action {drop | policed-dscp | transmit}] violate-action {drop | policed-dscp | transmit}]

Creates a per-interface microflow policer and configures the policy-map class to use it.


When you apply both ingress policing and egress policing to the same traffic, both the input policy and the output policy must either mark down traffic or drop traffic. PFC QoS does not support ingress markdown with egress drop or ingress drop with egress markdown.

Policing uses the Layer 2 frame size.

See the "Restrictions for PFC QoS" section for information about rate and burst size granularity.

You can enter the mask src-only keywords to base flow identification only on source addresses, which applies the microflow policer to all traffic from each source address. PFC QoS supports the mask src-only keywords for both IP traffic and MAC traffic.

You can enter the mask dest-only keywords to base flow identification only on destination addresses, which applies the microflow policer to all traffic to each source address. PFC QoS supports the mask dest-only keywords for both IP traffic and MAC traffic.

By default and with the mask full-flow keywords, PFC QoS bases IP flow identification on source IP address, destination IP address, the Layer 3 protocol, and Layer 4 port numbers.

PFC QoS considers MAC-Layer traffic with the same protocol and the same source and destination MAC-Layer addresses to be part of the same flow, including traffic with different EtherTypes.

Microflow policers do not support the maximum_burst_bytes parameter, the pir bits_per_second keyword and parameter, or the violate-action keyword.


Note The flowmask requirements of microflow policing, NetFlow, and NetFlow data export (NDE) might conflict.


The valid range of values for the CIR bits_per_second parameter is as follows:

Minimum—32 kilobits per second, entered as 32000

Maximum—128 gigabits per second, entered as 128000000000

The normal_burst_bytes parameter sets the CIR token bucket size.

When configuring the size of a token bucket, note the following information:

Because the token bucket must be large enough to hold at least one frame, configure the token bucket size to be larger than the maximum size of the traffic being policed.

For TCP traffic, configure the token bucket size as a multiple of the TCP window size, with a minimum value at least twice as large as the maximum size of the traffic being policed.

The maximum_burst_bytes parameter must be set larger than the normal_burst_bytes parameter.

To sustain a specific rate, set the token bucket size to be at least the rate value divided by 2000.

The minimum token bucket size is 1 byte, entered as 1.

The maximum token bucket size is 512 megabytes, entered as 512000000.

(Optional) You can specify a conform action for matched in-profile traffic as follows:

The default conform action is transmit, which sets the policy map class trust state to trust DSCP unless the policy map class contains a trust command.

To set PFC QoS labels in untrusted traffic, you can enter the set-dscp-transmit keyword to mark matched untrusted traffic with a new DSCP value or enter the set-prec-transmit keyword to mark matched untrusted traffic with a new IP precedence value. The set-dscp-transmit and set-prec-transmit keywords are only supported for IP traffic. PFC QoS sets egress ToS and CoS from the configured value.

You can enter the drop keyword to drop all matched traffic.

Ensure that aggregate and microflow policers that are applied to the same traffic each specify the same conform-action behavior.

(Optional) For traffic that exceeds the CIR, you can specify an exceed action as follows:

For marking without policing, you can enter the transmit keyword to transmit all matched out-of-profile traffic.

The default exceed action is drop, except with a maximum_burst_bytes parameter (drop is not supported with a maximum_burst_bytes parameter).


Note When the exceed action is drop, PFC QoS ignores any configured violate action.


You can enter the policed-dscp-transmit keyword to cause all matched out-of-profile traffic to be marked down as specified in the markdown map.


Note When you create a policer that does not use the pir keyword and the maximum_burst_bytes parameter is equal to the normal_burst_bytes parameter (which is the case if you do not enter the maximum_burst_bytes parameter), the exceed-action policed-dscp-transmit keywords cause PFC QoS to mark traffic down as defined by the policed-dscp max-burst markdown map.


Verifying Policy Map Configuration

To verify policy map configuration, perform this task:

 
Command
Purpose

Step 1 

Router(config-pmap-c)# end

Exits policy map class configuration mode.

Note Enter additional class commands to create additional classes in the policy map.

Step 2 

Router# show policy-map policy_name

Verifies the configuration.

This example shows how to verify the configuration:

Router# show policy-map max-pol-ipp5 
 Policy Map max-pol-ipp5
  class  ipp5
 
   
  class ipp5
    police flow 10000000 10000 conform-action set-prec-transmit 6 exceed-action 
policed-dscp-transmit
    trust precedence
    police 2000000000 2000000 2000000 conform-action set-prec-transmit 6 exceed-action 
policed-dscp-transmit
 
   
Router# 

Attaching a Policy Map to an Interface

To attach a policy map to an interface, perform this task:

 
Command
Purpose

Step 1 

Router(config)# interface {{vlan vlan_ID} | {type slot/port[.subinterface]} | {port-channel number[.subinterface]}}

Selects the interface to configure.

Step 2 

Router(config-if)# service-policy [input | output] policy_map_name

Attaches a policy map to the interface.

Step 3 

Router(config-if)# end

Exits configuration mode.

Do not attach a service policy to a port that is a member of an EtherChannel.

PFC QoS supports the output keyword only on Layer 3 interfaces (either LAN ports configured as Layer 3 interfaces or VLAN interfaces).You can attach both an input and an output policy map to a Layer 3 interface.

VLAN-based or port-based PFC QoS on Layer 2 ports is not relevant to policies attached to Layer 3 interfaces with the output keyword.

With releases earlier than Release 15.1(1)SY1, policies attached with the output keyword do not support microflow policing.

You cannot attach a policy map that configures a trust state with the service-policy output command.

Filtering based on IP precedence or DSCP in policies attached with the output keyword uses the received IP precedence or DSCP values. Filtering based on IP precedence or DSCP in policies attached with the output keyword is not based on any IP precedence or DSCP changes made by ingress QoS.

A shared aggregate policer cannot be applied in both ingress and egress directions.

When distributed aggregate policing is enabled, aggregate policers synchronize policing on interfaces supported by different DFC-equipped switching modules or the PFC. Distributed aggregate policing applies to the first 4,096 aggregate policer instances of these types:

Aggregate policers applied to VLAN, tunnel, or port channel interfaces.

Shared aggregate policers.

Aggregate policers in egress policies.

With distributed aggregate policing enabled, aggregate policers in excess of the hardware-supported capacity function as nondistributed aggregate policers.

Nondistributed aggregate policing works independently on each DFC-equipped switching module and independently on the PFC, which supports any non-DFC-equipped switching modules. Aggregate policing does not combine flow statistics from different DFC-equipped switching modules. You can display aggregate policing statistics for each DFC-equipped switching module and for the PFC and any non-DFC-equipped switching modules supported by the PFC.

Each PFC or DFC polices independently, which might affect QoS features being applied to traffic that is distributed across the PFC and any DFCs. Examples of these QoS feature are:

Policers applied to a port channel interface.

Policers applied to a switched virtual interface.

Egress policers applied to either a Layer 3 interface or an SVI.

Policers affected by this restriction deliver an aggregate rate that is the sum of all the independent policing rates.

For nonaggregate policers, each PFC or DFC polices independently, which might affect QoS features being applied to traffic that is distributed across the PFC and any DFCs. Examples of these QoS feature are:

Policers applied to a port channel interface.

Policers applied to a switched virtual interface.

Egress policers applied to either a Layer 3 interface or an SVI.

Policers affected by this restriction deliver an aggregate rate that is the sum of all the independent policing rates.

When you apply both ingress policing and egress policing to the same traffic, both the input policy and the output policy must either mark down traffic or drop traffic. PFC QoS does not support ingress markdown with egress drop or ingress drop with egress markdown.

This example shows how to attach the policy map named pmap1 to gigabit Ethernet port 5/36:

Router# configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)# interface gigabitethernet 5/36 
Router(config-if)# service-policy input pmap1 
Router(config-if)# end 
 
   

This example shows how to verify the configuration:

Router# show policy-map interface gigabitethernet 5/36 
 gigabitethernet5/36 
  service-policy input: pmap1
    class-map: cmap1 (match-all)
      0 packets, 0 bytes
      5 minute rate 0 bps
      match: ip precedence 5
  class cmap1
    police 8000 8000 conform-action transmit exceed-action drop
    class-map: cmap2 (match-any)
      0 packets, 0 bytes
      5 minute rate 0 bps
      match: ip precedence 2
        0 packets, 0 bytes
        5 minute rate 0 bps
  class cmap2
    police 8000 10000 conform-action transmit exceed-action drop
Router#

Configuring Dynamic Per-Session Attachment of a Policy Map

Policy Map Dynamic Per-Session Attachment Prerequisites

Defining and Associating Policy Maps

Policy Map Dynamic Per-Session Attachment Prerequisites

Define the ingress and egress QoS policy maps to be assigned when users are authenticated.

Configure identity policies to specify the policy maps to be assigned.

In the user profiles on the RADIUS server, configure the Cisco vendor-specific attributes (VSAs) to specify which ingress and egress QoS policy maps will be assigned to each user.

Defining and Associating Policy Maps

To define the policy maps and associate them with an identity policy, follow these steps:

 
Command
Purpose

Step 1 

Router(config)# policy-map in_policy_name

Configures an ingress QoS policy map.

Step 2 

Router(config-pmap)# class class_map_name
...

Configures policy map class.

Step 3 

Router(config-pmap-c)# exit

Exits policy map class configuration submode.

Step 4 

Router(config)# policy-map out_policy_name

Configures an egress QoS policy map.

Step 5 

Router(config-pmap)# class class_map_name
...

Configures policy map class.

Step 6 

Router(config-pmap-c)# exit

Exits policy map class configuration submode.

Step 7 

Router(config)# identity policy policy1

Creates an identity policy, and enters identity policy configuration submode.

Step 8 

Router(config-identity-policy)# service-policy type qos input in_policy_name

Associates the ingress QoS policy map with this identity.

Step 9 

Router(config-identity-policy)# service-policy type qos output out_policy_name

Associates the egress QoS policy map with this identity.

Step 10 

Router(config-identity-policy)# end

Exits identity policy configuration submode and returns to privileged EXEC mode.

To remove the identity policy, use the no identity policy policy_name command.

After the policy maps have been defined, configure the Cisco AV pair attributes in each user profile on the RADIUS server using the policy map names:

cisco-avpair = "ip:sub-policy-In=in_policy_name"

cisco-avpair = "ip:sub-policy-Out=out_policy_name"

To set the Cisco AV pair attributes on the RADIUS server, perform the following task:

Command or Action
Purpose

sub-policy-In=in_policy_name

sub-policy-Out=out_policy_name

Enters the two Cisco AV pairs for service policy on the RADIUS server in the user file. When the switch requests the policy name, this information in the user file is supplied.

A RADIUS user file contains an entry for each user that the RADIUS server will authenticate. Each entry, which is also referred to as a user profile, establishes an attribute the user can access.

In this example, you have configured a service policy that attaches a QoS policy map to the interface and specifies the direction (inbound for data packets traveling into the interface or outbound for data packets leaving the interface).

The policy map applied in the inbound direction is example_in_qos and the outbound policy map is example_out_qos.

This example shows the configuration in the user file on the RADIUS server:

userid    Password ="cisco"
   Service-Type = Framed,
   Framed-Protocol = PPP,
   cisco-avpair = "sub-policy-In=example_in_qos",
   cisco-avpair = "sub-policy-Out=example_out_qos"
 
   

This example shows the output of the show epm session summary command when a session is active:

Router# show epm session summary
 
   
EPM Session Information
-----------------------
Total sessions seen so far : 5
Total active sessions      : 1
Session IP Address         : 192.0.2.1
-------------------
 
   

This example shows the output of the show epm session ip ip_addr command when a session is active on the interface with IP address 192.0.2.1:

Router# show epm session ip 192.0.2.1
 
   
Admission feature       : AUTHPROXY
AAA Policies            :
Input Service Policy    : in_policy_name
Output Service Policy   : out_policy_name

Tip For additional information about Cisco Catalyst 6500 Series Switches (including configuration examples and troubleshooting information), see the documents listed on this page:

http://www.cisco.com/en/US/products/hw/switches/ps708/tsd_products_support_series_home.html

Participate in the Technical Documentation Ideas forum