Openroadm models update
[transportpce.git] / ordmodels / common / src / main / yang / org-openroadm-pm-types@2016-10-14.yang
diff --git a/ordmodels/common/src/main/yang/org-openroadm-pm-types@2016-10-14.yang b/ordmodels/common/src/main/yang/org-openroadm-pm-types@2016-10-14.yang
new file mode 100644 (file)
index 0000000..3a70362
--- /dev/null
@@ -0,0 +1,279 @@
+module org-openroadm-pm-types {
+  namespace "http://org/openroadm/pm-types";
+  prefix org-openroadm-pm-types;
+
+  import org-openroadm-common-types {
+    prefix org-openroadm-common-types;
+   revision-date 2016-10-14;
+  }
+
+  organization "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of performance management types.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  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 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  typedef pm-granularity {
+    description
+      "Granularity of PM bin";
+    type enumeration {
+      enum "notApplicable" {
+        description
+          "This is for total statistic counters on devices that support
+              them.";
+        value 1;
+      }
+      enum "15min" {
+        value 2;
+      }
+      enum "24Hour" {
+        value 3;
+      }
+    }
+  }
+
+  typedef pm-data-type {
+    type union {
+      type uint64;
+      type decimal64 {
+        fraction-digits 2;
+      }
+      type decimal64 {
+        fraction-digits 17;
+      }
+    }
+  }
+
+  grouping pm-measurement {
+    description
+      "Set of parameters related to a PM Measurement";
+    container pmParameterName {
+      uses pm-names;
+    }
+    leaf pmParameterValue {
+      type pm-data-type;
+      mandatory true;
+      config false;
+    }
+    leaf pmParameterUnit {
+      description
+        "Unit PM parameter has been measured - frames, packets, u, etc";
+      type string;
+      mandatory false;
+    }
+    leaf location {
+      description
+        "Location PM parameter measurement";
+      type enumeration {
+        enum "notApplicable" {
+          value 1;
+        }
+        enum "nearEnd" {
+          value 2;
+        }
+        enum "farEnd" {
+          value 3;
+        }
+      }
+      mandatory false;
+    }
+    leaf direction {
+      description
+        "Direction PM parameter measurement";
+      type org-openroadm-common-types:pm-direction;
+      mandatory false;
+    }
+    leaf validity {
+      description
+        "Validity of data";
+      type enumeration {
+        enum "complete" {
+          value 1;
+        }
+        enum "partial" {
+          value 2;
+        }
+        enum "suspect" {
+          value 3;
+        }
+      }
+      mandatory false;
+      config false;
+    }
+  }
+
+  grouping pm-names {
+    description
+      "Name of PM parameter. Consisists of a set list of parameters,
+       plus an extension field to support addition parameters.";
+    leaf type {
+      type pm-names-enum;
+      mandatory true;
+    }
+    leaf extension {
+      description
+        "name of parameter, when enum value set to vendorExtension because
+         name not found in pm-names-enum";
+      type string;
+      mandatory false;
+    }
+  }
+
+  typedef pm-names-enum {
+    type enumeration {
+      enum "vendorExtension" {
+        value 1;
+        description
+          "vendor extension";
+      }
+      enum "bitErrorRate" {
+        value 2;
+        description
+          "Bit error rate (BER)";
+      }
+      enum "opticalPowerOutput" {
+        value 3;
+        description
+          "Optical Power Output (OPOUT-OTS). Total optical power includes Variable Optical Attenuator (VOA) attenuation";
+      }
+      enum "opticalReturnLoss" {
+        value 4;
+        description
+          "Optical Return Loss (ORL-OTS) - at MW port(s) B";
+      }
+      enum "opticalPowerInput" {
+        value 5;
+        description
+          "Optical Power Input (OPIN-OTS). Total optical power";
+      }
+      enum "opticalPower" {
+        value 6;
+        description
+          "Optical Power Receive (OPR-OTS); Optical Power Transmit (OPT-OSC)";
+      }
+      enum "opticalChannelPowerTransmit" {
+        value 7;
+        description
+          "Optical Channel Power Transmit (OPT-OCH). Individual channel power includes Variable Optical Attenuator (VOA) attenuation";
+      }
+      enum "codeViolations" {
+        value 8;
+        description
+          "Code Violations (CV-PCS). 8B/10B errors";
+        reference "IEEE 802.3ah, Section 45.2.1.44";
+      }
+      enum "erroredSecondsSection" {
+        value 9;
+        description
+          "Errored Seconds Section (ES-PCS)";
+        reference "IEEE 802.3ah, Section 45.2.1.46";
+      }
+      enum "severlyErrorSeconds" {
+        value 10;
+        description
+          "Severely Errored Seconds (SES-PCS)";
+        reference "IEEE 802.3ah, Section 45.2.1.48";
+      }
+      enum "unavailableSecondsPCS" {
+        value 11;
+        description
+          "Unavailable Seconds PCS (UAS-PCS)";
+        reference "IEEE 802.3ah, Section 45.2.1.52";
+      }
+      enum "inFrames" {
+        value 12;
+        description
+          "In frames (INFRAMES-E)";
+      }
+      enum "inFramesErrored" {
+        value 13;
+        description
+          "In frames errored (INFRAMESERR-E)";
+      }
+      enum "outFrames" {
+        value 14;
+        description
+          "Out frames (OUTFRAMES-E)";
+      }
+      enum "erroredSecondsEthernet" {
+        value 15;
+        description
+          "Errored Seconds Ethernet (ES-E)";
+        reference "IEEE 802.3ah, Section 45.2.1.46";
+      }
+      enum "severelyErroredSecondsEthernet" {
+        value 16;
+        description
+          "Severly Errored Seconds, Ethernet (SES-E)";
+        reference "IEEE 802.3ah, Section 45.2.1.48";
+      }
+      enum "unavailableSecondsEthernet" {
+        value 17;
+        description
+          "Unavailable Seconds, Ethernet (UAS-E)";
+        reference "IEEE 802.3ah, Section 45.2.1.52";
+      }
+      enum "erroredBlockCount" {
+        value 18;
+        description
+          "Errored block count";
+        reference "G.798 : 6.5.1.1";
+      }
+      enum "delay" {
+        value 19;
+        description
+          "Number of frames between a DMValue toggle event and the received DMp signal value toggle event";
+        reference "G.798";
+      }
+      enum "defectSeconds" {
+        value 20;
+        description
+          "Defect Seconds (DS)";
+        reference "";
+      }
+      enum "backwardIncomingAlignmentError" {
+        value 21;
+        description
+          "Backward Incoming Alignment Error (BIAE)";
+        reference "Ref: G.798: 14.5.1.1.2";
+      }
+      enum "incomingAlignmentError" {
+        value 22;
+        description
+          "Incoming Alignment Error (IAE)";
+        reference "Ref: G.798: 14.5.1.1.2";
+      }
+    }
+  }
+}