module org-openroadm-probable-cause {
  namespace "http://org/openroadm/probableCause";
  prefix org-openroadm-probable-cause;

  import org-openroadm-common-types {
    prefix org-openroadm-common-types;
    revision-date 2018-10-19;
  }

  organization
    "Open ROADM MSA";
  contact
    "OpenROADM.org";
  description
    "YANG definitions of Probable Causes.
     
      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 2018-10-19 {
    description
      "Version 2.2.1";
  }
  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";
  }

  typedef probable-cause-enum {
    type enumeration {
      enum "vendorExtension" {
        value 1;
        description
          "vendorExtension";
      }
      enum "openConnectionIndication" {
        value 2;
        description
          "Open connection indication (OCI)";
        reference "G.798";
      }
      enum "alarmIndicationSignal" {
        value 3;
        description
          "Alarm indication signal";
        reference "G.798";
      }
      enum "lossOfSignal" {
        value 4;
        description
          "Loss of Signal";
      }
      enum "opticalLineFail" {
        value 5;
        description
          "Optical Line Fail";
      }
      enum "opticalPowerDegraded" {
        value 6;
        description
          "Optical Line Fail";
      }
      enum "automaticLaserShutdown" {
        value 7;
        description
          "Optical Line Fail";
      }
      enum "serverSignalFail" {
        value 8;
        description
          "Server Signal Fail (SSF)";
        reference "G.798";
      }
      enum "lockedDefect" {
        value 10;
        description
          "Locked defect (LCK)";
        reference "G.798";
      }
      enum "trailTraceIdentifierMismatch" {
        value 11;
        description
          "Trail trace Identifier Mismatch (TIM)";
        reference "G.798";
      }
      enum "degradedDefect" {
        value 12;
        description
          "Degraded defect (DEG)";
        reference "G.798";
      }
      enum "backwardsDefectIndication" {
        value 13;
        description
          "Backward Defect Indication (BDI)";
        reference "G.798";
      }
      enum "otsSpanlossPowerOutOfSpecificationHigh" {
        value 14;
      }
      enum "automaticShutoffDisabled" {
        value 15;
      }
      enum "portLossOfLight" {
        value 17;
      }
      enum "reflectionTooHigh" {
        value 18;
      }
      enum "payloadMissingIndication" {
        value 22;
        description
          "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
      }
      enum "forwardDefectIndication" {
        value 23;
        description
          "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
      }
      enum "oscPowerOutOfSpecificationHigh" {
        value 24;
      }
      enum "oscPowerOutOfSpecificationLow" {
        value 25;
      }
      enum "powerOutOfSpecificationHigh" {
        value 26;
      }
      enum "lossOfSynchronization" {
        value 27;
      }
      enum "linkDown" {
        value 28;
      }
      enum "equipmentFault" {
        value 29;
      }
      enum "equipmentRemoved" {
        value 30;
      }
      enum "equipmentMismatch" {
        value 31;
      }
      enum "equipmentWarmup" {
        value 32;
      }
      enum "equipmentLedOn" {
        value 33;
      }
      enum "equipmentInterConnectFailure" {
        value 34;
      }
      enum "equipmentMiscabledConnection" {
        value 35;
      }
      enum "softwareVersionMismatch" {
        value 36;
      }
      enum "softwareStageInProgress" {
        value 37;
      }
      enum "databaseCorruption" {
        value 38;
      }
      enum "databaseVersionMismatch" {
        value 44;
      }
      enum "firmwareVersionMismatch" {
        value 46;
      }
      enum "incompatibleFirmware" {
        value 49;
      }
      enum "firmwareDownloadOrActivationFailure" {
        value 50;
      }
      enum "firmwareInitInProgress" {
        value 51;
      }
      enum "softwareReset" {
        value 52;
      }
      enum "fanCoolingFail" {
        value 53;
      }
      enum "administrativeDown" {
        value 54;
      }
      enum "lampTest" {
        value 55;
      }
      enum "powerProblemA" {
        value 56;
      }
      enum "powerProblemB" {
        value 57;
      }
      enum "shelfProvisioningMode" {
        value 58;
      }
      enum "sysNameChanged" {
        value 59;
      }
      enum "sysNtpNotSynchronized" {
        value 60;
      }
      enum "lossOfFrame" {
        value 63;
      }
      enum "lossOfMultiframe" {
        value 64;
      }
      enum "backwardIncomingAlignmentError" {
        value 65;
      }
      enum "incomingAlignmentError" {
        value 66;
      }
      enum "payloadMismatch" {
        value 67;
      }
      enum "clientSignalFailDefect" {
        value 68;
      }
      enum "highBER" {
        value 123;
      }
      enum "localFault" {
        value 124;
      }
      enum "remoteFault" {
        value 125;
      }
      enum "lossOfAlignment" {
        value 126;
      }
      enum "lossOfFECAlignment" {
        value 127;
      }
      enum "facilityLoopbackActive" {
        value 128;
      }
      enum "facilityLoopback2Active" {
        value 129;
      }
      enum "terminalLoopbackActive" {
        value 130;
      }
      enum "facilityTestsignalActive" {
        value 131;
      }
      enum "terminalTestsignalActive" {
        value 132;
      }
      enum "certificateNotInstalled" {
        value 134;
      }
      enum "lockoutOfProtection" {
        value 135;
      }
      enum "forcedSwitchAwayFromWorking" {
        value 136;
      }
      enum "forcedSwitchAwayFromProtect" {
        value 137;
      }
      enum "automaticSwitchAwayFromWorkingDueToSF" {
        value 138;
      }
      enum "automaticSwitchAwayFromProtectDueToSF" {
        value 139;
      }
      enum "automaticSwitchDueToWTR" {
        value 140;
      }
      enum "manualSwitchAwayFromWork" {
        value 141;
      }
      enum "manualSwitchAwayFromProtect" {
        value 142;
      }
      enum "automaticPowerReduction" {
        value 143;
      }
      enum "lossOfSignalOSC" {
        value 144;
      }
      enum "softwareValidateInProgress" {
        value 145;
      }
      enum "databaseRollbackTimerInProgress" {
        value 146;
      }
      enum "otdrScanInProgress" {
        value 147;
      }
      enum "lldpFail" {
        value 148;
      }
      enum "omsPowerOutOfSpecificationHigh" {
        value 149;
      }
      enum "omsPowerOutOfSpecificationLow" {
        value 150;
      }
      enum "automaticSwitchAwayFromWorkingDueToSD" {
        value 151;
      }
      enum "automaticSwitchAwayFromProtectDueToSD" {
        value 152;
      }
      enum "backwardIncomingAlignmentErrorTCM1-up" {
        value 153;
      }
      enum "backwardIncomingAlignmentErrorTCM2-up" {
        value 154;
      }
      enum "backwardIncomingAlignmentErrorTCM3-up" {
        value 155;
      }
      enum "backwardIncomingAlignmentErrorTCM4-up" {
        value 156;
      }
      enum "backwardIncomingAlignmentErrorTCM5-up" {
        value 157;
      }
      enum "backwardIncomingAlignmentErrorTCM6-up" {
        value 158;
      }
      enum "incomingAlignmentErrorTCM1-up" {
        value 159;
      }
      enum "incomingAlignmentErrorTCM2-up" {
        value 160;
      }
      enum "incomingAlignmentErrorTCM3-up" {
        value 161;
      }
      enum "incomingAlignmentErrorTCM4-up" {
        value 162;
      }
      enum "incomingAlignmentErrorTCM5-up" {
        value 163;
      }
      enum "incomingAlignmentErrorTCM6-up" {
        value 164;
      }
      enum "backwardsDefectIndicationTCM1-up" {
        value 165;
      }
      enum "backwardsDefectIndicationTCM2-up" {
        value 166;
      }
      enum "backwardsDefectIndicationTCM3-up" {
        value 167;
      }
      enum "backwardsDefectIndicationTCM4-up" {
        value 168;
      }
      enum "backwardsDefectIndicationTCM5-up" {
        value 169;
      }
      enum "backwardsDefectIndicationTCM6-up" {
        value 170;
      }
      enum "degradedDefectTCM1-up" {
        value 171;
      }
      enum "degradedDefectTCM2-up" {
        value 172;
      }
      enum "degradedDefectTCM3-up" {
        value 173;
      }
      enum "degradedDefectTCM4-up" {
        value 174;
      }
      enum "degradedDefectTCM5-up" {
        value 175;
      }
      enum "degradedDefectTCM6-up" {
        value 176;
      }
      enum "trailTraceIdentifierMisMatchTCM1-up" {
        value 177;
      }
      enum "trailTraceIdentifierMisMatchTCM2-up" {
        value 178;
      }
      enum "trailTraceIdentifierMisMatchTCM3-up" {
        value 179;
      }
      enum "trailTraceIdentifierMisMatchTCM4-up" {
        value 180;
      }
      enum "trailTraceIdentifierMisMatchTCM5-up" {
        value 181;
      }
      enum "trailTraceIdentifierMisMatchTCM6-up" {
        value 182;
      }
      enum "alarmIndicationSignalTCM1-up" {
        value 183;
      }
      enum "alarmIndicationSignalTCM2-up" {
        value 184;
      }
      enum "alarmIndicationSignalTCM3-up" {
        value 185;
      }
      enum "alarmIndicationSignalTCM4-up" {
        value 186;
      }
      enum "alarmIndicationSignalTCM5-up" {
        value 187;
      }
      enum "alarmIndicationSignalTCM6-up" {
        value 188;
      }
      enum "openConnectionIndicationTCM1-up" {
        value 189;
      }
      enum "openConnectionIndicationTCM2-up" {
        value 190;
      }
      enum "openConnectionIndicationTCM3-up" {
        value 191;
      }
      enum "openConnectionIndicationTCM4-up" {
        value 192;
      }
      enum "openConnectionIndicationTCM5-up" {
        value 193;
      }
      enum "openConnectionIndicationTCM6-up" {
        value 194;
      }
      enum "lockedDefectTCM1-up" {
        value 195;
      }
      enum "lockedDefectTCM2-up" {
        value 196;
      }
      enum "lockedDefectTCM3-up" {
        value 197;
      }
      enum "lockedDefectTCM4-up" {
        value 198;
      }
      enum "lockedDefectTCM5-up" {
        value 199;
      }
      enum "lockedDefectTCM6-up" {
        value 200;
      }
      enum "lossofTandemConnectionTCM1-up" {
        value 201;
      }
      enum "lossofTandemConnectionTCM2-up" {
        value 202;
      }
      enum "lossofTandemConnectionTCM3-up" {
        value 203;
      }
      enum "lossofTandemConnectionTCM4-up" {
        value 204;
      }
      enum "lossofTandemConnectionTCM5-up" {
        value 205;
      }
      enum "lossofTandemConnectionTCM6-up" {
        value 206;
      }
      enum "backwardIncomingAlignmentErrorTCM1-down" {
        value 207;
      }
      enum "backwardIncomingAlignmentErrorTCM2-down" {
        value 208;
      }
      enum "backwardIncomingAlignmentErrorTCM3-down" {
        value 209;
      }
      enum "backwardIncomingAlignmentErrorTCM4-down" {
        value 210;
      }
      enum "backwardIncomingAlignmentErrorTCM5-down" {
        value 211;
      }
      enum "backwardIncomingAlignmentErrorTCM6-down" {
        value 212;
      }
      enum "incomingAlignmentErrorTCM1-down" {
        value 213;
      }
      enum "incomingAlignmentErrorTCM2-down" {
        value 214;
      }
      enum "incomingAlignmentErrorTCM3-down" {
        value 215;
      }
      enum "incomingAlignmentErrorTCM4-down" {
        value 216;
      }
      enum "incomingAlignmentErrorTCM5-down" {
        value 217;
      }
      enum "incomingAlignmentErrorTCM6-down" {
        value 218;
      }
      enum "backwardsDefectIndicationTCM1-down" {
        value 219;
      }
      enum "backwardsDefectIndicationTCM2-down" {
        value 220;
      }
      enum "backwardsDefectIndicationTCM3-down" {
        value 221;
      }
      enum "backwardsDefectIndicationTCM4-down" {
        value 222;
      }
      enum "backwardsDefectIndicationTCM5-down" {
        value 223;
      }
      enum "backwardsDefectIndicationTCM6-down" {
        value 224;
      }
      enum "degradedDefectTCM1-down" {
        value 225;
      }
      enum "degradedDefectTCM2-down" {
        value 226;
      }
      enum "degradedDefectTCM3-down" {
        value 227;
      }
      enum "degradedDefectTCM4-down" {
        value 228;
      }
      enum "degradedDefectTCM5-down" {
        value 229;
      }
      enum "degradedDefectTCM6-down" {
        value 230;
      }
      enum "trailTraceIdentifierMisMatchTCM1-down" {
        value 231;
      }
      enum "trailTraceIdentifierMisMatchTCM2-down" {
        value 232;
      }
      enum "trailTraceIdentifierMisMatchTCM3-down" {
        value 233;
      }
      enum "trailTraceIdentifierMisMatchTCM4-down" {
        value 234;
      }
      enum "trailTraceIdentifierMisMatchTCM5-down" {
        value 235;
      }
      enum "trailTraceIdentifierMisMatchTCM6-down" {
        value 236;
      }
      enum "alarmIndicationSignalTCM1-down" {
        value 237;
      }
      enum "alarmIndicationSignalTCM2-down" {
        value 238;
      }
      enum "alarmIndicationSignalTCM3-down" {
        value 239;
      }
      enum "alarmIndicationSignalTCM4-down" {
        value 240;
      }
      enum "alarmIndicationSignalTCM5-down" {
        value 241;
      }
      enum "alarmIndicationSignalTCM6-down" {
        value 242;
      }
      enum "openConnectionIndicationTCM1-down" {
        value 243;
      }
      enum "openConnectionIndicationTCM2-down" {
        value 244;
      }
      enum "openConnectionIndicationTCM3-down" {
        value 245;
      }
      enum "openConnectionIndicationTCM4-down" {
        value 246;
      }
      enum "openConnectionIndicationTCM5-down" {
        value 247;
      }
      enum "openConnectionIndicationTCM6-down" {
        value 248;
      }
      enum "lockedDefectTCM1-down" {
        value 249;
      }
      enum "lockedDefectTCM2-down" {
        value 250;
      }
      enum "lockedDefectTCM3-down" {
        value 251;
      }
      enum "lockedDefectTCM4-down" {
        value 252;
      }
      enum "lockedDefectTCM5-down" {
        value 253;
      }
      enum "lockedDefectTCM6-down" {
        value 254;
      }
      enum "lossofTandemConnectionTCM1-down" {
        value 255;
      }
      enum "lossofTandemConnectionTCM2-down" {
        value 256;
      }
      enum "lossofTandemConnectionTCM3-down" {
        value 257;
      }
      enum "lossofTandemConnectionTCM4-down" {
        value 258;
      }
      enum "lossofTandemConnectionTCM5-down" {
        value 259;
      }
      enum "lossofTandemConnectionTCM6-down" {
        value 260;
      }
      enum "multiplexStructureIdentifierMismatch" {
        value 261;
        description
          "G798 : 6.2.9 (dMSIM)";
      }
      enum "lossOfOmfIndication" {
        value 262;
        description
          "G798 : 14.3.10.2 Figure 14-73 (dLOOMFI)";
      }
      enum "lossOfFrameAndLossOfMultiframe" {
        value 263;
        description
          "G798 : 6.2.5.3 (dLOFLOM)";
      }
      enum "lossOfDatabaseRedundancy" {
        value 264;
        description
          "loss of database redundancy";
      }
      enum "databaseLocked" {
        value 265;
        description
          "Database locked";
      }
      enum "createTechInfoInProgress" {
        value 266;
        description
          "create-tech-info in progress";
      }
      enum "circuitPackActivateFailed" {
        value 267;
        description
          "circuit-pack activation failed";
      }
      enum "softwareSubsystemFailed" {
        value 268;
        description
          "Software subsystem failed";
      }
      enum "diskFull" {
        value 269;
        description
          "Disk full";
      }
    }
  }

  grouping probable-cause {
    leaf cause {
      type probable-cause-enum;
      mandatory true;
    }
    leaf extension {
      type string;
      mandatory false;
    }
    leaf direction {
      type org-openroadm-common-types:direction;
      mandatory true;
      description
        "Direction indication of the alarm.";
    }
    leaf location {
      type org-openroadm-common-types:location;
      mandatory true;
      description
        "location indication of the alarm.";
    }
    leaf type {
      type enumeration {
        enum "communication" {
          value 1;
        }
        enum "qualityOfService" {
          value 2;
        }
        enum "processingError" {
          value 3;
        }
        enum "equipment" {
          value 4;
        }
        enum "environmental" {
          value 5;
        }
      }
      mandatory false;
      description
        "Type of alarm. Based on X.733 event Type.";
    }
  }
}
