- Preface
- New and Changed Information
- Overview
- Using Modular QoS CLI
- Configuring QoS TCAM Carving
- Configuring Classification
- Configuring Marking
- Configuring Policing
- Configuring Queuing and Scheduling
- Configuring Network QoS
- Configuring Link Level Flow Control
- Configuring Priority Flow Control
- Monitoring QoS Statistics
- Micro-Burst Monitoring
- FEX QoS Configuration
- Additional References
- Index
Configuring Classification
- About Classification
- Licensing Requirements for Classification
- Prerequisites for Classification
- Guidelines and Limitations
- Configuring Traffic Classes
- Verifying the Classification Configuration
- Configuration Examples for Classification
About Classification
Classification is the separation of packets into traffic classes. You configure the device to take a specific action on the specified classified traffic, such as policing or marking down, or other actions.
You can create class maps to represent each traffic class by matching packet characteristics with the classification criteria in the following table:
|
Classification Criteria |
Description |
|---|---|
|
CoS |
Class of service (CoS) field in the IEEE 802.1Q header. |
|
IP precedence |
Precedence value within the type of service (ToS) byte of the IP header. |
|
Differentiated Services Code Point (DSCP) |
DSCP value within the DiffServ field of the IP header. |
|
ACL |
IP, IPv6, or MAC ACL name. |
|
Packet length |
Size range of Layer 3 packet lengths. |
|
IP RTP |
Identify applications using Real-time Transport Protocol (RTP) by UDP port number range. |
You can specify multiple match criteria, you can choose to not match on a particular criterion, or you can determine the traffic class by matching any or all criteria.
![]() Note | However, if you match on an ACL, no other match criteria, except the packet length, can be specified in a match-all class. In a match-any class, you can match on ACLs and any other match criteria. |
Traffic that fails to match any class in a QoS policy map is assigned to a default class of traffic called class-default. The class-default can be referenced in a QoS policy map to select this unmatched traffic.
You can reuse class maps when defining the QoS policies for different interfaces that process the same types of traffic.
Licensing Requirements for Classification
The following table shows the licensing requirements for this feature:
|
Product |
License Requirement |
|---|---|
|
Cisco NX-OS |
The QoS feature does not a require license. Any feature not included in a license package is bundled with the NX-OS image and is provided at no extra charge to you. For a complete explanation of the Cisco NX-OS licensing scheme, see the Cisco NX-OS Licensing Guide. |
Prerequisites for Classification
Classification has the following prerequisites:
Guidelines and Limitations
Classification has the following configuration guidelines and limitations:
-
You can specify a maximum of 1024 match criteria in a class map.
-
You can configure a maximum of 128 classes for use in a single policy map.
-
When you match on an ACL, the only other match you can specify is the Layer 3 packet length in a match-all class.
-
The match-all option in the class-map type qos match-all command is not supported. The match criteria of this command becomes the same as in the class-map type qos match-any command. The class-map type qos match-all command yields the same results as the class-map type qos match-any command.
-
You can classify traffic on Layer 2 ports based on either the port policy or VLAN policy of the incoming packet but not both. If both are present, the device acts on the port policy and ignores the VLAN policy.
-
When a Cisco Nexus Fabric Extender (FEX) is connected and in use, data traffic should not be marked with a CoS value of 7. CoS 7 is reserved for control traffic transiting the Fabric Extender.
-
FEX host interfaces (HIF) are supported by the FEX QoS policy.
Configuring Traffic Classes
Configuring ACL Classification
You can classify traffic by matching packets based on existing ACLs. The permit and deny ACL keywords are ignored in the matching. QoS does not use the permit-deny functions of ACLs. You can classify by either IPv4, IPv6, or MAC address.
1.
configure terminal
2.
class-map [type qos] [match-any |
match-all]
class-name
3.
match access-group name
acl-name
DETAILED STEPS
This example shows how to display the ACL class-map configuration:
switch# show class-map class_acl
Configuring DSCP Classification
You can classify traffic based on the DSCP value in the DiffServ field of the IP header. The standard DSCP values are listed in the following table:
|
Value |
List of DSCP Values |
|---|---|
|
af11 |
AF11 dscp (001010)—decimal value 10 |
|
af12 |
AF12 dscp (001100)—decimal value 12 |
|
af13 |
AF13 dscp (001110)—decimal value 14 |
|
af21 |
AF21 dscp (010010)—decimal value 18 |
|
af22 |
AF22 dscp (010100)—decimal value 20 |
|
af23 |
AF23 dscp (010110)—decimal value 22 |
|
af31 |
AF31 dscp (011010)—decimal value 26 |
|
af32 |
AF40 dscp (011100)—decimal value 28 |
|
af33 |
AF33 dscp (011110)—decimal value 30 |
|
af41 |
AF41 dscp (100010)—decimal value 34 |
|
af42 |
AF42 dscp (100100)—decimal value 36 |
|
af43 |
AF43 dscp (100110)—decimal value 38 |
|
cs1 |
CS1 (precedence 1) dscp (001000)—decimal value 8 |
|
cs2 |
CS2 (precedence 2) dscp (010000)—decimal value 16 |
|
cs3 |
CS3 (precedence 3) dscp (011000)—decimal value 24 |
|
cs4 |
CS4 (precedence 4) dscp (100000)—decimal value 32 |
|
cs5 |
CS5 (precedence 5) dscp (101000)—decimal value 40 |
|
cs6 |
CS6 (precedence 6) dscp (110000)—decimal value 48 |
|
cs7 |
CS7 (precedence 7) dscp (111000)—decimal value 56 |
|
default |
Default dscp (000000)—decimal value 0 |
|
ef |
EF dscp (101110)—decimal value 46 |
1.
configure terminal
2.
class-map [type qos] [match-any |
match-all]
class-name
3.
match [not]
dscp
dscp-values
4.
exit
5.
copy running-config startup-config
DETAILED STEPS
This example shows how to display the DSCP class-map configuration:
switch# show class-map class_dscp
Configuring IP Precedence Classification
You can classify traffic based on the precedence value in the type of service (ToS) byte field of the IP header. The precedence values are listed in the following:
|
Value |
List of Precedence Values |
|---|---|
|
0-7 |
IP precedence value |
|
critical |
Critical precedence (5) |
|
flash |
Flash precedence (3) |
|
flash-override |
Flash override precedence (4) |
|
immediate |
Immediate precedence (2) |
|
internet |
Internetwork control precedence (6) |
|
network |
Network control precedence (7) |
|
priority |
Priority precedence (1) |
|
routine |
Routine precedence (0) |
1.
configure terminal
2.
class-map [type qos] [match-any |
match-all]
class-name
3.
match
[not]
precedence
precedence-values
4.
exit
5.
copy running-config startup-config
DETAILED STEPS
This example shows how to display the IP precedence class-map configuration:
switch# show class-map class_ip_precedence
Configuring Protocol Classification
For Layer 3 protocol traffic, you can use the ACL classification match.
|
Argument |
Description |
|---|---|
|
arp |
Address Resolution Protocol (ARP) |
|
bridging |
Bridging |
|
cdp |
Cisco Discovery Protocol (CDP) |
|
dhcp |
Dynamic Host Configuration (DHCP) |
|
isis |
Intermediate system to intermediate system (IS-IS) |
1.
configure terminal
2.
class-map [type qos] [match-any |
match-all]
class-name
3.
match [not]
protocol {arp |
bridging |
cdp |
dhcp |
isis}
4.
exit
5.
copy running-config startup-config
DETAILED STEPS
This example shows how to display the protocol class-map configuration:
switch# show class-map class_protocol
Configuring Layer 3 Packet Length Classification
You can classify Layer 3 traffic based on various packet lengths.
![]() Note | This feature is designed for IP packets only. |
1.
configure terminal
2.
class-map [type qos] [match-any |
match-all]
class-name
3.
match
[not]
packet
length
packet-length-list
4.
exit
5.
copy running-config startup-config
DETAILED STEPS
This example shows how to display the packet length class-map configuration:
switch# show class-map class_packet_length
Configuring CoS Classification
You can classify traffic based on the class of service (CoS) in the IEEE 802.1Q header. This 3-bit field is defined in IEEE 802.1p to support QoS traffic classes. CoS is encoded in the high order 3 bits of the VLAN ID Tag field and is referred to as user_priority.
1.
configure terminal
2.
class-map [type qos] [match-any |
match-all]
class-name
3.
match
[not]
cos
cos-list
4.
exit
5.
copy running-config startup-config
DETAILED STEPS
This example shows how to display the CoS class-map configuration:
switch# show class-map class_cos
Configuring CoS Classification for FEX
You can classify traffic based on the class of service (CoS) for a FEX.
Before configuring the FEX, enable feature-set fex.
1.
configure terminal
2.
class-map [type qos]
[match-any |
match-all]
class-name
3.
match [not]
cos
cos-list
4.
exit
5.
copy running-config startup-config
DETAILED STEPS
| Command or Action | Purpose | |||
|---|---|---|---|---|
| Step 1 | configure terminal
Example: switch# configure terminal switch(config)# |
Enters global configuration mode. | ||
| Step 2 | class-map [type qos]
[match-any |
match-all]
class-name
Example: switch(config)# class-map class_cos |
Creates or accesses the class map named class-name and then enters class-map mode. The class-map name can contain alphabetic, hyphen, or underscore characters, and can be up to 40 characters. | ||
| Step 3 |
match [not]
cos
cos-list
Example: switch(config-cmap-qos)# match cos 4,5-6 |
Configures the traffic class by matching packets based on the list of CoS values. Values can range from 0 to 7. Use the not keyword to match on values that do not match the specified range.
| ||
| Step 4 | exit
Example: switch(config-cmap-qos)# exit switch(config)# |
Exits global class-map queuing mode and enters global configuration mode. | ||
| Step 5 | copy running-config startup-config
Example: switch(config)# copy running-config startup-config |
(Optional) Saves the running configuration to the startup configuration. |
This example shows how to configure the CoS class-map configuration:
switch# conf t switch(config)# class-map type qos match-all cos6 switch(config-cmap-qos)# match cos 6 switch(config)# class-map type qos match-all cos1 switch(config-cmap-qos)# match cos 1 switch(config)# class-map type qos match-all cos2 switch(config-cmap-qos)# match cos 2 switch(config)# class-map type qos match-all cos3 switch(config-cmap-qos)# match cos 3 switch(config)# class-map type qos match-all cos0 switch(config-cmap-qos)# match cos 0
Configuring IP RTP Classification
The IP Real-time Transport Protocol (RTP) is a transport protocol for real-time applications that transmit data such as audio or video and is defined by RFC 3550. Although RTP does not use a common TCP or UDP port, you typically configure RTP to use ports 16384 to 32767. UDP communications uses an even-numbered port and the next higher odd-numbered port is used for RTP Control Protocol (RTCP) communications.
You can configure classification based on UDP port ranges, which are likely to target applications using RTP.
1.
configure terminal
2.
class-map [type qos] [match-any |
match-all]
class-name
3.
match
[not]
ip rtp
udp-port-value
4.
exit
5.
copy running-config startup-config
DETAILED STEPS
| Command or Action | Purpose | |
|---|---|---|
| Step 1 | configure terminal
Example: switch# configure terminal switch(config)# |
Enters global configuration mode. |
| Step 2 | class-map [type qos] [match-any |
match-all]
class-name
Example: switch(config)# class-map class_rtp |
Creates or accesses the class map named class-name and then enters class-map mode. The class-map name can contain alphabetic, hyphen, or underscore characters, and can be up to 40 characters. |
| Step 3 |
match
[not]
ip rtp
udp-port-value
Example: switch(config-cmap-qos)# match ip rtp 2000-2100, 4000-4100 |
Configures the traffic class by matching packets based on a range of lower and upper UDP port numbers, which is likely to target applications using RTP. Values can range from 2000 to 65535. Use the not keyword to match on values that do not match the specified range. |
| Step 4 | exit
Example: switch(config-cmap-qos)# exit switch(config)# |
Exits global class-map queuing mode and enters global configuration mode. |
| Step 5 | copy running-config startup-config
Example: switch(config)# copy running-config startup-config |
(Optional) Saves the running configuration to the startup configuration. |
This example shows how to display the RTP class-map configuration:
switch# show class-map class_rtp
Verifying the Classification Configuration
Use the show class-map command to verify the class-map configuration. This command displays all class maps.
Configuration Examples for Classification
The following example shows how to configure classification for two classes of traffic:
class-map class_dscp match dscp af21, af32 exit class-map class_cos match cos 4, 5-6 exit

Feedback