dellemc.enterprise_sonic.sonic_qos_interfaces module – Manage QoS interfaces configuration on SONiC
Note
This module is part of the dellemc.enterprise_sonic collection (version 2.5.1).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install dellemc.enterprise_sonic.
To use it in a playbook, specify: dellemc.enterprise_sonic.sonic_qos_interfaces.
New in dellemc.enterprise_sonic 2.5.0
Synopsis
- This module provides configuration management of QoS interfaces for devices running SONiC 
Parameters
| Parameter | Comments | 
|---|---|
| QoS interfaces configuration | |
| Name of the interface | |
| PFC configuration | |
| Enable or disable asymmetric PFC on the interface Choices: 
 | |
| PFC priorities configuration | |
| DOT1P value, range 0-7 Maxium of 2 priorities supported | |
| Enable or disable the priority Choices: 
 | |
| PFC watchdog storm action Choices: 
 | |
| PFC watchdog detection time in milliseconds, range 100-5000 | |
| PFC watchdog restoration time milliseconds, range 100-60000 | |
| QoS maps interface configuration | |
| DOT1P to forwarding group map associated with the interface | |
| DSCP to forwarding group map associated with the interface | |
| Forwarding group to DOT1P map associated with the interface | |
| Forwarding group to DSCP map associated with the interface | |
| Forwading group to priority group map associated with the interface | |
| Forwarding group to queue map associated with the interface | |
| PFC priority to priority group map associated with the interface | |
| PFC priority to queue map associated with the interface | |
| Queue configuration | |
| Queue identification Range 0-7 for interface queues, range 0-47 for CPU queues | |
| Name of the WRED profile | |
| Name of scheduler policy to be applied to traffic on the interface | |
| The state of the configuration after module completion Replaced and overridden states are not supported for this module due to configuration constraints Choices: 
 | 
Notes
Note
- Tested against Enterprise SONiC Distribution by Dell Technologies. 
- Supports - check_mode.
Examples
# Using Merged
#
# Before state:
# -------------
#
# sonic# show running-configuration interface Eth 1/5
# !
# interface Eth1/5
# (No QoS configuration present for the interface)
- name: Merge QoS interfaces configuration
  dellemc.enterprise_sonic.sonic_qos_interfaces:
    config:
      - name: Eth1/5
        queues:
          - id: 0
            wred_profile: profile1
        scheduler_policy: policy1
        qos_maps:
          dscp_fwd_group: dscp_map1
          dot1p_fwd_group: dot1p_map1
          fwd_group_dscp: fwd_dscp_map1
          fwd_group_dot1p: fwd_dot1p_map1
          fwd_group_queue: fwd_queue_map1
          fwd_group_pg: fwd_pg_map1
          pfc_priority_queue: pfc_queue_map1
          pfc_priority_pg: pfc_pg_map1
        pfc:
          asymmetric: True
          watchdog_action: alert
          watchdog_detect_time: 100
          watchdog_restore_time: 200
          priorities:
            - dot1p: 0
              enable: True
            - dot1p: 1
              enable: True
    state: merged
# After state:
# ------------
#
# sonic# show running-configuration interface Eth 1/5
# !
# interface Eth1/5
#  queue 0 wred-policy profile1
#  scheduler-policy policy1
#  qos-map dscp-tc dscp_map1
#  qos-map dot1p-tc dot1p_map1
#  qos-map tc-queue fwd_queue_map1
#  qos-map tc-pg fwd_pg_map1
#  qos-map tc-dscp fwd_dscp_map1
#  qos-map tc-dot1p fwd_dot1p_map1
#  qos-map pfc-priority-queue pfc_queue_map1
#  qos-map pfc-priority-pg pfc_pg_map1
#  priority-flow-control priority 0
#  priority-flow-control priority 1
#  priority-flow-control asymmetric
#  priority-flow-control watchdog action alert
#  priority-flow-control watchdog on detect-time 100
#  priority-flow-control watchdog restore-time 200
#
#
# Using deleted
#
# Before state:
# -------------
#
# sonic# show running-configuration interface Eth 1/5
# !
# interface Eth1/5
#  queue 0 wred-policy profile2
#  queue 1 wred-policy profile1
#  scheduler-policy policy2
#  qos-map dscp-tc dscp_map2
#  qos-map dot1p-tc dot1p_map2
#  qos-map tc-queue fwd_queue_map2
#  qos-map tc-pg fwd_pg_map2
#  qos-map tc-dscp fwd_dscp_map2
#  qos-map tc-dot1p fwd_dot1p_map2
#  qos-map pfc-priority-queue pfc_queue_map1
#  qos-map pfc-priority-pg pfc_pg_map1
#  priority-flow-control priority 1
#  priority-flow-control watchdog action drop
#  priority-flow-control watchdog on detect-time 150
#  priority-flow-control watchdog restore-time 250
# sonic# show running-configuration interface Eth 1/6
# !
# interface Eth1/6
#  queue 0 wred-policy profile1
#  scheduler-policy policy1
#  qos-map dscp-tc dscp_map1
#  qos-map dot1p-tc dot1p_map1
#  qos-map tc-queue fwd_queue_map1
#  qos-map tc-pg fwd_pg_map1
#  qos-map tc-dscp fwd_dscp_map1
#  qos-map tc-dot1p fwd_dot1p_map1
#  qos-map pfc-priority-queue pfc_queue_map1
#  qos-map pfc-priority-pg pfc_pg_map1
#  priority-flow-control priority 0
#  priority-flow-control asymmetric
#  priority-flow-control watchdog on detect-time 100
#  priority-flow-control watchdog restore-time 200
- name: Delete QoS interfaces attributes
  dellemc.enterprise_sonic.sonic_interfaces:
    config:
      - name: Eth1/5
        queues:
          - id: 0
            wred_profile: profile2
          - id: 1
        scheduler_policy: policy2
        qos_maps:
          dscp_fwd_group: dscp_map2
          dot1p_fwd_group: dot1p_map2
          fwd_group_dscp: fwd_dscp_map2
          fwd_group_dot1p: fwd_dot1p_map2
          fwd_group_queue: fwd_queue_map2
          fwd_group_pg: fwd_pg_map2
      - name: Eth1/6
        pfc:
          asymmetric: True
          watchdog_action: drop
          watchdog_detect_time: 100
          watchdog_restore_time: 200
          priorities:
            - dot1p: 0
              enable: True
            - dot1p: 1
              enable: True
    state: deleted
# After state:
# ------------
#
# sonic# show running-configuration interface Eth 1/5
# !
# interface Eth1/5
#  qos-map pfc-priority-queue pfc_queue_map1
#  qos-map pfc-priority-pg pfc_pg_map1
#  priority-flow-control priority 1
#  priority-flow-control watchdog action drop
#  priority-flow-control watchdog on detect-time 150
#  priority-flow-control watchdog restore-time 250
# sonic# show running-configuration interface Eth 1/6
# !
# interface Eth1/6
#  queue 0 wred-policy profile1
#  scheduler-policy policy1
#  qos-map dscp-tc dscp_map1
#  qos-map dot1p-tc dot1p_map1
#  qos-map tc-queue fwd_queue_map1
#  qos-map tc-pg fwd_pg_map1
#  qos-map tc-dscp fwd_dscp_map1
#  qos-map tc-dot1p fwd_dot1p_map1
#  qos-map pfc-priority-queue pfc_queue_map1
#  qos-map pfc-priority-pg pfc_pg_map1
Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Description | 
|---|---|
| The resulting configuration from module invocation. Returned: when changed, if  Sample:  | |
| The generated (simulated) configuration from module invocation. Returned: when  Sample:  | |
| The configuration prior to the module invocation. Returned: always Sample:  | |
| The set of commands pushed to the remote device. Returned: always Sample:  | 
