Packet Marking Overview
Feature Name |
Release Information |
Feature Description |
---|---|---|
Set VXLAN Outer IP Header DSCP Value to 0 |
Release 24.2.11 |
When a PE device transports IP traffic over a VXLAN tunnel that originates on the device, it automatically sets the DSCP value in the VXLAN outer IP header to 0 (CS0). |
You can use packet marking in input policy maps to set or modify the attributes for traffic belonging to a specific class. For example, you can change the CoS value in a class or set IP DSCP or IP precedence values for a specific type of traffic. These new values are then used to determine how the traffic should be treated.
Default Marking
When an ingress or egress interface adds VLAN tags or MPLS labels, it requires a default value for the class of service and EXP values that go into those tags and labels.
On the router, one ingress default QoS mapping profile and one egress default QoS mapping profile are created and configured per device during initialization.
QoS Behavior for Generic Routing Encapsulation (GRE) Tunnels
Feature Name |
Release Information |
Feature Description |
---|---|---|
QoS Behavior for Generic Routing Encapsulation (GRE) Tunnels: Default Marking |
Release 7.3.1 |
With the support for GRE encapsulation and decapsulation tunnel interfaces, there are some important updates to QoS behavior for GRE tunnels. These updates are applicable for default packet marking and involve Type of Service (ToS) and MPLS experimental bits. |
GRE Encapsulation
If you do not configure Type of Service (ToS), the outer IP precedence value or the differentiated services code point (DSCP) value is copied from the inner IP header. If you configure ToS, the outer IP precedence value or DCSP value is as per the ToS configuration.
GRE Decapsulation
During decapsulation, the MPLS experimental bits (EXP) are derived from the outer IP packet.
For more information on GRE tunnels, see the Interfaces Configuration Guide for Cisco 8000 Series Routers, IOS XR Release 7.3.x.
Packet Marking
Feature Name |
Release Information |
Feature Description |
---|---|---|
Set IP Marking for SRv6 Encapsulation |
Release 24.2.11 |
With this feature support for IP marking for SRv6 packets that are encapsulated, there are some important updates to the QoS behavior. This is an explicit packet marking feature that applies only to ingress QoS policies. CLI: This feature introduces the set ip encapsulation command. |
The packet marking feature, also called explicit marking, provides users with a means to differentiate packets based on the designated markings. The router supports ingress and egress packet marking.
The following list provides the usage guidelines for the IP marking for SRv6 encapsulation:
-
The set ip encapsulation class-of-service command is not allowed in egress QoS policies.
-
The described behavior is applicable only in pipe mode. When uniform mode or propagate mode is active, regardless of QoS policy encapsulation settings, the class-of-service (CoS) from the inner header is always copied to the outer header.
-
The set qos-group action cannot be used in conjunction with the set ip encapsulation class-of-service command.
-
The IP encapsulation marking (set ip encapsulation class-of-service ) and the MPLS experimental imposition marking (set mpls experimental ) features are mutually exclusive. Both the configurations are not allowed at the same time.
Supported Packet Marking Operations
This table shows the supported packet marking operations.
Supported Mark Types |
Range |
Support for Unconditional Marking |
Support for Conditional Marking |
---|---|---|---|
set ip encapsulation |
0-63 |
ingress |
No |
set discard-class |
0-1 |
ingress |
No |
set dscp |
0-63 |
ingress, egress |
No |
set mpls experimental topmost |
0-7 |
ingress, egress |
No |
set precedence |
0-7 |
ingress, egress |
No |
set qos-group |
0-31 |
ingress |
No |
set cos |
0-7 |
ingress, egress |
No |
set dei |
0-1 |
ingress, egress |
No |
QoS Behavior for Generic Routing Encapsulation (GRE) Tunnels
Feature Name |
Release Information |
Feature Description |
---|---|---|
QoS Behavior for Generic Routing Encapsulation (GRE) Tunnels: Explicit Marking |
Release 7.3.1 |
With the support for GRE encapsulation and decapsulation tunnel interfaces, there are some important updates to QoS behavior for GRE tunnels. These updates are applicable for explicit packet marking and involve QoS behavior during ingress and egress. |
GRE Encapsulation
During encapsulation of IPv4/IPv6 payload inside the GRE header, QoS behavior is as follows:
-
Ingress: QoS supports classification on the payload Layer 3 fields or EXP and remarking payload IP header DSCP.
-
Egress: QoS supports setting outer GRE IP header DSCP. It doesn’t overwrite the Tunnel Type of Service (ToS) configuration and doesn’t remark GRE IP header DCSP.
GRE Decapsulation
During decapsulation of the outer GRE header (during which the inner IPv4/IPv6/MPLS payload is forwarded to the next-hop router), QoS behavior is as follows:
-
Ingress: QoS supports classification on Layer 3 fields of outer GRE using the set qos-group command. Setting DSCP on the ingress interface sets DSCP for the inner headers.
-
Egress: QoS supports classification using qos-group to set DSCP or EXP for egress packets.
For more information on GRE tunnels, see the Interfaces Configuration Guide for Cisco 8000 Series Routers, IOS XR Release 7.3.x.
Classification and Marking for L2 Traffic
Feature Name |
Release Information |
Feature Description |
Classification and Marking for L2 Traffic |
Release 7.7.1 |
You can now perform packet remarking on Layer 2 subinterfaces. Traffic marking allows you to fine tune the traffic attributes on your network. The increased granularity helps single out traffic that requires special handling, and achieves optimal application performance. |
Traffic marking is a method used to identify certain traffic types for unique handling, effectively partitioning network traffic into different categories. Cisco 8000 Series routers support Layer 2 marking of Ethernet packets in the egress and ingress directions.
Configuration Example for Classification and Marking for L2 Traffic
Follow these steps to enable this feature:
For guidelines on creating a traffic class and egress traffic classification, refer the Create a Traffic Class section in the Classify Packets to Identify Specific Traffic chapter.
-
Enable Layer 2 configuration. Refer the L2VPN Configuration Guide for details.
-
Enable egress remarking with the qos-group match type.
-
Verify the egress remark QoS policy configuration.
-
Enable egress traffic remarking.
Egress Remarking With qos-group Match Type
/* Associate a specific qos-group with a traffic class using the set qos-group command */
Router# configure terminal
Router(config)# policy-map INGRESS_L2_AC
Router(config-pmap)# class CONTROL_PLANE
Router(config-pmap-c)# set traffic-class 7
Router(config-pmap-c)# set qos-group 27
Router(config-pmap-c)# exit
Router(config-pmap)# class VOIP
Router(config-pmap-c)# set traffic-class 6
Router(config-pmap-c)# set qos-group 26
Router(config-pmap-c)# exit
Router(config-pmap)# class VIDEO_STREAM
Router(config-pmap-c)# set traffic-class 5
Router(config-pmap-c)# set qos-group 25
Router(config-pmap-c)# exit
Router(config-pmap)# class TRANSACTIONAL_DATA
Router(config-pmap-c)# set traffic-class 4
Router(config-pmap-c)# set qos-group 24
Router(config-pmap-c)# exit
Router(config-pmap)# class DB_SYNC
Router(config-pmap-c)# set traffic-class 3
Router(config-pmap-c)# set qos-group 23
Router(config-pmap-c)# exit
Router(config-pmap)# class BULK_DATA
Router(config-pmap-c)# set traffic-class 2
Router(config-pmap-c)# set qos-group 22
Router(config-pmap-c)# exit
Router(config-pmap)# class SCAVENGER
Router(config-pmap-c)# set traffic-class 1
Router(config-pmap-c)# set qos-group 21
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# end-policy-map
Router(config)# commit
/* Associate egress policy map with the qos-groups */
Router# configure terminal
Router(config)# policy-map REMARK_EGRESS_QG_L2_AC
Router(config-pmap)# class QoS_GROUP_27
Router(config-pmap-c)# set cos 7
Router(config-pmap-c)# exit
Router(config-pmap)# class QoS_GROUP_26
Router(config-pmap-c)# set cos 7
Router(config-pmap-c)# exit
Router(config-pmap)# class QoS_GROUP_25
Router(config-pmap-c)# set cos 5
Router(config-pmap-c)# exit
Router(config-pmap)# class QoS_GROUP_24
Router(config-pmap-c)# set cos 5
Router(config-pmap-c)# exit
Router(config-pmap)# class QoS_GROUP_23
Router(config-pmap-c)# set cos 3
Router(config-pmap-c)# set dei 0
Router(config-pmap-c)# exit
Router(config-pmap)# class QoS_GROUP_22
Router(config-pmap-c)# set cos 3
Router(config-pmap-c)# set dei 1
Router(config-pmap-c)# exit
Router(config-pmap)# class QoS_GROUP_21
Router(config-pmap-c)# set cos 1
Router(config-pmap-c)# set dei 1
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# set dei 1
Router(config-pmap-c)# exit
Router(config)# commit
Router(config)# interface bundle-Ether 1.104
Router(config-subif)# service-policy output REMARK_EGRESS_QG_L2_AC
Router(config-subif)# commit
Verification
Verify the egress remark QoS policy configuration:
Router# show policy-map interface Bundle-Ether 1.104 output
Bundle-Ether1.104 output: REMARK_EGRESS_QG_L2_AC
Class QoS_GROUP_7
Classification statistics (packets/bytes) (rate - kbps)
Matched : 21319554/29847375600 985424
Transmitted : 21319554/29847375600 985424
Total Dropped : 0/0 0
Class QoS_GROUP_6
Classification statistics (packets/bytes) (rate - kbps)
Matched : 21581741/30214437400 997540
Transmitted : 21581741/30214437400 997540
Total Dropped : 0/0 0
Class QoS_GROUP_5
Classification statistics (packets/bytes) (rate - kbps)
Matched : 106597824/149236953600 4927114
Transmitted : 106597824/149236953600 4927114
Total Dropped : 0/0 0
Class QoS_GROUP_4
Classification statistics (packets/bytes) (rate - kbps)
Matched : 490350115/686490161000 22664721
Transmitted : 490350115/686490161000 22664721
Total Dropped : 0/0 0
Class QoS_GROUP_3
Classification statistics (packets/bytes) (rate - kbps)
Matched : 0/0 0
Transmitted : 0/0 0
Total Dropped : 0/0 0
Class QoS_GROUP_2
Classification statistics (packets/bytes) (rate - kbps)
Matched : 0/0 0
Transmitted : 0/0 0
Total Dropped : 0/0 0
Class QoS_GROUP_1
Classification statistics (packets/bytes) (rate - kbps)
Matched : 0/0 0
Transmitted : 0/0 0
Total Dropped : 0/0 0
Class class-default
Classification statistics (packets/bytes) (rate - kbps)
Matched : 1087299229/1522218920600 50256530
Transmitted : 1087299229/1522218920600 50256530
Total Dropped : 0/0 0
Policy Bag Stats time: 1657531125148 [Local Time: 07/11/22 09:18:45.148]
Remarking of Egress Traffic
Router# configure terminal
Router(config)# policy-map REMARK_EGRESS_L2_AC
Router(config-pmap)# class CONTROL_PLANE
Router(config-pmap-c)# set traffic-class 7
Router(config-pmap-c)# exit
Router(config-pmap)# class VOIP
Router(config-pmap-c)# set traffic-class 6
Router(config-pmap-c)# set cos 7
Router(config-pmap-c)# exit
Router(config-pmap)# class VIDEO_STREAM
Router(config-pmap-c)# set traffic-class 5
Router(config-pmap-c)# set cos 5
Router(config-pmap-c)# exit
Router(config-pmap)# class TRANSACTIONAL_DATA
Router(config-pmap-c)# set traffic-class 4
Router(config-pmap-c)# set cos 5
Router(config-pmap-c)# exit
Router(config-pmap)# class DB_SYNC
Router(config-pmap-c)# set traffic-class 3
Router(config-pmap-c)# set dei 0
Router(config-pmap-c)# exit
Router(config-pmap)# class BULK_DATA
Router(config-pmap-c)# set traffic-class 2
Router(config-pmap-c)# set cos 3
Router(config-pmap-c)# set dei 0
Router(config-pmap-c)# exit
Router(config-pmap)# class SCAVENGER
Router(config-pmap-c)# set traffic-class 1
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# set dei 1
Router(config-pmap-c)# end-policy-map
Router(config)# commit