The QoS Tunnel Marking for GRE Tunnels feature introduces the capability to define and control the quality of service (QoS) for incoming customer traffic on the provider edge (PE) router in a service provider network.
Note
For Cisco IOS Release 12.4(15)T2, the QoS Tunnel Marking for GRE Tunnels feature is supported only on platforms equipped with a Cisco MGX Route Processor Module (RPM-XF).
Your software release may not support all the features documented in this module. For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the Feature Information Table at the end of this document.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to
www.cisco.com/go/cfn. An account on Cisco.com is not required.
Prerequisites for QoS Tunnel Marking for GRE Tunnels
You must configure Cisco Express Forwarding on the interface before Generic Routing Encapsulation (GRE) tunnel marking can be used.
You must determine the topology and interfaces that need to be configured to mark incoming traffic.
Restrictions for QoS Tunnel Marking for GRE Tunnels
GRE tunnel marking and the
iptos command can be configured at the same time. However, modular quality of service (QoS) CLI (MQC) GRE tunnel marking has higher priority over IP Type of Service (ToS) commands, meaning that tunnel marking always rewrites the IP header of the tunnel packet and overwrites the values set by
iptos commands. The priority of enforcement is as follows when these commands are used simultaneously:
setipdscptunnel or
setipprecedencetunnel (GRE tunnel marking)
iptosreflect
iptostos-value
Note
This is the designed behavior. We recommend that you configure only GRE tunnel marking and reconfigure any peers configured with the
iptos command to use GRE tunnel marking.
Information About QoS Tunnel Marking for GRE Tunnels
Generic routing encapsulation (GRE) is a tunneling protocol developed by Cisco that can encapsulate a wide variety of protocol packet types inside IP tunnels, creating a virtual point-to-point link to Cisco routers at remote points over an IP internetwork.
GRE Tunnel Marking Overview
The QoS Tunnel Marking for GRE Tunnels feature allows you to define and control QoS for incoming and outgoing customer traffic on the PE router in a service provider (SP) network. This feature lets you set (mark) either the IP precedence value or the differentiated services code point (DSCP) value in the header of an GRE tunneled packet. GRE tunnel marking can be implemented by a QoS marking command, such as
setip {dscp |
precedence} [tunnel], and it can also be implemented in QoS traffic policing. This feature reduces administrative overhead previously required to control customer bandwidth by allowing you to mark the GRE tunnel header on the tunnel interface on the PE routers.
Note
The
setip {dscp |
precedence}
[tunnel] command is equivalent to the
set {dscp |
precedence}
[tunnel] command.
The figure below shows traffic being received from the CE1 router through the incoming interface on the PE1 router on which tunnel marking occurs. The traffic is encapsulated (tunneled), and the tunnel header is marked on the PE1 router. The marked packets travel (tunnel) through the core and are decapsulated automatically on the exit interface of the PE2 router. This feature is designed to simplify classifying customer edge (CE) traffic and is configured only in the service provider network. This process is transparent to the customer sites. The CE1 and CE2 routers exist as a single network.
Figure 1
Tunnel Marking
GRE Tunnel Marking and the MQC
Before you can configure tunnel marking for GRE tunnels, you must first configure a class map and a policy map and then attach that policy map to the appropriate interface. These three tasks can be accomplished by using the MQC.
For information on using the MQC, see the "Applying QoS Features Using the MQC" module.
GRE Tunnel Marking and DSCP or IP Precedence Values
GRE tunnel marking is configured with the
setipprecedencetunnel or
setipdscptunnel command on PE routers that carry incoming traffic from customer sites. GRE tunnel marking allows you to mark the header of a GRE tunnel by setting a DSCP value from 0 to 63 or an IP precedence value from 0 to 7 to control GRE tunnel traffic bandwidth and priority.
GRE traffic can also be marked under traffic policing with the
set-dscp-tunnel-transmit and the
set-prec-tunnel-transmit actions (or keywords) of the
police command. The tunnel marking value is from 0 to 63 for the
set-dscp-tunnel-transmit actions and from 0 to 7 for the
set-prec-tunnel-transmitcommand. Under traffic policing, tunnel marking can be applied with "conform", "exceed", and "violate" action statements, allowing you to automatically apply a different value for traffic that does not conform to the expected traffic rate.
After the tunnel header is marked, GRE traffic is carried through the tunnel and across the service provider network. This traffic is decapsulated on the interface of the PE router that carries the outgoing traffic to the other customer site. The configuration of GRE tunnel marking is transparent to customer sites. All internal configuration is preserved.
There is a different between the
setipprecedence and
setipdscp commands and the
setipprecedencetunnel and
setipdscptunnel commands:
The
setipprecedence and
setipdscp commands are used to set the IP precedence value or DSCP value in the header of an IP packet.
The
setipprecedencetunnel and
setipdscptunnel commands are used to set (mark) the IP precedence value or DSCP value in the tunnel header that encapsulates the GRE traffic.
Benefits of GRE Tunnel Marking
GRE tunnel marking provides a simple mechanism to control the bandwidth of customer GRE traffic. The QoS Tunnel Marking for GRE Tunnels feature is configured entirely within the service provider network and on interfaces that carry incoming and outgoing traffic on the PE routers.
Traffic policing allows you to control the maximum rate of traffic sent or received on an interface and to partition a network into multiple priority levels or class of service (CoS). If you use traffic policing in your network, you can also implement the GRE tunnel marking feature with the
set-dscp-tunnel-transmit or
set-prec-tunnel-transmit action (or keyword) of the
police command in policy-map class configuration mode. Under traffic policing, tunnel marking can be applied with conform, exceed, and violate action statements, allowing you to apply a different value automatically for traffic that does not conform to the expected traffic rate.
GRE Tunnel Marking Values
The range of the tunnel marking values for the
setipdscptunnel and
set-dscp-tunnel-transmit commands is from 0 to 63, and the range of values for the
setipprecedencetunnel and
set-prec-tunnel-transmit commands is from 0 to 7.
Specifies the name of the class map to be created and enters QoS class map configuration mode.
The class map defines the criteria to use to differentiate the traffic. For example, you can use the class map to differentiate voice traffic from data traffic, based on a series of match criteria defined using the
match command.
Note
If the
match-all or
match-any keyword is not specified, traffic must match all the match criteria to be classified as part of the traffic class.
Step 4
matchfr-de
Example:
Router(config-cmap)# match fr-de
Enables packet matching on the basis of the specified class.
You can enter one of the following three
match commands to define the match criteria for GRE tunnel marking:
match atm clp
match cos
match fr-de
Note
This is an example of only one match criterion that you can configure with a
match command. Other criteria include matching on the IP precedence, access group, or protocol. Enter the
match command for the criterion that you want to specify. For more information about specifying match criteria using the MQC, see the "Applying QoS Features Using the MQC" module.
Step 5
end
Example:
Router(config-cmap)# end
(Optional) Returns to privileged EXEC mode.
Creating a Policy Map
GRE tunnel marking and the
iptos command can be configured at the same time. However, MQC (GRE) tunnel marking has higher priority over IP ToS commands, meaning that tunnel marking will always rewrite the IP header of the tunnel packet, overwriting the values set by
iptos commands. The order of enforcement is as follows when these commands are used simultaneously:
setipdscptunnel or
setipprecedencetunnel (GRE tunnel marking)
iptosreflect
iptostos-value
Note
This is the designed behavior. We recommend that you configure only GRE tunnel marking and reconfigure any peers, configured with the
iptos command, to use GRE tunnel marking.
Creates or modifies a policy map that can be attached to one or more interfaces to specify a service policy, and enters QoS policy-map configuration mode.
Step 4
class {class-name |
class-default}
Example:
Router(config-pmap)# class MATCH_FRDE
Specifies the name of the class whose policy you want to create or change or specifies the default class (commonly known as the class-default class) before you configure its policy.
OR
Router(config-pmap-c)# police 8000 conform-action set-prec-tunnel-transmit 4 exceed-action set-prec-tunnel-transmit 0
Sets or marks the tunnel header of a GRE-tunneled packet
The first example sets or marks the differentiated services code point (DSCP) value in the tunnel header of a GRE-tunneled packet on the ingress interface. The tunnel marking value is a number from 0 to 63 when DSCP is configured.
The second example sets or marks the IP precedence value in the tunnel header of a GRE-tunneled packet on the ingress interface. The tunnel marking value is a number from 0 to 7 when IP precedence is configured.
The third example configures traffic policing on the basis of the bits per second (bps) specified and the actions specified.
If you use traffic policing in your network, you can implement the GRE tunnel marking feature with the
set-dscp-tunnel-transmit or
set-prec-tunnel-transmit keyword of the
police command instead of the
setipdscptunnel or the
setipprecedencetunnel command.
The tunnel marking value for the traffic policing commands is from 0 to 63 when
set-dscp-tunnel-transmit is used and from 0 to 7 when
set-prec-tunnel-transmit is used.
Enter the bps, any optional burst sizes, and the desired conform and exceed actions.
Enter the
set-dscp-tunnel-transmit or
set-prec-tunnel-transmit commands after the
conform-action keyword.
Note
This is an example of one QoS feature that you can configure at this step. Other QoS features include Weighted Random Early Detection (WRED), Weighted Fair Queueing (WFQ), and traffic shaping. Enter the command for the specific QoS feature that you want to configure. For more information about QoS features, see the "Quality of Service Overview" module.
Step 6
end
Example:
Router(config-pmap-c)# end
(Optional) Returns to privileged EXEC mode.
Attaching the Policy Map to an Interface or a VC
Policy maps can be attached to main interfaces, subinterfaces, or ATM permanent virtual circuits (PVCs). Policy maps are attached to interfaces by using the
service-policy command and specifying either the
input or
output keyword to indicate the direction of the interface.
SUMMARY STEPS
1.enable
2.configureterminal
3.interfacetypenumber[name-tag]
4.pvc [name]
vpi/vci [ilmi |
qsaal |
smds]
5.service-policy {input |
output}policy-map-name
6.end
DETAILED STEPS
Command or Action
Purpose
Step 1
enable
Example:
Router> enable
Enables privileged EXEC mode.
Enter your password if prompted.
Step 2
configureterminal
Example:
Router# configure terminal
Enters global configuration mode.
Step 3
interfacetypenumber[name-tag]
Example:
Router(config)# interface serial 0
Configures the specified interface type and enters interface configuration mode.
Step 4
pvc [name]
vpi/vci [ilmi |
qsaal |
smds]
Example:
Router(config-if)# pvc cisco 0/16 ilmi
(Optional) Creates or assigns a name to an ATM PVC, specifies the encapsulation type on an ATM PVC, and enters ATM VC configuration mode.
Step 5
service-policy {input |
output}policy-map-name
Example:
Router(config-if)# service-policy input policy1
OR
Router(config-if-atm-vc)# service-policy input policy1
Specifies the name of the policy map to be attached to the input or output direction of the interface.
Policy maps can be configured on ingress or egress routers. They can also be attached in the input or output direction of an interface. The direction (input or output) and the router (ingress or egress) to which the policy map should be attached vary according your network configuration.
Step 6
end
Example:
Router(config-if)# end
OR
Router(config-if-atm-vc)# end
(Optional) Returns to privileged EXEC mode.
Verifying the Configuration of Tunnel Marking for GRE Tunnels
Use the show commands in this procedure to view the GRE tunnel marking configuration settings. The show command are optional and can be entered in any order.
SUMMARY STEPS
1.enable
2.showpolicy-mapinterfaceinterface-name
3.showpolicy-mappolicy-map
4.exit
DETAILED STEPS
Command or Action
Purpose
Step 1
enable
Example:
Router> enable
Enables privileged EXEC mode.
Enter your password if prompted.
Step 2
showpolicy-mapinterfaceinterface-name
Example:
Router# show policy-map interface serial4/0
(Optional) Displays the packet statistics of all classes that are configured for all service policies either on the specified interface or subinterface or on a specific PVC on the interface.
Step 3
showpolicy-mappolicy-map
Example:
Router# show policy-map policy1
(Optional) Displays the configuration of all classes for a specified service policy map or all classes for all existing policy maps.
Example: Configuring Tunnel Marking for GRE Tunnels
The following is an example of a GRE tunnel marking configuration. In this example, a class map called "MATCH_FRDE" has been configured to match traffic based on the Frame Relay DE bit.
Router> enable
Router# configure terminal
Router(config)# class-map MATCH_FRDE
Router(config-cmap)# match fr-de
Router(config-cmap)# end
In thfollowing part of the example configuration, a policy map called "TUNNEL_MARKING" has been created and the
setipdscptunnel command has been configured in the policy map. You could use the
setipprecedencetunnel command instead of the
setipdscptunnel command if you do not use DSCP in your network.
Router(config)# policy-map TUNNEL_MARKING
Router(config-pmap)# class MATCH_FRDE
Router(config-pmap-c)# set ip dscp tunnel 3
Router(config-pmap-c)# end
Note
The following part of the example configuration is not required to configure this feature if you use the
setipdscptunnel or
setipprecedencetunnel commands to enable GRE tunnel marking. This example shows how GRE tunnel marking can be enabled under traffic policing.
In the following part of the example configuration, the policy map called "TUNNEL_MARKING" has been created and traffic policing has also been configured by using the
police command and specifying the appropriate policing actions. The
set-dscp-tunnel-transmit command can be used instead of the
set-prec-tunnel-transmit command if you use DSCP in your network.
Router(config)# policy-map TUNNEL_MARKING
Router(config-pmap)# class class-default
Router(config-pmap-c)# police 8000 conform-action set-prec-tunnel-transmit 4 exceed-action set-prec-tunnel-transmit 0
Router(config-pmap-c)# end
In the following part of the example configuration, the policy map is attached to serial interface 0 in the inbound (input) direction by specifying the
input keyword of the
service-policy command:
Router(config)# interface serial 0
Router(config-if)# service-policy input TUNNEL_MARKING
Router(config-if)# end
In the final part of the example configuration, the policy map is attached to tunnel interface 0 in the outbound (output) direction using the
output keyword of the
service-policy command:
Router(config)# interface Tunnel 0
Router(config-if)# service-policy output TUNNEL_MARKING
Router(config-if)# end
Example: Verifying the Tunnel Marking for GRE Tunnels Configuration
This section contains sample output from the
showpolicy-mapinterface and the
showpolicy-map commands. The output from these commands can be used to verify and monitor the feature configuration in your network.
The following is sample output from the
showpolicy-mapinterface command. In this sample output, the character string "ip dscp tunnel 3" indicates that GRE tunnel marking has been configured to set the DSCP value in the header of a GRE-tunneled packet.
Router# show policy-map interface Serial0
Service-policy input: tunnel
Class-map: frde (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: fr-de
QoS Set
ip dscp tunnel 3
Packets marked 0
Class-map: class-default (match-any)
13736 packets, 1714682 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: any
13736 packets, 1714682 bytes
30 second rate 0 bps
The following is sample output from the
showpolicy-map command. In this sample output, the character string "ip precedence tunnel 4" indicates that the GRE tunnel marking feature has been configured to set the IP precedence value in the header of an GRE-tunneled packet.
Router# show policy-map
Policy Map TUNNEL_MARKING
Class MATCH_FRDE
set ip precedence tunnel 4
No new or modified RFCs are supported by this feature, and support for existing RFCs has not been modified by this feature.
--
Technical Assistance
Description
Link
The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.
Feature Information for QoS Tunnel Marking for GRE Tunnels
The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to
www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 1
Feature Information for QoS Tunnel Marking for GRE Tunnels
Feature Name
Releases
Feature Information
QoS Tunnel Marking for GRE Tunnels
12.4(15)T2
12.2(33)SRC
12.2(33)SB
The QoS Tunnel Marking for GRE Tunnels feature introduces the capability to define and control the QoS for incoming customer traffic on the PE router in a service provider network.
Note
For Cisco IOS Release 12.4(15)T2, the QoS Tunnel Marking for GRE Tunnels feature is supported only on platforms equipped with a Cisco MGX Route Processor Module (RPM-XF).
The following commands were introduced or modified:
matchatm-clp,
matchcos,
matchfr-de,
police,
police(tworates),
setipdscptunnel,
setipprecedencetunnel,
showpolicy-map,
showpolicy-mapinterface.
Egress DSCP Marking for GRE Tunnels
15.2(2)T
The Egress DSCP Marking for GRE Tunnels feature allows you to mark the DSCP in the tunnel header using an output service-policy attached to the tunnel.
Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at
www.cisco.com/go/trademarks. Third party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1005R)
Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.