Skip to content

QoS

QoS (Quality of Service) configuration enables traffic classification, marking, policing, and queuing on NX-OS devices to prioritize critical applications and ensure predictable network performance. It provides a hierarchical policy framework with class maps for DSCP-based traffic classification, policy maps for marking and policing actions with configurable CIR/PIR rates and burst sizes, and queuing policy maps for egress queue scheduling with bandwidth allocation and priority levels. QoS supports system-wide output queuing policy assignment with optional per-policy statistics collection for monitoring traffic treatment across the device.

Diagram
NameTypeConstraintMandatoryDefault Value
qosClass[qos]No

NameTypeConstraintMandatoryDefault Value
class_mapsList[class_maps]No
policy_mapsList[policy_maps]No
queuing_policy_mapsList[queuing_policy_maps]No
system_service_policy_queuing_outputStringNo
system_service_policy_queuing_output_statisticsBooleantrue, falseNo

class_maps (nxos.devices.configuration.qos)

Section titled “class_maps (nxos.devices.configuration.qos)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
match_typeChoicematch-any, match-all, match-firstNo
match_dscp_valuesListStringNo

policy_maps (nxos.devices.configuration.qos)

Section titled “policy_maps (nxos.devices.configuration.qos)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
match_typeChoicematch-any, match-all, match-firstNo
classesList[classes]No

queuing_policy_maps (nxos.devices.configuration.qos)

Section titled “queuing_policy_maps (nxos.devices.configuration.qos)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
match_typeChoicematch-any, match-all, match-firstNo
classesList[classes]No

classes (nxos.devices.configuration.qos.policy_maps)

Section titled “classes (nxos.devices.configuration.qos.policy_maps)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
set_qos_groupIntegermin: 0, max: 7No
policeClass[police]No

classes (nxos.devices.configuration.qos.queuing_policy_maps)

Section titled “classes (nxos.devices.configuration.qos.queuing_policy_maps)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
next_class_mapStringNo
previous_class_mapStringNo
priority_levelIntegermin: 1, max: 8No
bandwidth_remaining_percentIntegermin: 0, max: 100No

police (nxos.devices.configuration.qos.policy_maps.classes)

Section titled “police (nxos.devices.configuration.qos.policy_maps.classes)”
NameTypeConstraintMandatoryDefault Value
cir_rateIntegermin: 0, max: 100000000000Yes
cir_unitChoiceunspecified, bps, kbps, mbps, gbps, pps, pctNo
bc_rateIntegermin: 0, max: 536870912No
bc_unitChoiceunspecified, bytes, kbytes, mbytes, ms, us, packetsNo
pir_rateIntegermin: 0, max: 100000000000No
pir_unitChoiceunspecified, bps, kbps, mbps, gbps, pps, pctNo
be_rateIntegermin: 0, max: 536870912No
be_unitChoiceunspecified, bytes, kbytes, mbytes, ms, us, packetsNo
conform_actionChoiceunspecified, transmit, drop, set-cos-transmit, set-dscp-transmit, set-prec-transmit, set-qos-transmitNo
conform_set_cosIntegermin: 0, max: 7No
conform_set_dscpAnyInteger[min: 0, max: 63] or Choice[default, ef, af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs1, cs2, cs3, cs4, cs5, cs6, cs7] or String[Regex: ^.*[\$\%]\{.*$]No
conform_set_precedenceChoiceroutine, priority, immediate, flash, flash-override, critical, internet, networkNo
conform_set_qos_groupIntegermin: 0, max: 7No
exceed_actionChoiceunspecified, transmit, drop, set-cos-transmit, set-dscp-transmit, set-prec-transmit, set-qos-transmitNo
exceed_set_cosIntegermin: 0, max: 7No
exceed_set_dscpAnyInteger[min: 0, max: 63] or Choice[default, ef, af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs1, cs2, cs3, cs4, cs5, cs6, cs7] or String[Regex: ^.*[\$\%]\{.*$]No
exceed_set_precedenceChoiceroutine, priority, immediate, flash, flash-override, critical, internet, networkNo
exceed_set_qos_groupIntegermin: 0, max: 7No
violate_actionChoiceunspecified, transmit, drop, set-cos-transmit, set-dscp-transmit, set-prec-transmit, set-qos-transmitNo
violate_set_cosIntegermin: 0, max: 7No
violate_set_dscpAnyInteger[min: 0, max: 63] or Choice[default, ef, af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs1, cs2, cs3, cs4, cs5, cs6, cs7] or String[Regex: ^.*[\$\%]\{.*$]No
violate_set_precedenceChoiceroutine, priority, immediate, flash, flash-override, critical, internet, networkNo
violate_set_qos_groupIntegermin: 0, max: 7No

Example 1: Class maps for DSCP-based traffic classification in a data center fabric

nxos:
devices:
- name: LEAF1
configuration:
qos:
class_maps:
- name: CM-VOICE
match_type: match-any
match_dscp_values:
- ef
- name: CM-CRITICAL-DATA
match_type: match-any
match_dscp_values:
- af31
- af32
- name: CM-NETWORK-CONTROL
match_type: match-any
match_dscp_values:
- cs6
- cs7

Example 2: Policy map with QoS group marking and policing for ingress classification

nxos:
devices:
- name: LEAF1
configuration:
qos:
class_maps:
- name: CM-VOICE
match_type: match-any
match_dscp_values:
- ef
- name: CM-CRITICAL-DATA
match_type: match-any
match_dscp_values:
- af31
policy_maps:
- name: PM-FABRIC-INGRESS
match_type: match-first
classes:
- name: CM-VOICE
set_qos_group: 1
- name: CM-CRITICAL-DATA
set_qos_group: 2
police:
cir_rate: 500
cir_unit: mbps
bc_rate: 250
bc_unit: kbytes
conform_action: transmit
exceed_action: set-dscp-transmit
exceed_set_dscp: 0

Example 3: Full QoS configuration with class maps, policy maps, queuing, and system policy

nxos:
devices:
- name: SPINE1
configuration:
qos:
system_service_policy_queuing_output: QM-FABRIC-EGRESS
system_service_policy_queuing_output_statistics: true
class_maps:
- name: CM-VOICE
match_type: match-any
match_dscp_values:
- ef
- name: CM-SIGNALING
match_type: match-any
match_dscp_values:
- cs3
- af31
- name: CM-NETWORK-CONTROL
match_type: match-any
match_dscp_values:
- cs6
- cs7
policy_maps:
- name: PM-SPINE-INGRESS
match_type: match-first
classes:
- name: CM-VOICE
set_qos_group: 1
- name: CM-SIGNALING
set_qos_group: 2
police:
cir_rate: 1
cir_unit: gbps
pir_rate: 2
pir_unit: gbps
conform_action: transmit
exceed_action: set-dscp-transmit
exceed_set_dscp: 0
violate_action: drop
- name: CM-NETWORK-CONTROL
set_qos_group: 7
queuing_policy_maps:
- name: QM-FABRIC-EGRESS
match_type: match-first
classes:
- name: c-out-q1
priority_level: 1
- name: c-out-q2
bandwidth_remaining_percent: 30
- name: c-out-q-default
bandwidth_remaining_percent: 70