Queuing
NX-OSQoS queuing configuration (type queuing) controls egress scheduling on NX-OS devices. Queuing policy maps reference the system-defined queuing classes (for example c-out-q1 to c-out-q-default) and assign strict priority levels, bandwidth and remaining bandwidth percentages, minimum/maximum shaping rates, queue limits and congestion avoidance (WRED/ECN random-detect or Approximate Fair Discard afd) to each queue. A queuing policy can be applied system-wide as the output service policy, with optional statistics collection. Traffic is mapped to queues based on the QoS groups set by QoS classification policies.
Diagram
Section titled “Diagram”Classes
Section titled “Classes”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| devices | List | devices | No | |
| device_groups | List | device_groups | No | |
| global | Class | global | No | |
| templates | List | templates | No |
devices (nxos)
Section titled “devices (nxos)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| configuration | Class | configuration | No |
device_groups (nxos)
Section titled “device_groups (nxos)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| configuration | Class | configuration | No |
global (nxos)
Section titled “global (nxos)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| configuration | Class | configuration | No |
templates (nxos)
Section titled “templates (nxos)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| configuration | Class | configuration | No |
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 |
|---|---|---|---|---|
| queuing_ | List | queuing_ | No | |
| system_ | String | No | ||
| system_ | Boolean | true, false | 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.queuing_policy_maps)
Section titled “classes (nxos.devices.configuration.qos.queuing_policy_maps)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| priority_level | Integer | min: 1, max: 8 | No | |
| bandwidth_ | Integer | min: 0, max: 100 | No | |
| bandwidth_ | Integer | min: 0, max: 100 | No | |
| shape_min | Integer | min: 0, max: 400000000000 | No | |
| shape_min_unit | Choice | bps, kbps, mbps, gbps, pps, percent | No | |
| shape_max | Integer | min: 0, max: 400000000000 | No | |
| shape_max_unit | Choice | bps, kbps, mbps, gbps, pps, percent | No | |
| queue_limit | Integer | min: 0, max: 12582913 | No | |
| queue_ | Choice | bytes, kbytes, mbytes | No | |
| queue_ | Integer | min: 0, max: 10 | No | |
| random_detect | Class | random_detect | No | |
| afd | Class | afd | No |
random_detect (nxos.devices.configuration.qos.queuing_policy_maps.classes)
Section titled “random_detect (nxos.devices.configuration.qos.queuing_policy_maps.classes)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| minimum_ | Integer | min: 0, max: 52428800 | No | |
| minimum_ | Choice | packets, bytes, kbytes, mbytes | No | |
| maximum_ | Integer | min: 0, max: 52428800 | No | |
| maximum_ | Choice | packets, bytes, kbytes, mbytes | No | |
| drop_ | Integer | min: 0, max: 100 | No | |
| weight | Integer | min: 0, max: 15 | No | |
| cap_average | Boolean | true, false | No | |
| threshold | Choice | burst-optimized, mesh-optimized | No | |
| ecn | Boolean | true, false | No |
afd (nxos.devices.configuration.qos.queuing_policy_maps.classes)
Section titled “afd (nxos.devices.configuration.qos.queuing_policy_maps.classes)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| queue_desired | Integer | min: 1, max: 52428800 | No | |
| queue_ | Choice | bytes, kbytes, mbytes | No | |
| ecn | Boolean | true, false | No |
Examples
Section titled “Examples”Example 1: Egress queuing policy with priority and bandwidth remaining allocation, applied system-wide
nxos: devices: - name: SPINE1 configuration: qos: system_service_policy_queuing_output: QM-FABRIC-EGRESS system_service_policy_queuing_output_statistics: true 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: 70Example 2: Egress queuing policy with WRED/ECN congestion avoidance
nxos: devices: - name: LEAF1 configuration: qos: system_service_policy_queuing_output: QM-WRED-EGRESS queuing_policy_maps: - name: QM-WRED-EGRESS classes: - name: c-out-q1 priority_level: 1 - name: c-out-q2 bandwidth_remaining_percent: 50 random_detect: minimum_threshold: 150 minimum_threshold_unit: kbytes maximum_threshold: 3000 maximum_threshold_unit: kbytes drop_probability: 7 weight: 5 cap_average: true ecn: true - name: c-out-q-default bandwidth_remaining_percent: 50 random_detect: threshold: mesh-optimized ecn: trueExample 3: Egress queuing policy applied to individual Ethernet and port-channel interfaces
nxos: devices: - name: LEAF1 configuration: qos: queuing_policy_maps: - name: QM-UPLINK-EGRESS classes: - name: c-out-q3 priority_level: 1 - name: c-out-q2 bandwidth_remaining_percent: 40 - name: c-out-q1 bandwidth_remaining_percent: 30 - name: c-out-q-default bandwidth_remaining_percent: 30 interfaces: ethernets: - id: 1/49 service_policy_type_queuing_output: QM-UPLINK-EGRESS service_policy_type_queuing_output_statistics: true port_channels: - id: 10 service_policy_type_queuing_output: QM-UPLINK-EGRESSExample 4: Egress queuing policy with guaranteed bandwidth, shaping and queue limits
nxos: devices: - name: LEAF1 configuration: qos: system_service_policy_queuing_output: QM-SHAPED-EGRESS queuing_policy_maps: - name: QM-SHAPED-EGRESS classes: - name: c-out-q1 bandwidth_percent: 20 shape_min: 1000 shape_min_unit: mbps shape_max: 2000 shape_max_unit: mbps queue_limit: 1000 queue_limit_unit: kbytes - name: c-out-q-default bandwidth_percent: 80 queue_limit_dynamic: 5