-- *****************************************************************
-- INFINERA-PM-OTU-MIB
-- Copyright (c) 2009-2012 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

INFINERA-PM-OTU-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, Counter64                        FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP             FROM SNMPv2-CONF
    DisplayString, TruthValue                   FROM SNMPv2-TC
    ifIndex                                     FROM IF-MIB
    HCPerfIntervalCount                         FROM HC-PerfHist-TC-MIB
    InfnServiceType,InfnSampleDuration,
    FloatHundredths				FROM INFINERA-TC-MIB
    perfMon                                     FROM INFINERA-REG-MIB;

otuPmMIB MODULE-IDENTITY
    LAST-UPDATED  "200907200000Z"
    ORGANIZATION  "Infinera"
    CONTACT-INFO
        "Infinera
        1322 Bordeaux Drive
        Sunnyvale, CA - 94089

        Contact : Technical Support
        Email   : support@infinera.com
        Phone   : 1-877-INF-5288"
    DESCRIPTION
        " "
    REVISION      "200907200000Z"
    DESCRIPTION
        "First Version"
    ::= { perfMon 22 }



otuPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OtuPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of otuPm entries. Each entry is uniquely identified by the value of ifIndex, sampleDuration and otuPmTimestamp."
    ::= { otuPmMIB 2 }

otuPmEntry  OBJECT-TYPE
    SYNTAX      OtuPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Otu entry containing historical performance information pertaining to Infinera Otu interfaces.
        Entries will exist in this table for interfaces of type Otu.
        Each interface may have a number of entries in this table, each with a different combination
        of timestamp and sample duration."
    INDEX { ifIndex, otuPmSampleDuration, otuPmTimestamp }
    ::= { otuPmTable 1 }


OtuPmEntry  ::= SEQUENCE {
    otuPmTimestamp                       Integer32,
    otuPmSampleDuration                  InfnSampleDuration,
    otuPmValidity                        TruthValue,
    otuPmNumberOfCodeWords               HCPerfIntervalCount,
    otuPmNumberOfUncorrectedWords        HCPerfIntervalCount,
    otuPmNumberOfCorrectedZeros          HCPerfIntervalCount,
    otuPmNumberOfCorrectedOnes           HCPerfIntervalCount,
    otuPmRxCVS                           HCPerfIntervalCount,
    otuPmTxCVS                           HCPerfIntervalCount,
    otuPmRxErroredBlocks                 HCPerfIntervalCount,
    otuPmTxErroredBlocks                 HCPerfIntervalCount,
    otuPmRxDefectSeconds                 Integer32,
    otuPmTxDefectSeconds                 Integer32,
    otuPmTribPRBSErr                     HCPerfIntervalCount,  
    otuPmLinePRBSErr                     HCPerfIntervalCount,  
    otuPmTribPRBSSyncErr                 Integer32,  
    otuPmLinePRBSSyncErr                 Integer32,  
    otuPmRxBeiCount                      HCPerfIntervalCount,
    otuPmTxBeiCount                      HCPerfIntervalCount,
    otuPmCircuitId                       DisplayString,
    otuPmPayloadType                     InfnServiceType,
    otuPmRxErroredBlocksFEND             HCPerfIntervalCount,
    otuPmTxErroredBlocksFEND             HCPerfIntervalCount,
    otuPmRxDefectSecondsFEND             Integer32,
    otuPmTxDefectSecondsFEND             Integer32,
    otuPmCorrectedBits                   HCPerfIntervalCount,
    otuPmRxIAE                           Integer32,
    otuPmTxIAE                           Integer32,
    otuPmRxBIAE                          Integer32,
    otuPmTxBIAE                          Integer32
}

otuPmTimestamp OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "End Time stamp for this interval. If this time is later than the current time,then the data for this bucket is currently being collected."
    ::= { otuPmEntry  1 }


otuPmSampleDuration OBJECT-TYPE
    SYNTAX      InfnSampleDuration
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The duration of this sample."
    ::= { otuPmEntry  2 }


otuPmValidity OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Flag indicating if data was valid for the entire interval"
    ::= { otuPmEntry  3 }


otuPmNumberOfCodeWords OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Codewords Processed by OTU client CTP."
    ::= { otuPmEntry  4 }

otuPmNumberOfUncorrectedWords OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter for UnCorrected Words."
    ::= { otuPmEntry  5 }

otuPmNumberOfCorrectedZeros OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter for Corrected Zeros."
    ::= { otuPmEntry  6 }

otuPmNumberOfCorrectedOnes OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Total number of Corrected Ones."
    ::= { otuPmEntry  7 }


otuPmRxCVS OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of BIP-8 errors on the OTU client CTP at ingress"
    ::= { otuPmEntry  8 }

otuPmTxCVS OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of BIP-8 errors at egress."
    ::= { otuPmEntry  9 }

otuPmRxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of errored blocks at ingress."
    ::= { otuPmEntry  10 }

otuPmTxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter of number of errored blocks at egress."
    ::= { otuPmEntry  11 }

otuPmRxDefectSeconds OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds on ingress direction."
    ::= { otuPmEntry  12 }

otuPmTxDefectSeconds OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds at egress direction."
    ::= { otuPmEntry  13 }

otuPmTribPRBSErr OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Error at ingress direction."
    ::= { otuPmEntry  14 }

otuPmLinePRBSErr  OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Error  at egress direction."
    ::= { otuPmEntry  15 }

otuPmTribPRBSSyncErr  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Sync Errors at ingress direction."
    ::= { otuPmEntry  16 }

otuPmLinePRBSSyncErr  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Sync Errors at egress direction."
    ::= { otuPmEntry  17 }

otuPmRxBeiCount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Backward Err Indication on OTU at ingress."
    ::= { otuPmEntry  18 }

otuPmTxBeiCount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Backward Err Indication at egress direction."
    ::= { otuPmEntry  19 }

otuPmCircuitId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Circuit ID of OTU."
    ::= { otuPmEntry  20 }

otuPmPayloadType OBJECT-TYPE
    SYNTAX      InfnServiceType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Payload type of OTU."
    ::= { otuPmEntry  21 }

otuPmRxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of errored blocks at ingress."
    ::= { otuPmEntry  22 }

otuPmTxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter of number of errored blocks at egress."
    ::= { otuPmEntry  23 }

otuPmRxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds on ingress direction."
    ::= { otuPmEntry  24 }

otuPmTxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds at egress direction."
    ::= { otuPmEntry  25 }

otuPmCorrectedBits OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Corrected Bits."
    ::= { otuPmEntry  26 }

otuPmRxIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Ingress IAE."
    ::= { otuPmEntry  27 }

otuPmTxIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Outgress IAE."
    ::= { otuPmEntry  28 }

otuPmRxBIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Ingress BIAE."
    ::= { otuPmEntry  29 }

otuPmTxBIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Outgress BIAE."
    ::= { otuPmEntry  30 }

otuPmRealTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OtuPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of otuPmReal entries. Each entry is uniquely identified by the value of ifIndex."
    ::= { otuPmMIB 1 }

otuPmRealEntry  OBJECT-TYPE
    SYNTAX      OtuPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Otu entry containing real-time performance information pertaining to Infinera Otu interfaces.
        Entries will exist in this table for interfaces of type Otu."
    INDEX { ifIndex }
    ::= { otuPmRealTable 1 }


OtuPmRealEntry  ::= SEQUENCE {
    otuPmRealNumberOfCodeWords              HCPerfIntervalCount,
    otuPmRealNumberOfUncorrectedWords       HCPerfIntervalCount,
    otuPmRealNumberOfCorrectedZeros         HCPerfIntervalCount,
    otuPmRealNumberOfCorrectedOnes          HCPerfIntervalCount,
    otuPmRealRxCVS                          HCPerfIntervalCount,
    otuPmRealTxCVS                          HCPerfIntervalCount,
    otuPmRealRxErroredBlocks                HCPerfIntervalCount,
    otuPmRealTxErroredBlocks                HCPerfIntervalCount,
    otuPmRealRxDefectSeconds                Integer32,
    otuPmRealTxDefectSeconds                Integer32,
    otuPmRealTribPRBSErr                    HCPerfIntervalCount,  
    otuPmRealLinePRBSErr                    HCPerfIntervalCount,  
    otuPmRealTribPRBSSyncErr                Integer32,  
    otuPmRealLinePRBSSyncErr                Integer32,
    otuPmRealRxBeiCount                     HCPerfIntervalCount,
    otuPmRealTxBeiCount			            HCPerfIntervalCount,
    otuPmRealRxErroredBlocksFEND            HCPerfIntervalCount,
    otuPmRealTxErroredBlocksFEND            HCPerfIntervalCount,
    otuPmRealRxDefectSecondsFEND            Integer32,
    otuPmRealTxDefectSecondsFEND            Integer32,
    otuPmRealCorrectedBits                  HCPerfIntervalCount,
    otuPmRealRxIAE                          Integer32,
    otuPmRealTxIAE                          Integer32,
    otuPmRealRxBIAE                         Integer32,
    otuPmRealTxBIAE                         Integer32

}

otuPmRealNumberOfCodeWords OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Codewords Processed by OTU client CTP."
    ::= { otuPmRealEntry  1 }

otuPmRealNumberOfUncorrectedWords OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter for Un Corrected Words."
    ::= { otuPmRealEntry  2 }

otuPmRealNumberOfCorrectedZeros OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Counter for Corrected Zeros."
    ::= { otuPmRealEntry  3 }

otuPmRealNumberOfCorrectedOnes OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Total number of Corrected Ones ."
    ::= { otuPmRealEntry  4 }

otuPmRealRxCVS OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of BIP-8 errors on the OTU client CTP at ingress ."
    ::= { otuPmRealEntry  5 }

otuPmRealTxCVS OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Number of BIP-8 errors at egress."
    ::= { otuPmRealEntry  6 }

otuPmRealRxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of errored blocks at ingress."
    ::= { otuPmRealEntry  7 }

otuPmRealTxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "counter for number of errored blocks at egress."
    ::= { otuPmRealEntry  8 }

otuPmRealRxDefectSeconds OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds on ingress direction."
    ::= { otuPmRealEntry  9 }

otuPmRealTxDefectSeconds OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds at egress direction."
    ::= { otuPmRealEntry  10 }

otuPmRealTribPRBSErr  OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Error at ingress direction."
    ::= { otuPmRealEntry  11 }

otuPmRealLinePRBSErr  OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Error at egress direction."
    ::= { otuPmRealEntry  12 }

otuPmRealTribPRBSSyncErr  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Sync Errors at ingress direction."
    ::= { otuPmRealEntry  13 }

otuPmRealLinePRBSSyncErr  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of PRBS Sync Errors at egress direction."
    ::= { otuPmRealEntry  14 }

otuPmRealRxBeiCount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Backward Err Indication on OTU at ingress."
    ::= { otuPmRealEntry  15 }

otuPmRealTxBeiCount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Backward Err Indication at egress direction."
    ::= { otuPmRealEntry  16 }
    
otuPmRealRxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of errored blocks at ingress."
    ::= { otuPmRealEntry  17 }

otuPmRealTxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "counter for number of errored blocks at egress."
    ::= { otuPmRealEntry  18 }

otuPmRealRxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds on ingress direction."
    ::= { otuPmRealEntry  19 }

otuPmRealTxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds at egress direction."
    ::= { otuPmRealEntry  20 }

otuPmRealCorrectedBits OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Codebits Processed by OTU client CTP."
    ::= { otuPmRealEntry  21 }

otuPmRealRxIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Ingress IAE."
    ::= { otuPmRealEntry  22 }

otuPmRealTxIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Outgress IAE."
    ::= { otuPmRealEntry  23 }

otuPmRealRxBIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Ingress BIAE."
    ::= { otuPmRealEntry  24 }

otuPmRealTxBIAE OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Outgress BIAE."
    ::= { otuPmRealEntry  25 }





-- Conformance Statements
otuPmConformance    OBJECT IDENTIFIER ::= { otuPmMIB 3 }
otuPmCompliances    OBJECT IDENTIFIER ::= { otuPmConformance 1 }
otuPmGroups         OBJECT IDENTIFIER ::= { otuPmConformance 2 }

otuPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the PM-Otu-MIB"
    MODULE
        MANDATORY-GROUPS { otuPmGroup }
    ::= { otuPmCompliances 1 }

otuPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the otuPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { otuPmRealGroup }
    ::= { otuPmCompliances 2 }

otuPmGroup OBJECT-GROUP
    OBJECTS {
    otuPmTimestamp,
    otuPmSampleDuration,
    otuPmValidity,
    otuPmNumberOfCodeWords,
    otuPmNumberOfUncorrectedWords,
    otuPmNumberOfCorrectedZeros,
    otuPmNumberOfCorrectedOnes,
    otuPmRxCVS,
    otuPmTxCVS,
    otuPmRxErroredBlocks,
    otuPmTxErroredBlocks,
    otuPmRxDefectSeconds,
    otuPmTxDefectSeconds,
    otuPmTribPRBSErr,  
    otuPmLinePRBSErr,  
    otuPmTribPRBSSyncErr,  
    otuPmLinePRBSSyncErr,  
    otuPmRxBeiCount,
    otuPmTxBeiCount,
    otuPmCircuitId,
    otuPmPayloadType,
    otuPmCorrectedBits,
    otuPmRxIAE,
    otuPmTxIAE,
    otuPmRxBIAE,
    otuPmTxBIAE
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the performance of the Otu."
    ::= { otuPmGroups 1 }

otuPmRealGroup OBJECT-GROUP
    OBJECTS {
    otuPmRealNumberOfCodeWords,
    otuPmRealNumberOfUncorrectedWords,
    otuPmRealNumberOfCorrectedZeros,
    otuPmRealNumberOfCorrectedOnes,
    otuPmRealRxCVS,
    otuPmRealTxCVS,
    otuPmRealRxErroredBlocks,
    otuPmRealTxErroredBlocks,
    otuPmRealRxCVS,
    otuPmRealTxCVS,
    otuPmRealRxDefectSeconds,
    otuPmRealTxDefectSeconds,
    otuPmRealTribPRBSErr,  
    otuPmRealLinePRBSErr,  
    otuPmRealTribPRBSSyncErr,  
    otuPmRealLinePRBSSyncErr,
    otuPmRealRxBeiCount,
    otuPmRealTxBeiCount,
    otuPmRealCorrectedBits,
    otuPmRealRxIAE,
    otuPmRealTxIAE,
    otuPmRealRxBIAE,
    otuPmRealTxBIAE

}
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the Otu."
    ::= { otuPmGroups 2 }

END
