Upgrade openroadm service models to 10.1
[transportpce.git] / ordmodels / common / src / main / yang / org-openroadm-common-types@2021-12-10.yang
diff --git a/ordmodels/common/src/main/yang/org-openroadm-common-types@2021-12-10.yang b/ordmodels/common/src/main/yang/org-openroadm-common-types@2021-12-10.yang
new file mode 100644 (file)
index 0000000..ca3d2b8
--- /dev/null
@@ -0,0 +1,487 @@
+module org-openroadm-common-types {
+  namespace "http://org/openroadm/common-types";
+  prefix org-openroadm-common-types;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of common 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-05-28 {
+    description
+      "Version 9.1";
+  }
+  revision 2021-03-26 {
+    description
+      "Version 9.0";
+  }
+  revision 2020-12-11 {
+    description
+      "Version 8.1";
+  }
+  revision 2020-09-25 {
+    description
+      "Version 8.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-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-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-06-26 {
+    description
+      "Version 2.0";
+  }
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  typedef activate-notification-type {
+    type enumeration {
+      enum activate {
+        value 1;
+        description
+          "software or database activation";
+      }
+      enum commit {
+        value 2;
+        description
+          "commit the software or database.
+           For software activate, this event can happen in the following scenarios:
+             1) immediately when user issue sw-activate command without validationTimer
+                or if the validationTimer is specified as 00-00-00;
+             2) when user issue cancel-validation-timer before it expires and with accept=true.
+           For database activate, this event can occur in the following scenarios:
+             1) immediately when user issue db-activate command without rollBackTimer
+                or if the rollBackTimer is specified as 00-00-00;
+             2) when user issue cancel-rollback-timer before it expires and with accept=true.";
+      }
+      enum cancel {
+        value 3;
+        description
+          "cancel the database or software activation operation.
+           For software activate, this event can happen in the following cases:
+             1) when the validationTimer expires;
+             2) when the user issues cancel-validation-timer with accept=false.
+           For database activate, this event can happen in the following cases:
+             1) when the rollBackTimer expires;
+             2) when the user issues cancel-rollback-timer with accept=false.";
+      }
+    }
+    description
+      "Type of notification on software or database activation events";
+  }
+
+  typedef rpc-status {
+    type enumeration {
+      enum Successful {
+        value 1;
+      }
+      enum Failed {
+        value 2;
+      }
+    }
+    description
+      "status of RPC ";
+  }
+
+  typedef extended-rpc-status {
+    type enumeration {
+      enum Successful {
+        value 1;
+      }
+      enum Failed {
+        value 2;
+      }
+      enum In-progress {
+        value 3;
+      }
+    }
+    description
+      "status of RPC ";
+  }
+
+  typedef openroadm-version-type {
+    type enumeration {
+      enum 1.0 {
+        value 1;
+        description
+          "value for 1.0";
+      }
+      enum 2.0 {
+        value 2;
+        description
+          "value for 2.0";
+      }
+      enum 2.1 {
+        value 3;
+        description
+          "value for 2.1";
+      }
+      enum 2.2 {
+        value 4;
+        description
+          "value for 2.2";
+      }
+      enum 3.0 {
+        value 5;
+        description
+          "value for 3.0";
+      }
+      enum 3.1 {
+        value 6;
+        description
+          "value for 3.1";
+      }
+      enum 4.0 {
+        value 7;
+        description
+          "value for 4.0";
+      }
+      enum 2.2.1 {
+        value 8;
+        description
+          "value for 2.2.1";
+      }
+      enum 4.1 {
+        value 9;
+        description
+          "value for 4.1";
+      }
+      enum 3.1.1 {
+        value 10;
+        description
+          "value for 3.1.1";
+      }
+      enum 5.0 {
+        value 11;
+        description
+          "value for 5.0";
+      }
+      enum 5.1 {
+        value 12;
+        description
+          "value for 5.1";
+      }
+      enum 6.0 {
+        value 13;
+        description
+          "value for 6.0";
+      }
+      enum 6.1 {
+        value 14;
+        description
+          "value for 6.1";
+      }
+      enum 7.0 {
+        value 15;
+        description
+          "value for 7.0";
+      }
+      enum 7.1 {
+        value 16;
+        description
+          "value for 7.1";
+      }
+      enum 8.0 {
+        value 17;
+        description
+          "value for 8.0";
+      }
+      enum 8.1 {
+        value 18;
+        description
+          "value for 8.1";
+      }
+      enum 9.0 {
+        value 19;
+        description
+          "value for 9.0";
+      }
+      enum 9.1 {
+        value 20;
+        description
+          "value for 9.1";
+      }
+      enum 10.0 {
+        value 21;
+        description
+          "value for 10.0";
+      }
+      enum 10.1 {
+        value 22;
+        description
+          "value for 10.1";
+      }
+    }
+    description
+      "OpenROADM version enum type";
+  }
+
+  grouping rpc-response-status {
+    leaf status {
+      type rpc-status;
+      mandatory true;
+      description
+        "Successful or Failed";
+    }
+    leaf status-message {
+      type string;
+      description
+        "Gives a more detailed status";
+    }
+  }
+
+  grouping extended-rpc-response-status {
+    leaf status {
+      type extended-rpc-status;
+      mandatory true;
+      description
+        "Successful, Failed or In-progress";
+    }
+    leaf status-message {
+      type string;
+      description
+        "Gives a more detailed status.";
+    }
+  }
+
+  grouping eth-rate-and-burst-size {
+    description
+      "Grouping of ethernet committed rate and burst size.";
+    leaf committed-info-rate {
+      type uint32;
+      mandatory true;
+      description
+        "Committed Information Rate (CIR), unit in Mbps. For example, 1250 Mbps";
+    }
+    leaf committed-burst-size {
+      type uint16;
+      mandatory true;
+      description
+        "Committed Burst Size, unit in 1KB (K Byte).
+                Range 16 | 32 | 64 | 128 | 512 | 1024. Default: 16";
+    }
+  }
+
+  identity otn-protection-type {
+    description
+      "OTN base protection identity from which
+         specific protection types are derived.";
+  }
+
+  typedef tcm-direction-capability-type {
+    type enumeration {
+      enum up-tcm {
+        description
+          "Port supports up TCM termination, e.g., direction facing the switch fabric";
+      }
+      enum down-tcm {
+        description
+          "Port supports down TCM termination, e.g., direction facing out of the equipment ";
+      }
+      enum up-down-tcm {
+        description
+          "Port supports both up and down TCM terminations";
+      }
+    }
+    description
+      "TCM direction capability for the port";
+  }
+
+
+
+
+
+
+  //
+  // Identities for FEC -- used for Device and Service models
+  //
+
+  // Base Identity
+  identity fec-identity {
+    description
+      "A unique FEC identification";
+  }
+
+  // FEC Off (duplications for backwards compatibility)
+  identity off-fec {
+    status deprecated;
+    base fec-identity;
+    description
+      "FEC Off";
+  }
+  identity off {
+    base fec-identity;
+    description
+      "FEC Off";
+  }
+  identity scfec {
+    base fec-identity;
+    description
+      "Staircase FEC identification";
+  }
+  identity rsfec {
+    base fec-identity;
+    description
+      "Reed Solomon FEC identification";
+  }
+  identity ofec {
+    base fec-identity;
+    description
+      "OpenROADM FEC identification";
+  }
+
+  // G.975.1 I.4
+  identity efec {
+    base fec-identity;
+    description
+      "G.975.1 I.4";
+  }
+
+  // G.975.1 I.7
+  identity ufec {
+    base fec-identity;
+    description
+      "G.975.1 I.7";
+  }
+
+  // Soft Decision FEC
+  identity sdfec {
+    base fec-identity;
+    description
+      "Soft Decision FEC";
+  }
+
+  // Clariphy SDFEC
+  identity sdfeca1 {
+    base fec-identity;
+    description
+      "Clariphy SDFEC";
+  }
+
+  // SDFEC with SCFED
+  identity sdfecb1 {
+    base fec-identity;
+    description
+      "SDFEC with SCFEC";
+  }
+
+  // Base-R
+  identity baser {
+    base fec-identity;
+    description
+      "Base-R (IEEE 802.3)";
+  }
+
+  grouping fec-grouping {
+    leaf fec {
+      type identityref {
+        base org-openroadm-common-types:fec-identity;
+      }
+      description
+        "FEC / Forward Error Correction";
+    }
+  }
+
+  typedef SRLG-type {
+    type enumeration {
+      enum site {
+        value 0;
+        description
+          "Site SRLG";
+      }
+      enum node {
+        value 1;
+        description
+          "Node SRLG";
+      }
+      enum srlg {
+        value 2;
+        description
+          "SRLG here is also referred as fiber SRLG";
+      }
+      enum link {
+        value 3;
+        description
+          "Link SRLG";
+      }    
+    }
+  }  
+}