Upgrade openroadm service models to 10.1
[transportpce.git] / ordmodels / common / src / main / yang / org-openroadm-common-node-types@2021-05-28.yang
diff --git a/ordmodels/common/src/main/yang/org-openroadm-common-node-types@2021-05-28.yang b/ordmodels/common/src/main/yang/org-openroadm-common-node-types@2021-05-28.yang
new file mode 100644 (file)
index 0000000..9812e68
--- /dev/null
@@ -0,0 +1,162 @@
+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.";
+  }
+}