--- /dev/null
+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";
+ }
+ }
+ }
+}