openconfig-spanning-tree

This module defines configuration and operational state data for the spanning tree protocol.

  • Version: 2019-11-28

    openconfig-spanning-tree@2019-11-28


    
      module openconfig-spanning-tree {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/spanning-tree";
    
        prefix oc-stp;
    
        import openconfig-spanning-tree-types {
          prefix oc-stp-types;
        }
        import openconfig-interfaces {
          prefix oc-if;
        }
        import openconfig-types {
          prefix oc-types;
        }
        import openconfig-vlan-types {
          prefix oc-vlan-types;
        }
        import openconfig-yang-types {
          prefix oc-yang;
        }
        import openconfig-extensions {
          prefix oc-ext;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
        www.openconfig.net";
    
        description
          "This module defines configuration and operational state data
        for the spanning tree protocol.";
    
        revision "2019-11-28" {
          description
            "Correct revision statement date for v0.3.0";
          reference
            "0.3.1";
    
        }
    
        revision "2019-07-10" {
          description
            "Remove the time-since-last-topology-change leaf and
          replace it with a timestamp of last topology change.";
          reference
            "0.3.0";
    
        }
    
        revision "2018-11-21" {
          description
            "Add OpenConfig module metadata extensions.";
          reference
            "0.2.1";
    
        }
    
        revision "2017-07-14" {
          description
            "Migrated to OpenConfig types; fixed missing applied state
          in rapid-pvst";
          reference
            "0.2.0";
    
        }
    
        revision "2016-10-03" {
          description "Initial public revision";
          reference
            "0.1.0";
    
        }
    
        oc-ext:openconfig-version "0.3.1";
        oc-ext:regexp-posix;
        oc-ext:catalog-organization "openconfig";
        oc-ext:origin "openconfig";
    
        grouping stp-interfaces-state {
          description
            "Grouping of STP operational data for bridge port";
          leaf port-num {
            type uint16;
            description
              "The port number of the bridge port";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPort";
    
          }
    
          leaf role {
            type identityref {
              base oc-stp-types:STP_PORT_ROLE;
            }
            description
              "The current role of the bridge port";
            reference
              "IEEE8021-MSTP-MIB ieee8021MstpPortRole";
    
          }
    
          leaf port-state {
            type identityref {
              base oc-stp-types:STP_PORT_STATE;
            }
            description
              "The current state of the bridge port";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortState";
    
          }
    
          leaf designated-root-priority {
            type oc-stp-types:stp-bridge-priority-type;
            description
              "The bridge priority of the bridge recorded as the
            root in the configuration BPDUs transmitted by the designated
            bridge for the segment to which the port is attached";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedRoot";
    
          }
    
          leaf designated-root-address {
            type oc-yang:mac-address;
            description
              "The bridge address of the bridge recorded as the
            root in the configuration BPDUs transmitted by the designated
            bridge for the segment to which the port is attached";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedRoot";
    
          }
    
          leaf designated-cost {
            type uint32;
            description
              "The path cost of the Designated Port of the
            segment connected to this port";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedCost";
    
          }
    
          leaf designated-bridge-priority {
            type oc-stp-types:stp-bridge-priority-type;
            description
              "The bridge priority of the bridge that this port considers
            to be the designated bridge for this port's segment.";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedBridge";
    
          }
    
          leaf designated-bridge-address {
            type oc-yang:mac-address;
            description
              "The bridge address of the bridge that this port considers
            to be the designated bridge for this port's segment.";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedBridge";
    
          }
    
          leaf designated-port-priority {
            type oc-stp-types:stp-port-priority-type;
            description
              "The Port priority of the port on the Designated
            Bridge for this port's segment, two octet string";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedPort";
    
          }
    
          leaf designated-port-num {
            type uint16;
            description
              "The Port number of the port on the Designated
            Bridge for this port's segment, two octet string";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedPort";
    
          }
    
          leaf forward-transisitions {
            type oc-yang:counter64;
            description
              "The number of times this port has transitioned
            from the Learning state to the Forwarding state";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpPortForwardTransitions";
    
          }
    
          container counters {
            description
              "The BPDU packet transmition statistics";
            leaf bpdu-sent {
              type oc-yang:counter64;
              description
                "The number of BPDU packet sent";
            }
    
            leaf bpdu-received {
              type oc-yang:counter64;
              description
                "The number of BPDU packet received";
            }
          }  // container counters
        }  // grouping stp-interfaces-state
    
        grouping stp-interfaces-config {
          description
            "Grouping of STP configuration for bridge port";
          leaf name {
            type oc-if:base-interface-ref;
            description
              "Reference to the STP ethernet interface";
          }
    
          leaf cost {
            type uint32 {
              range "1..200000000";
            }
            description
              "The port's contribution, when it is the Root Port,
            to the Root Path Cost for the Bridge";
            reference
              "IEEE 802.1D 17.13.11 PortPathCost";
    
          }
    
          leaf port-priority {
            type oc-stp-types:stp-port-priority-type;
            description
              "The manageable component of the Port Identifier,
            also known as the Port Priority";
            reference
              "IEEE 802.1D 17.13.10 Port Identifier Priority";
    
          }
        }  // grouping stp-interfaces-config
    
        grouping stp-interfaces-top {
          description
            "Grouping of STP configuration and operation data for
          bridge port";
          container interfaces {
            description
              "Enclosing container for the list of interface references";
            list interface {
              key "name";
              description
                "List of interfaces on which STP is enable";
              leaf name {
                type leafref {
                  path "../config/name";
                }
                description
                  "Reference to the list key";
              }
    
              container config {
                description
                  "Configuration data for STP on each interface";
                uses stp-interfaces-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data for STP on each interface";
                uses stp-interfaces-config;
    
                uses stp-interfaces-state;
              }  // container state
            }  // list interface
          }  // container interfaces
        }  // grouping stp-interfaces-top
    
        grouping bridge-priority-config {
          description
            "Grouping for bridge priority";
          leaf bridge-priority {
            type oc-stp-types:stp-bridge-priority-type;
            description
              "The manageable component of the Bridge Identifier";
            reference
              "IEEE 802.1D 17.13.7 Bridge Identifier Priority";
    
          }
        }  // grouping bridge-priority-config
    
        grouping stp-common-state {
          description
            "Grouping for common STP operation data";
          leaf bridge-address {
            type oc-yang:mac-address;
            description
              "A unique 48-bit Universally Administered MAC Address
            assigned to the bridge";
            reference
              "IEEE 802.1D 7.12.5 Unique identification of a bridge";
    
          }
    
          leaf designated-root-priority {
            type oc-stp-types:stp-bridge-priority-type;
            description
              "The bridge priority of the root of the spanning
            tree, as determined by the Spanning Tree Protocol,
            as executed by this node";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpDesignatedRoot";
    
          }
    
          leaf designated-root-address {
            type oc-yang:mac-address;
            description
              "The bridge address of the root of the spanning
            tree, as determined by the Spanning Tree Protocol,
            as executed by this node";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpDesignatedRoot";
    
          }
    
          leaf root-port {
            type uint16;
            description
              "The port number of the port which offers the lowest
            cost path from this bridge to the root bridge";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpRootPort";
    
          }
    
          leaf root-cost {
            type uint32;
            description
              "The cost of the path to the root as seen from this bridge";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpRootCost";
    
          }
    
          leaf hold-time {
            type uint8;
            description
              "This time value determines the interval length
            during which no more than two Configuration bridge
            PDUs shall be transmitted by this node";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpHoldTime";
    
          }
    
          leaf topology-changes {
            type oc-yang:counter64;
            description
              "The total number of topology changes detected by
            this bridge since the management entity was last
            reset or initialized";
            reference
              "RFC4188 BRIDGE-MIB dot1dStpTopChanges";
    
          }
    
          leaf last-topology-change {
            type oc-types:timeticks64;
            description
              "The time at which the last topology change was
            detected by the bridge entity. The value is
            expressed relative to the Unix Epoch (Jan 1, 1970
            00:00:00 UTC).";
          }
        }  // grouping stp-common-state
    
        grouping stp-timer-config {
          description
            "Grouping for common STP parameters";
          leaf hello-time {
            type uint8 {
              range "1..10";
            }
            units "seconds";
            description
              "The interval between periodic transmissions of
            configuration messages by designated ports";
            reference
              "IEEE 802.1D 17.13.6 Bridge Hello Time";
    
          }
    
          leaf max-age {
            type uint8 {
              range "6..40";
            }
            units "seconds";
            description
              "The maximum age of the information transmitted by the
            bridge when it is the root bridge";
            reference
              "IEEE 802.1D 17.13.8 Bridge Max Age";
    
          }
    
          leaf forwarding-delay {
            type uint8 {
              range "4..30";
            }
            units "seconds";
            description
              "The delay used by STP bridges to transition root and
            designated ports to forwarding";
            reference
              "IEEE 802.1D 17.13.5 Bridge Forward Delay";
    
          }
    
          leaf hold-count {
            type uint8 {
              range "1..10";
            }
            default '6';
            description
              "the maximum number of BPDUs per second that the
             switch can send from an interface";
            reference
              "IEEE 802.1D 17.13.12 Transmit Hold Count";
    
          }
        }  // grouping stp-timer-config
    
        grouping stp-rapid-pvst-config {
          description
            "Configuration parameters relating to rapid PVST";
          leaf vlan-id {
            type oc-vlan-types:vlan-id;
            description "Interface VLAN ID";
          }
        }  // grouping stp-rapid-pvst-config
    
        grouping stp-rapid-pvst-top {
          description
            "Top grouping for rapid per vlan spanning tree configuration
          and operation data";
          list vlan {
            key "vlan-id";
            description "List of the vlans";
            leaf vlan-id {
              type leafref {
                path "../config/vlan-id";
              }
              description
                "Reference to the list key";
            }
    
            container config {
              description
                "Configuration data for each vlan";
              uses stp-rapid-pvst-config;
    
              uses stp-timer-config;
    
              uses bridge-priority-config;
            }  // container config
    
            container state {
              config false;
              description
                "Operational data for each vlan";
              uses stp-rapid-pvst-config;
    
              uses stp-timer-config;
    
              uses bridge-priority-config;
    
              uses stp-common-state;
            }  // container state
    
            uses stp-interfaces-top;
          }  // list vlan
        }  // grouping stp-rapid-pvst-top
    
        grouping mst-instance-config {
          description
            "Grouping for mstp instance configuration";
          leaf mst-id {
            type uint16 {
              range "1..4094";
            }
            description
              "In an MSTP Bridge, an MSTID, i.e., a value used to identify
            a spanning tree (or MST) instance.";
            reference
              "IEEE8021-TC-MIB IEEE8021MstIdentifier";
    
          }
    
          leaf-list vlan {
            type union {
              type oc-vlan-types:vlan-id;
              type oc-vlan-types:vlan-range;
            }
            description
              "list of vlans mapped to the MST instance";
          }
        }  // grouping mst-instance-config
    
        grouping mst-instance-top {
          description
            "Top level grouping for mstp instances";
          list mst-instance {
            key "mst-id";
            description
              "List of the mstp instances";
            leaf mst-id {
              type leafref {
                path "../config/mst-id";
              }
              description
                "Reference to the list key";
            }
    
            container config {
              description
                "Configuration data for MSTP instance";
              uses mst-instance-config;
    
              uses bridge-priority-config;
            }  // container config
    
            container state {
              config false;
              description
                "Operational data for MSTP instance";
              uses mst-instance-config;
    
              uses bridge-priority-config;
    
              uses stp-common-state;
            }  // container state
    
            uses stp-interfaces-top;
          }  // list mst-instance
        }  // grouping mst-instance-top
    
        grouping mstp-config {
          description
            "Grouping for MSTP configuration data";
          leaf name {
            type string {
              length "1..32";
            }
            description
              "The Configuration Name in the MST Configuration Identifier";
            reference
              "IEEE 802.1Q 13.8 MST Configuration Identifier (MCID)";
    
          }
    
          leaf revision {
            type uint32;
            description
              "The Revision Level in the MST Configuration Identifier";
            reference
              "IEEE 802.1Q 13.8 MST Configuration Identifier";
    
          }
    
          leaf max-hop {
            type uint8 {
              range "1..255";
            }
            description
              "The max hop determines the number of bridges in an MST
            region that a BPDU can traverse before it is discarded";
            reference
              "IEEE 802.1Q 13.26.4 BridgeTimes";
    
          }
    
          uses stp-timer-config;
        }  // grouping mstp-config
    
        grouping mstp-state {
          description
            "Operational state data for MSTP";
        }  // grouping mstp-state
    
        grouping stp-mstp-top {
          description
            "Top grouping for MSTP configuration and operation data";
          container config {
            description
              "Configuration data for MSTP";
            uses mstp-config;
          }  // container config
    
          container state {
            config false;
            description
              "Operational data for MSTP";
            uses mstp-config;
    
            uses mstp-state;
          }  // container state
    
          container mst-instances {
            description
              "Configuration and operation data for MSTP instances";
            uses mst-instance-top;
          }  // container mst-instances
        }  // grouping stp-mstp-top
    
        grouping stp-rstp-top {
          description
            "Top grouping for RSTP configuration and operation data";
          container config {
            description
              "Configuration data for RSTP";
            uses stp-timer-config;
    
            uses bridge-priority-config;
          }  // container config
    
          container state {
            config false;
            description
              "Operational state data for RSTP";
            uses stp-timer-config;
    
            uses bridge-priority-config;
    
            uses stp-common-state;
          }  // container state
    
          uses stp-interfaces-top;
        }  // grouping stp-rstp-top
    
        grouping stp-interface-common-config {
          description
            "Configuration data for interface specific STP features";
          leaf name {
            type oc-if:base-interface-ref;
            description
              "Reference to the STP Ethernet interface";
          }
    
          leaf edge-port {
            type identityref {
              base oc-stp-types:STP_EDGE_PORT;
            }
            description
              "Configure the edge port state";
          }
    
          leaf link-type {
            type oc-stp-types:stp-link-type;
            description
              "specifies the interface's link type";
          }
    
          leaf guard {
            type oc-stp-types:stp-guard-type;
            description
              "Enable root guard or loop guard";
          }
    
          uses stp-bpdu-config;
        }  // grouping stp-interface-common-config
    
        grouping stp-interface-common-state {
          description
            "Operational state data for STP on interfaces";
        }  // grouping stp-interface-common-state
    
        grouping stp-interface-common-top {
          description
            "Top-level grouping for interface specific STP features";
          list interface {
            key "name";
            description
              "List of interfaces on which STP is enable";
            leaf name {
              type leafref {
                path "../config/name";
              }
              description
                "Reference to the list key";
            }
    
            container config {
              description
                "Configuration data for STP on each bridge port";
              uses stp-interface-common-config;
            }  // container config
    
            container state {
              config false;
              description
                "Operational state data for STP on each bridge port";
              uses stp-interface-common-config;
    
              uses stp-interface-common-state;
            }  // container state
          }  // list interface
        }  // grouping stp-interface-common-top
    
        grouping stp-bpdu-config {
          description
            "Grouping for STP BPDU configuration";
          leaf bpdu-guard {
            type boolean;
            description
              "Enable edge port BPDU guard";
          }
    
          leaf bpdu-filter {
            type boolean;
            description
              "Enable edge port BPDU filter";
          }
        }  // grouping stp-bpdu-config
    
        grouping stp-global-config {
          description
            "Global spanning tree configuration";
          leaf-list enabled-protocol {
            type identityref {
              base oc-stp-types:STP_PROTOCOL;
            }
            description
              "List of the spanning tree protocols enabled on the
            device";
          }
    
          leaf bridge-assurance {
            type boolean;
            description
              "Enable bridge assurance to protect against unidirectional
            link failure";
          }
    
          leaf etherchannel-misconfig-guard {
            type boolean;
            description
              "EtherChannel guard detects a misconfigured EtherChannel
            when interfaces on the switch are configured as an
            EtherChannel while interfaces on the other device are not
            or when not all the interfaces on the other device are in
            the same EtherChannel.";
          }
    
          leaf bpduguard-timeout-recovery {
            type uint8;
            units "seconds";
            description
              "Amount of time, in seconds, the interface receiving BPDUs
            is disabled. Once the timeout expires, the interface is
            brought back into service.";
          }
    
          leaf loop-guard {
            type boolean;
            description
              "The loop guard default setting for the bridge";
          }
    
          uses stp-bpdu-config;
        }  // grouping stp-global-config
    
        grouping stp-global-state {
          description
            "Global operational state for STP";
        }  // grouping stp-global-state
    
        grouping stp-global-base {
          description
            "Grouping for global spanning tree data";
          container config {
            description
              "Global spanning tree configuration";
            uses stp-global-config;
          }  // container config
    
          container state {
            config false;
            description
              "Global spanning tree state";
            uses stp-global-config;
    
            uses stp-global-state;
          }  // container state
        }  // grouping stp-global-base
    
        grouping stp-top {
          description
            "Top-level grouping for spanning-tree model";
          container stp {
            description
              "Top-level container for spanning tree configuration and
            state data";
            container global {
              description
                "Global configuration and state data";
              uses stp-global-base;
            }  // container global
    
            container rstp {
              description
                "Rapid Spanning-tree protocol configuration and operation
              data";
              uses stp-rstp-top;
            }  // container rstp
    
            container mstp {
              description
                "Multi Spanning-tree protocol configuration and operation
              data";
              uses stp-mstp-top;
            }  // container mstp
    
            container rapid-pvst {
              description
                "Rapid per vlan Spanning-tree protocol configuration and
              operational data";
              uses stp-rapid-pvst-top;
            }  // container rapid-pvst
    
            container interfaces {
              description
                "Enclosing container for the list of interface references";
              uses stp-interface-common-top;
            }  // container interfaces
          }  // container stp
        }  // grouping stp-top
    
        uses stp-top;
      }  // module openconfig-spanning-tree
    

© 2023 YumaWorks, Inc. All rights reserved.