Cisco IOS XR Modular Quality of Service Configuration Guide for the Cisco CRS Router, Release 4.3.x
Configuring Fabric QoS Policies and Classes
Downloads: This chapterpdf (PDF - 1.2MB) The complete bookPDF (PDF - 4.51MB) | Feedback

Configuring Fabric QoS Policies and Classes

Configuring Fabric QoS Policies and Classes

This module provides the conceptual and configuration information for fabric QoS.

Feature History for Configuring Fabric Quality of Service Policies and Classes on Cisco IOS XR Software

Release

Modification

Release 3.3.0

The Fabric QoS Policies and Classes feature was introduced.

Prerequisites for Configuring Fabric Quality of Service Policies and Classes

The following prerequisites are required for configuring modular fabric QoS on your network:

  • You must be in a user group associated with a task group that includes the proper task IDs. The command reference guides include the task IDs required for each command. If you suspect user group assignment is preventing you from using a command, contact your AAA administrator for assistance.

Information About Configuring Fabric Quality of Service Policies and Classes

To implement fabric QoS features in this document, you must understand the following concepts:

Overview

The fabricq queue selection mechanism is known as fabric QoS. Three ports are defined: a high-priority port for internal control traffic and classified high-priority traffic, a low-priority port for assured-forwarding (AF) traffic, and a best effort port (BE) for low-priority traffic. Each port is assigned 1023 queues. The queues map to a physical egress interface and are assigned when the interface is created. The associated quanta for each of the queues are derived from the bandwidth of the physical or logical interfaces in relative terms to the other interfaces present on that line card or PLIM.

By default, internal control traffic is placed in the high-priority queue. All other traffic is placed in the best-effort queue.

If an ingress QoS policy is configured classifying certain traffic as being priority, then the priority traffic is placed into the high-priority queue together with the internal control traffic. All other traffic is placed in the best-effort queue.

The user can configure a fabric QoS policy that defines the relative MDRR bandwidths associated with the AF and BE ports. This is applied to the secure domain router (SDR) (this may be the whole router if no individual service domain routers are configured) and affects all fabricq ASICs in the logical router.

A maximum of three classes can be specified within the policy. A class known as class-default is automatically created and equates to the BE port or queues. The name of this class cannot be altered. Any name may be applied to the classes that equate to the priority and AF ports or queues.

Within the fabric QoS policy, the only applicable actions are to assign priority to the priority class and bandwidth remaining percent to the AF and BE classes. The bandwidth remaining percent for the BE class does not need to be specified. It receives all remaining capacity after the appropriate weight has been allocated to the AF class. The user may wish to specifically enter configuration values for the default class just for clarity.

Fabric QoS policy class maps are restricted to matching a subset of the following classification options:

  • precedence
  • dscp
  • qos-group
  • discard-class
  • mpls experimental topmost

    Note


    To match on qos-group or discard-class, an ingress QoS policy must be applied, setting the required values for qos-group or discard-class. Both of these variables have local significance only and are not recognized outside of the router.


The fabricq queue selection mechanism is known as Fabric QoS. To provide class of service to the traffic under fabric congestion scenarios, configure Fabric QoS. The platform-independent user interface allows you to configure an MQC policy on the switch fabric queues. This policy is global for all line cards on the router.

Ingress Policy and Fabric QoS Policy Interaction

Be careful when applying ingress QoS policies when they must interact with a fabric QoS policy. The fabric QoS policy overrides any traffic classification conducted by the ingress policy when determining which traffic should be placed in the priority, AF, or BE queues within the fabricq ASIC. In addition, the fabric QoS policy is used to determine which traffic is placed in the priority queue within the ingressq ASIC fabric queues and the switch fabric ASICs (S2 and S3 stages) rather than any priority marking set by the ingress QoS policy. The priority marking performed by the ingress QoS policy is still used when determining packet scheduling in the shape queues within the ingressq ASIC.

For example, if an ingress QoS policy were to classify and mark particular traffic types as being priority and a fabric QoS policy were to be applied either marking alternative traffic as being priority or not setting priority at all, then the ingress policy priority statement is effectively ignored in the fabricq, the S2 ASICs, and the S3 ASICs. Use caution to ensure that there is no conflict between the ingress QoS policy and the fabric QoS policy.

A very simplistic illustration would be if an ingress QoS policy uses a class-map to exclude MPLS experimental 3 from the priority class, but the fabric QoS policy places MPLS experimental 3 traffic in the priority class. In this case, the MPLS experimental 3 traffic is placed in the high-priority S2 and S3 queues and the fabricq high-priority port or queues.

If the ingress QoS policy remarks certain traffic with values that the fabric QoS policy class-maps are to match on, then the remarked traffic is matched and placed in the appropriate port or queues. This provides the ability for the ingress QoS policy and the fabric QoS policy to complement each other, rather than potentially conflicting.

As noted above, fabric QoS is constrained to a subset of the possible match criteria that can be used in its class maps. If the ingress QoS policy were to set a qos-group marking for all traffic that should be placed in the priority queue and another qos-group marking for all traffic to be placed in the AF class, then if the fabric QoS policy class maps matches on the qos-group values, the policy is honored end to end. This approach enables multiple ingress QoS policies to interact in the expected manner with a fabric QoS policy.

It is important to remember that if an ingress QoS policy is applied to an interface and the fabric QoS policy has been applied to the router, then the ingress MSC RX PSE is required to perform two classification cycles. This has an impact on the forwarding capacity of the line card or PLIM, reducing the performance to about 62.5 Mpps.

You can choose not to apply a specific fabric QoS policy, giving the ingress QoS policy the decision on which traffic is placed in the high-priority queues but removing the ability to differentiate between AF and BE classes in the fabricq ASIC.

How to Configure Fabric Quality of Service Policies and Classes

This section contains instructions for the following tasks:

Creating a Traffic Class

See the “Creating a Traffic Class” section in the “Configuring Modular Quality of Service Packet Classification on Cisco IOS XR Software” module.

Creating a Fabric QoS Service Policy

This configuration task explains how to configure a fabric QoS policy.

Restrictions

  • A maximum of three classes can be specified within the service policy. A class known as default is automatically created and equates to the BE port or queues. The name of this class cannot be modified. You can rename the classes that equate to the priority and AF ports or queues.
  • Within the fabric QoS policy, the only applicable actions are to assign:
    • Priority to the priority class
    • Percent of bandwidth remaining to the AF and BE classes.
  • The percent of bandwidth remaining for the BE class does not need to be specified.
  • For fabric QoS, the supported class-map match types are:
    • precedence
    • dscp
    • qos-group
    • discard-class
    • mpls expermental topmost
    • cos
SUMMARY STEPS

    1.    configure

    2.    class-map class-map-name

    3.    match precedence ipv4 precedence value

    4.    policy-map policy-name

    5.    class class-name

    6.    priority RP/0/ RP0/CPU0:router(config-pmap-c)# priority

    7.    switch-fabric service-policy RP/0/ RP0/CPU0:router(config)# switch-fabric service-policy policy1

    8.    Use the commit or end command.


DETAILED STEPS
      Command or Action Purpose
    Step 1 configure


    Example:
    RP/0/RP0/CPU0:router# configure
     

    Enters global configuration mode.

     
    Step 2 class-map class-map-name


    Example:
    
                 
                 
    RP/0/ 
                  RP0/CPU0:router(config)# class-map class201
    
     

    Enters class map configuration mode.

    • Creates a class map to be used for matching packets to the class whose name you specify.
    • If you specify match-any, one of the match criteria must be met for traffic entering the traffic class to be classified as part of the traffic class. This is the default.
     
    Step 3 match precedence ipv4 precedence value


    Example:
    
                 
                 
    RP/0/ 
                  RP0/CPU0:router(config-cmap)# match precedence ipv4 5
    
     

    Specifies a precedence value that is used as the match criteria against which packets are checked to determine if they belong to the class specified by the class map.

    Fabric QoS is supported for IPv4 only.

     
    Step 4 policy-map policy-name


    Example:
    
                 
                 
    RP/0/ 
                  RP0/CPU0:router(config-cmap)# policy-map policy1
    
     

    Enters policy map configuration mode.

    • Creates or modifies a policy map that can be attached to one or more interfaces to specify a service policy.
     
    Step 5 class class-name


    Example:
    
                 
                 
    RP/0/ 
                  RP0/CPU0:router(config-pmap)# class class1
    
     

    Specifies the name of the class whose policy you want to create or change.

     
    Step 6 priority RP/0/ RP0/CPU0:router(config-pmap-c)# priority 

    Specifies priority to a class of traffic belonging to a policy map.

     
    Step 7 switch-fabric service-policy RP/0/ RP0/CPU0:router(config)# switch-fabric service-policy policy1 

    Configures a service policy for the switch fabric.

     
    Step 8 Use the commit or end command. 

    commit—Saves the configuration changes, and remains within the configuration session.

    end—Prompts to take one of these actions:
    • Yes— Saves configuration changes and exits the configuration session.
    • No—Exits the configuration session without committing the configuration changes.
    • Cancel—Remains in the configuration mode, without committing the configuration changes.
     

    Configuration Examples for Configuring Fabric Quality of Service Policies and Classes

    Configuring Fabric Quality of Service Policies and Classes: Example

    The following configuration is an example of a possible fabric QoS policy:

    
              
              
    class-map match-any llq
     match mpls experimental topmost 5
     match precedence critical
    !
    class-map match-any business
     match mpls experimental topmost 3
     match precedence flash
    !
    policy-map fabric_qos
     class llq
      priority
     !
     class business
      bandwidth remaining percent 65
     !
     class class-default
      bandwidth remaining percent 35
     !
    

    !

    To apply the policy, use the switch-fabric service-policy command with the policy-name argument.

    The following example shows an ingress QoS policy working in conjunction with a fabric QoS policy. The fabric QoS policy is shown first, followed by the ingress QoS policy:

    
              
              
    class-map match-any llq
     match qos-group 5
    !
    class-map match-any business&games
     match qos-group 3
    !
    policy-map fabric_qos
     class llq
      priority
     !
     class business&games
      bandwidth remaining percent 65
     !
     class class-default
      bandwidth remaining percent 35
     !
    !
    
    class-map match-any voip
     match mpls experimental topmost 5
     match precedence critical
     match dscp cs5
    !
    class-map match-any business
     match mpls experimental topmost 4
     match dscp cs4
     match precedence flash-override
    !
    class-map match-any broadband-games
     match mpls experimental topmost 3
     match dscp cs3
     march precedence flash
    !
    
    policy-map input-qos
     class voip
      priority level 1
      police rate percent 20
      conform-action set qos-group 5
    class business
      set qos-group 3
     class broadband-games
      set qos-group 3
    

    Note


    In the policy-map input-qos command, the priority keyword under class voip is for reference rather than for configuration.


    Additional References

    The following sections provide references related to implementing fabric QoS policies and classes.

    Related Documents

    Related Topic

    Document Title

    Initial system bootup and configuration

    Cisco IOS XR Getting Started Guide for the Cisco CRS Router

    Master command reference

    Cisco CRS Router Master Command Listing

    QoS commands

    Cisco IOS XR Modular Quality of Service Command Reference for the Cisco CRS Router

    User groups and task IDs

    “Configuring AAA Services on Cisco IOS XR Software” module of Cisco IOS XR System Security Configuration Guide

    Standards

    Standards

    Title

    No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.

    MIBs

    MIBs

    MIBs Link

    To locate and download MIBs using Cisco IOS XR software, use the Cisco MIB Locator found at the following URL and choose a platform under the Cisco Access Products menu: http:/​/​cisco.com/​public/​sw-center/​netmgmt/​cmtk/​mibs.shtml

    RFCs

    RFCs

    Title

    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 Technical Support website contains thousands of pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.

    http:/​/​www.cisco.com/​techsupport