Now, let's be back to how UCSM presents the QoS configuration to the administrator. There are two main parts:
- System QoS classes
- VNIC (egress) QoS policies
There are six global QoS classes defined:
- Default Ethernet class (best-effort)
- FCoE
- Platinum
- Gold
- Silver
- Bronze
- Classification and marking are combined in one. Classification is only based on L2 cos value (with cos 7 reserved for control traffic). Adapters mark the traffic by referring to the system class, FI trust the marking and classifies the frames accordingly.
- CBWRR queuing strategy is used on all the ports of FI. Per port policy application is not required.
- Bandwidth allocation per class is done using relative weight. Explicit bandwidth percentage is not exposed to avoid user (or script) configuration error of exceeding 100% interface bandwidth. (Once user chooses weight, the systems displays percentage for all classes).
- Per interface MTU is not supported, per class MTU for the entire system is specified.
- Notably missing things are: priority queuing, Weighed class based Random Early Drop.
As you can see, not much config is available here. You refer to the system class, and specify shaping parameters. "cos" specified by the system class is used to mark the untagged egress packets from the host. "Host control" config detects the system behavior with already marked packets by host. If "full" is specified, then packets tagged by host are trusted, otherwise, any packet that is marked by host and doesn't match cos specified by the system class is dropped by the Cisco adapters. Shaping parameters specified are enforced by the adapters for the egress (host's perspective) traffic.
That's it! Once you have defined various VNIC QoS policies, the VNICs in the service-profile can refer to them by name. The named policy reference works as per the policy resolution mentioned in my previous post.
Just to compare, above mentioned configuration in the UCSM expands to following MQC in the NXOS:
UCS-A(nxos)# show class-map
Type qos class-maps
===================
class-map type qos match-any class-fcoe
match cos 3
class-map type qos match-all class-gold
match cos 4
class-map type qos match-all class-bronze
match cos 1
class-map type qos match-all class-silver
match cos 2
class-map type qos match-any class-default
match any
class-map type qos match-all class-platinum
match cos 5
class-map type qos match-any class-all-flood
match all flood
class-map type qos match-any class-ip-multicast
match ip multicast
Type queuing class-maps
=======================
class-map type queuing class-fcoe
match qos-group 1
class-map type queuing class-gold
match qos-group 3
class-map type queuing class-bronze
match qos-group 5
class-map type queuing class-silver
match qos-group 4
class-map type queuing class-default
match qos-group 0
class-map type queuing class-platinum
match qos-group 2
class-map type queuing class-all-flood
match qos-group 2
class-map type queuing class-ip-multicast
match qos-group 2
Type network-qos class-maps
==============================
class-map type network-qos class-fcoe
match qos-group 1
class-map type network-qos class-gold
match qos-group 3
class-map type network-qos class-bronze
match qos-group 5
class-map type network-qos class-silver
match qos-group 4
class-map type network-qos class-default
match qos-group 0
class-map type network-qos class-platinum
match qos-group 2
class-map type network-qos class-all-flood
match qos-group 2
class-map type network-qos class-ip-multicast
match qos-group 2
UCS-A(nxos)# show policy-map
Type qos policy-maps
====================
policy-map type qos system_qos_policy
class type qos class-platinum
set qos-group 2
class type qos class-silver
set qos-group 4
class type qos class-bronze
set qos-group 5
class type qos class-gold
set qos-group 3
class type qos class-fcoe
set qos-group 1
class type qos class-default
set qos-group 0
Type queuing policy-maps
========================
policy-map type queuing system_q_in_policy
class type queuing class-platinum
bandwidth percent 22
class type queuing class-gold
bandwidth percent 20
class type queuing class-silver
bandwidth percent 18
class type queuing class-bronze
bandwidth percent 15
class type queuing class-fcoe
bandwidth percent 14
class type queuing class-default
bandwidth percent 11
policy-map type queuing system_q_out_policy
class type queuing class-platinum
bandwidth percent 22
class type queuing class-gold
bandwidth percent 20
class type queuing class-silver
bandwidth percent 18
class type queuing class-bronze
bandwidth percent 15
class type queuing class-fcoe
bandwidth percent 14
class type queuing class-default
bandwidth percent 11
policy-map type queuing org-root/ep-qos-HTTP
class type queuing class-fcoe
bandwidth percent 50
class type queuing class-default
bandwidth percent 50
shape 10000 kbps 10240
policy-map type queuing org-root/ep-qos-Streaming
class type queuing class-fcoe
bandwidth percent 50
class type queuing class-default
bandwidth percent 50
shape 100000 kbps 10240
Type network-qos policy-maps
===============================
policy-map type network-qos system_nq_policy
class type network-qos class-platinum
mtu 1500
pause no-drop
class type network-qos class-silver
mtu 1500
pause drop
class type network-qos class-bronze
mtu 1500
pause drop
class type network-qos class-gold
mtu 9000
pause drop
class type network-qos class-fcoe
pause no-drop
mtu 2158
class type network-qos class-default
pause drop
mtu 1500