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

This prerequisite is 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

Overview

The fabric queue selection mechanism is known as fabric QoS. Three queues 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.


Note

By default, internal control traffic is placed in the high-priority 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.

Of the four levels of priority—HP1, HP2, AF, and BE—AF is unused. From Release 6.6.1 onwards, support for AF is enabled. The enhancement allows for AF and BE traffic to be supported, even while prioritizing traffic for BE. This provides better quality of service whenever there is a fabric congestion.

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 these 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

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 experimental topmost

    • cos

SUMMARY STEPS

  1. configure
  2. class-map class-map-name
  3. match precedence class-map precedence value
  4. policy-map policy-name
  5. class class-name
  6. priority[ level priority-level ]
  7. exit
  8. exit
  9. switch-fabric service-policy policy_name
  10. 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

Creates a class map to be used for matching packets to the class whose name you specify and enters the class map configuration mode. 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 class-map 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

Creates or modifies a policy map that can be attached to one or more interfaces to specify a service policy and enters the policy map configuration mode.

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[ level priority-level ]

Example:


RP/0/RP0/CPU0:router(config-pmap-c)# priority level 1

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

Step 7

exit

Example:


RP/0/RP0/CPU0:router(config-pmap-c)# exit

Returns the router to policy map configuration mode.

Step 8

exit

Example:


RP/0/RP0/CPU0:router(config-pmap)# exit

Returns the router to global configuration mode.

Step 9

switch-fabric service-policy policy_name

Example:


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

Configures a service policy for the switch fabric.

Step 10

Use the commit or end command.

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

end —Prompts user 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 session, 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

This configuration is an example of how the packets are matched:

This 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
 !

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

This 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-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

These 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

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.

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/cisco/web/support/index.html