From 639509ad42f8bd6baf9b6f5b668a9bbfb05108d4 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Thu, 20 Dec 2018 17:49:33 +0100 Subject: Add Openconfig YANG modules. Change-Id: I7e98bf1ca7196cff042a35b8bf096d2ea9d80028 Signed-off-by: Andrej Kozemcak --- .../yang/openconfig/openconfig-spanning-tree.yang | 823 +++++++++++++++++++++ 1 file changed, 823 insertions(+) create mode 100644 src/plugins/yang/openconfig/openconfig-spanning-tree.yang (limited to 'src/plugins/yang/openconfig/openconfig-spanning-tree.yang') diff --git a/src/plugins/yang/openconfig/openconfig-spanning-tree.yang b/src/plugins/yang/openconfig/openconfig-spanning-tree.yang new file mode 100644 index 0000000..3a70d5e --- /dev/null +++ b/src/plugins/yang/openconfig/openconfig-spanning-tree.yang @@ -0,0 +1,823 @@ +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.2.0"; + + 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"; + } + + + // 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 time-since-topology-change { + type oc-types:timeticks64; + description + "The time (in hundredths of a second) since the + last time a topology change was detected by the + bridge entity + + The value is the timestamp in seconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; + reference + "RFC4188 BRIDGE-MIB dot1dStpTimeSinceTopologyChange"; + } + } + + 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; + +} -- cgit 1.2.3-korg