--- /dev/null
+module org-openroadm-common-node-types {
+ namespace "http://org/openroadm/common-node-types";
+ prefix org-openroadm-common-node-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common node types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2021-05-28 {
+ description
+ "Version 9.1";
+ }
+ revision 2020-12-11 {
+ description
+ "Version 8.1";
+ }
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef node-types {
+ type enumeration {
+ enum rdm {
+ value 1;
+ }
+ enum xpdr {
+ value 2;
+ }
+ enum ila {
+ value 3;
+ }
+ enum extplug {
+ value 4;
+ }
+ }
+ description
+ "Identifier for node type
+ 1. rdm for ROADM
+ 2. xpdr for Transponder, Regen
+ 3. ila for in-line amplifier
+ 4. extplug for external pluggable";
+ }
+
+ typedef node-subtypes {
+ type enumeration {
+ enum none {
+ value 1;
+ description
+ "The none-enum indicates there is no node-subtype refinement.
+ Standard OpenROADM node properties apply in this case. If an
+ optional-leaf of node-subtypes is not present, the behaviour is the
+ same as the none-enum.";
+ }
+ enum edge-optical-spec {
+ value 2;
+ description
+ "This enum refines a ROADM node-type. It indicates that node conforms
+ to edge optical specifications as defined in the OpenROADM MSA
+ Specification: MW-MW(Edge), MW-Wr(Edge), and Local Control (Edge).";
+ }
+ }
+ description
+ "Identifier for node-subtype. Provides refinement of node-type.";
+ }
+
+ typedef xpdr-node-types {
+ type enumeration {
+ enum tpdr {
+ value 1;
+ }
+ enum mpdr {
+ value 2;
+ }
+ enum switch {
+ value 3;
+ }
+ enum regen {
+ value 4;
+ }
+ enum regen-uni {
+ value 5;
+ }
+ }
+ description
+ "Identifier for Xponder node type
+ 1. Transponder
+ 2. Muxponder
+ 3. OTN switchponder
+ 4. Regenerator
+ 5. Regenerator based on unidirectional model
+
+ Xponder types are modeled in one of two ways:
+
+ Type 1: The xponder ports are configured with port-qual of xpdr-client or
+xpdr-network, the xponder connectivity is advertised using connection-map, and
+no explicit cross connects are provisioned.
+
+ Type 2: The xponder ports are configured with port-qual of switch-network
+or switch-client, the connectivity is advertised using switching-pool, and
+explicit cross connects are provisioned.
+
+ Type 1 applies to transponders, unidirectional regenerators, and bidirectional regenerators.
+ Type 2 applies to muxponders and switchponders.";
+ }
+
+ typedef node-id-type {
+ type string {
+ length "7..63";
+ pattern '([a-zA-Z][a-zA-Z0-9-]{5,61}[a-zA-Z0-9])' {
+ error-message
+ "A node-id must be 7 to 63 characters in length.
+ A node-id can contain letters, numbers, and hyphens.
+ The first character must be a letter.
+ The last character must be a letter or number.";
+ }
+ }
+ description
+ "Globally unique identifier for a device.";
+ }
+}