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
Section titled “Diagram”Classes
Section titled “Classes”configuration (nxos.devices)
Section titled “configuration (nxos.devices)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| qos | Class | [qos] | No |
qos (nxos.devices.configuration)
Section titled “qos (nxos.devices.configuration)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| class_maps | List | [class_maps] | No | |
| policy_maps | List | [policy_maps] | No | |
| queuing_policy_maps | List | [queuing_policy_maps] | No | |
| system_service_policy_queuing_output | String | No | ||
| system_service_policy_queuing_output_statistics | Boolean | true, false | No |
class_maps (nxos.devices.configuration.qos)
Section titled “class_maps (nxos.devices.configuration.qos)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| match_type | Choice | match-any, match-all, match-first | No | |
| match_dscp_values | List | String | No |
policy_maps (nxos.devices.configuration.qos)
Section titled “policy_maps (nxos.devices.configuration.qos)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| match_type | Choice | match-any, match-all, match-first | No | |
| classes | List | [classes] | No |
queuing_policy_maps (nxos.devices.configuration.qos)
Section titled “queuing_policy_maps (nxos.devices.configuration.qos)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| match_type | Choice | match-any, match-all, match-first | No | |
| classes | List | [classes] | No |
classes (nxos.devices.configuration.qos.policy_maps)
Section titled “classes (nxos.devices.configuration.qos.policy_maps)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| set_qos_group | Integer | min: 0, max: 7 | No | |
| police | Class | [police] | No |
classes (nxos.devices.configuration.qos.queuing_policy_maps)
Section titled “classes (nxos.devices.configuration.qos.queuing_policy_maps)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| next_class_map | String | No | ||
| previous_class_map | String | No | ||
| priority_level | Integer | min: 1, max: 8 | No | |
| bandwidth_remaining_percent | Integer | min: 0, max: 100 | No |
police (nxos.devices.configuration.qos.policy_maps.classes)
Section titled “police (nxos.devices.configuration.qos.policy_maps.classes)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| cir_rate | Integer | min: 0, max: 100000000000 | Yes | |
| cir_unit | Choice | unspecified, bps, kbps, mbps, gbps, pps, pct | No | |
| bc_rate | Integer | min: 0, max: 536870912 | No | |
| bc_unit | Choice | unspecified, bytes, kbytes, mbytes, ms, us, packets | No | |
| pir_rate | Integer | min: 0, max: 100000000000 | No | |
| pir_unit | Choice | unspecified, bps, kbps, mbps, gbps, pps, pct | No | |
| be_rate | Integer | min: 0, max: 536870912 | No | |
| be_unit | Choice | unspecified, bytes, kbytes, mbytes, ms, us, packets | No | |
| conform_action | Choice | unspecified, transmit, drop, set-cos-transmit, set-dscp-transmit, set-prec-transmit, set-qos-transmit | No | |
| conform_set_cos | Integer | min: 0, max: 7 | No | |
| conform_set_dscp | Any | Integer[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_precedence | Choice | routine, priority, immediate, flash, flash-override, critical, internet, network | No | |
| conform_set_qos_group | Integer | min: 0, max: 7 | No | |
| exceed_action | Choice | unspecified, transmit, drop, set-cos-transmit, set-dscp-transmit, set-prec-transmit, set-qos-transmit | No | |
| exceed_set_cos | Integer | min: 0, max: 7 | No | |
| exceed_set_dscp | Any | Integer[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_precedence | Choice | routine, priority, immediate, flash, flash-override, critical, internet, network | No | |
| exceed_set_qos_group | Integer | min: 0, max: 7 | No | |
| violate_action | Choice | unspecified, transmit, drop, set-cos-transmit, set-dscp-transmit, set-prec-transmit, set-qos-transmit | No | |
| violate_set_cos | Integer | min: 0, max: 7 | No | |
| violate_set_dscp | Any | Integer[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_precedence | Choice | routine, priority, immediate, flash, flash-override, critical, internet, network | No | |
| violate_set_qos_group | Integer | min: 0, max: 7 | No |
Examples
Section titled “Examples”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 - cs7Example 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: 0Example 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