MPLS QoS
•
Terminology
•
MPLS QoS Features
•
MPLS QoS Overview
•
MPLS QoS
•
MPLS QoS Default Configuration
•
MPLS QoS Commands
•
MPLS QoS Restrictions
•
How to Configure MPLS QoS
•
MPLS DiffServ Tunneling Modes
•
How to Configure Short Pipe Mode
•
How to Configure Uniform Mode
Note
•
For 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.
•
MPLS QoS extends to MPLS traffic the PFC QoS features described in Chapter 59 "PFC QoS Overview."
•
This chapter provides supplemental information on MPLS QoS features. Be sure that you understand the PFC QoS features before you read this chapter.
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
Terminology
•
Class of Service (CoS) refers to three bits in an 802.1Q header that are used to indicate the priority of the Ethernet frame as it passes through a switched network. The CoS bits in the 802.1Q header are commonly referred to as the 802.1p bits. To maintain QoS when a packet traverses both Layer 2 and Layer 3 domains, the type of service (ToS) and CoS values can be mapped to each other.
•
Classification is the process used for selecting traffic to be marked for QoS.
•
Differentiated Services Code Point (DSCP) is the first six bits of the ToS byte in the IP header. DSCP is only present in an IP packet.
•
E-LSP is a label switched path (LSP) on which nodes infer the QoS treatment for MPLS packets exclusively from the experimental (EXP) bits in the MPLS header. Because the QoS treatment is inferred from the EXP (both class and drop precedence), several classes of traffic can be multiplexed onto a single LSP (use the same label). A single LSP can support up to eight classes of traffic because the EXP field is a 3-bit field. The maximum number of classes would be less after reserving some values for control plane traffic or if some of the classes have a drop precedence associated with them.
•
EXP bits define the QoS treatment (per-hop behavior) that a node should give to a packet. It is the equivalent of the DiffServ Code Point (DSCP) in the IP network. A DSCP defines a class and drop precedence. The EXP bits are generally used to carry all the information encoded in the IP DSCP. In some cases, however, the EXP bits are used exclusively to encode the dropping precedence.
•
Frames carry traffic at Layer 2. Layer 2 frames carry Layer 3 packets.
•
IP precedence is the three most significant bits of the ToS byte in the IP header.
•
QoS tags are prioritization values carried in Layer 3 packets and Layer 2 frames. A Layer 2 CoS label can have a value ranging between zero for low priority and seven for high priority. A Layer 3 IP precedence label can have a value ranging between zero for low priority and seven for high priority. IP precedence values are defined by the three most significant bits of the 1-byte ToS byte. A Layer 3 DSCP label can have a value between 0 and 63. DSCP values are defined by the six most significant bits of the 1-byte IP ToS field.
•
LERs (label edge routers) are devices that impose and dispose of labels upon packets; also referred to as Provider Edge (PE) routers.
•
LSRs (label switching routers) are devices that forward traffic based upon labels present in a packet; also referred to as Provider (P) routers.
•
Marking is the process of setting a Layer 3 DSCP value in a packet. Marking is also the process of choosing different values for the MPLS EXP field to mark packets so that they have the priority that they require during periods of congestion.
•
Packets carry traffic at Layer 3.
•
Policing is limiting bandwidth used by a flow of traffic. Policing can mark or drop traffic.
MPLS QoS Features
•
MPLS Experimental Field
•
Trust
•
Classification
•
Policing and Marking
•
Preserving IP ToS
•
EXP Mutation
•
MPLS DiffServ Tunneling Modes
MPLS Experimental Field
Setting the MPLS experimental (EXP) field value satisfies the requirement of service providers who do not want the value of the IP precedence field modified within IP packets transported through their networks.
By choosing different values for the MPLS EXP field, you can mark packets so that packets have the priority that they require during periods of congestion.
By default, the IP precedence value is copied into the MPLS EXP field during imposition.You can mark the MPLS EXP bits with an MPLS QoS policy.
Trust
For received Layer 3 MPLS packets, the PFC usually trusts the EXP value in the received topmost label. None of the following have any effect on MPLS packets:
•
Interface trust state
•
Port CoS value
•
Policy-map trust command
For received Layer 2 MPLS packets, the PFC can either trust the EXP value in the received topmost label or apply port trust or policy trust to the MPLS packets for CoS and egress queueing purposes.
Classification
Classification is the process that selects the traffic to be marked. Classification accomplishes this by partitioning traffic into multiple priority levels, or classes of service. Traffic classification is the primary component of class-based QoS provisioning. The PFC makes classification decisions based on the EXP bits in the received topmost label of received MPLS packets (after a policy is installed). See the "Configuring a Class Map to Classify MPLS Packets" section for information.
Policing and Marking
Policing causes traffic that exceeds the configured rate to be discarded or marked down to a higher drop precedence. Marking is a way to identify packet flows to differentiate them. Packet marking allows you to partition your network into multiple priority levels or classes of service.
The MPLS QoS policing and marking features that you can implement depend on the received traffic type and the forwarding operation applied to the traffic. See "Configuring a Policy Map" section for information.
Preserving IP ToS
The PFC automatically preserves the IP ToS during all MPLS operations including imposition, swapping, and disposition.You do not need to enter a command to save the IP ToS.
EXP Mutation
You can configure up to eight egress EXP mutation maps to mutate the internal EXP value before it is written as the egress EXP value. You can attach egress EXP mutation maps to these interface types:
•
LAN port subinterfaces
•
Layer 3 VLAN interfaces
•
Layer 3 LAN ports
You cannot attach EXP mutation maps to Layer 2 LAN ports (ports configured with the switchport command).
For configuration information, see the"Configuring MPLS QoS Egress EXP Mutation" section.
MPLS DiffServ Tunneling Modes
The PFC uses MPLS DiffServ tunneling modes. Tunneling provides QoS transparency from one edge of a network to the other edge of the network. See the "MPLS DiffServ Tunneling Modes" section for information.
MPLS QoS Overview
MPLS QoS enables network administrators to provide differentiated types of service across an MPLS network. Differentiated service satisfies a range of requirements by supplying for each transmitted packet the service specified for that packet by its QoS. Service can be specified in different ways, for example, using the IP precedence bit settings in IP packets.
Specifying the QoS in the IP Precedence Field
When you send IP packets from one site to another, the IP precedence field (the first three bits of the DSCP field in the header of an IP packet) specifies the QoS. Based on the IP precedence marking, the packet is given the treatment configured for that quality of service. If the service provider network is an MPLS network, then the IP precedence bits are copied into the MPLS EXP field at the edge of the network. However, the service provider might want to set QoS for an MPLS packet to a different value determined by the service offering.
In that case, the service provider can set the MPLS EXP field. The IP header remains available for the customer's use; the QoS of an IP packet is not changed as the packet travels through the MPLS network.
For more information, see the "MPLS DiffServ Tunneling Modes" section.
MPLS QoS
•
MPLS Topology Overview
•
LERs at the Input Edge of an MPLS Network
•
LSRs in the Core of an MPLS Network
•
LERs at the Output Edge of an MPLS Network
•
LERs at the EoMPLS Edge
•
LERs at the IP Edge (MPLS, MPLS VPN)
•
LSRs at the MPLS Core
MPLS Topology Overview
Figure 65-1 MPLS Network Connecting Two Sites of a Customer's IP Network
•
Networks are bidirectional, but for the purpose of this overview, the packets move left to right.
•
CE1—Customer equipment 1
•
PE1—Service provider ingress label edge router (LER)
•
P1—Label switch router (LSR) within the core of the network of the service provider
•
P2—LSR within the core of the network of the service provider
•
PE2—service provider egress LER
•
CE2—Customer equipment 2
•
PE1 and PE2 are at the boundaries between the MPLS network and the IP network.
MPLS QoS supports IP QoS. For MPLS packets, the EXP value is mapped into an internal DSCP so that the PFC can apply non-MPLS QoS marking and policing.
For both the ingress and egress policies, MPLS QoS marking and policing decisions are made on a per-interface basis at an ingress PFC. The ingress interfaces are physical ports, subinterfaces, or VLANs.
The QoS policy ACLs are programmed in QoS TCAM separately for ingress and egress lookup. The ternary content addressable memory (TCAM) egress lookup takes place after the IP forwarding table (FIB) and NetFlow lookups are completed.
The results of each QoS TCAM lookup yield an index into RAM that contains policer configuration and policing counters. Additional RAM contains the microflow policer configuration; the microflow policing counters are maintained in the respective NetFlow entries that match the QoS ACL.
The results of ingress and egress aggregate and microflow policing are combined into a final policing decision. The out-of-profile packets can be either dropped or marked down in the DSCP.
LERs at the Input Edge of an MPLS Network
Note
Incoming labels are aggregate or nonaggregate. The aggregate label indicates that the arriving MPLS or MPLS VPN packet must be switched through an IP lookup to find the next hop and the outgoing interface. The nonaggregate label indicates that the packet contains the IP next hop information.
This section describes how edge LERs can operate at either the ingress or the egress side of an MPLS network.
At the ingress side of an MPLS network, LERs process packets as follows:
1.
Layer 2 or Layer 3 traffic enters the edge of the MPLS network at the edge LER (PE1).
2.
The PFC receives the traffic from the input interface and uses the 802.1p bits or the IP ToS bits to determine the EXP bits and to perform any classification, marking, and policing. For classification of incoming IP packets, the input service policy can also use access control lists (ACLs).
3.
For each incoming packet, the PFC performs a lookup on the IP address to determine the next-hop router.
4.
The appropriate label is pushed (imposition) into the packet, and the EXP value resulting from the QoS decision is copied into the MPLS EXP field in the label header.
5.
The PFC forwards the labeled packets to the appropriate output interface for processing.
6.
The PFC also forwards the 802.1p bits or the IP ToS bits to the output interface.
7.
At the output interface, the labeled packets are differentiated by class for marking or policing. For LAN interfaces, egress classification is still based on IP, not on MPLS.
8.
The labeled packets (marked by EXP) are sent to the core MPLS network.
LSRs in the Core of an MPLS Network
This section describes how LSRs used at the core of an MPLS network process packets:
1.
Incoming MPLS-labeled packets (and 802.1p bits or IP ToS bits) from an edge LER (or other core device) arrive at the core LSR.
2.
The PFC receives the traffic from the input interface and uses the EXP bits to perform classification, marking, and policing.
3.
The PFC or DFCs perform a table lookup to determine the next-hop LSR.
4.
An appropriate label is placed (swapped) into the packet and the MPLS EXP bits are copied into the label header.
5.
The PFC forwards the labeled packets to the appropriate output interface for processing.
6.
The PFC also forwards the 802.1p bits or the IP ToS bits to the output interface.
7.
The outbound packet is differentiated by the MPLS EXP field for marking or policing.
8.
The labeled packets (marked with EXP) are sent to another LSR in the core MPLS network or to an LER at the output edge.
Note
Within the service provider network, there is no IP precedence field for the queueing algorithm to use because the packets are MPLS packets. The packets remain MPLS packets until they arrive at PE2, the provider edge router.
LERs at the Output Edge of an MPLS Network
At the egress side of an MPLS network, LERs process packets as follows:
1.
MPLS-labeled packets (and 802.1p bits or IP ToS bits) from a core LSR arrive at the egress LER (PE2) from the MPLS network backbone.
2.
The PFC pops the MPLS labels (disposition) from the packets. Aggregate labels are classified using the original 802.1p bits or the IP ToS bits. Nonaggregate labels are classified with the EXP value by default.
3.
For aggregate labels, the PFC performs a lookup on the IP address to determine the packet's destination; the PFC then forwards the packet to the appropriate output interface for processing. For non-aggregate labels, forwarding is based on the label. By default, non-aggregate labels are popped at the penultimate-hop router (next to last), not the egress PE router.
4.
The PFC also forwards the 802.1p bits or the IP ToS bits to the output interface.
5.
The packets are differentiated according to the 802.1p bits or the IP ToS bits and treated accordingly.
Note
The MPLS EXP bits allow you to specify the QoS for an MPLS packet. The IP precedence and DSCP bits allow you to specify the QoS for an IP packet.
LERs at the EoMPLS Edge
This section summarizes the Ethernet over MPLS (EoMPLS) QoS features that function on the LERs. EoMPLS QoS support is similar to IP-to-MPLS QoS:
•
For EoMPLS, if the port is untrusted, the CoS trust state is automatically configured for VC type 4 (VLAN mode), not for VC type 5 (port mode). 802.1q CoS preservation across the tunnel is similar.
•
Packets received on tunnel ingress are treated as untrusted for EoMPLS interfaces, except for VC Type 4 where trust CoS is automatically configured on the ingress port and policy marking is not applied.
•
If the ingress port is configured as trusted, packets received on an EoMPLS interface are never marked by QoS policy in the original IP packet header (marking by IP policy works on untrusted ports).
•
802.1p CoS is preserved from entrance to exit, if available through the 802.1q header.
•
After exiting the tunnel egress, queueing is based on preserved 802.1p CoS if 1p tag has been tunnelled in the EoMPLS header (VC type 4); otherwise, queuing is based on the CoS derived from the QoS decision.
LERs at the IP Edge (MPLS, MPLS VPN)
This section provides information about QoS features for LERs at the ingress (CE-to-PE) and egress (PE-to-CE) edges for MPLS and MPLS VPN networks. Both MPLS and MPLS VPN support general MPLS QoS features. See the "MPLS VPN" section for additional MPLS VPN-specific QoS information.
IP to MPLS
•
IP to MPLS Overview
•
Classification for IP-to-MPLS
•
Classification for IP-to-MPLS Mode MPLS QoS
•
Classification at IP-to-MPLS Ingress Port
•
Classification at IP-to-MPLS Egress Port
IP to MPLS Overview
The PFC provides the following MPLS QoS capabilities at the IP-to-MPLS edge:
•
Assigning an EXP value based on the platform qos trust or policy-map command
•
Marking an EXP value using a policy
•
Policing traffic using a policy
This section provides information about the MPLS QoS classification that the PFC supports at the IP-to-MPLS edge. Additionally, this section provides information about the capabilities provided by the ingress and egress interface modules. For Ethernet to MPLS, the ingress interface, MPLS QoS, and egress interface features are similar to corresponding features for IP to MPLS.
Classification for IP-to-MPLS
The PFC ingress and egress policies for IP traffic classify traffic on the original received IP using match commands for IP precedence, IP DSCP, and IP ACLs. Egress policies do not classify traffic on the imposed EXP value nor on a marking done by an ingress policy.
After the PFC applies the port trust and QoS policies, it assigns the internal DSCP. The PFC then assigns the EXP value based on the internal DSCP-to-EXP global map for the labels that it imposes. If more than one label is imposed, the EXP value is the same in each label. The PFC preserves the original IP ToS when the MPLS labels are imposed.
The PFC assigns the egress CoS based on the internal DSCP-to-CoS global map. If the default internal DSCP-to-EXP and the internal DSCP-to-CoS maps are consistent, then the egress CoS has the same value as the imposed EXP.
If the ingress port receives both IP-to-IP and IP-to-MPLS traffic, classification should be used to separate the two types of traffic. For example, if the IP-to-IP and IP-to-MPLS traffic have different destination address ranges, you can classify traffic on the destination address, and then apply IP ToS policies to the IP-to-IP traffic and apply a policy (that marks or sets the EXP value in the imposed MPLS header) to the IP-to-MPLS traffic. See the following two examples:
•
A PFC policy to mark IP ToS sets the internal DSCP—If it is applied to all traffic, then for IP-to-IP traffic, the egress port will rewrite the CoS (derived from the internal DSCP) to the IP ToS byte in the egress packet. For IP-to-MPLS traffic, the PFC will map the internal DSCP to the imposed EXP value.
•
A PFC policy to mark MPLS EXP sets the internal DSCP—If it is applied to all traffic, then for IP-to-IP traffic, the egress port rewrites the IP ToS according to the ingress IP policy (or trust). The CoS is mapped from the ToS. For IP-to-MPLS traffic, the PFC will map the internal DSCP to the imposed EXP value.
Classification for IP-to-MPLS Mode MPLS QoS
MPLS QoS at the ingress to PE1supports:
•
Matching on IP precedence or DSCP values or filtering with an access group
•
The set mpls experimental imposition and police commands
MPLS QoS at the egress of PE1 supports the mpls experimental topmost command.
Classification at IP-to-MPLS Ingress Port
Classification for IP-to-MPLS is the same as for IP-to-IP. LAN port classification is based on the received Layer 2 802.1Q CoS value.
Classification at IP-to-MPLS Egress Port
LAN port classification is based on the received EXP value and the egress CoS values is mapped from that value.
If the egress port is a trunk, the LAN ports copy the egress CoS into the egress 802.1Q field.
MPLS to IP
•
MPLS to IP Overview
•
Classification for MPLS-to-IP
•
Classification for MPLS-to-IP MPLS QoS
•
Classification at MPLS-to-IP Ingress Port
•
Classification at MPLS-to-IP Egress Port
MPLS to IP Overview
MPLS QoS supports these capabilities at the MPLS-to-IP edge:
•
Option to propagate EXP value into IP DSCP on exit from an MPLS domain per egress interface
•
Option to use IP service policy on the MPLS-to-IP egress interface
This section provides information about the MPLS-to-IP MPLS QoS classification. Additionally, this section provides information about the capabilities provided by the ingress and egress modules.
For MPLS to Ethernet, the ingress interface, MPLS QoS, and egress interface features are similar to corresponding features for MPLS to IP except for the case of EoMPLS decapsulation where egress IP policy cannot be applied (packets can be classified as MPLS only).
Classification for MPLS-to-IP
The PFC assigns the internal DSCP (internal priority that the PFC assigns to each frame) based on the QoS result. The QoS result is affected by the following:
•
Default trust EXP value
•
Label type (per-prefix or aggregate)
•
Number of VPNs
•
Explicit NULL use
•
QoS policy
There are three different classification modes:
•
Regular MPLS classification—For nonaggregate labels, in the absence of MPLS recirculation, the PFC classifies the packet based on MPLS EXP ingress or egress policy. The PFC queues the packet based on COS derived from EXP-to-DSCP-to-CoS mapping. The underlying IP DSCP is either preserved after egress decapsulation, or overwritten from the EXP (through the EXP-to-DSCP map).
•
IP classification for aggregate label hits in VPN CAM—The PFC does one of the following:
–
Preserves the underlying IP ToS
–
Rewrites the IP ToS by a value derived from the EXP-to-DSCP global map
–
Changes the IP ToS to any value derived from the egress IP policy
In all cases, egress queueing is based on the final IP ToS from the DSCP-to-CoS map.
•
IP classification with aggregate labels not in VPN CAM—After recirculation, the PFC differentiates the MPLS-to-IP packets from the regular IP-to-IP packets based on the ingress reserved VLAN specified in the MPLS decapsulation adjacency. The reserved VLAN is allocated per VRF both for VPN and non-VPN cases. The ingress ToS after recirculation can be either the original IP ToS value, or derived from the original EXP value. The egress IP policy can overwrite this ingress ToS to an arbitrary value.
Note
For information about recirculation, see the "Recirculation" section.
For incoming MPLS packets on the PE-to-CE ingress, the PFC supports MPLS classification only. Ingress IP policies are not supported. PE-to-CE traffic from the MPLS core is classified or policed on egress as IP.
Classification for MPLS-to-IP MPLS QoS
MPLS QoS at the ingress to PE2 supports matching on the EXP value and the police command.
MPLS QoS at the egress of PE2 supports matching on IP precedence or DSCP values or filtering with an access group and the police command.
Classification at MPLS-to-IP Ingress Port
LAN port classification is based on the EXP value. The match mpls experimental command matches on the EXP value in the received topmost label.
Classification at MPLS-to-IP Egress Port
Classification for MPLS-to-IP is the same as it is for IP-to-IP.
The LAN interface classification is based on the egress CoS.
If the egress port is a trunk, the LAN ports copy the egress CoS into the egress 802.1Q field.
Note
For MPLS to IP, egress IP ACL or QoS is not effective on the egress interface if the egress interface has MPLS IP (or tag IP) enabled. The exception is a VPN CAM hit, in which case the packet is classified on egress as IP.
MPLS VPN
The following PE MPLS QoS features are supported for MPLS VPN:
•
Classification, policing, or marking of CE-to-PE IP traffic through the VPN subinterface
•
Per-VPN QoS (per-port, per-VLAN, or per-subinterface)
For customer edge (CE)-to-PE traffic, or for CE-to-PE-to-CE traffic, the subinterface support allows you to apply IP QoS ingress or egress policies to subinterfaces and to physical interfaces. Per-VPN policing is also provided for a specific interface or subinterface associated with a given VPN on the CE side.
In situations when there are multiple interfaces belonging to the same VPN, you can perform per-VPN policing aggregation using the same shared policer in the ingress or egress service policies for all similar interfaces associated with the same PFC.
For aggregate VPN labels, the EXP propagation in recirculation case may not be supported because MPLS adjacency does not know which egress interface the final packet will use.
Note
For information on recirculation, see the "Recirculation" section.
The PFC propagates the EXP value if all interfaces in the VPN have EXP propagation enabled.
The following PE MPLS QoS features are supported:
•
General MPLS QoS features for IP packets
•
Classification, policing, or marking of CE-to-PE IP traffic through the VPN subinterface
•
Per-VPN QoS (per-port, per-VLAN, or per-subinterface)
LSRs at the MPLS Core
This section provides information about MPLS QoS features for LSRs at the core (MPLS-to-MPLS) for MPLS and MPLS VPN networks. Ingress features, egress interface, and PFC features for Carrier Supporting Carrier (CsC) QoS features are similar to those used with MPLS to MPLS described in the next section. A difference between CsC and MPLS to MPLS is that with CsC labels can be imposed inside the MPLS domain.
MPLS to MPLS
•
Classification for MPLS-to-MPLS
•
Classification for MPLS-to-MPLS MPLS QoS
•
Classification at MPLS-to-MPLS Ingress Port
•
Classification at MPLS-to-MPLS Egress Port
MPLS to MPLS Overview
MPLS QoS at the MPLS core supports the following:
•
Per-EXP policing based on a service policy
•
Copying the input topmost EXP value into the newly imposed EXP value
•
Optional EXP mutation (changing of EXP values on an interface edge between two neighboring MPLS domains) on the egress boundary between MPLS domains
•
Microflow policing based on individual label flows for a particular EXP value
•
Optional propagation of topmost EXP value into the underlying EXP value when popping the topmost label from a multi-label stack.
The following section provides information about MPLS-to-MPLS MPLS QoS classification. Additionally, the section provides information about the capabilities provided by the ingress and egress modules.
Classification for MPLS-to-MPLS
For received MPLS packets, the PFC ignores the port trust state, the ingress CoS, and any policy-map trust commands. Instead, the PFC trusts the EXP value in the topmost label.
Note
The MPLS QoS ingress and egress policies for MPLS traffic classify traffic on the EXP value in the received topmost label when you enter the match mpls experimental command.
MPLS QoS maps the EXP value to the internal DSCP using the EXP-to-DSCP global map. What the PFC does next depends on whether it is swapping labels, imposing a new label, or popping a label:
•
Swapping labels—When swapping labels, the PFC preserves the EXP value in the received topmost label and copies it to the EXP value in the outgoing topmost label. The PFC assigns the egress CoS using the internal DSCP-to-CoS global map. If the DSCP global maps are consistent, then the egress CoS is based on the EXP in the outgoing topmost label.
The PFC can mark down out-of-profile traffic using the police command's exceed and violate actions. It does not mark in-profile traffic, so the conform action must be transmitted and the set command cannot be used. If the PFC is performing a markdown, it uses the internal DSCP as an index into the internal DSCP markdown map. The PFC maps the result of the internal DSCP markdown to an EXP value using the internal DSCP-to-EXP global map. The PFC rewrites the new EXP value to the topmost outgoing label and does not copy the new EXP value to the other labels in the stack. The PFC assigns the egress CoS using the internal DSCP-to-CoS global map. If the DSCP maps are consistent, then the egress CoS is based on the EXP value in the topmost outgoing label.
•
Imposing an additional label—When imposing a new label onto an existing label stack, the PFC maps the internal DSCP to the EXP value in the imposed label using the internal DSCP-to-EXP map. It then copies the EXP value in the imposed label to the underlying swapped label. The PFC assigns the egress CoS using the internal DSCP-to-CoS global map. If the DSCP maps are consistent, the egress CoS is based on the EXP value in the imposed label.
The PFC can mark in-profile and mark down out-of-profile traffic. After it marks the internal DSCP, the PFC uses the internal DSCP-to-EXP global map to map the internal DSCP to the EXP value in the newly imposed label. The PFC then copies the EXP in the imposed label to the underlying swapped label. The PFC assigns the egress CoS using the internal DSCP-to-CoS global map. Therefore, the egress CoS is based on the EXP in the imposed label.
•
Popping a label—When popping a label from a multi-label stack, the PFC preserves the EXP value in the exposed label. The PFC assigns the egress CoS using the internal DSCP-to-CoS global map. If the DSCP maps are consistent, then the egress CoS is based on the EXP value in the popped label.
•
If EXP propagation is configured for the egress interface, the PFC maps the internal DSCP to the EXP value in the exposed label using the DSCP-to-EXP global map. The PFC assigns the egress CoS using the internal DSCP-to-CoS global map. If the DSCP maps are consistent, the egress CoS is based on the EXP value in the exposed label.
Classification for MPLS-to-MPLS MPLS QoS
MPLS QoS at the ingress to P1 or P2 supports the following:
•
Matching with the mpls experimental topmost command
•
The set mpls experimental imposition, police, and police with set imposition commands
MPLS QoS at the egress of P1 or P2 supports matching with the mpls experimental topmost command.
Classification at MPLS-to-MPLS Ingress Port
LAN port classification is based on the egress CoS from the PFC. The match mpls experimental command matches on the EXP value in the received topmost label.
Classification at MPLS-to-MPLS Egress Port
LAN port classification is based on the egress CoS value from the PFC. The match mpls experimental command matches on the egress CoS; it does not match on the EXP in the topmost label. If the egress port is a trunk, the LAN ports copy the egress CoS into the egress 802.1Q field.
MPLS QoS Default Configuration
|
|
PFC QoS global enable state |
With all other PFC QoS parameters at default values, default EXP is mapped from IP precedence. With PFC QoS enabled and all other PFC QoS parameters at default values, PFC QoS sets Layer 3 DSCP to zero (untrusted ports only), Layer 2 CoS to zero, the imposed EXP to zero in all traffic transmitted from LAN ports (default is untrusted). For trust CoS, the default EXP value is mapped from COS; for trust DSCP, the default EXP value is mapped from IP precedence. |
PFC QoS port enable state |
Enabled when PFC QoS is globally enabled |
Port CoS value |
0 |
Microflow policing |
Enabled |
IntraVLAN microflow policing |
Disabled |
Port-based or VLAN-based PFC QoS |
Port-based |
EXP to DSCP map (DSCP set from EXP values) |
EXP 0 = DSCP 0 EXP 1 = DSCP 8 EXP 2 = DSCP 16 EXP 3 = DSCP 24 EXP 4 = DSCP 32 EXP 5 = DSCP 40 EXP 6 = DSCP 48 EXP 7 = DSCP 56 |
IP precedence to DSCP map (DSCP set from IP precedence values) |
IP precedence 0 = DSCP 0 IP precedence 1 = DSCP 8 IP precedence 2 = DSCP 16 IP precedence 3 = DSCP 24 IP precedence 4 = DSCP 32 IP precedence 5 = DSCP 40 IP precedence 6 = DSCP 48 IP precedence 7 = DSCP 56 |
DSCP to EXP map (EXP set from DSCP values) |
DSCP 0-7 = EXP 0 DSCP 8-15 = EXP 1 DSCP 16-23 = EXP 2 DSCP 24-31 = EXP 3 DSCP 32-39 = EXP 4 DSCP 40-47 = EXP 5 DSCP 48-55 = EXP 6 DSCP 56-63 = EXP 7 |
Marked-down DSCP from DSCP map |
Marked-down DSCP value equals original DSCP value (no mark down) |
EXP mutation map |
No mutation map by default |
Policers |
None |
Policy maps |
None |
MPLS flow mask in NetFlow table |
Label + EXP value |
MPLS core QoS |
There are four possibilities at the MPLS core QoS: • Swapping—Incoming EXP field is copied to outgoing EXP field. • Swapping + imposition—Incoming EXP field is copied to both the swapped EXP field and the imposed EXP field. Note If there is a service policy with a set for EXP field, its EXP field will be placed into the imposed label and also into the swapped label. • Disposition of topmost label—Exposed EXP field is preserved. • Disposition of only label—Exposed IP DSCP is preserved. |
MPLS to IP edge QoS |
Preserve the exposed IP DSCP |
MPLS QoS Commands
•
match mpls experimental topmost
•
set mpls experimental imposition
•
police
•
platform qos map exp-dscp
•
platform qos map dscp-exp
•
platform qos map exp-mutation
•
platform qos exp-mutation
•
show platform qos mpls
•
no platform qos mpls trust exp
Note
For information about supported non-MPLS QoS commands, see Chapter 59 "PFC QoS Overview."
The following commands are not supported:
•
set qos-group
•
set discard-class
MPLS QoS Restrictions
When configuring MPLS QoS, follow these guidelines and restrictions:
•
For IP-to-MPLS or EoMPLS imposition when the received packet is an IP packet:
–
When QoS is disabled, the EXP value is based on the received IP ToS.
–
When QoS is queuing only, the EXP value is based on the received IP ToS.
•
For EoMPLS imposition when the received packet is a non-IP packet:
–
When QoS is disabled, the EXP value is based on the ingress CoS.
–
When QoS is queuing only, the EXP value is based on the received IP ToS.
•
For MPLS-to-MPLS operations:
–
Swapping when QoS is disabled, the EXP value is based on the original EXP value (in the absence of EXP mutation).
–
Swapping when QoS is queuing only, the EXP value is based on the original EXP value (in the absence of EXP mutation).
–
Imposing additional label when QoS is disabled, the EXP value is based on the original EXP value (in the absence of EXP mutation).
–
Imposing an additional label when QoS is queuing only, the EXP value is based on the original EXP value (in the absence of EXP mutation).
–
Popping one label when QoS is disabled, the EXP value is based on the underlying EXP value.
–
Popping one label when QoS is queuing only, the EXP value is based on the underlying EXP value.
•
EXP value is irrelevant to MPLS-to-IP disposition.
•
The no platform qos rewrite ip dscp command is incompatible with MPLS. The default platform qos rewrite ip dscp command must remain enabled in order for the PFC to assign the correct EXP value for the labels that it imposes.
•
The no platform qos mpls trust exp command allows you to treat MPLS packets simiarly to Layer 2 packets for CoS and egress queueing purposes by applying port trust or policy trust instead of the default EXP value.
How to Configure MPLS QoS
•
Enabling Queueing-Only Mode
•
Configuring a Class Map to Classify MPLS Packets
•
Configuring a Policy Map
•
Displaying a Policy Map
•
Configuring MPLS QoS Egress EXP Mutation
•
Configuring EXP Value Maps
Enabling Queueing-Only Mode
To enable queueing-only mode, perform this task:
|
|
|
Step 1 |
Router(config)# platform qos queueing-only |
Enables queueing-only mode. |
Step 2 |
Router(config)# end |
Exits configuration mode. |
When you enable queueing-only mode, the router does the following:
•
Disables marking and policing globally
•
Configures all ports to trust Layer 2 CoS
Note
The switch applies the port CoS value to untagged ingress traffic and to traffic that is received through ports that cannot be configured to trust CoS.
This example shows how to enable queueing-only mode:
Router# configure terminal
Router(config)# platform qos queueing-only
Restrictions and Usage Guidelines
If QoS is disabled (no platform qos) for the PFC, the EXP value is determined as follows:
•
For IP-to-MPLS or EoMPLS imposition when the received packet is an IP packet when QoS is queuing only (platform qos queueing-only), the EXP value is based on the received IP ToS.
•
For EoMPLS imposition when the received packet is a non-IP packet when QoS is queuing only, the EXP value is based on the received IP ToS.
•
For MPLS-to-MPLS operations:
–
Swapping when QoS is queuing only, the EXP value is based on the original EXP value (in the absence of EXP mutation).
–
Imposing additional label when QoS is queuing only, the EXP value is based on the original EXP value (in the absence of EXP mutation).
–
Popping one label when QoS is queuing only, the EXP value is based on the underlying EXP value.
•
The EXP value is irrelevant to MPLS-to-IP disposition.
Configuring a Class Map to Classify MPLS Packets
You can use the match mpls experimental topmost command to define traffic classes inside the MPLS domain by packet EXP values. This allows you to define service policies to police the EXP traffic on a per-interface basis by using the police command.
To configure a class map, perform this task beginning in global configuration mode:
|
|
|
Step 1 |
Router(config)# class-map class_name
|
Specifies the class map to which packets will be matched. |
Step 2 |
Router(config-cmap)# match mpls experimental topmost
value
|
Specifies the packet characteristics that will be matched to the class. |
Step 3 |
Router(config-cmap)# exit
|
Exits class-map configuration mode. |
This example shows that all packets that contain MPLS experimental value 3 are matched by the traffic class named exp3:
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# class-map exp3
Router(config-cmap)# match mpls experimental topmost 3
Router(config-cmap)# exit
Router(config)# policy-map exp3
Router(config-pmap)# class exp3
Router(config-pmap-c)# police 1000000 8000000 conform-action transmit exceed-action drop
Router(config-pmap-c)# exit
Class Map match-all exp3 (id 61)
Match mpls experimental topmost 3
Router# show policy-map exp3
police cir 1000000 bc 8000000 be 8000000 conform-action transmit exceed-action drop
Router# show running-config interface gigabitethernet 3/27
Building configuration...
Current configuration : 173 bytes
interface GigabitEthernet3/27
ip address 47.0.0.1 255.0.0.0
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface gigabitethernet 3/27
Router(config-if)# service-policy input exp3
Enter configuration commands, one per line. End with CNTL/Z.
Router# show running-config interface gigabitethernet 3/27
Building configuration...
Current configuration : 173 bytes
interface GigabitEthernet3/27
ip address 47.0.0.1 255.0.0.0
service-policy input exp3
1w4d: %SYS-5-CONFIG_I: Configured from console by console
Router# show platform qos mpls
QoS Summary [MPLS]: (* - shared aggregates, Mod - switch module)
Int Mod Dir Class-map DSCP Agg Trust Fl AgForward-By AgPoliced-By
-------------------------------------------------------------------------------
Gi3/27 5 In exp3 0 2 dscp 0 0 0
All 5 - Default 0 0* No 0 3466140423 0
Router# show policy-map interface gigabitethernet 3/27
Service-policy input: exp3
class-map: exp3 (match-all)
Match: mpls experimental topmost 3
1000000 bps 8000000 limit 8000000 extended limit
5 minute offered rate 0 bps
aggregate-forwarded 0 bytes action: transmit
exceeded 0 bytes action: drop
aggregate-forward 0 bps exceed 0 bps
Class-map: class-default (match-any)
5 minute offered rate 0 bps, drop rate 0 bps
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface gigabitethernet 3/27
Router(config-if)# service-policy output ip2tag
Router# show platform qos ip
QoS Summary [IPv4]: (* - shared aggregates, Mod - switch module)
Int Mod Dir Class-map DSCP Agg Trust Fl AgForward-By AgPoliced-By
-------------------------------------------------------------------------------
Vl300 5 In x 44 1 No 0 0 0
Gi3/27 5 Out iptcp 24 2 -- 0 0 0
All 5 - Default 0 0* No 0 3466610741 0
Restrictions and Usage Guidelines
•
The match mpls experimental command specifies the name of an EXP field value to be used as the match criterion against which packets are checked to determine if they belong to the class specified by the class map.
•
To use the match mpls experimental command, you must first enter the class-map command to specify the name of the class whose match criteria you want to establish. After you identify the class, you can use the match mpls experimental command to configure its match criteria.
•
If you specify more than one command in a class map, only the last command entered applies. The last command overrides the previously entered commands.
Configuring a Policy Map
You can attach only one policy map to an interface. 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. MPLS QoS does not attempt to apply commands from more than one policy map class to matched traffic.
Configuring a Policy Map to Set the EXP Value on All Imposed Labels
To set the value of the MPLS EXP field on all imposed label entries, use the set mpls experimental imposition command in QoS policy-map class configuration mode. To disable the setting, use the no form of this command.
Note
The set mpls experimental imposition command replaces the set mpls experimental command.
|
|
|
Step 1 |
Router(config)# policy-map policy_name
|
Creates a policy map. |
Step 2 |
Router(config-pmap)# class-map name [match-all |
match-any]
|
Accesses the QoS class-map configuration mode to configure QoS class maps. |
Step 3 |
Router(config-pmap-c)# set mpls experimental
imposition {mpls-exp-value | from-field [table
table-map-name]}
|
Sets the value of the MPLS experimental (EXP) field on all imposed label entries. |
Step 4 |
Router(config-pmap-c)# exit
|
Exits class-map configuration mode. |
The following example sets the MPLS EXP imposition value according to the DSCP value defined in the MPLS EXP value 3:
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# access-l 101 p tcp any any
Router(config)# class-map iptcp
Router(config-cmap)# match acc 101
Router(config-cmap)# exit
Router(config-cmap)# policy-map ip2tag
Router(config-pmap)# class iptcp
Router(config-pmap-c)# set mpls exp imposition 3
Router(config-pmap-c)# exit
Router(config-pmap)# exit
1w4d: %SYS-5-CONFIG_I: Configured from console by console
Router# show policy-map ip2tag
set mpls experimental imposition 3
Class Map match-all iptcp (id 62)
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface gigabitethernet 3/27
Router(config-if)# ser in ip2tag
1w4d: %SYS-5-CONFIG_I: Configured from console by console
set mpls experimental imposition 3
Router# show class-map iptcp
Class Map match-all iptcp (id 62)
Router# show access-l 101
Extended IP access list 101
Router# show policy-map interface gigabitethernet 3/27
Service-policy input: ip2tag
class-map: iptcp (match-all)
5 minute offered rate 0 bps
aggregate-forwarded 0 bytes
class-map: class-default (match-any)
Class-map: class-default (match-any)
5 minute offered rate 0 bps, drop rate 0 bps
This example shows how to verify the configuration:
Router# show policy map ip2tag
set mpls experimental imposition 3
EXP Value Imposition Guidelines and Restrictions
When setting the EXP value on all imposed labels, follow these guidelines and restrictions:
•
Use the set mpls experimental imposition command during label imposition. This command sets the MPLS EXP field on all imposed label entries.
•
The set mpls experimental imposition command is supported only on input interfaces (imposition).
•
The set mpls experimental imposition command does not mark the EXP value directly; instead, it marks the internal DSCP that is mapped to EXP through the internal DSCP-to-EXP global map.
•
It is important to note that classification (based on the original received IP header) and marking (done to the internal DSCP) do not distinguish between IP-to-IP traffic and IP-to-MPLS traffic. The commands that you use to mark IP ToS and mark EXP have the same result as when you mark the internal DSCP.
•
To set the pushed label entry value to a value different from the default value during label imposition, use the set mpls experimental imposition command.
•
You optionally can use the set mpls experimental imposition command with the IP precedence, DSCP field, or QoS IP ACL to set the value of the MPLS EXP field on all imposed label entries.
•
When imposing labels onto the received IP traffic with the PFC, you can mark the EXP field using the set mpls experimental imposition command.
Configuring a Policy Map Using the Police Command
Policing is a function in the PFC hardware that provides the ability to rate limit a particular traffic class to a specific rate. The PFC supports aggregate policing and microflow policing.
Aggregate policing meters all traffic that ingresses into a port, regardless of different source, destination, protocol, source port, or destination port. Microflow policing meters all traffic that ingresses into a port, on a per flow (per source, destination, protocol, source port, and destination port). For additional information on aggregate and microflow policing, see Chapter 61 "Classification, Marking, and Policing."
|
|
|
Step 1 |
Router(config)# policy-map policy_name
|
Creates a policy map. |
Step 2 |
Router(config-pmap)# class-map name [match-all |
match-any]
|
Accesses the QoS class map configuration mode to configure QoS class maps. |
Step 3 |
Router(config-pmap-c)# police {aggregate name}
|
Adds the class to a shared aggregate policer. |
Step 4 |
Router(config-pmap-c)# police bps burst_normal
burst_max conform-action action exceed-action
action violate-action action
|
Creates a per-class-per-interface policer. |
Step 5 |
Router(config-pmap-c)# police flow {bps
[burst_normal] | [conform-action action]
[exceed-action action]
|
Creates an ingress flow policer. (Not supported in egress policy.) |
Step 6 |
Router(config-pmap-c)# exit
|
Exits class-map configuration mode. |
This is an example of creating a policy map with a policer:
Router(config)# policy-map ip2tag
Router(config-pmap)# class iptcp
Router(config-pmap-c)# no set mpls exp topmost 3
Router(config-pmap-c)# police 1000000 1000000 c set-mpls-exp?
set-mpls-exp-imposition-transmit
Router(config-pmap-c)# police 1000000 1000000 c set-mpls-exp-imposit 3 e d
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# interface gigabitethernet 3/27
Router(config-if)# ser in ip2tag
This is an example of verifying the configuration:
police cir 1000000 bc 1000000 be 1000000 conform-action
set-mpls-exp-imposition-transmit 3 exceed-action drop
Router# show running-config interface gigabitethernet 3/27
Building configuration...
Current configuration : 202 bytes
interface GigabitEthernet3/27
logging event link-status
service-policy input ip2tag
Router# show policy interface gigabitethernet 3/27
Service-policy input: ip2tag
class-map: iptcp (match-all)
1000000 bps 1000000 limit 1000000 extended limit
5 minute offered rate 0 bps
aggregate-forwarded 0 bytes action: set-mpls-exp-imposition-transmit
exceeded 0 bytes action: drop
aggregate-forward 0 bps exceed 0 bps
class-map: class-default (match-any)
Class-map: class-default (match-any)
5 minute offered rate 0 bps, drop rate 0 bps
Restrictions and Usage Guidelines
The following restrictions and guidelines apply when using the police command to configure a policy map:
•
With MPLS, the exceed-action action command and the violate-action action command work similarly to IP usage. The packet may get dropped or the EXP value is marked down.
•
With MPLS, the set-dscp transmit action command and the set-prec-transmit action command set the internal DSCP that is mapped into the CoS bits, which affects queueing, however, they do not change the EXP value, except for imposition.
•
When swapping labels for received MPLS traffic with the PFC, you can mark down out-of-profile traffic using the police command exceed-action policed-dscp-transmit and violate-action policed-dscp-transmit keywords. The PFC does not mark in-profile traffic; when marking down out-of-profile traffic, the PFC marks the outgoing topmost label. The PFC does not propagate the marking down through the label stack.
•
With MPLS, the flow key is based on the label and EXP value; there is no flowmask option. Otherwise, flow key operation is similar to IP-to-IP.
•
You can use the police command to set the pushed label entry value to a value different from the default value during label imposition.
•
When imposing labels onto the received IP traffic with the PFC, you can mark the EXP field using the conform-action set-mpls-exp-imposition-transmit keywords.
•
During IP-to-MPLS imposition, IP ToS marking is not supported. If you configure a policy to mark IP ToS, the PFC marks the EXP value.
Displaying a Policy Map
You can display a policy map with an interface summary for MPLS QoS classes or with the configuration of all classes configured for all service policies on the specified interface.
Displaying the Configuration of All Classes
To display the configuration of all classes configured for all service policies on the specified interface, perform this task:
|
|
Router# show policy interface interface_type interface_number |
Displays the configuration of all classes configured for all policy maps on the specified interface. |
This example shows the configurations for all classes on Gigabit Ethernet interface 3/27:
Router# show policy interface gigabitethernet 3/27
Service-policy input: ip2tag
class-map: iptcp (match-all)
1000000 bps 1000000 limit 1000000 extended limit
5 minute offered rate 0 bps
aggregate-forwarded 0 bytes action: set-mpls-exp-imposition-transmit
exceeded 0 bytes action: drop
aggregate-forward 0 bps exceed 0 bps
class-map: class-default (match-any)
Class-map: class-default (match-any)
5 minute offered rate 0 bps, drop rate 0 bps
Configuring MPLS QoS Egress EXP Mutation
•
Configuring Named EXP Mutation Maps
•
Attaching an Egress EXP Mutation Map to an Interface
Configuring Named EXP Mutation Maps
To configure a named EXP mutation map, perform this task:
|
|
|
Step 1 |
Router(config)# platform qos map exp-mutation name mutated_exp1 mutated_exp2 mutated_exp3 mutated_exp4 mutated_exp5 mutated_exp6 mutated_exp7 mutated_exp8 |
Configures a named EXP mutation map. |
Step 2 |
Router(config)# end |
Exits configuration mode. |
When configuring a named EXP mutation map, note the following information:
•
You can enter up to eight input EXP values that map to a mutated EXP value.
•
You can enter multiple commands to map additional EXP values to a mutated EXP value.
•
You can enter a separate command for each mutated EXP value.
•
You can configure 15 ingress EXP mutation maps to mutate the internal EXP value before it is written as the ingress EXP value. You can attach ingress EXP mutation maps to any interface that PFC QoS supports.
•
PFC QoS derives the egress EXP value from the internal DSCP value. If you configure ingress EXP mutation, PFC QoS does not derive the ingress EXP value from the mutated EXP value.
Attaching an Egress EXP Mutation Map to an Interface
To attach an egress EXP mutation map to an interface, perform this task:
|
|
|
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)# platform qos exp-mutation exp-mutation-table-name |
Attaches an egress EXP mutation map to the interface. |
Step 3 |
Router(config-if)# end |
Exits configuration mode. |
This example shows how to attach the egress EXP mutation map named mutemap2:
Router(config)# interface gigabitethernet 3/26
Router(config-if)# platform qos exp-mutation mutemap2
Configuring EXP Value Maps
•
Configuring an Ingress-EXP to Internal-DSCP Map
•
Configuring a Named Egress-DSCP to Egress-EXP Map
Configuring an Ingress-EXP to Internal-DSCP Map
To configure an ingress-EXP to internal-DSCP map, perform this task:
|
|
|
Step 1 |
Router(config)# platform qos map exp-dscp values |
Configures the ingress-EXP value to internal-DSCP map. You must enter eight DSCP values corresponding to the EXP values. Valid values are 0 through 63. |
Step 2 |
Router(config)# end |
Exits configuration mode. |
This example shows how to configure an ingress-EXP to internal-DSCP map:
Router(config)# platform qos map exp-dscp 43 43 43 43 43 43 43 43
This example shows how to verify the configuration:
Router(config)# show platform qos map exp-dscp
------------------------------------
dscp: 43 43 43 43 43 43 43 43
Configuring a Named Egress-DSCP to Egress-EXP Map
To configure a named egress-DSCP to egress-EXP map, perform this task:
|
|
|
Step 1 |
Router(config)# platform qos map dscp-exp dscp_values to exp_values |
Configures a named egress-DSCP to egress-EXP map. You can enter up to eight DSCP values at one time to a single EXP value. Valid values are 0 through 7. |
Step 2 |
Router(config)# end |
Exits configuration mode. |
This example shows how to configure a named egress-DSCP to egress-EXP map:
Router(config)# platform qos map dscp-exp 20 25 to 3
MPLS DiffServ Tunneling Modes
Tunneling provides QoS the ability to be transparent from one edge of a network to the other edge of the network. A tunnel starts where there is label imposition. A tunnel ends where there is label disposition; that is, where the label is removed from the stack, and the packet goes out as an MPLS packet with a different per-hop behavior (PHB) layer underneath or as an IP packet with the IP PHB layer.
For the PFC, there are two ways to forward packets through a network:
•
Short Pipe mode—In Short Pipe mode, the egress PE router uses the original packet marking instead of the marking used by the intermediate provider (P) routers. EXP marking does not propagate to the packet ToS byte.
For a description of this mode, see the "Short Pipe Mode" section.
For the configuration information, see the "How to Configure Short Pipe Mode" section.
•
Uniform mode—In Uniform mode, the marking in the IP packet may be manipulated to reflect the service provider's QoS marking in the core. This mode provides consistent QoS classification and marking throughout the network including CE and core routers. EXP marking is propagated to the underlying ToS byte.
For a description, see the "Uniform Mode" section.
For the configuration procedure, see the "How to Configure Uniform Mode" section.
Both tunneling modes affect the behavior of edge and penultimate label switching routers (LSRs) where labels are put onto packets and removed from packets. They do not affect label swapping at intermediate routers. A service provider can choose different types of tunneling modes for each customer.
For additional information, see "MPLS DiffServ Tunneling Modes" at this URL: http://www.cisco.com/en/US/docs/ios-xml/ios/mp_te_diffserv/configuration/15-mt/mp-diffserv-tun-mode.html.
Short Pipe Mode
Short pipe mode is used when the customer and service provider are in different DiffServ domains. It allows the service provider to enforce its own DiffServ policy while preserving customer DiffServ information, which provides a DiffServ transparency through the service provider network.
QoS policies implemented in the core do not propagate to the packet ToS byte. The classification based on MPLS EXP value ends at the customer-facing egress PE interface; classification at the customer-facing egress PE interface is based on the original IP packet header and not the MPLS header.
Note
The presence of an egress IP policy (based on the customer's PHB marking and not on the provider's PHB marking) automatically implies the Short Pipe mode.
Figure 65-2 Short Pipe Mode Operation with VPNs
Short Pipe mode functions as follows:
1.
CE1 transmits an IP packet to PE1 with an IP DSCP value of 1.
2.
PE1 sets the MPLS EXP field to 5 in the imposed label entries.
3.
PE1 transmits the packet to P1.
4.
P1 sets the MPLS EXP field value to 5 in the swapped label entry.
5.
P1 transmits the packet to P2.
6.
P2 pops the IGP label entry.
7.
P2 transmits the packet to PE2.
8.
PE2 pops the BGP label.
9.
PE2 transmits the packet to CE2, but does QoS based on the IP DSCP value.
For additional information, see "MPLS DiffServ Tunneling Modes" at this URL:
http://www.cisco.com/en/US/docs/ios-xml/ios/mp_te_diffserv/configuration/15-mt/mp-diffserv-tun-mode.html
Short Pipe Mode Restrictions
Short Pipe mode is not supported if the MPLS-to-IP egress interface is EoMPLS (the adjacency has the end of marker (EOM) bit set).
Uniform Mode
In Uniform mode, packets are treated uniformly in the IP and MPLS networks; that is, the IP precedence value and the MPLS EXP bits always correspond to the same PHB. Whenever a router changes or recolors the PHB of a packet, that change must be propagated to all encapsulation markings. The propagation is performed by a router only when a PHB is added or exposed due to label imposition or disposition on any router in the packet's path. The color must be reflected everywhere at all levels. For example, if a packet's QoS marking is changed in the MPLS network, the IP QoS marking reflects that change.
Figure 65-3 Uniform Mode Operation
The procedure varies according to whether IP precedence bit markings or DSCP markings are present.
The following actions occur if there are IP precedence bit markings:
1.
IP packets arrive in the MPLS network at PE1, the service provider edge router.
2.
A label is copied onto the packet.
3.
If the MPLS EXP field value is recolored (for example, if the packet becomes out-of-rate because too many packets are being transmitted), that value is copied to the IGP label. The value of the BGP label is not changed.
4.
At the penultimate hop, the IGP label is removed. That value is copied into the next lower level label.
5.
When all MPLS labels have been removed from the packet that is sent out as an IP packet, the IP precedence or DSCP value is set to the last changed EXP value in the core.
The following is an example when there are IP precedence bit markings:
1.
At CE1 (customer equipment 1), the IP packet has an IP precedence value of 3.
2.
When the packet arrives in the MPLS network at PE1 (the service provider edge router), the IP precedence value of 3 is copied to the imposed label entries of the packet.
3.
The MPLS EXP field in the IGP label header might be changed within the MPLS core (for example, at P1) by a mark down.
Note
Because the IP precedence bits are 3, the BGP label and the IGP label also contain 3 because in Uniform mode, the labels always are identical. The packet is treated uniformly in the IP and MPLS networks.
Uniform Mode Restrictions
If the egress IP ACLs or service policies are configured on the MPLS-to-IP exit point, the Uniform mode is always enforced because of recirculation.
MPLS DiffServ Tunneling Restrictions and Usage Guidelines
The MPLS DiffServ tunneling restrictions and usage guidelines are as follows:
•
One label-switched path (LSP) can support up to eight classes of traffic (that is, eight PHBs) because the MPLS EXP field is a 3-bit field.
•
MPLS DiffServ tunneling modes support E-LSPs. An E-LSP is an LSP on which nodes determine the QoS treatment for MPLS packet exclusively from the EXP bits in the MPLS header.
The following features are supported with the MPLS differentiated service (DiffServ) tunneling modes:
•
MPLS per-hop behavior (PHB) layer management. (Layer management is the ability to provide an additional layer of PHB marking to a packet.)
•
Improved scalability of the MPLS layer management by control on managed customer edge (CE) routers.
•
MPLS can tunnel a packet's QoS (that is, the QoS is transparent from edge to edge). With QoS transparency, the IP marking in the IP packet is preserved across the MPLS network.
•
The MPLS EXP field can be marked differently and separately from the PHB marked in the IP precedence or DSCP field.
How to Configure Short Pipe Mode
•
Ingress PE Router—Customer Facing Interface
•
Configuring Ingress PE Router—P Facing Interface
•
Configuring the P Router—Output Interface
•
Configuring the Egress PE Router—Customer Facing Interface
Note
•
The steps that follow show one way, but not the only way, to configure Short Pipe mode.
•
The Short Pipe mode on the egress PE (or PHP) is automatically configured when you attach to the interface an egress service policy that includes an IP class.
Ingress PE Router—Customer Facing Interface
This procedure configures a policy map to set the MPLS EXP field in the imposed label entries.
To set the EXP value, the ingress LAN port must be untrusted.
For MPLS and VPN, the ingress PE supports all ingress PFC IP policies.
To configure a policy map to set the MPLS EXP field in the imposed label entries, perform this task:
|
|
|
Step 1 |
Router(config)# access-list ipv4_acl_number_or_name permit any |
Creates an IPv4 access list. |
Step 2 |
Router(config)# class-map class_name |
Creates a class map. |
Step 3 |
Router(config-cmap)# match access-group ipv4_acl_number_or_name |
Configures the class map to filter with the ACL created in step 1. |
Step 4 |
Router(config)# policy-map policy_map_name |
Creates a named QoS policy. |
Step 5 |
Router(config-pmap)# class class_name |
Configures the policy to use the class map created in step 2. |
Step 6 |
Router(config-pmap-c)# police bits_per_second [normal_burst_bytes] conform-action set-mpls-exp-transmit exp_value exceed-action drop |
Configures policing, including the following: • Action to take on packets that conform to the rate limit specified in the service level agreement (SLA). • Action to take on packets that exceed the rate limit specified in the SLA. The exp_value sets the MPLS EXP field. |
Step 7 |
Router(config)# interface type slot/port |
Selects an interface to configure. |
Step 8 |
Router(config-if)# no platform qos trust |
Configures the interface as untrusted. |
Step 9 |
Router(config-if)# service-policy input policy_map_name |
Attaches the policy map created in step 4 to the interface as an input service policy. |
Configuration Example
This example shows how to configure a policy map to set the MPLS EXP field in the imposed label entries:
Router(config)# access-list 1 permit any
Router(config)# class-map CUSTOMER-A
Router(config-cmap)# match access-group 1
Router(config)# policy-map set-MPLS-PHB
Router(config-pmap)# class CUSTOMER-A
Router(config-pmap-c)# police 50000000 conform-action set-mpls-exp-transmit 4
exceed-action drop
Router(config)# interface gigabitethernet 3/1
Router(config-if)# no platform qos trust
Router(config)# interface gigabitethernet 3/1.31
Router(config-if)# service-policy input set-MPLS-PHB
Configuring Ingress PE Router—P Facing Interface
This procedure classifies packets based on their MPLS EXP field and provides appropriate discard and scheduling treatments.
To classify packets based on their MPLS EXP field and provide appropriate discard and scheduling treatments, perform this task:
|
|
|
Step 1 |
Router(config)# class-map class_name |
Specifies the class map to which packets will be mapped (matched). Creates a traffic class. |
Step 2 |
Router(config-c-map)# match mpls experimental exp_list |
Specifies the MPLS EXP field values used as a match criteria against which packets are checked to determine if they belong to the class. |
Step 3 |
Router(config)# policy-map name |
Configures the QoS policy for packets that match the class or classes. |
Step 4 |
Router(config-p-map)# class class_name |
Associates the traffic class with the service policy. |
Step 5 |
Router(config-p-map-c)# bandwidth {bandwidth_kbps | percent percent} |
Specifies the minimum bandwidth guarantee to a traffic class. You can specify the minimum bandwidth guarantee in kilobits per second or by percent of the overall bandwidth. |
Step 6 |
Router(config-p-map)# class class-default |
Specifies the default class so that you can configure or modify its policy. |
Step 7 |
Router(config-p-map-c)# random-detect |
Enables a WRED drop policy for a traffic class that has a bandwidth guarantee. |
Step 8 |
Router(config)# interface type slot/port |
Selects an interface to configure. |
Step 9 |
Router(config-if)# service-policy output name |
Attaches a QoS policy to an interface and specifies that policies should be applied on packets leaving the interface. |
Note
The bandwidth command and random-detect command are not supported on LAN ports.
Configuration Example
This example shows how to classify packets based on their MPLS EXP field and provide appropriate discard and scheduling treatments:
Router(config)# class-map MPLS-EXP-4
Router(config-c-map)# match mpls experimental 4
Router(config)# policy-map output-qos
Router(config-p-map)# class MPLS-EXP-4
Router(config-p-map-c)# bandwidth percent 40
Router(config-p-map)# class class-default
Router(config-p-map-c)# random-detect
Router(config)# interface pos 4/1
Router(config-if)# service-policy output output-qos
Configuring the P Router—Output Interface
To classify packets based on their MPLS EXP field and provide appropriate discard and scheduling treatments, perform this task:
|
|
|
Step 1 |
Router(config)# class-map class_name |
Specifies the class map to which packets will be mapped (matched). Creates a traffic class. |
Step 2 |
Router(config-c-map)# match mpls experimental exp_list |
Specifies the MPLS EXP field values used as a match criteria against which packets are checked to determine if they belong to the class. |
Step 3 |
Router(config)# policy-map name |
Configures the QoS policy for packets that match the class or classes. |
Step 4 |
Router(config-p-map)# class class_name |
Associates the traffic class with the service policy. |
Step 5 |
Router(config-p-map-c)# bandwidth {bandwidth_kbps | percent percent} |
Specifies the minimum bandwidth guarantee to a traffic class. You can specify the minimum bandwidth guarantee in kilobits per second or by percent of the overall bandwidth. |
Step 6 |
Router(config-p-map)# class class-default |
Specifies the default class so that you can configure or modify its policy. |
Step 7 |
Router(config-p-map-c)# random-detect |
Applies WRED to the policy based on the IP precedence or the MPLS EXP field value. |
Step 8 |
Router(config)# interface type slot/port |
Selects an interface to configure. |
Step 9 |
Router(config-if)# service-policy output name |
Attaches a QoS policy to an interface and specifies that policies should be applied on packets leaving the interface. |
Note
The bandwidth command and random-detect command are not supported on LAN ports.
Configuration Example
This example shows how to classify packets based on their MPLS EXP field and provide appropriate discard and scheduling treatments:
Router(config)# class-map MPLS-EXP-4
Router(config-c-map)# match mpls experimental 4
Router(config)# policy-map output-qos
Router(config-p-map)# class MPLS-EXP-4
Router(config-p-map-c)# bandwidth percent 40
Router(config-p-map)# class class-default
Router(config-p-map-c)# random-detect
Router(config)# interface pos 2/1
Router(config-if)# service-policy output output-qos
Configuring the Egress PE Router—Customer Facing Interface
To classify a packet based on its IP DSCP value and provide appropriate discard and scheduling treatments, perform this task:
|
|
|
Step 1 |
Router(config)# class-map class_name |
Specifies the class map to which packets will be mapped (matched). Creates a traffic class. |
Step 2 |
Router(config-c-map)# match ip dscp dscp_values |
Uses the DSCP values as the match criteria. |
Step 3 |
Router(config)# policy-map name |
Configures the QoS policy for packets that match the class or classes. |
Step 4 |
Router(config-p-map)# class class_name |
Associates the traffic class with the service policy. |
Step 5 |
Router(config-p-map-c)# bandwidth {bandwidth_kbps | percent percent} |
Specifies the minimum bandwidth guarantee to a traffic class. You can specify the minimum bandwidth guarantee in kilobits per second or by percent of the overall bandwidth. |
Step 6 |
Router(config-p-map)# class class-default |
Specifies the default class so that you can configure or modify its policy. |
Step 7 |
Router(config-p-map-c)# random-detect dscp-based |
Enables a WRED drop policy for a traffic class that has a bandwidth guarantee. |
Step 8 |
Router(config)# interface type slot/port |
Selects an interface to configure. |
Step 9 |
Router(config-if)# service-policy output name |
Attaches a QoS policy to an interface and specifies that policies should be applied on packets leaving the interface. |
Configuration Example
This example shows how to classify a packet based on its IP DSCP value and provide appropriate discard and scheduling treatments:
Router(config)# class-map IP-PREC-4
Router(config-c-map)# match ip precedence 4
Router(config)# policy-map output-qos
Router(config-p-map)# class IP-PREC-4
Router(config-p-map-c)# bandwidth percent 40
Router(config-p-map)# class class-default
Router(config-p-map-c)# random-detect
Router(config)# interface gigabitethernet 3/2.32
Router(config-if)# service-policy output output-qos
How to Configure Uniform Mode
•
Configuring the Ingress PE Router—Customer Facing Interface
•
Configuring the Ingress PE Router—P Facing Interface
•
Configuring the Egress PE Router—Customer Facing Interface
Note
The steps that follow show one way, but not the only way, to configure the Uniform mode.
Configuring the Ingress PE Router—Customer Facing Interface
For Uniform mode, setting the trust state to IP precedence or IP DSCP allows the PFC to copy the IP PHB into the MPLS PHB.
Note
This description applies to PFC QoS for LAN ports.
To configure a policy map to set the MPLS EXP field in imposed label entries, perform this task:
|
|
|
Step 1 |
Router(config)# access-list ipv4_acl_number_or_name permit any |
Creates an IPv4 access list. |
Step 2 |
Router(config)# class-map class_name |
Creates a class map. |
Step 3 |
Router(config-cmap)# match access-group ipv4_acl_number_or_name |
Configures the class map to filter with the ACL created in Step 1. |
Step 4 |
Router(config)# policy-map policy_map_name |
Creates a named QoS policy. |
Step 5 |
Router(config-pmap)# class class_name |
Configures the policy to use the class map created in step 2. |
Step 6 |
Router(config-pmap-c)# police bits_per_second [normal_burst_bytes] conform-action transmit exceed-action drop |
Configures policing, including the following: • Action to take on packets that conform to the rate limit specified in the SLA. • Action to take on packets that exceed the rate limit specified in the SLA. |
Step 7 |
Router(config)# interface type slot/port |
Selects an interface to configure. |
Step 8 |
Router(config-if)# platform qos trust dscp |
Configures received DSCP as the basis of the internal DSCP for all the port's ingress traffic. |
Step 9 |
Router(config-if)# service-policy input policy_map_name |
Attaches the policy map created in step 4 to the interface as an input service policy. |
Configuration Example
This example shows how to configure a policy map to set the MPLS EXP field in imposed label entries:
Router(config)# access-list 1 permit any
Router(config)# class-map CUSTOMER-A
Router(config-cmap)# match access-group 1
Router(config)# policy-map SLA-A
Router(config-pmap)# class CUSTOMER-A
Router(config-pmap-c)# police 50000000 conform-action transmit exceed-action drop
Router(config)# interface gigabitethernet 3/1
Router(config-if)# platform qos trust dscp
Router(config)# interface gigabitethernet 3/1.31
Router(config-if)# service-policy input SLA-A
Configuring the Ingress PE Router—P Facing Interface
To classify packets based on their MPLS EXP field and provide appropriate discard and scheduling treatments, perform this task:
|
|
|
Step 1 |
Router(config)# class-map class_name |
Specifies the class map to which packets will be mapped (matched). Creates a traffic class. |
Step 2 |
Router(config-c-map)# match mpls experimental exp_list |
Specifies the MPLS EXP field values used as a match criteria against which packets are checked to determine if they belong to the class. |
Step 3 |
Router(config)# policy-map name |
Configures the QoS policy for packets that match the class or classes. |
Step 4 |
Router(config-p-map)# class class_name |
Associates the traffic class with the service policy. |
Step 5 |
Router(config-p-map-c)# bandwidth {bandwidth_kbps | percent percent} |
Specifies the minimum bandwidth guarantee to a traffic class. You can specify the minimum bandwidth guarantee in kilobits per second or by percent of the overall bandwidth. |
Step 6 |
Router(config-p-map)# class class-default |
Specifies the default class so that you can configure or modify its policy. |
Step 7 |
Router(config-p-map-c)# random-detect |
Enables a WRED drop policy for a traffic class that has a bandwidth guarantee. |
Step 8 |
Router(config)# interface type slot/port |
Selects an interface to configure. |
Step 9 |
Router(config-if)# service-policy output name |
Attaches a QoS policy to an interface and specifies that policies should be applied on packets leaving the interface. |
Note
The bandwidth command and random-detect command are not supported on LAN ports.
Configuration Example
This example shows how to classify packets based on their MPLS EXP field and provide appropriate discard and scheduling treatments:
Router(config)# class-map MPLS-EXP-3
Router(config-c-map)# match mpls experimental 3
Router(config)# policy-map output-qos
Router(config-p-map)# class MPLS-EXP-3
Router(config-p-map-c)# bandwidth percent 40
Router(config-p-map)# class class-default
Router(config-p-map-c)# random-detect
Router(config)# interface pos 4/1
Router(config-if)# service-policy output output-qos
Configuring the Egress PE Router—Customer Facing Interface
To configure the egress PE router at the customer-facing interface, perform this task:
|
|
|
Step 1 |
Router(config)# class-map class_name |
Specifies the class map to which packets will be mapped (matched). Creates a traffic class. |
Step 2 |
Router(config-c-map)# match ip precedence precedence-value |
Identifies IP precedence values as match criteria. |
Step 3 |
Router(config)# policy-map name |
Configures the QoS policy for packets that match the class or classes. |
Step 4 |
Router(config-p-map)# class class_name |
Associates the traffic class with the service policy. |
Step 5 |
Router(config-p-map-c)# bandwidth {bandwidth_kbps | percent percent} |
Specifies the minimum bandwidth guarantee to a traffic class. You can specify the minimum bandwidth guarantee in kilobits per second or by percent of the overall bandwidth. |
Step 6 |
Router(config-p-map)# class class-default |
Specifies the default class so that you can configure or modify its policy. |
Step 7 |
Router(config-p-map-c)# random-detect |
Applies WRED to the policy based on the IP precedence or the MPLS EXP field value. |
Step 8 |
Router(config)# interface type slot/port |
Selects an interface to configure. |
Step 9 |
Router(config-if) mpls propagate-cos |
Enables propagation of EXP value into the underlying IP DSCP at the MPLS domain exit LER egress port. |
Step 10 |
Router(config-if)# service-policy output name |
Attaches a QoS policy to an interface and specifies that policies should be applied on packets coming into the interface. |
Note
The bandwidth command and random-detect command are not supported on LAN ports.
Configuration Example
This example shows how to configure the egress PE router at the customer-facing interface:
Router(config)# class-map IP-PREC-4
Router(config-c-map)# match ip precedence 4
Router(config)# policy-map output-qos
Router(config-p-map)# class IP-PREC-4
Router(config-p-map-c)# bandwidth percent 40
Router(config-p-map)# class class-default
Router(config-p-map-c)# random-detect
Router(config)# interface gigabitethernet 3/2.32
Router(config-if) mpls propagate-cos
Router(config-if)# service-policy output output-qos
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