Table Of Contents
MPLS Quality of Service Enhancements
Related Features and Technologies
Configuring Cisco Express Forwarding
Using MPLS Quality of Service Enhancements
Setting the MPLS Experimental Field Value
Importance of Prioritizing a Packet Appropriately
Configuration Tasks for Ingress PE Routers
Using the Modular QoS CLI to Configure the Ingress Label Switching Router
Configuring a Class Map to Classify IP Packets
Configuring a Policy Map to Set the MPLS Experimental Field
Configuring the Input Interface to Attach the Service Policy
Using CAR to Configure the Ingress Label Switching Router
Configuring a Rate-Limit Access List for Classifying IP Packets
Configuring a Rate-Limit on an Input Interface to Set MPLS Packets
Configuring the Output IP Packet's QoS on the Egress PE Router
Configuring the Output MPLS Packet's QoS
MPLS Quality of Service Enhancements
Feature History
Release Modification12.0(14)ST
This feature was introduced.
12.0(22)S
This feature was updated to support the Cisco 10720 Internet router.
This feature module describes the MPLS quality of service (QoS) enhancements.
The document contains the following sections:
•
Using MPLS Quality of Service Enhancements
•
Setting the MPLS Experimental Field Value
•
Configuring the Output IP Packet's QoS on the Egress PE Router
•
Configuring the Output MPLS Packet's QoS
Feature Overview
When a customer transmits 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 class of service. Based on the IP precedence marking, the packet is given the desired treatment such as the latency or the percent of bandwidth allowed. 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 an MPLS packet's QoS to a different value determined by the service offering.
This feature allows the service provider to set the MPLS experimental field instead of overwriting the value in the customer's IP precedence field. The IP header remains available for the customer's use; the IP packet's marking is not changed as the packet travels through the multiprotocol label switching (MPLS) network.
Figure 1 shows an MPLS network that connects two sites of a customer's IP network.
Figure 1
![]()
MPLS Network Connecting Two Sites of a Customer's IP Network
![]()
Note
The network is bidirectional, but for the purpose of this document the packets move left to right.
In Figure 1, the symbols have the following meanings:
![]()
Note
Notice that PE1 and PE2 are at the boundaries between the MPLS network and the IP network.
In Figure 1
•
Packets arrive as IP packets at PE1, the provider edge router (also known as the ingress label switching router).
•
PE1 transmits the packets as MPLS packets.
•
Within the service provider network, there is no IP precedence field for the queuing mechanism to look at because the packets are MPLS packets. The packets remain MPLS packets until they arrive at PE2, the provider edge router.
•
PE2 removes the label from each packet and forwards the packets as IP packets.
Benefits
This section describes
•
Benefits to Service Providers
Benefits to Service Providers
MPLS quality of service enhancements allow service providers to classify packets according to their type, input interface, and other factors by setting (marking) each packet within the MPLS experimental field without changing the IP precedence/DSCP field. For example, service providers can classify packets with or without considering the rate of the packets that PE1 receives. If the rate is a consideration, the service provider marks in-rate packets differently from out-of-rate packets.
Benefits to Customers
MPLS quality of service enhancements preserve the IP packet's precedence/DSCP bits from being modified in the provider network so that the customer can differentiate traffic within their network, but need not buy multiple grades of service from the provider.
Related Features and Technologies
You should be familiar with the following concepts:
•
MPLS
•
QoS
Each is described briefly below.
MPLS
This section briefly describes the difference between a non-MPLS and an MPLS network.
In an IP (non-MPLS) network, the Layer 2 destination address specifies the first router (PE1). The following actions occur:
1.
The router looks up the destination address in the IP Router Forwarding table. This table indicates the output interface to which the packet should go.
2.
At each hop, the router overwrites the Layer 2 header.
In an MPLS network, routers use labels instead of destination addresses. The following actions occur:
1.
Each router calculates the shortest path to the destination network.
2.
Each label switching router (LSR) assigns a label comprising 1 to 20 random bits to the shortest route.
3.
Each router advertises the shortest route to all its neighbors (adjacent MPLS routers).
4.
The router prepends a label to the packet.
5.
When a router receives a packet, the label designates the interface to which the router should send the packet.
![]()
Note
Tunnels allow a router to specify a path other than the shortest path to the destination. A router can put a value in the label other than the advertised label.
Cisco Express Forwarding
Cisco Express Forwarding (CEF) is advanced Layer 3 IP switching technology. CEF optimizes network performance and scalability for networks with large and dynamic traffic patterns, such as the Internet, and for networks characterized by intensive Web-based applications.
QoS
QoS refers to the ability of a network to provide differentiated service to selected network traffic over packet networks and cell networks. In particular, QoS features provide improved and more predictable network service by
•
Supporting dedicated bandwidth
•
Improving loss characteristics
•
Avoiding and managing network congestion
•
Shaping network traffic
•
Setting traffic priorities across the network
The Quality of Service (QoS) feature used in conjunction with MPLS enables network administrators to provide differentiated services across an MPLS network.
MPLS QoS supports the following services:
•
Committed Access Rate (CAR)—Classifies packets according to input or output transmission rates. Allows you to set the MPLS experimental bits or the IP precedence/DSCP bits (whichever is appropriate).
•
Weighted Random Early Detection (WRED)—Monitors network traffic to prevent congestion by dropping packets based on the IP precedence/DSCP bits or the MPLS experimental field.
•
Class-Based Weighted Fair Queuing (CBWFQ)— An automated scheduling system that uses a queuing algorithm to ensure bandwidth allocation to different classes of network traffic.
![]()
Note
The MPLS experimental bits allow you to specify the QoS for an MPLS packet. The IP precedence/DSCP bits allow you to specify the QoS for an IP packet.
For more information about QoS, see the MPLS Class of Service manual.
Related Documents
Refer to the MPLS Class of Service manual and to the Cisco IOS Quality of Service Solutions Configuration Guide.
Supported Platforms
The network can contain any of the following routers:
•
Cisco 7500 series (including the Cisco 7505, Cisco 7507, Cisco 7513, and Cisco 7576)
•
Cisco GSR 12000 series (including the Cisco 12008, Cisco 12012, and Cisco 12016)
•
Cisco 10720 Internet router
Determining Platform Support Through Cisco Feature Navigator
Cisco IOS software is packaged in feature sets that are supported on specific platforms. To get updated information regarding platform support for this feature, access Cisco Feature Navigator. Cisco Feature Navigator dynamically updates the list of supported platforms as new platform support is added for the feature.
Cisco Feature Navigator is a web-based tool that enables you to quickly determine which Cisco IOS software images support a specific set of features and which features are supported in a specific Cisco IOS image. You can search by feature or release. Under the release section, you can compare releases side by side to display both the features unique to each software release and the features in common.
To access Cisco Feature Navigator, you must have an account on Cisco.com. If you have forgotten or lost your account information, send a blank e-mail to cco-locksmith@cisco.com. An automatic check will verify that your e-mail address is registered with Cisco.com. If the check is successful, account details with a new random password will be e-mailed to you. Qualified users can establish an account on Cisco.com by following the directions found at this URL:
Cisco Feature Navigator is updated regularly when major Cisco IOS software releases and technology releases occur. For the most current information, go to the Cisco Feature Navigator home page at the following URL:
Availability of Cisco IOS Software Images
Platform support for particular Cisco IOS software releases is dependent on the availability of the software images for those platforms. Software images for some platforms may be deferred, delayed, or changed without prior notice. For updated information about platform support and availability of software images for each Cisco IOS software release, refer to the online release notes or, if supported, Cisco Feature Navigator.
Supported Standards and MIBs
Standards
Refer to the IETF http://www.ietf.org.
MIBs
Refer to class-based QoS MIB support.
To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:
http://tools.cisco.com/ITDIT/MIBS/servlet/index
If Cisco MIB Locator does not support the MIB information that you need, you can also obtain a list of supported MIBs and download MIBs from the Cisco MIBs page at the following URL:
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
To access Cisco MIB Locator, you must have an account on Cisco.com. If you have forgotten or lost your account information, send a blank e-mail to cco-locksmith@cisco.com. An automatic check will verify that your e-mail address is registered with Cisco.com. If the check is successful, account details with a new random password will be e-mailed to you. Qualified users can establish an account on Cisco.com by following the directions found at this URL:
Prerequisites
To use the MPLS QoS enhancements, your network must support the following Cisco IOS functions:
•
MPLS
•
CEF switching (on every MPLS-enabled router in your network)
Configuration Tasks
This section provides information about configuring the following:
•
Cisco Express Forwarding
•
QoS
Configuring Cisco Express Forwarding
Cisco Express Forwarding (CEF) is a prerequisite for using MPLS; CEF must be running on all routers in the network. To enable CEF on Cisco 7500 series routers, enter the following command:
ip cef distributed
For more information about configuring CEF, see the MPLS Class of Service manual.
![]()
Note
In Cisco GSR 12000 series routers, CEF is enabled by default.
Configuring QoS
To configure QoS, you can configure one or more of the following (in addition, of course, to other items not described in this document):
•
CAR (Committed Access Rate)
•
WRED (Weighted Random Early Detection)
•
WFQ (Weighted Fair Queuing)
For configuration information, see the MPLS Class of Service manual.
Using MPLS Quality of Service Enhancements
Figure 2 shows a service provider's MPLS network that connects two sites of a customer's network.
Figure 2 MPLS Network Connecting Two Sites of a Customer's IP Network
![]()
To use these features in a network, set the MPLS experimental field value at PE1 (the ingress label switching router) by using the modular QoS CLI or the rate-limit command that CAR provides. This sets the QoS value in the MPLS packet. For detailed instructions, go to "Setting the MPLS Experimental Field Value."
Setting the MPLS Experimental Field Value
Setting the MPLS experimental 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 experimental field, you can mark packets based on their characteristics, such as rate or type, so that packets have the priority that they require during periods of congestion.
Importance of Prioritizing a Packet Appropriately
During Step 1 of the configuration process (described in "Using the Modular QoS CLI to Configure the Ingress Label Switching Router" and "Using CAR to Configure the Ingress Label Switching Router") you classify IP packets according to their source address, destination address, port, protocol identification, or class of service field. For example, packets can be identified based on one or more of the above specified fields, as Voice Over IP (VoIP) or a File Transfer Protocol (FTP). Packet classification/marking is important because a packet's priority is determined by how it is classified/marked.
A packet's priority affects how the packet is treated during periods of congestion. For example, service providers have service level agreements (SLAs) with customers. The agreement specifies how much traffic the service provider has agreed to deliver. To comply with the agreement, the customer must not transmit more than the agreed-upon rate. Packets are considered to be in-rate or out-of-rate. If there is congestion in the network, out-of-rate packets might be dropped more aggressively.
Configuration Tasks for Ingress PE Routers
To classify IP packets, you configure the ingress label switching router. Packets are received at the ingress router as IP packets and transmitted as MPLS packets. To perform the configuration, use either of the following:
•
Modular QoS CLI, the newer and more flexible method—Use this method if you do not want to consider the rate of the packets that PE1 receives. (You cannot currently use this method for GSR routers.)
•
CAR—Use if you want to consider the rate of the incoming packets.
–
If a packet conforms to the service level agreement between the service provider and the customer (that is, the packet is in-rate), the service provider gives the packet preferential treatment when the service provider's network is congested.
–
If a packet does not conform (that is, it is out-of-rate) and the network is congested, the service provider might discard the packet or give it less preferential treatment.
Using the Modular QoS CLI to Configure the Ingress Label Switching Router
To use the Modular QoS CLI to configure PE1 (the ingress label switching router), do the following:
Step 1
Configure a class map to classify IP packets according to their IP precedence.
Step 2
Configure a policy map to mark MPLS packets. (Write their classification into the MPLS experimental field.)
Step 3
Configure the input interface to attach the service policy.
Configuring a Class Map to Classify IP Packets
To configure a class map, perform the following steps:
In the following example, all packets that contain IP precedence 4 are matched by the class-map name IP_prec4:
Router(config)# class-map IP_prec4 Router(config-cmap)# match ip precedence 4 Router(config-cmap)# endConfiguring a Policy Map to Set the MPLS Experimental Field
To configure a policy map, perform the following steps:
In the following example, the value in the MPLS experimental field of each packet that is matched by the class-map IP_prec4 is set to 5:
Router(config)# policy-map set_experimental_5 Router(config-pmap)# class IP_prec4 Router(config-pmap-c)# set mpls experimental 5 Router(config-pmap-c)# endConfiguring the Input Interface to Attach the Service Policy
To configure the input interface, perform the following steps:
In the following example, the service policy set_experimental_5 is attached to an Ethernet input interface:
Router(config)# interface et 1/0/0 Router(config-int)# service-policy input set_experimental_5 Router(config-int)# endUsing CAR to Configure the Ingress Label Switching Router
To use CAR to configure the ingress label switching router, do the following:
Step 1
Configure an IP rate-limit access list for classifying IP packets according to their IP precedence. Perform this step at PE1 (the ingress LSR).
Step 2
Configure a rate-limit on an input interface to set MPLS packets. (Write the packet's classification into the MPLS experimental field.)
These steps are explained in the following sections.
Configuring a Rate-Limit Access List for Classifying IP Packets
Command PurposeStep 1
Router(config)# access-list rate-limit acl-index precedenceSpecifies the criteria to be matched.
Step 2
Router(config)# endExits configuration mode.
To configure a rate-limit access list, perform the following steps:
In the following example, all packets that contain IP precedence 4 are matched by the rate-limit access list 24:
Router(config)# access-list rate-limit 24 4 Router(config)# endConfiguring a Rate-Limit on an Input Interface to Set MPLS Packets
To configure a rate-limit on an input interface, perform the following steps:
In the following example, the experimental field for the output MPLS packet is set to 4 if the input IP packets match the access-list and conform to the rate. The MPLS experimental field is set to 0 if packets match access list 24 and exceed the input rate.
Router(config)# interface et 1/0/0 Router(config-int)# rate-limit input access-group rate-limit 24 8000 8000 8000 conform-action set-mpls-exp-transmit 4 exceed-action set-mpls-exp-transmit 0 Router(config-int)# endConfiguring the Output IP Packet's QoS on the Egress PE Router
The output IP packet's quality of service is determined by the IP header information. For configuration details, refer to the Cisco IOS Quality of Service Solutions Configuration Guide.
Configuring the Output MPLS Packet's QoS
The output MPLS packet's quality of service is determined by the MPLS experimental field in the topmost label. For configuration details, refer to the MPLS Class of Service manual.
Command Reference
This section documents the following new or modified commands:
All other commands used with this feature are documented in the Cisco IOS Release 12.2 command reference publications.
access-list rate-limit
To configure an access list for use with committed access rate (CAR) policies, use the access-list rate-limit global configuration command. To remove the access list from the configuration, use the no form of this command.
access-list rate-limit acl-index {precedence | mac-address | exp | mask mask}
no access-list rate-limit acl-index {precedence | mac-address | exp | mask mask}
Syntax Description
Defaults
No CAR access lists are configured.
Command Modes
Global configuration
Command History
Usage Guidelines
Use this command to classify packets by the specified IP precedence, MAC address, or MPLS experimental field values for a particular CAR access list. You can then apply CAR policies, using the rate-limit command, to individual rate-limit access lists. This causes packets with different IP precedences, MAC addresses, or MPLS experimental field values to be treated differently by the CAR process.
You can specify only one command for each rate-limit access list. If you enter this command multiple times with the same access list number, the new command overwrites the previous command.
Use the mask keyword to assign multiple IP precedences or MPLS experimental field values to the same rate-limit list. To ascertain the mask value, perform the following steps:
Step 1
Decide which precedences you want to assign to this rate-limit access list.
Step 2
Convert the precedences or MPLS experimental field values into 8-bit numbers with each bit corresponding to one value. For example, an MPLS experimental field value of 0 corresponds to 00000001, 1 corresponds to 00000010, 6 corresponds to 01000000, and 7 corresponds to 10000000.
Step 3
Add the 8-bit numbers for the selected MPLS experimental field values. For example, the mask for MPLS experimental field values 1 and 6 is 01000010.
Step 4
The command expects hexadecimal format. Convert the binary mask into the corresponding hexadecimal number. For example, 01000010 becomes 42. This value is used in the access-list rate-limit command. Any packets that have an MPLS experimental field value of 1 or 6 will match this access list.
A mask of FF matches any precedence, and 00 does not match any precedence.
Examples
In the following example, MPLS experimental fields with the value of 7 are assigned to the rate-limit access list 200:
router(config)# access-list rate-limit 200 7You can then use the rate-limit access list in a rate-limit command so that the rate limit is applied only to packets matching the rate-limit access list.
router(config)# interface atm4/0.1 mplsrouter(config-if)# rate-limit input access-group rate-limit 200 8000 8000 8000 conform-action set-mpls-exp-transmit 4 exceed-action set-mpls-exp-transmit 0Related Commands
Command DescriptionConfigures committed access rate (CAR) and distributed CAR (DCAR) policies.
show access-list rate-limit
Displays information about rate-limit access lists.
rate-limit
To configure CAR and DCAR policies, use the rate-limit interface configuration command. To remove the rate limit from the configuration, use the no form of this command.
rate-limit {input | output} [access-group [rate-limit] acl-index] bps
burst-normal burst-max conform-action conform-action exceed-action exceed-actionno rate-limit {input | output}[access-group [rate-limit] acl-index] bps
burst-normal burst-max conform-action conform-action exceed-action exceed-actionSyntax Description
Defaults
CAR and DCAR are disabled.
Command Modes
Interface configuration
Command History
Usage Guidelines
Use this command to configure your CAR policy on an interface. To specify multiple policies, enter this command once for each policy.
CAR and DCAR can be configured on an interface or subinterface.
Examples
In the following example, the rate is limited by application:
•
All World Wide Web traffic is transmitted. However, the MPLS experimental field for Web traffic that conforms to the first rate policy is set to 5. For nonconforming traffic, the IP precedence is set to 0 (best effort). See the following commands in the example:
rate-limit input rate-limit access-group 101 20000000 24000 32000 conform-actionset-mpls-exp-transmit 5 exceed-action set-mpls-exp-transmit 0access-list 101 permit tcp any any eq www•
FTP traffic is transmitted with an MPLS experimental field of 5 if it conforms to the second rate policy. If the FTP traffic exceeds the rate policy, it is dropped. See the following commands in the example:
rate-limit input access-group 102 10000000 24000 32000conform-action set-mpls-exp-transmit 5 exceed-action dropaccess-list 102 permit tcp any any eq ftp•
Any remaining traffic is limited to 8 Mbps, with a normal burst size of 16000 bytes and an excess burst size of 24000 bytes. Traffic that conforms is transmitted with an MPLS experimental field of 5. Traffic that does not conform is dropped. See the following command in the example:
rate-limit input 8000000 16000 24000 conform-action set-mpls-exp-transmit 5exceed-action dropNotice that two access lists are created to classify the Web and FTP traffic so that they can be handled separately by the CAR feature.
router(config)# interface Hssi0/0/0router(config-if)# description 45Mbps to R2router(config-if)# rate-limit input rate-limit access-group 101 20000000 24000 32000conform-action set-mpls-exp-transmit 5 exceed-action set-mpls-exp-transmit 0router(config-if)# rate-limit input access-group 102 10000000 24000 32000conform-action set-mpls-exp-transmit 5 exceed-action droprouter(config-if)# rate-limit input 8000000 16000 24000 conform-actionset-mpls-exp-transmit 5 exceed-action droprouter(config-if)# ip address 200.200.14.250 255.255.255.252!router(config-if)# access-list 101 permit tcp any any eq wwwrouter(config-if)# access-list 102 permit tcp any any eq ftpIn the following example, the MPLS experimental field is set and the packet is transmitted:
router(config)# interface FastEtheret1/1/0router(config)# rate-limit input 8000 1000 1000 access-group conform-actionset mpls-exp-transmit 5 exceed-action set-mpls-exp-transmit 5Related Commands
set mpls experimental
To configure a policy to set the MPLS experimental field within the modular QoS CLI, use the set mpls experimental policy map configuration command. To disable the policy map, use the no form of this command.
set mpls experimental value
no set mpls experimental value
Syntax Description
value
Specifies the value used to set MPLS experimental bits defined by the policy map. Valid values are 0 to 7, and they can be space-delimited. For example, 3 4 7.
Defaults
No default behavior or values.
Command Modes
Policy map configuration
Command History
Release Modification12.0(14)ST
This command was introduced.
12.0(22)S
This command was integrated into Cisco IOS Release 12.0(22)S.
Usage Guidelines
Use the policy map to set the MPLS experimental field when it is undesirable to modify the IP precedence field.
Examples
The following example specifies a policy map called out_pmap. The policy map comprises class maps. Class map mpls_2 matches packets with MPLS experimental field 2 and resets the MPLS experimental field to 3.
router(config)# class-map mpls_2match mpls experimental 2router(config)# policy-map out_pmapclass mpls_2set mpls experimental 3Related Commands
Glossary
CAR—Committed Access Rate. Classifies packets according to input or output transmission rates. Allows you to set the MPLS experimental bits or the IP precedence/DSCP bits (whichever is appropriate).
CBWFQ—Class-based weighted fair queuing. An automated scheduling system that uses a queuing algorithm to ensure bandwidth allocation to different classes of network traffic.
CE router—Customer edge router. A router, which is part of a customer network, that interfaces to a PE router.
class-based weighted fair queuing—See CBWFQ.
committed access rate—See CAR.
customer network—A network that is under the control of an end customer. A customer network can use private addresses as defined in RFC 1918. Customer networks are logically isolated from each other and from the service provider's network.
differentiated services code point—See DSCP.
DSCP—Differentiated Services Code Point. Six bits in the IP header, as defined by the IETF. These bits determine the quality of service provided to the IP packet.
IP precedence field—The first three bits of the DSCP field in the header of an IP packet. These bits allow you to specify the quality of service for the IP packet.
label—A short, fixed-length label that tells switching nodes how to forward data (packets).
label disposition—The act of removing the last MPLS label from a packet.
label imposition—The act of putting an MPLS label onto a packet for transmission on a label switched path (LSP).
label switching router—See LSR.
LSR—Label switching router. A Layer 3 router that forwards a packet based on the value of a label encapsulated in the packet.
MPLS—Multiprotocol label switching. Emerging industry standard upon which label switching is based.
MPLS experimental bits—Bits that allow you to specify the quality of service for an MPLS packet.
multiprotocol label switching—See MPLS.
PE router—Provider edge router. A router, at the edge of a service provider's network, that interfaces to CE routers.
provider edge router—See PE router.
provider network—A backbone network that is under the control of a service provider and provides transport between customer sites.
QoS—A measure of performance for a transmission system that reflects its transmission quality and service availability.
quality of service—See QoS.
VPN—Virtual private network. A network that enables IP traffic to use tunneling to travel securely over a public TCP/IP network.
virtual private network—See VPN.
WRED—Weighted random early detection. A congestion management algorithm that monitors network traffic and prevents congestion by dropping packets based on the IP precedence or the value in the MPLS experimental field.
weighted random early detection—See WRED.