Information About Policy Maps
Policy maps prioritize network traffic by class. You create policy maps to define how to treat each class of traffic so that it is prioritized for the best quality of service.
Marking is the process of marking packets, that is, changing one of the following in the packet for QoS purposes:
- Differentiated services code point (DSCP)
- Precedence
- CoS
You can map a traffic class to a DSCP, which is an indicator of the service level for a specified frame. The DSCP value ranges from 0 to 63, and the default is 0. A DSCP value of 46 is disallowed.
Service policies are specified using policy maps. Policy maps provide an ordered mapping of class maps to service levels. You can specify multiple class maps within a policy map, and map a class map to a high, medium, or low service level. The default priority is low. The policy map name is restricted to 63 alphanumeric characters.
The order of the class maps within a policy map is important to determine the order in which the frame is compared to class maps. The first matching class map has the corresponding priority marked in the frame.
Figure 3-1 Packet Fields Available for Marking
Marking is the setting of QoS information that is related to a packet. You can set the value of standard QoS fields IP precedence, DSCP and Class of Service (CoS), and internal labels that can be used in subsequent actions such as policing.
Once your traffic classes are defined, you can reference them in the policy map where you also define how they should be marked. We recommend that you keep the policy simple by using no more than four classes.
The fields available for marking are listed in Table 3-1 .
Table 3-1 Fields That Can be Marked
|
|
DSCP |
Layer 3 differentiated services code point (DSCP). Note If you mark DSCP, you cannot mark Discard Class. |
IP precedence |
Layer 3 IP precedence. Note IP precedence uses only the lower 3 bits of the type of service (ToS) field. The device overwrites the first 3 bits of the ToS field to 0. |
CoS |
Layer 2 class of service (CoS). |
QoS group |
Local QoS values that can be marked and matched as needed. The range is from 0 to 126. |
Discard class |
Local QoS values that can be matched and marked as needed. The range is from 0 to 63. Note If you mark Discard Class, you cannot mark DSCP. |
Ingress and egress ports |
The marking applies to incoming or outgoing packets. |
For a single class, you can set operations on any two out of the following five fields: CoS, IP Precedence, DSCP, QoS Group, and Discard Class.
Unless noted as a restriction, you can mark both incoming and outgoing packets.
Creating QoS Marking Policies
This section describes how to create QoS policies for the Cisco Nexus 1000V.
Creating a DSCP Policy
You can create a policy that marks the DSCP value in the IP header packet to prioritize traffic in a particular class.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
SUMMARY STEPS
1.
config t
2.
policy-map [ type qos ] [ match-first ] policy-map-name
3.
class [ type qos ] { class_map_name | class-default }
4.
set dscp value
5.
show policy-map policy-map-name
6.
copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
config t Example: n1000v# config t n1000v(config)# |
Places you into global configuration mode. |
Step 2 |
policy-map [ type qos ] [ match-first ] policy-map-name Example: n1000v(config)# policy-map policy1 n1000v(config-pmap-qos)# |
Places you into policy map QoS configuration mode for the specified policy map and configures the map name in the running configuration. The class_map_name argument is an alphabetic string that can be up to 40 case-sensitive characters long, including hyphen (-) and underscore (_) characters. |
Step 3 |
class [ type qos ] { class_map_name | class-default } Example: n1000v(config-pmap)# class class1 |
Creates a reference to class-map-name and enters policy-map class QoS configuration mode for the specified class map. By default, the class is added to the end of the policy map. Changes are saved in the running configuration. Use the class-default keyword to select all traffic that is not currently matched by classes in the policy map. |
Step 4 |
set dscp value Example: n1000v(config-pmap-c-qos)# set dscp af31 |
Defines the DSCP value that should be used in all IP headers for the specified class and saves it in the running configuration. You can use a numeric value from 1 to 60 or one of the standard values from the “DSCP and Precedence Values” section. In this example, the standard value of af31 is used. |
Step 5 |
show policy-map policy_map_name
Example:
n1000v(config-pmap-c-qos)# show policy-map policy1
|
Displays the policy map configuration for the specified map name. |
Step 6 |
copy running-config startup-config Example:
n1000v(config-pmap-c-qos)# copy running-config startup-config
|
(Optional) Saves the running configuration persistently through reboots and restarts by copying it to the startup configuration. |
Creating an IP Precedence Policy
You can mark IP Precedence to give priority to all packets in a particular traffic class.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
- You are logged in to the CLI in EXEC mode.
- Table 3-2 lists the RFC 791 precedence values from least to most important.
Table 3-2 Precedence Values
|
|
000 (0) |
Routine or Best Effort |
001 (1) |
Priority |
010 (2) |
Immediate |
011 (3) |
Flash (mainly used for voice signaling or for video) |
100 (4) |
Flash Override |
101 (5) |
Critical (mainly used for voice RTP) |
110 (6) |
Internet |
111 (7) |
Network |
SUMMARY STEPS
1.
config t
2.
policy-map [ type qos ] [ match-first ] policy-map-name
3.
class [ type qos ] { class_map_name | class-default }
4.
set precedence value
5.
show policy-map policy-map-name
6.
copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
config t Example: n1000v# config t n1000v(config)# |
Places you into global configuration mode. |
Step 2 |
policy-map [ type qos ] [ match-first ] policy-map-name Example: n1000v(config)# policy-map policy1 n1000v(config-pmap-qos)# |
Places you into policy map QoS configuration mode for the specified policy map and configures the map name in the running configuration. The class_map_name argument is an alphabetic string that can be up to 40 case-sensitive characters long, including hyphen (-) and underscore (_) characters. |
Step 3 |
class [ type qos ] { class_map_name | class-default } Example: n1000v(config-pmap-qos)# class class1 |
Creates a reference to class-map-name and enters policy-map class QoS configuration mode for the specified class map. By default, the class is added to the end of the policy map. Changes are saved in the running configuration. Use the class-default keyword to select all traffic that is not currently matched by classes in the policy map. |
Step 4 |
set precedence value Example: n1000v(config-pmap-c-qos)# set precedence 3 |
Adds the precedence value that should be used in all packets for the specified traffic class. The change is saved in the running configuration. You can use a numeric value from 0 to 7, as show in Table 3-2 . |
Step 5 |
show policy-map policy_map_name
Example:
n1000v(config-pmap-c-qos)# show policy-map policy1
|
Displays the policy map configuration for the specified map name. |
Step 6 |
copy running-config startup-config Example:
n1000v(config-pmap-c-qos)# copy running-config startup-config
|
(Optional) Saves the running configuration persistently through reboots and restarts by copying it to the startup configuration. |
Creating a Class of Service Policy
You can mark the CoS field in the IEEE 802.1Q header for all traffic in a specific class. If you mark this field in an ingress or egress policy, it will only be set when a packet egresses an IEEE 802.1Q-capable interface.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
- You are logged in to the CLI in EXEC mode.
- You can set CoS in ingress and egress policies.
SUMMARY STEPS
1.
config t
2.
policy-map [ type qos ] [ match-first ] policy-map-name
3.
class [ type qos ] { class_map_name | class-default }
4.
set cos cos-value
5.
show policy-map policy-map-name
6.
copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
config t Example: n1000v# config t n1000v(config)# |
Places you into global configuration mode. |
Step 2 |
policy-map [ type qos ] [ match-first ] policy-map-name Example: n1000v(config)# policy-map policy1 n1000v(config-pmap-qos)# |
Places you into policy map QoS configuration mode for the specified policy map and configures the map name in the running configuration. The class_map_name argument is an alphabetic string that can be up to 40 case-sensitive characters long, including hyphen (-) and underscore (_) characters. |
Step 3 |
class [ type qos ] { class_map_name | class-default } Example: n1000v(config-pmap-qos)# class class1 |
Creates a reference to class-map-name and enters policy-map class QoS configuration mode for the specified class map. By default, the class is added to the end of the policy map. Changes are saved in the running configuration. Use the class-default keyword to select all traffic that is not currently matched by classes in the policy map. |
Step 4 |
set cos cos-value Example: n1000v(config-pmap-c-qos)# set cos 3 |
Sets the CoS value to cos-value. The value can range from 0 to 7. You can use this command only in egress policies. |
Step 5 |
show policy-map policy_map_name
Example:
n1000v(config-pmap-c-qos)# show policy-map policy1
|
Displays the policy map configuration for the specified map name. |
Step 6 |
copy running-config startup-config Example:
n1000v(config-pmap-c-qos)# copy running-config startup-config
|
(Optional) Saves the running configuration persistently through reboots and restarts by copying it to the startup configuration. |
Creating a QoS Group Policy
You can mark the locally defined QoS group value.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
- You can mark the QoS group value only in ingress policies.
- You are logged in to the CLI in EXEC mode.
SUMMARY STEPS
1.
config t
2.
policy-map [ type qos ] [ match-first ] policy-map-name
3.
class [ type qos ] { class_map_name | class-default }
4.
set qos-group qos-group-value
5.
show policy-map policy-map-name
6.
copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
config t Example: n1000v# config t n1000v(config)# |
Places you into global configuration mode. |
Step 2 |
policy-map [ type qos ] [ match-first ] policy-map-name Example: n1000v(config)# policy-map policy1 n1000v(config-pmap-qos)# |
Places you into policy map QoS configuration mode for the specified policy map and configures the map name in the running configuration. The class_map_name argument is an alphabetic string that can be up to 40 case-sensitive characters long, including hyphen (-) and underscore (_) characters. |
Step 3 |
class [ type qos ] { class_map_name | class-default } Example: n1000v(config-pmap-qos)# class class1 n1000v(config-pmap-c-qos)# |
Creates a reference to class-map-name and enters policy-map class QoS configuration mode for the specified class map. By default, the class is added to the end of the policy map. Changes are saved in the running configuration. Use the class-default keyword to select all traffic that is not currently matched by classes in the policy map. |
Step 4 |
set qos-group qos-group-value Example: n1000v(config-pmap-c-qos)# set qos-group 100 |
Sets the QoS group value to qos-group-value. The value can range from 0 to 126. |
Step 5 |
show policy-map policy_map_name
Example:
n1000v(config-pmap-c-qos)# show policy-map policy1
|
Displays the policy map configuration for the specified map name. |
Step 6 |
copy running-config startup-config Example:
n1000v(config-pmap-c-qos)# copy running-config startup-config
|
(Optional) Saves the running configuration persistently through reboots and restarts by copying it to the startup configuration. |
Creating a Discard Class Policy
You can set a local internal label discard class policy.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
- If you configure a local internal label discard class policy, you cannot create a DSCP policy. For more information about DSCP policies, see the Creating a DSCP Policy.
- You can set a discard class only in ingress policies.
- To reference the local discard class in a policy or in traffic classification, use the match discard-class command.
For more information, see the Configuring Discard Class Classification.
SUMMARY STEPS
1.
config t
2.
policy-map [ type qos ] [ match-first ] policy-map-name
3.
class [ type qos ] { class_map_name | class-default }
4.
set discard-class discard-class-value
5.
show policy-map policy-map-name
6.
copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
config t Example: n1000v# config t n1000v(config)# |
Places you into global configuration mode. |
Step 2 |
policy-map [ type qos ] [ match-first ] policy-map-name Example: n1000v(config)# policy-map policy1 n1000v(config-pmap-qos)# |
Places you into policy map QoS configuration mode for the specified policy map and configures the map name in the running configuration. The class_map_name argument is an alphabetic string that can be up to 40 case-sensitive characters long, including hyphen (-) and underscore (_) characters. |
Step 3 |
class [ type qos ] { class_map_name | class-default } Example: n1000v(config-pmap-qos)# class class1 |
Creates a reference to class-map-name and enters policy-map class QoS configuration mode for the specified class map. By default, the class is added to the end of the policy map. Changes are saved in the running configuration. Use the class-default keyword to select all traffic that is not currently matched by classes in the policy map. |
Step 4 |
set discard-class discard-class-value Example: n1000v(config-pmap-c-qos)# set discard-class 40 |
Sets the discard class value to discard-class-value. The value can range from 0 to 63. |
Step 5 |
show policy-map policy_map_name
Example:
n1000v(config-pmap-c-qos)# show policy-map policy1
|
Displays the policy map configuration for the specified map name. |
Step 6 |
copy running-config startup-config Example:
n1000v(config-pmap-c-qos)# copy running-config startup-config
|
(Optional) Saves the running configuration persistently through reboots and restarts by copying it to the startup configuration. |
Creating Ingress and Egress Policies
You can attach a policy map to an interface or a port profile so that the marking instructions are applied to the ingress or egress packets.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
- The interface or port profile have been created.
- The policy map that you want to use has been defined.
Note
You can attach only one input policy and one output policy to an interface or port profile.
SUMMARY STEPS
1.
config t
2.
Enter one of the following commands:
–
interface type number
–
port-profile name
3.
service-policy [ type qos ] { input | output } policy-map-name [ no-stats ]
4.
show policy-map policy_map_name
5.
copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
config t Example: n1000v# config t n1000v(config)# |
Places you into global configuration mode. |
Step 2 |
Enter one of the following commands:
- interface type number
- port-profile name
Example: n1000v(config)# interface ethernet 1/1 n1000v(config-if)# |
Places you into Configuration mode for the specified Ethernet or vEthernet interface or port profile. |
Step 3 |
service-policy [type qos] {input | output} policy-map-name [no-stats] Example: n1000v(config-if)# service-policy input policy1 |
(Optional) Attaches a policy map name that will be added to the input or output packets of the interface or port profile. Note You can attach only one input policy and one output policy to an interface or port profile. |
Step 4 |
show policy-map policy_map_name
Example:
n1000v(config-if)# show policy-map policy1
|
Displays the policy map configuration for the specified map name. |
Step 5 |
copy running-config startup-config Example:
n1000v(config-if)# copy running-config startup-config
|
(Optional) Saves the running configuration persistently through reboots and restarts by copying it to the startup configuration. |
EXAMPLES
This example shows how to configure an ingress policy on an Ethernet interface:
n1000v# config t
n1000v(config)# interface ethernet 1/1
n1000v(config-if)# service-policy input policy1
n1000v(config-if)# show policy-map policy1
policy-map type qos policy1
n1000v(config-if)# copy running-config startup-config
This example shows how to configure an ingress policy on a port profile:
n1000v# config t
n1000v(config)# port-profile accessprofile
n1000v(config-port-prof)# service-policy input policy1
n1000v(config-port-prof)# show policy-map policy1
policy-map type qos policy1
n1000v(config-port-prof)# copy running-config startup-config
Marking the Port DSCP
You can mark the DSCP port for each class of traffic that is defined in a specified ingress or egress policy map.
BEFORE YOU BEGIN
Before beginning this procedure, you must know or do the following:
- The default behavior is to preserve the DSCP value, or to trust DSCP. To make the port untrusted, change the DSCP value.
- Unless you configure a QoS policy and attach that policy to specified interfaces, the DSCP value is preserved.
- The class map that you want to use has been defined. See Chapter2, “Configuring QoS Classification”
Note
You can attach only one input policy and one output policy to an interface or port profile.
SUMMARY STEPS
1.
config t
2.
policy-map [ type qos ] [ match-first ] policy-map-name
3.
class [ type qos ] { class_map_name | class-default }
4.
set dscp -value
5.
Repeat steps 3. and 4. for each class map that you want to create.
6.
exit
7.
exit
8.
Enter one of the following commands:
–
interface type number
–
port-profile name
9.
service-policy [ type qos ] { input | output } policy-map-name [ no-stats ]
10.
show policy-map policy_map_name
11.
copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
config t Example: n1000v# config t n1000v(config)# |
Places you into global configuration mode. |
Step 2 |
policy-map [ type qos ] [ match-first ] policy-map-name Example: n1000v(config)# policy-map policy1 n1000v(config-pmap-qos)# |
Places you into policy map QoS configuration mode for the specified policy map and configures the map name in the running configuration. The class_map_name argument is an alphabetic string that can be up to 40 case-sensitive characters long, including hyphen (-) and underscore (_) characters. |
Step 3a |
class [ type qos ] { class_map_name | class-default } Example: n1000v(config-pmap)# class class1 n1000v(config-pmap-c-qos)# |
Creates a reference to class-map-name and enters policy-map class QoS configuration mode for the specified class map. By default, the class is added to the end of the policy map. Changes are saved in the running configuration. Use the class-default keyword to select all traffic that is not currently matched by classes in the policy map. |
Step 4b |
set dscp value Example: n1000v(config-pmap-c-qos)# set dscp af31 |
Sets a DSCP value. Valid values are shown in the “DSCP and Precedence Values” section. |
Step 5 |
Repeat Step 3 and Step 4 for each class map that you want to create. |
Step 6 |
exit Example: n1000v(config-pmap-c-qos)# exit n1000v(config-pmap-qos)# |
Returns you to policy map configuration mode. |
Step 7 |
exit Example: n1000v(config-pmap-qos)# exit n1000v(config)# |
Returns you to global configuration mode. |
Step 8 |
Enter one of the following commands:
- interface type number
- port-profile name
Example: n1000v(config)# interface ethernet 1/1 n1000v(config-if)# |
Places you into the configuration mode for the specified Ethernet or vEthernet interface or port profile. |
Step 9 |
service-policy [type qos] {input | output} policy-map-name [no-stats] Example: n1000v(config-if)# service-policy input policy1 |
(Optional) Attaches a policy map name that will be added to the input or output packets of the interface or port profile. Note You can attach only one input policy and one output policy to an interface or port profile. |
Step 10 |
show policy-map policy_map_name
Example:
n1000v(config-if)# show policy-map policy1
|
Displays the policy map configuration for the specified map name. |
Step 11 |
copy running-config startup-config Example:
n1000v(config-if)# copy running-config startup-config
|
(Optional) Saves the running configuration persistently through reboots and restarts by copying it to the startup configuration. |
EXAMPLES
This example shows how to mark the DSCP port for each class of traffic defined in an ingress policy map on an Ethernet interface.
n1000v(config)# policy-map policy1
n1000v(config-pmap)# class class1
n1000v(config-pmap-c-qos)# set dscp af31
n1000v(config-pmap-c-qos)# exit
n1000v(config-pmap-qos)# class class2
n1000v(config-pmap-c-qos)# set dscp af13
n1000v(config-pmap-c-qos)# exit
n1000v(config-pmap-qos)# class class-default
n1000v(config-pmap-c-qos)# set dscp af22
n1000v(config-pmap-c-qos)# exit
n1000v(config-pmap-qos)# exit
n1000v(config)# interface ethernet 1/1
n1000v(config-if)# service-policy input policy1
n1000v(config-if)# show policy-map policy1
policy-map type qos policy1
n1000v(config-if)# copy running-config startup-config
This example shows how to mark the DSCP port for each class of traffic defined in an ingress policy map on a port profile.
n1000v(config)# policy-map policy1
n1000v(config-pmap-qos)# class class1
n1000v(config-pmap-c-qos)# set dscp af31
n1000v(config-pmap-c-qos)# exit
n1000v(config-pmap-qos)# class class2
n1000v(config-pmap-c-qos)# set dscp af13
n1000v(config-pmap-c-qos)# exit
n1000v(config-pmap-qos)# class class-default
n1000v(config-pmap-c-qos)# set dscp af22
n1000v(config-pmap-c-qos)# exit
n1000v(config-pmap-qos)# exit
n1000v(config)# port-profile accessprofile
n1000v(config-port-prof)# service-policy input policy1
n1000v(config-port-prof)# show policy-map policy1
policy-map type qos policy1
n1000v(config-port-prof)# copy running-config startup-config