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

INFINERA-PM-OTUKI-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,
    InfnValidityBitmap, FloatHundredths, 
    FloatArbitraryPrecision                     FROM INFINERA-TC-MIB
    perfMon                                     FROM INFINERA-REG-MIB;


otuKiPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201107200000Z"
    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      "201107200000Z"
    DESCRIPTION
        "First Version"
    ::= { perfMon 27 }



otuKiPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OtuKiPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of otuKiPm entries. Each entry is uniquely identified by the value of ifIndex, sampleDuration and otuKiPmTimestamp."
    ::= { otuKiPmMIB 2 }

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


OtuKiPmEntry  ::= SEQUENCE {
    otuKiPmTimestamp                       Integer32,
    otuKiPmSampleDuration                  InfnSampleDuration,
    otuKiPmValidity                        InfnValidityBitmap,
    otuKiPmNumberOfCodeWords               HCPerfIntervalCount,
    otuKiPmNumberOfUncorrectedWords        HCPerfIntervalCount,
    otuKiPmNumberOfCorrectedZeros          HCPerfIntervalCount,
    otuKiPmNumberOfCorrectedOnes           HCPerfIntervalCount,
    otuKiPmRxErroredBlocks                 HCPerfIntervalCount,
    otuKiPmRxDefectSeconds                 Integer32,
    otuKiPmCircuitId                       DisplayString,
    otuKiPmPayloadType                     InfnServiceType,
    otuKiPmQValueMin                       FloatHundredths,
    otuKiPmQValueMax                       FloatHundredths,
    otuKiPmQValueAve                       FloatHundredths,
    otuKiPmBerPreFecMin                    FloatArbitraryPrecision,
    otuKiPmBerPreFecMax                    FloatArbitraryPrecision,
    otuKiPmBerPreFecAve                    FloatArbitraryPrecision,
    otuKiPmBerPostFecMin                   FloatArbitraryPrecision,
    otuKiPmBerPostFecMax                   FloatArbitraryPrecision,
    otuKiPmBerPostFecAve                   FloatArbitraryPrecision,
    otuKiPmRxDefectSecondsFEND             Integer32,
    otuKiPmCorrectedBits                   HCPerfIntervalCount,
    otuKiPmRxBEICount                      HCPerfIntervalCount

}

otuKiPmTimestamp 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."
    ::= { otuKiPmEntry  1 }


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


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


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

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

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

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

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

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

otuKiPmCircuitId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Circuit ID of OTUKI."
    ::= { otuKiPmEntry  10 }

otuKiPmPayloadType OBJECT-TYPE
    SYNTAX      InfnServiceType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Payload type of OTUKI."
    ::= { otuKiPmEntry  11 }

otuKiPmQValueMin OBJECT-TYPE
  SYNTAX      FloatHundredths
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "QValueMin of OTUKI"
  ::= { otuKiPmEntry  12 }

otuKiPmQValueMax OBJECT-TYPE
  SYNTAX      FloatHundredths
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "QValueMax of OTUKI"
  ::= { otuKiPmEntry  13 }

otuKiPmQValueAve OBJECT-TYPE
  SYNTAX      FloatHundredths
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "QValueAve of OTUKI"
  ::= { otuKiPmEntry  14 }

otuKiPmBerPreFecMin OBJECT-TYPE
  SYNTAX      FloatArbitraryPrecision
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "BerPreFecMin of OTUKI"
  ::= { otuKiPmEntry  15 }

otuKiPmBerPreFecMax OBJECT-TYPE
  SYNTAX      FloatArbitraryPrecision
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "BerPreFecMax of OTUKI"
  ::= { otuKiPmEntry  16 }

otuKiPmBerPreFecAve OBJECT-TYPE
  SYNTAX      FloatArbitraryPrecision
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "BerPreFecAve of OTUKI"
  ::= { otuKiPmEntry  17 }

otuKiPmBerPostFecMin OBJECT-TYPE
  SYNTAX      FloatArbitraryPrecision
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "BerPostFecMin of OTUKI"
  ::= { otuKiPmEntry  18 }

otuKiPmBerPostFecMax OBJECT-TYPE
  SYNTAX      FloatArbitraryPrecision
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "BerPostFecMax of OTUKI"
  ::= { otuKiPmEntry  19 }

otuKiPmBerPostFecAve OBJECT-TYPE
  SYNTAX      FloatArbitraryPrecision
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "BerPostFecAve of OTUKI"
  ::= { otuKiPmEntry  20 }

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

otuKiPmCorrectedBits OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Corrected Bits."
    ::= { otuKiPmEntry  22 }

otuKiPmRxBEICount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Receive BEI count"
    ::= { otuKiPmEntry  23 }


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

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


OtuKiPmRealEntry  ::= SEQUENCE {
    
    otuKiPmRealNumberOfCodeWords               HCPerfIntervalCount,
    otuKiPmRealNumberOfUncorrectedWords        HCPerfIntervalCount,
    otuKiPmRealNumberOfCorrectedZeros          HCPerfIntervalCount,
    otuKiPmRealNumberOfCorrectedOnes           HCPerfIntervalCount,
    otuKiPmRealRxErroredBlocks                 HCPerfIntervalCount,
    otuKiPmRealRxDefectSeconds                 Integer32,
    otuKiPmRealQValue                          FloatHundredths,
    otuKiPmRealBerPreFec                       FloatArbitraryPrecision,
    otuKiPmRealBerPostFec                      FloatArbitraryPrecision,
    otuKiPmRealRxDefectSecondsFEND             Integer32,
    otuKiPmRealCorrectedBits                   HCPerfIntervalCount,
    otuKiPmRealRxBEICount                      HCPerfIntervalCount
}

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

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

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

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

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

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

otuKiPmRealQValue OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "QValue for OTUKI PM REAL"
    ::= { otuKiPmRealEntry  7 }

otuKiPmRealBerPreFec OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "BerPreFec for OTUKI PM REAL"
    ::= { otuKiPmRealEntry  8 }

otuKiPmRealBerPostFec OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "BerPostFec for OTUKI PM REAL"
    ::= { otuKiPmRealEntry  9 }

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

otuKiPmRealCorrectedBits OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Corrected Bits ."
    ::= { otuKiPmRealEntry  11 }

otuKiPmRealRxBEICount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Receive BEI count."
    ::= { otuKiPmRealEntry  12 }


-- Conformance Statements
otuKiPmConformance    OBJECT IDENTIFIER ::= { otuKiPmMIB 3 }
otuKiPmCompliances    OBJECT IDENTIFIER ::= { otuKiPmConformance 1 }
otuKiPmGroups         OBJECT IDENTIFIER ::= { otuKiPmConformance 2 }

otuKiPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the PM-OtuKi-MIB"
    MODULE
        MANDATORY-GROUPS { otuKiPmGroup }
    ::= { otuKiPmCompliances 1 }

otuKiPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the otuKiPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { otuKiPmRealGroup }
    ::= { otuKiPmCompliances 2 }

otuKiPmGroup OBJECT-GROUP
    OBJECTS {
    otuKiPmTimestamp,
    otuKiPmSampleDuration,
    otuKiPmValidity,
    otuKiPmNumberOfCodeWords,
    otuKiPmNumberOfUncorrectedWords,
    otuKiPmNumberOfCorrectedZeros,
    otuKiPmNumberOfCorrectedOnes,
    otuKiPmRxErroredBlocks,
    otuKiPmRxDefectSeconds, 
    otuKiPmCircuitId,
    otuKiPmPayloadType,
    otuKiPmQValueMin,
    otuKiPmQValueMax,
    otuKiPmQValueAve,
    otuKiPmBerPreFecMin,
    otuKiPmBerPreFecMax,
    otuKiPmBerPreFecAve,
    otuKiPmBerPostFecMin,
    otuKiPmBerPostFecMax,
    otuKiPmBerPostFecAve,
    otuKiPmRxDefectSecondsFEND,
    otuKiPmCorrectedBits,
    otuKiPmRxBEICount
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the performance of the Otu."
    ::= { otuKiPmGroups 1 }

otuKiPmRealGroup OBJECT-GROUP
    OBJECTS {
    otuKiPmRealNumberOfCodeWords,
    otuKiPmRealNumberOfUncorrectedWords,
    otuKiPmRealNumberOfCorrectedZeros,
    otuKiPmRealNumberOfCorrectedOnes,
    otuKiPmRealRxErroredBlocks,
    otuKiPmRealRxDefectSeconds,
    otuKiPmRealQValue,
    otuKiPmRealBerPreFec,
    otuKiPmRealBerPostFec,
    otuKiPmRealRxDefectSecondsFEND,
    otuKiPmRealCorrectedBits,
    otuKiPmRealRxBEICount
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the Otu."
    ::= { otuKiPmGroups 2 }

END

