Introduction
This document is intended to be of use in converting existing 6500 port based qos to N7k.
Requirement
There are no specific requirements for this document.
Configuration Example
The below gives some typical Catalyst 6500 port QoS configuration commands and shows how they can be converted to queuing policies on Nexus 7000 running NX-OS.
Example Catalyst 6500 IOS QoS configuration:
mls qos
This is not needed, QoS is always enabled on Nexus 7000.
interface range gig3/1-48
mls qos trust dscp
Also not needed, we trust DSCP by default. For L2 bridged IP traffic, DSCP is never modified by default; for L3 routed IP traffic, DSCP is used to rewrite outbound COS.
wrr-queue bandwidth 100 150 200 -----For 1p3q8t
wrr-queue bandwidth 100 150 200 0 0 0 0 -----For 1p7q8t
These define the DWRR weights for the non-priority queues. Admins will often use only 3 of the available queues to keep the configuration consistent between 1G & 10G. On Nexus 7000, we use bandwidth statements in the "class-map config mode of the queuing policy-map" to define these for each queue, as shown later in this document.
wrr-queue cos-map 1 1 1
wrr-queue cos-map 1 2 0
wrr-queue cos-map 2 8 4
wrr-queue cos-map 2 2 2
wrr-queue cos-map 3 4 3
wrr-queue cos-map 3 8 6 7
priority-queue cos-map 1 5
These define the COS-to-queue and COS-to-threshold mappings.
We will do this on Nexus 7000 with a combination of commands. The COS-to-queue mapping is done in the queuing class-maps; the COS-to-threshold mapping is done in the policy-maps for each queue.
In the below CLIs, some assumptions about the desired threshold values for each COS are made – the default threshold settings on the Catalyst 6500 depend on the hardware the configuration is taken from, you can check the Catalyst 6500 user docs for the hardware being used and plug in the appropriate values. Also the queue sizes can be tweaked according to the requirement. You can use the show queueing interface to see what the current settings are for an interface on a Catalyst 6500 switch.
Below is an Nexus 7000 QoS configuration that provides the functionality of the Catalyst 6500 commands discussed above:
Note: Use care when modifying the COS-to-queue mappings in the queuing class-maps – these commands take effect immediately, so traffic mapping to usused (and therefore unsized) queues could be dropped.
For 10G interfaces (N7K-M132XP-12 I/O module):
class-map type queuing match-any 1p7q4t-out-pq1
-----identifies the PQ of the 10G egress port type
match cos 5
-----maps COS 5 to the PQ
class-map type queuing match-any 1p7q4t-out-q2
match cos 3,6-7
class-map type queuing match-any 1p7q4t-out-q3
match cos 2,4
class-map type queuing match-any 1p7q4t-out-q-default
match cos 0-1
policy-map type queuing 10G-qing-out
-----define a policy-map name
class type queuing 1p7q4t-out-pq1
-----reference the classes to which cos values have been mapped
priority level 1
-----identifies the priority queue
queue-limit percent 15
-----gives the PQ 15% of the total buffer
class type queuing 1p7q4t-out-q2
queue-limit percent 25
-----gives this queue 25% of the total buffer
queue-limit cos 6 percent 100
queue-limit cos 7 percent 100
queue-limit cos 3 percent 70
-----defines the tail-drop thresholds for the mapped cos values
bandwidth remaining percent 22
-----defines the DWRR weight for this queue
class type queuing 1p7q4t-out-q3
queue-limit percent 25
queue-limit cos 4 percent 100
queue-limit cos 2 percent 50
bandwidth remaining percent 33
class type queuing 1p7q4t-out-q-default
queue-limit percent 35
queue-limit cos 1 percent 50
queue-limit cos 0 percent 100
bandwidth remaining percent 45
int e1/1
service-policy type queuing output 10G-qing-out
-----ties the queuing policy-map to the interface in out direction
For 1G interfaces (N7K-M148GT-11 and N7K-M148GS-11 I/O modules):
class-map type queuing match-any 1p3q4t-out-pq1
! identifies the PQ of the 1G egress port type
match cos 5
! maps COS 5 to the PQ
class-map type queuing match-any 1p3q4t-out-q2
match cos 3,6-7
class-map type queuing match-any 1p3q4t-out-q3
match cos 2,4
class-map type queuing match-any 1p3q4t-out-q-default
match cos 0-1
policy-map type queuing 1G-qing-out
class type queuing 1p3q4t-out-pq1
priority level 1
queue-limit percent 15
class type queuing 1p3q4t-out-q2
queue-limit percent 25
queue-limit cos 6 percent 100
queue-limit cos 7 percent 100
queue-limit cos 3 percent 70
bandwidth remaining percent 22
class type queuing 1p3q4t-out-q3
queue-limit percent 25
queue-limit cos 4 percent 100
queue-limit cos 2 percent 50
bandwidth remaining percent 33
class type queuing 1p3q4t-out-q-default
queue-limit percent 35
queue-limit cos 1 percent 50
queue-limit cos 0 percent 100
bandwidth remaining percent 45
int e2/1
service-policy type queuing output 1G-qing-out
-----ties the queuing policy-map to the interface in out direction
Related Information
For a module to use switch fabric, it should be a fabric enabled module.