Upgrade openroadm service models to 10.1
[transportpce.git] / ordmodels / common / src / main / yang / org-openroadm-common-optical-channel-types@2021-12-10.yang
diff --git a/ordmodels/common/src/main/yang/org-openroadm-common-optical-channel-types@2021-12-10.yang b/ordmodels/common/src/main/yang/org-openroadm-common-optical-channel-types@2021-12-10.yang
new file mode 100644 (file)
index 0000000..39f3061
--- /dev/null
@@ -0,0 +1,331 @@
+module org-openroadm-common-optical-channel-types {
+  namespace "http://org/openroadm/common-optical-channel-types";
+  prefix org-openroadm-common-optical-channel-types;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of common optical channel 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-12-10 {
+    description
+      "Version 10.1";
+  }
+  revision 2021-09-24 {
+    description
+      "Version 10.0";
+  }
+  revision 2021-03-26 {
+    description
+      "Version 9.0";
+  }
+  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-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-05-30 {
+    description
+      "Version 3.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+
+  identity optical-rate-identity {
+    description
+      "base for otsi and och idenity";
+  }
+
+  identity och-rate-identity {
+    base optical-rate-identity;
+    description
+      "A unique och rate identification";
+  }
+
+  identity otsi-rate-identity {
+    base optical-rate-identity;
+    description
+      "A unique OTSi rate identification";
+  }
+
+  identity foic-identity {
+    description
+      "A unique FOICx.k identification (G.709.3 FlexO-LR and
+       G.709.1 FlexO-SR)";
+  }
+
+  identity foic1.1 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.Sup58 2020-09";
+  }
+
+  identity foic1.2 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.Sup58";
+  }
+
+  identity foic1.4 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.709.1 and G.709.3";
+  }
+
+  identity foic2.4 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.709.1";
+  }
+
+  identity foic2.8 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.Sup58";
+  }
+
+  identity foic3.6 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in future";
+  }
+
+  identity foic4.8 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.709.1";
+  }
+
+  identity foic4.16 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.Sup58";
+  }
+
+  identity R400G-otsi {
+    base otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R300G-otsi {
+    base otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R200G-otsi {
+    base otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R200G {
+    base och-rate-identity;
+    description
+      "Identity for 200G Rate";
+  }
+
+  identity R100G-otsi {
+    base otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R100G {
+    base och-rate-identity;
+    description
+      "Identity for 100G Rate";
+  }
+
+  identity R56G-foic-otsi {
+    base otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R28G-foic-otsi {
+    base otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R10.7G {
+    base och-rate-identity;
+    description
+      "Identity for 10.7G Rate";
+  }
+
+  identity R11.1G {
+    base och-rate-identity;
+    description
+      "Identity for 11.1G Rate";
+  }
+
+  typedef frequency-THz {
+    type decimal64 {
+      fraction-digits 8;
+    }
+    units "THz";
+    description
+      "Frequency value in THz.";
+  }
+
+  typedef frequency-GHz {
+    type decimal64 {
+      fraction-digits 5;
+    }
+    units "GHz";
+    description
+      "Frequency value in GHz.";
+  }
+
+  typedef wavelength-duplication-type {
+    type enumeration {
+      enum one-per-srg {
+        value 1;
+        description
+          "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
+      }
+      enum one-per-degree {
+        value 2;
+        description
+          "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
+      }
+    }
+    description
+      "One per srg is applied to C/D add/drop group
+       one per degree is applied to C/D/C add drop group";
+  }
+
+  typedef modulation-format {
+    type enumeration {
+      enum bpsk {
+        value 0;
+        description
+          "binary phase-shift keying";
+      }
+      enum dc-dp-bpsk {
+        value 1;
+        description
+          "DC dual-polarization binary phase-shift keying";
+      }
+      enum qpsk {
+        value 2;
+        description
+          "quadrature phase-shift keying";
+      }
+      enum dp-qpsk {
+        value 3;
+        description
+          "dual-polarization quadrature phase-shift keying";
+      }
+      enum qam16 {
+        value 4;
+        description
+          "quadrature amplitude modulation 16";
+      }
+      enum dp-qam16 {
+        value 5;
+        description
+          "dual-polarization quadrature amplitude modulation 16";
+      }
+      enum dc-dp-qam16 {
+        value 6;
+        description
+          "DC dual-polarization quadrature amplitude modulation 16";
+      }
+      enum qam8 {
+        value 7;
+        description
+          "quadrature amplitude modulation 8";
+      }
+      enum dp-qam8 {
+        value 8;
+        description
+          "dual-polarization quadrature amplitude modulation 8";
+      }
+      enum dc-dp-qam8 {
+        value 9;
+        description
+          "DC dual-polarization quadrature amplitude modulation 8";
+      }
+    }
+    description
+      "Modulation format";
+  }
+
+  typedef provision-mode-type {
+    type enumeration {
+      enum explicit;
+      enum profile;
+    }
+    description
+      "Provision Mode Type On Optical Channel";
+  }
+  
+  grouping full-bandwidth-grouping {
+    leaf full-bandwidth-at-3dB {
+      type org-openroadm-common-optical-channel-types:frequency-GHz;
+      description
+        "Signal full bandwidth at 3dB below the peak. Information used to model signal’s spectral shape.";
+      config false;
+    }
+    leaf full-bandwidth-at-10dB {
+      type org-openroadm-common-optical-channel-types:frequency-GHz;
+      description
+        "Signal full bandwidth at 10dB below the peak. Information used to model signal’s spectral shape.";
+      config false;
+    }
+  }
+
+}