Cisco Nexus 7000 Series NX-OS Quality of Service Configuration Guide, Release 6.x
Configuring Fabric QoS Mapping
Downloads: This chapterpdf (PDF - 256.0KB) The complete bookPDF (PDF - 2.06MB) | The complete bookePub (ePub - 294.0KB) | The complete bookMobi (Mobi - 625.0KB) | Feedback

Table of Contents

Configuring Fabric QoS Mapping

Finding Feature Information

Information About Fabric QoS Mapping

COS-to-Queue Fabric Mapping

Ingress Buffer Policy

Egress Queue Bandwidth Allocation

Guidelines and Limitations

Configuring Fabric QoS Mapping

Copying a Default Policy

Configuring Cos2q Fabric Mapping

Configuring Ingress Buffer Policy

Configuring Egress Queue Bandwidth Allocation

Configuring the new User-defined Policy on Fabric

Configuration Examples for Fabric QoS Mapping

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

Example: Configuring Cos2q Fabric Mapping

Example: Configuring the User-defined Policy on Fabric

Example: Verifying System Fabric Configuration

Example: Verifying the QoS Mapping on Fabric

Feature History for Fabric QoS Mapping

Configuring Fabric QoS Mapping

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

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 below.

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.

This section includes the following topics:

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:

Table 7-1 describes the system-defined queues that you can use to perform cos2q fabric mapping.

 

Table 7-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.

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.


This section includes the following topics:

Copying a Default Policy

SUMMARY STEPS

1. configure terminal

2. qos copy policy-map type fabric-queuing system-in-policy { prefix | suffix } prefix-or-suffix-name

3. qos copy policy-map type fabric-queuing system-out-policy { prefix | suffix } prefix-or-suffix-name

DETAILED STEPS

 

Command
Purpose

Step 1

configure terminal

 

Example:

switch# configure terminal

switch(config)#

Enters global configuration mode.

Step 2

qos copy policy-map type fabric-queuing system-in-policy { prefix | suffix } prefix-or-suffix-name

 

Example:

switch(config)# qos copy policy-map type fabric-queuing system-in-policy prefix fab_in_

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

Step 3

qos copy policy-map type fabric-queuing system-out-policy { prefix | suffix } prefix-or-suffix-name

 

Example:

switch(config)# qos copy policy-map type fabric-queuing system-out-policy prefix fab_out_

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. configure terminal

2. class-map type queuing { system-pq1 | system-q-default | system-q2 | system-q3 }

3. match cos value-range

4. exit

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

6. exit

DETAILED STEPS

 

Command
Purpose

Step 1

configure terminal

 

Example:

switch# configure terminal

Enters global configuration mode.

Step 2

class-map type queuing { system-pq1 | system-q-default | system-q2 | system-q3 }

 

Example:

switch(config)# class-map type queuing system-pq1

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

match cos value-range

 

Example:

switch(config-cmap-que)# match cos 0

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

exit

 

Example:

switch(config-cmap-que)# exit

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

Step 5

Repeat Steps 2 to 4 to modify CoS values for additional system-defined queues.

Configuring Ingress Buffer Policy

SUMMARY STEPS

1. configure terminal

2. policy-map type queuing ingress-policy-name

3. class type queuing system-q-default

4. queue-limit { default | burst-optimized | mesh-optimized | percent percent_of_queuelimit }

5. exit

DETAILED STEPS

 

Command
Purpose

Step 1

configure terminal

 

Example:

switch# configure terminal

Enters global configuration mode.

Step 2

policy-map type queuing ingress-policy-name

 

Example:

switch(config)# policy-map type queuing fab_in_system-in-policy

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

Step 3

class type queuing system-q-default

 

Example:

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

queue-limit { default | burst-optimized | mesh-optimized | percent percent_of_queuelimit }

 

Example:

switch(config-pmap-c-sys)# queue-limit burst-optimized

Configures the queue limit for the system queue.

Step 5

exit

 

Example:

switch(config-pmap-sys)# exit

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

Configuring Egress Queue Bandwidth Allocation

SUMMARY STEPS

1. configure terminal

2. policy-map type queuing egress-policy-name

3. class type queuing system-pq1

4. priority level 1

5. exit

6. class type queuing system-q-default

7. bandwidth [ remaining ] percent percent

8. exit

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

DETAILED STEPS

 

Command
Purpose

Step 1

configure terminal

 

Example:

switch# configure terminal

Enters global configuration mode.

Step 2

policy-map type queuing egress-policy-name

 

Example:

switch(config)# policy-map type queuing fab_out_system-out-policy

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

Step 3

class type queuing system-pq1

 

Example:

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

priority level 1

 

Example:

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

Configures the priority for system-pq1 as level 1.

Step 5

exit

 

Example:

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

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

Step 6

class type queuing system-q-default

 

Example:

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

bandwidth [ remaining ] percent percent

 

Example:

switch(config-pmap-c-sys)# bandwidth percent 60

Configures bandwidth for system-q-default.

Step 8

exit

 

Example:

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

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

Step 9

Repeat Steps 6 to 8 to configure bandwidth or bandwidth remaining for the other non-priority system-defined queues.

Configuring the new User-defined Policy on Fabric

SUMMARY STEPS

1. configure terminal

2. system fabric

3. service-policy type queuing input ingress-policy-name

4. service-policy type queuing output egress-policy-name

5. exit

6. (Optional) show policy-map system fabric

DETAILED STEPS

 

Command
Purpose

Step 1

configure terminal

 

Example:

switch# configure terminal

Enters global configuration mode.

Step 2

system fabric

Example:

switch(config)# system fabric

Enters system fabric mode

Step 3

service-policy type queuing input ingress-policy-name

Example:

switch(config-sys-mfab)# service-policy type queuing input fab_in_system-in-policy

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

Step 4

service-policy type queuing output egress-policy-name

Example:

switch(config-sys-mfab)# service-policy type queuing output fab_out_system-out-policy

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

Step 5

exit

 

Example:

switch(config-sys-mfab)# exit

switch(config)#

Exits system fabric mode and enters global configuration mode.

Step 6

(Optional) show policy-map system fabric

Example:

switch(config)# show policy-map type queuing priority_queue1

(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
priority level 1
class type queuing system-q2
bandwidth remaining percent 5
class type queuing system-q3
bandwidth remaining percent 5

Feature History for Fabric QoS Mapping

Table 7-2 lists the release history for this feature.

 

Table 7-2 Feature History for Fabric QoS Mapping

Feature Name
Releases
Feature Information

Fabric QoS Mapping

6.2(2)

This feature was introduced.