dellemc.enterprise_sonic.sonic_stp (2.4.0) — module

Manage STP configuration on SONiC

| "added in version" 2.3.0 of dellemc.enterprise_sonic"

Authors: Shade Talabi (@stalabi1)

Install collection

Install with ansible-galaxy collection install dellemc.enterprise_sonic:==2.4.0


Add to requirements.yml

  collections:
    - name: dellemc.enterprise_sonic
      version: 2.4.0

Description

This module provides configuration management of STP for devices running SONiC

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

# Using merged
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
# (No spanning-tree configuration present)

- name: Merge STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      global:
        enabled_protocol: mst
        loop_guard: true
        bpdu_filter: true
        disabled_vlans:
          - 4-6
        hello_time: 5
        max_age: 10
        fwd_delay: 20
        bridge_priority: 4096
      interfaces:
        - intf_name: Ethernet20
          edge_port: true
          link_type: shared
          guard: loop
          bpdu_guard: true
          bpdu_filter: true
          uplink_fast: true
          shutdown: true
          cost: 20
          port_priority: 30
          stp_enable: true
      mstp:
        mst_name: mst1
        revision: 1
        max_hop: 3
        hello_time: 6
        max_age: 9
        fwd_delay: 12
        mst_instances:
          - mst_id: 1
            bridge_priority: 2048
            vlans:
              - 1
            interfaces:
              - intf_name: Ethernet20
                cost: 60
                port_priority: 65
    state: merged
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# After State:
# ------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree forward-time 20
#  spanning-tree hello-time 5
#  spanning-tree max-age 10
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 6
#  spanning-tree mst forward-time 12
#  spanning-tree mst max-age 9
#  spanning-tree mst max-hops 3
#  spanning-tree mst 1 priority 2048
#  !
#  spanning-tree mst configuration
#   name mst1
#   revision 1
#   instance 1 vlan 1
#   activate
#  !
#  interface Ethernet20
#   spanning-tree bpdufilter enable
#   spanning-tree guard loop
#   spanning-tree bpduguard port-shutdown
#   spanning-tree cost 20
#   spanning-tree link-type shared
#   spanning-tree port-priority 30
#   spanning-tree port type edge
#   spanning-tree uplinkfast
#   spanning-tree mst 1 cost 60
#   spanning-tree mst 1 port-priority 65


# Using replaced
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 6
#  spanning-tree mst forward-time 12
#  spanning-tree mst max-age 9
#  spanning-tree mst max-hops 3
#  spanning-tree mst 1 priority 2048
#  !
#  spanning-tree mst configuration
#   name mst1
#   revision 1
#   instance 1 vlan 1
#   activate
#  !
#  interface Ethernet20
#   spanning-tree bpdufilter enable
#   spanning-tree guard loop
#   spanning-tree bpduguard port-shutdown
#   spanning-tree cost 20
#   spanning-tree link-type shared
#   spanning-tree port-priority 30
#   spanning-tree port type edge
#   spanning-tree uplinkfast
#   spanning-tree mst 1 cost 60
#   spanning-tree mst 1 port-priority 65

- name: Replace STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      interfaces:
        - intf_name: Ethernet20
          cost: 25
          port_priority: 35
      mstp:
        mst_name: mst2
        revision: 2
        max_hop: 4
        hello_time: 7
        max_age: 10
        fwd_delay: 13
    state: replaced
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# After State:
# ------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 7
#  spanning-tree mst forward-time 13
#  spanning-tree mst max-age 10
#  spanning-tree mst max-hops 4
#  !
#  spanning-tree mst configuration
#   name mst2
#   revision 2
#   activate
#  !
#  interface Ethernet20
#   spanning-tree cost 25
#   spanning-tree port-priority 35


# Using overridden
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 7
#  spanning-tree mst forward-time 13
#  spanning-tree mst max-age 10
#  spanning-tree mst max-hops 4
#  !
#  spanning-tree mst configuration
#   name mst2
#   revision 2
#   activate
#  !
#  interface Ethernet20
#   spanning-tree cost 25
#   spanning-tree port-priority 35

- name: Override STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      global:
        enabled_protocol: pvst
        bpdu_filter: true
        root_guard_timeout: 25
        portfast: true
        hello_time: 5
        max_age: 10
        fwd_delay: 20
        bridge_priority: 4096
      pvst:
        - vlan_id: 1
          hello_time: 4
          max_age: 6
          fwd_delay: 8
          bridge_priority: 4096
          interfaces:
            - intf_name: Ethernet20
              cost: 10
              port_priority: 50
    state: overridden
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# After State:
# ------------
#
# sonic# show running-configuration spanning-tree
#  spanning-tree mode pvst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree forward-time 20
#  spanning-tree guard root timeout 25
#  spanning-tree hello-time 5
#  spanning-tree max-age 10
#  spanning-tree priority 4096
#  spanning-tree portfast default
#  spanning-tree vlan 1 hello-time 4
#  spanning-tree vlan 1 forward-time 8
#  spanning-tree vlan 1 max-age 6
# sonic# show running-configuration interface Ethernet 20 | grep spanning-tree
#  spanning-tree vlan 1 cost 10
#  spanning-tree vlan 1 port-priority 50


# Using deleted
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
#  spanning-tree mode pvst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree forward-time 20
#  spanning-tree guard root timeout 25
#  spanning-tree hello-time 5
#  spanning-tree max-age 10
#  spanning-tree priority 4096
#  spanning-tree portfast default
#  spanning-tree vlan 1 hello-time 4
#  spanning-tree vlan 1 forward-time 8
#  spanning-tree vlan 1 max-age 6
# sonic# show running-configuration interface Ethernet 20 | grep spanning-tree
#  spanning-tree vlan 1 cost 10
#  spanning-tree vlan 1 port-priority 50

- name: Delete STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      global:
        bpdu_filter: true
        root_guard_timeout: 25
      pvst:
        - vlan_id: 1
          interfaces:
            - intf_name: Ethernet20
    state: deleted

Inputs

    
state:
    choices:
    - merged
    - deleted
    - replaced
    - overridden
    default: merged
    description:
    - The state of the configuration after module completion
    type: str

config:
    description:
    - Specifies STP configurations
    - I(mstp), I(pvst) and I(rapid_pvst) are mutually exclusive.
    suboptions:
      global:
        description:
        - Global STP configuration
        suboptions:
          bpdu_filter:
            default: false
            description:
            - Enables edge port BPDU filter
            type: bool
          bridge_priority:
            default: 32768
            description:
            - The manageable component of the bridge identifier
            - Value must be a multiple of 4096 in the range of 0-61440
            type: int
          disabled_vlans:
            description:
            - List of disabled STP VLANs. The value of a list item can be a single VLAN
              ID or a range of VLAN IDs
            - separated by '-' or '..'; for example 70-100 or 70..100.
            elements: str
            type: list
          enabled_protocol:
            choices:
            - mst
            - pvst
            - rapid_pvst
            description:
            - Specifies the type of STP enabled on the device
            type: str
          fwd_delay:
            default: 15
            description:
            - Delay in seconds used by STP bridges to transition root and designated ports
              to forwarding
            - Range 4-30
            type: int
          hello_time:
            default: 2
            description:
            - Interval in seconds between periodic transmissions of configuration messages
              by designated ports
            - Range 1-10
            type: int
          loop_guard:
            default: false
            description:
            - The loop guard default setting for the bridge
            type: bool
          max_age:
            default: 20
            description:
            - Maximum age in seconds of the information transmitted by the bridge when
              it is the root bridge
            - Range 6-40
            type: int
          portfast:
            default: false
            description:
            - Enables PortFast globally on all access ports
            - Configurable for pvst protocol
            type: bool
          root_guard_timeout:
            description:
            - Specifies root guard recovery timeout in seconds before the port is moved
              back to forwarding state
            - Range 5-600
            type: int
        type: dict
      interfaces:
        description:
        - Interfaces STP configuration
        elements: dict
        suboptions:
          bpdu_filter:
            default: false
            description:
            - Enables edge port BPDU filter
            type: bool
          bpdu_guard:
            default: false
            description:
            - Enable edge port BPDU guard
            type: bool
          cost:
            description:
            - The port's contribution, when it is the root port, to the root path cost
              for the bridge
            type: int
          edge_port:
            default: false
            description:
            - Configure interface as an STP edge port
            type: bool
          guard:
            choices:
            - loop
            - root
            - none
            description:
            - Enables root guard or loop guard
            type: str
          intf_name:
            description:
            - Name of interface
            required: true
            type: str
          link_type:
            choices:
            - point-to-point
            - shared
            description:
            - Specifies the interface's link type
            type: str
          port_priority:
            description:
            - The manageable component of the port identifier
            - Range 0-240
            type: int
          portfast:
            default: false
            description:
            - Enable/Disable portfast on specified interface
            - Configurable for pvst protocol
            type: bool
          shutdown:
            default: false
            description:
            - Port to be shutdown when it receives a BPDU
            type: bool
          stp_enable:
            default: true
            description:
            - Enables STP on the interface
            type: bool
          uplink_fast:
            default: false
            description:
            - Enables uplink fast
            type: bool
        type: list
      mstp:
        description:
        - Multi STP configuration
        suboptions:
          fwd_delay:
            description:
            - Delay in seconds used by STP bridges to transition root and designated ports
              to forwarding
            - Range 4-30
            type: int
          hello_time:
            description:
            - Interval in seconds between periodic transmissions of configuration messages
              by designated ports
            - Range 1-10
            type: int
          max_age:
            description:
            - Maximum age in seconds of the information transmitted by the bridge when
              it is the root bridge
            - Range 6-40
            type: int
          max_hop:
            description:
            - Number of bridges in an MST region that a BPDU can traverse before it is
              discarded
            type: int
          mst_instances:
            description:
            - Configuration for MST instances
            elements: dict
            suboptions:
              bridge_priority:
                description:
                - The manageable component of the bridge identifier
                - Value must be a multiple of 4096
                type: int
              interfaces:
                description:
                - List of STP enabled interfaces
                elements: dict
                suboptions:
                  cost:
                    description:
                    - The port's contribution, when it is the root port, to the root path
                      cost for the bridge
                    type: int
                  intf_name:
                    description:
                    - Reference to the STP interface
                    required: true
                    type: str
                  port_priority:
                    description:
                    - The manageable component of the port identifier
                    type: int
                type: list
              mst_id:
                description:
                - Value used to identify MST instance
                required: true
                type: int
              vlans:
                description:
                - List of VLANs mapped to the MST instance. The value of a list item can
                  be a single VLAN ID or a range of VLAN IDs
                - separated by '-' or '..'; for example 70-100 or 70..100.
                elements: str
                type: list
            type: list
          mst_name:
            description:
            - Name of the MST configuration identifier
            type: str
          revision:
            description:
            - Revision level of the MST configuration identifier
            type: int
        type: dict
      pvst:
        description:
        - Per VLAN STP configuration
        elements: dict
        suboptions:
          bridge_priority:
            description:
            - The manageable component of the bridge identifier
            - Value must be a multiple of 4096
            type: int
          fwd_delay:
            description:
            - Delay in seconds used by STP bridges to transition root and designated ports
              to forwarding
            - Range 4-30
            type: int
          hello_time:
            description:
            - Interval in seconds between periodic transmissions of configuration messages
              by designated ports
            - Range 1-10
            type: int
          interfaces:
            description:
            - List of STP enabled interfaces
            elements: dict
            suboptions:
              cost:
                description:
                - The port's contribution, when it is the root port, to the root path
                  cost for the bridge
                type: int
              intf_name:
                description:
                - Reference to the STP interface
                required: true
                type: str
              port_priority:
                description:
                - The manageable component of the port identifier
                type: int
            type: list
          max_age:
            description:
            - Maximum age in seconds of the information transmitted by the bridge when
              it is the root bridge
            - Range 6-40
            type: int
          vlan_id:
            description:
            - VLAN identifier
            required: true
            type: int
        type: list
      rapid_pvst:
        description:
        - Rapid per VLAN STP configuration
        elements: dict
        suboptions:
          bridge_priority:
            description:
            - The manageable component of the bridge identifier
            - Value must be a multiple of 4096
            type: int
          fwd_delay:
            description:
            - Delay in seconds used by STP bridges to transition root and designated ports
              to forwarding
            - Range 4-30
            type: int
          hello_time:
            description:
            - Interval in seconds between periodic transmissions of configuration messages
              by designated ports
            - Range 1-10
            type: int
          interfaces:
            description:
            - List of STP enabled interfaces
            elements: dict
            suboptions:
              cost:
                description:
                - The port's contribution, when it is the root port, to the root path
                  cost for the bridge
                type: int
              intf_name:
                description:
                - Reference to the STP interface
                required: true
                type: str
              port_priority:
                description:
                - The manageable component of the port identifier
                type: int
            type: list
          max_age:
            description:
            - Maximum age in seconds of the information transmitted by the bridge when
              it is the root bridge
            - Range 6-40
            type: int
          vlan_id:
            description:
            - VLAN identifier
            required: true
            type: int
        type: list
    type: dict

Outputs

after:
  description: The resulting configuration model invocation.
  returned: when changed
  sample: 'The configuration returned will always be in the same format of the parameters
    above.

    '
  type: list
before:
  description: The configuration prior to the model invocation.
  returned: always
  sample: 'The configuration returned will always be in the same format of the parameters
    above.

    '
  type: list
commands:
  description: The set of commands pushed to the remote device.
  returned: always
  sample:
  - command 1
  - command 2
  - command 3
  type: list