Upgrade openroadm network models to 10.1
[transportpce.git] / ordmodels / network / src / main / yang / org-openroadm-xponder@2021-12-10.yang
diff --git a/ordmodels/network/src/main/yang/org-openroadm-xponder@2021-12-10.yang b/ordmodels/network/src/main/yang/org-openroadm-xponder@2021-12-10.yang
new file mode 100644 (file)
index 0000000..23a18d4
--- /dev/null
@@ -0,0 +1,315 @@
+module org-openroadm-xponder {
+  yang-version 1.1;
+  namespace "http://org/openroadm/xponder";
+  prefix xpdr;
+
+  import org-openroadm-network-types {
+    prefix org-openroadm-network-types;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-common-equipment-types {
+    prefix org-openroadm-common-equipment-types;
+    revision-date 2019-11-29;
+  }
+  import org-openroadm-common-state-types {
+    prefix org-openroadm-common-state-types;
+    revision-date 2019-11-29;
+  }
+  import org-openroadm-common-optical-channel-types {
+    prefix org-openroadm-common-optical-channel-types;
+    revision-date 2021-12-10;
+  }
+  import org-openroadm-otn-common-types {
+    prefix org-openroadm-otn-common-types;
+    revision-date 2021-09-24;
+  }
+  import org-openroadm-service-format {
+    prefix org-openroadm-service-format;
+    revision-date 2019-11-29;
+  }
+
+  organization
+    "OPEN ROADM MSA";
+  contact
+    "OpenROADM.org.";
+  description
+    "YANG definitions for xponder
+
+     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-12-10 {
+    description
+      "Version 10.1";
+  }
+  revision 2021-09-24 {
+    description
+      "Version 10.0";
+  }
+  revision 2021-03-26 {
+    description
+      "Version 9.0";
+  }
+  revision 2020-12-11 {
+    description
+      "Version 8.1";
+  }
+  revision 2020-05-29 {
+    description
+      "Version 7.1.0";
+  }
+  revision 2020-03-27 {
+    description
+      "Version 7.0.0";
+  }
+  revision 2019-11-29 {
+    description
+      "Version 6.1.0";
+  }
+  revision 2019-09-27 {
+    description
+      "Version 6.0.0";
+  }
+  revision 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-05-30 {
+    description
+      "Version 3.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-07-28 {
+    description
+      "Version 2.0.1 - added revision-date to imports";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  grouping xpdr-node-attributes {
+    leaf customer-code {
+      type string;
+      description
+        "Owner of the xponder";
+    }
+  }
+
+  grouping xpdr-topo-node-attributes {
+    leaf xpdr-number {
+      type uint16;
+    }
+  }
+
+  grouping xpdr-connection-attributes {
+    leaf local-lgx {
+      type string;
+    }
+    leaf rate {
+      type identityref {
+        base org-openroadm-common-optical-channel-types:optical-rate-identity;
+      }
+      description
+        "rate";
+    }
+    leaf modulation-format {
+      type org-openroadm-common-optical-channel-types:modulation-format;
+    }
+    leaf optic {
+      type org-openroadm-common-equipment-types:optic-types;
+    }
+    leaf state {
+      type org-openroadm-common-state-types:state;
+      description
+        "A xponder can be in one of the following
+                 states";
+    }
+  }
+
+  grouping xpdr-port-connection-attributes {
+    container wavelength {
+      uses org-openroadm-network-types:flex-wave;
+    }
+    leaf tail-equipment {
+      type string;
+      description
+        "Type of equipment connected to the tail
+         for example packet box";
+    }
+    leaf tail-equipment-id {
+      type string;
+      description
+        "Identifier of equipment connected to the
+         tail for example client equipement ID";
+    }
+    leaf tail-clfi {
+      type string;
+    }
+  }
+
+  grouping xpdr-otn-tp-attributes {
+    leaf rate {
+      type identityref {
+        base org-openroadm-otn-common-types:odu-rate-identity;
+      }
+      description
+        "rate identity of the ODU. 'identityref' is used
+         to allow to extend for future higher rates";
+    }
+    list odtu-tpn-pool {
+      key "odtu-type";
+      leaf odtu-type {
+        type identityref {
+          base org-openroadm-otn-common-types:odtu-type-identity;
+        }
+        description
+          "ODTU type, part of the MSI (Multiplex Structure Identifier)";
+      }
+      leaf-list tpn-pool {
+        type uint16;
+        description
+          "List of available Tributary Port Number (0-based), part of the MSI";
+      }
+    }
+    leaf-list ts-pool {
+      type uint16;
+      description
+        "List of available Tributary Slots used by port";
+    }
+    leaf-list opucn-ts-pool {
+      type org-openroadm-otn-common-types:opucn-trib-slot-def;
+      description
+        "List of available OPUCn Tributary Slots used by port";
+    }
+  }
+
+  grouping xpdr-mode-attributes {
+    container supported-operational-modes {
+      list operational-mode {
+        key "mode-id";
+        description
+          "list of supported operational modes";
+        leaf mode-id {
+          type string;
+          description
+            "Optical profile operational mode identifier";
+        }
+        leaf spectral-width {
+          type org-openroadm-common-optical-channel-types:frequency-GHz;
+          units "GHz";
+          description
+            "The required minimum signal spectral width of signal at -22 dbm.";
+        }
+      }
+    }
+    leaf operational-mode {
+      type string;
+      config true;
+      description
+        "The provisioned operational-mode of the equipment.";
+    }
+  }
+
+  grouping supported-client-services {
+    container supported-client-services {
+      list supported-client-service {
+        key "service-format";
+        description
+          "Supported Client Services";
+        leaf service-format {
+          type org-openroadm-service-format:service-format;
+          description
+            "Format of the requested service: Ethernet, OTU, etc.";
+        }
+        leaf-list service-rate {
+          type uint32;
+          description
+            "Rate of the requested service in GBps. Not used when service-format=other.";
+        }
+        leaf-list other-service-format-and-rate {
+          type string;
+          description
+            "Used when service-format is set to other in the bookend xponder use case.
+             The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
+             and intended to allow the controller to support non-Open ROADM service formats.
+             This value encodes both the service format and the rate supported.
+             This field should not be specified when service format != other.";
+        }
+      }
+    }
+    uses provisioned-client-service;
+  }
+
+  grouping provisioned-client-service {
+    leaf service-format {
+      type org-openroadm-service-format:service-format;
+      description
+        "Format of the provisioned service: Ethernet, OTU, etc.";
+    }
+    leaf service-rate {
+      type uint32;
+      description
+        "Provisioned rate of the requested service in GBps. Not used when service-format=other.";
+    }
+    leaf other-service-format-and-rate {
+      type string;
+      description
+        "Used when service-format is set to other in the bookend xponder use case.
+         The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
+         and intended to allow the controller to support non-Open ROADM service formats.
+         This value encodes the provisioned service format and the rate supported.
+         This field should not be specified when service format != other.";
+    }
+  }
+}