Configuring Fabric QoS Mapping

This chapter describes how to configure the Fabric QoS mapping feature within the Cisco NX-OS device.

Finding Feature Information

Your software release might not support all the features documented in this module. For the latest caveats and feature information, see the Bug Search Tool at https://tools.cisco.com/bugsearch/ and the release notes for your 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 "New and Changed Information"chapter or the Feature History table in this chapter.

Information About Fabric QoS Mapping

The Fabric QoS Mapping feature allows copying the default configuration and modifying the copied system queues that perform flow control on fabric traffic within the Cisco NX-OS device, thus enabling the choice of parameters for fabric queuing based on the network, traffic, and requirements for traffic prioritization.


Note

Default policies cannot be modified. The user-defined policies configured on the fabric cannot be modified.


Fabric queuing policies are controlled by COS-to-queue (cos2q) mappings, ingress queuing policies, and egress queuing policies applied on the QEngine of M1 and M2 line cards.

COS-to-Queue Fabric Mapping

The following are the four system-defined queues available for cos2q mapping:

  • system-pq1

  • system-q2

  • system-q3

  • system-q-default

The COS value indicates the Data Centre Ethernet (DCE) cos2q mapping of the active QoS network. The default COS value allocation for each system-defined queue is as follows:

The table below describes the system-defined queues that you can use to perform cos2q fabric mapping.

Table 1. System-Defined Queue Types

Queue Type

Default COS Value

system-pq1

5,6,7

system-q2

3,4

system-q3

2

system-q-default

0,1

For information about configuring cos2q fabric mapping, see the “Configuring Cos2q Fabric Mapping” section.

Ingress Buffer Policy

In the ingress direction, the queue limit for the system-q-default queue can be configured for burst-optimized, default, mesh-optimized, or percent.

For information about configuring ingress buffer policy for policy maps, see the “Configuring Ingress Buffer Policy” section.

Egress Queue Bandwidth Allocation

In the egress direction, priority and bandwidth can be configured for the system-defined queues. Only the system-pq1 queue can take the priority. If system-pq1 is configured for priority, the remaining 3 system queues can be configured based on bandwidth percentage. If system-pq1 is not configured for priority, all 4 system-defined queues share the bandwidth configured for each.

For information about configuring egress queue bandwidth allocation for policy maps, see the “Configuring Egress Queue Bandwidth Allocation” section.

Guidelines and Limitations

  • When you are working with fabric QoS mapping, all the ports on M Series modules much be allocated to the default VDC.

  • M3 modules do not support fabric QoS mapping.

Configuring Fabric QoS Mapping

User-defined Fabric QoS Mapping is configured in the following sequence:

  • Copying a default policy to create a user-defined policy for fabric mapping

  • Configuring cos2q fabric mapping

  • Configuring ingress buffer policy for fabric mapping

  • Configuring egress buffer queue bandwidth allocation for fabric mapping

  • Configuring the new policy on fabric

You can copy a default policy to create a new policy for fabric mapping and modify the QoS configuration.

If a user-defined policy is not applied on fabric, the default policies will be considered in ingress and egress directions.


Note

Only the users who have access to the default VDC or the admin VDC can copy the default policy and modify the default fabric QoS configuration on the copied policy.


Copying a Default Policy

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# qos copy policy-map type fabric-queuing system-in-policy {prefix | suffix} prefix-or-suffix-name
  3. switch(config)# qos copy policy-map type fabric-queuing system-out-policy {prefix | suffix} prefix-or-suffix-name

DETAILED STEPS

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# qos copy policy-map type fabric-queuing system-in-policy {prefix | suffix} prefix-or-suffix-name

Copies the default input policy to create a user defined input policy with the specified prefix or suffix.

Step 3

switch(config)# qos copy policy-map type fabric-queuing system-out-policy {prefix | suffix} prefix-or-suffix-name

Copies the default output policy to create a user defined output policy with the specified prefix or suffix.

Configuring Cos2q Fabric Mapping

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# class-map type queuing {system-pq1 | system-q-default | system-q2 | system-q3}
  3. switch(config-cmap-que)# match cos value-range
  4. switch(config-cmap-que)# exit

DETAILED STEPS

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# class-map type queuing {system-pq1 | system-q-default | system-q2 | system-q3}

Configures the class map of type queuing, specifies the class map name as the selected system-defined queue and then enters class-map queuing mode.

Step 3

switch(config-cmap-que)# match cos value-range

Sets the CoS value range matched by this queue. You can specify a range of values by using a hyphen between the beginning and ending values and a comma between values. The range is from 0 to 7.

Step 4

switch(config-cmap-que)# exit

Exits class-map queue mode and enters global configuration mode.

Step 5

Repeat Steps 2 to 4 to configure additional system-defined queues

Configuring Ingress Buffer Policy

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# policy-map type queuing ingress-policy-name
  3. switch(config-pmap-sys)# class type queuing system-q-default
  4. switch(config-pmap-c-sys)# queue-limit {default | burst-optimized | mesh-optimized | percent percent_of_queuelimit}
  5. switch(config-pmap-c-sys)# exit

DETAILED STEPS

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# policy-map type queuing ingress-policy-name

Configures the policy map of type queuing with the user-defined ingress policy and enters policy-map mode.

Step 3

switch(config-pmap-sys)# class type queuing system-q-default

Specifies the class type queue as system-q-default and enters policy-map class system mode.

Step 4

switch(config-pmap-c-sys)# queue-limit {default | burst-optimized | mesh-optimized | percent percent_of_queuelimit}

Configures the queue limit for the system queue.

Step 5

switch(config-pmap-c-sys)# exit

Exits policy-map class system mode and enters global configuration mode.

Configuring Egress Queue Bandwidth Allocation

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# policy-map type queuing ingress-policy-name
  3. switch(config-pmap-sys)# class type queuing system-pq1
  4. switch(config-pmap-c-sys)# priority level 1
  5. switch(config-pmap-c-sys)# exit
  6. switch(config-pmap-sys)# class type queuing system-q-default
  7. switch(config-pmap-c-sys)# bandwidth [remaining] percent percent
  8. switch(config-pmap-c-sys)# exit
  9. (Optional)

DETAILED STEPS

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# policy-map type queuing ingress-policy-name

Configures the policy map of type queuing with the user-defined ingress policy and enters policy-map mode.

Step 3

switch(config-pmap-sys)# class type queuing system-pq1

Specifies the class type queue as system-pq1 and enters policy-map class system mode.

Step 4

switch(config-pmap-c-sys)# priority level 1

Configures the priority for system-pq1 as level 1.

Step 5

switch(config-pmap-c-sys)# exit

Exits policy-map class system mode and enters global configuration mode.

Step 6

switch(config-pmap-sys)# class type queuing system-q-default

Specifies the class type queue as system-q-default and enters policy-map class system mode.

Step 7

switch(config-pmap-c-sys)# bandwidth [remaining] percent percent

Configures bandwidth for system-q-default.

Step 8

switch(config-pmap-c-sys)# exit

Exits policy-map class system mode and enters global configuration mode.

Step 9

(Optional)

(Optional)

Repeat Steps 6 to 8 to assign bandwidth or bandwidth remaining for additional system-defined queues.

Configuring the New User-defined Policy on Fabric

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# system fabric
  3. switch(config-sys-mfab)# service-policy type queuing input ingress-policy-name
  4. switch(config-sys-mfab)# service-policy type queuing output egress-policy-name
  5. switch(config-sys-mfab)# exit
  6. (Optional) switch(config)# show policy-map system fabric

DETAILED STEPS

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# system fabric

Enters system fabric mode

Step 3

switch(config-sys-mfab)# service-policy type queuing input ingress-policy-name

Configures the specified user-defined input policy on the fabric.

Step 4

switch(config-sys-mfab)# service-policy type queuing output egress-policy-name

Configures the specified user-defined output policy on the fabric.

Step 5

switch(config-sys-mfab)# exit

Exits system fabric mode and enters global configuration mode.

Step 6

(Optional) switch(config)# show policy-map system fabric

(Optional)

Displays information about the system fabric configuration.

Configuration Examples for Fabric QoS Mapping

Example: Copying Default Policy to Create a new User-defined Ingress and Egress Policy

The following example shows how to create user-defined policies with the suffix ‘-in’ for ingress policy and ‘-out’ for egress policy:


Switch# configure terminal
Switch(config)# qos copy policy-map type fabric-queuing system-in-policy suffix -in
Switch(config)# qos copy policy-map type fabric-queuing system-out-policy suffix -out

Example: Configuring Cos2q Fabric Mapping

The following example shows how to configure Cos2q fabric mapping for all the system-defined queues:


Switch# configure terminal
Switch(config)# class-map type queuing system-pq1
Switch(config-cmap-que)# match cos 0
Switch(config-cmap-que)# exit
Switch(config)# class-map type queuing system-q-default
Switch(config-cmap-que)# match cos 1
Switch(config-cmap-que)# exit
Switch(config)# class-map type queuing system-q2
Switch(config-cmap-que)# match cos 2
Switch(config-cmap-que)# exit
Switch(config)# class-map type queuing system-q3
Switch(config-cmap-que)# match cos 3
Switch(config-cmap-que)# exit

Example: Configuring the User-defined Policy on Fabric

The following example shows how to configure the user-defined system-in-policy and system-out-policy on fabric:


Switch# configure terminal
Switch(config)# system fabric
Switch(config-sys-mfab)# service-policy type queuing input system-in-policy-in
Switch(config-sys-mfab)# service-policy type queuing output system-out-policy-out
Switch(config-sys-mfab)# exit

Example: Verifying System Fabric Configuration

The following sample output from the show policy-map system fabric command displays the input and output policy applied on fabric:


Switch# show policy-map system fabric

Service-policy (queuing) input: system-in-policy-in

  Class-map (queuing): system-q-default (match-any)
    queue-limit percent 60
  Class-map (queuing): system-pq1 (match-any)

  Class-map (queuing): system-q2 (match-any)

  Class-map (queuing): system-q3 (match-any)

Service-policy (queuing) output: system-out-policy-out

  Class-map (queuing): system-q-default (match-any)
    bandwidth remaining percent 5

  Class-map (queuing): system-pq1 (match-any)
    priority level 1

  Class-map (queuing): system-q2 (match-any)
    bandwidth remaining percent 5

  Class-map (queuing): system-q3 (match-any)
    bandwidth remaining percent 5

Example: Verifying the QoS Mapping on Fabric

The following excerpts of the sample output from the show policy-map type queuing command displays the QoS mapping on fabric:


Switch# show policy-map type queuing

Type queuing policy-maps
========================
policy-map type queuing system-in-policy
 class type queuing system-q-default
  queue-limit default
 class type queuing system-pq1
 class type queuing system-q2
 class type queuing system-q3
.
.
.
policy-map type queuing system-out-policy
 class type queuing system-q-default
  bandwidth remaining percent 33
 class type queuing system-pq1
  priority level 1
 class type queuing system-q2
  bandwidth remaining percent 33
 class type queuing system-q3
  bandwidth remaining percent 33
.
.
.
policy-map type queuing fab_in-system-in-policy
 class type queuing system-q-default
  queue-limit percent 60
 class type queuing system-pq1
 class type queuing system-q2
 class type queuing system-q3
policy-map type queuing fab_out-system-out-policy
 class type queuing system-q-default
  bandwidth remaining percent 5
class type queuing system-pq1

Feature History for Fabric QoS Mapping

The table below summarizes the new and changed features for this document and shows the releases in which each feature is supported. Your software release might not support all the features in this document. For the latest caveats and feature information, see the Bug Search Tool at https://tools.cisco.com/bugsearch/ and the release notes for your software release.

Table 2. Feature History for Fabric QoS Mapping

Feature Name

Release

Feature Information

Fabric QoS Mapping

6.2(2)

This feature was introduced.