843 lines
19 KiB
YANG
843 lines
19 KiB
YANG
module openconfig-spanning-tree {
|
|
|
|
yang-version "1";
|
|
|
|
// namespace
|
|
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; }
|
|
|
|
|
|
// meta
|
|
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.";
|
|
|
|
oc-ext:openconfig-version "0.3.1";
|
|
|
|
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";
|
|
}
|
|
|
|
// OpenConfig specific extensions for module metadata.
|
|
oc-ext:regexp-posix;
|
|
oc-ext:catalog-organization "openconfig";
|
|
oc-ext:origin "openconfig";
|
|
|
|
// identity statements
|
|
|
|
|
|
// grouping statements
|
|
|
|
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";
|
|
}
|
|
}
|
|
}
|
|
|
|
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-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 state {
|
|
|
|
config false;
|
|
|
|
description
|
|
"Operational state data for STP on each interface";
|
|
|
|
uses stp-interfaces-config;
|
|
uses stp-interfaces-state;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
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 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-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-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-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 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;
|
|
}
|
|
|
|
uses stp-interfaces-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-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 state {
|
|
config false;
|
|
|
|
description
|
|
"Operational data for MSTP instance";
|
|
|
|
uses mst-instance-config;
|
|
uses bridge-priority-config;
|
|
uses stp-common-state;
|
|
}
|
|
|
|
uses stp-interfaces-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-state {
|
|
description
|
|
"Operational state data for MSTP";
|
|
}
|
|
|
|
grouping stp-mstp-top {
|
|
description
|
|
"Top grouping for MSTP configuration and operation data";
|
|
|
|
container config {
|
|
description
|
|
"Configuration data for MSTP";
|
|
|
|
uses mstp-config;
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
|
|
description
|
|
"Operational data for MSTP";
|
|
|
|
uses mstp-config;
|
|
uses mstp-state;
|
|
}
|
|
|
|
container mst-instances {
|
|
description
|
|
"Configuration and operation data for MSTP instances";
|
|
|
|
uses mst-instance-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 state {
|
|
config false;
|
|
|
|
description
|
|
"Operational state data for RSTP";
|
|
|
|
uses stp-timer-config;
|
|
uses bridge-priority-config;
|
|
uses stp-common-state;
|
|
}
|
|
|
|
uses stp-interfaces-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-state {
|
|
description
|
|
"Operational state data for STP on interfaces";
|
|
}
|
|
|
|
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 state {
|
|
|
|
config false;
|
|
|
|
description
|
|
"Operational state data for STP on each bridge port";
|
|
|
|
uses stp-interface-common-config;
|
|
uses stp-interface-common-state;
|
|
}
|
|
}
|
|
}
|
|
|
|
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-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-state {
|
|
description
|
|
"Global operational state for STP";
|
|
}
|
|
|
|
grouping stp-global-base {
|
|
description
|
|
"Grouping for global spanning tree data";
|
|
|
|
container config {
|
|
description
|
|
"Global spanning tree configuration";
|
|
uses stp-global-config;
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
|
|
description
|
|
"Global spanning tree state";
|
|
uses stp-global-config;
|
|
uses stp-global-state;
|
|
}
|
|
}
|
|
|
|
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 rstp {
|
|
|
|
description
|
|
"Rapid Spanning-tree protocol configuration and operation
|
|
data";
|
|
|
|
uses stp-rstp-top;
|
|
}
|
|
|
|
container mstp {
|
|
description
|
|
"Multi Spanning-tree protocol configuration and operation
|
|
data";
|
|
|
|
uses stp-mstp-top;
|
|
}
|
|
|
|
container rapid-pvst {
|
|
description
|
|
"Rapid per vlan Spanning-tree protocol configuration and
|
|
operational data";
|
|
|
|
uses stp-rapid-pvst-top;
|
|
}
|
|
|
|
container interfaces {
|
|
description
|
|
"Enclosing container for the list of interface references";
|
|
|
|
uses stp-interface-common-top;
|
|
}
|
|
}
|
|
}
|
|
|
|
// data definition statements
|
|
|
|
uses stp-top;
|
|
|
|
}
|