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

INFINERA-PM-ODU-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                          FROM INFINERA-TC-MIB
    perfMon                                     FROM INFINERA-REG-MIB;


oduPmMIB 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 20 }



oduPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OduPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of ODU Performance monitoring entries. Each entry is uniquely identified by the value of ifIndex, sampleDuration and oduPmTimestamp."
    ::= { oduPmMIB 2 } 

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


OduPmEntry  ::= SEQUENCE {
    oduPmTimestamp              Integer32,
    oduPmSampleDuration         InfnSampleDuration,
    oduPmValidity               InfnValidityBitmap,
    oduPmRxCVP                  HCPerfIntervalCount,
    oduPmTxCVP                  HCPerfIntervalCount,
    oduPmRxErroredBlocks        HCPerfIntervalCount,
    oduPmTxErroredBlocks        HCPerfIntervalCount,
    oduPmRxDefectSeconds        Integer32,
    oduPmTxDefectSeconds        Integer32,
    oduPmRxBeiCount             HCPerfIntervalCount,
    oduPmTxBeiCount             HCPerfIntervalCount,
    oduPmCircuitId              DisplayString,
    oduPmPayloadType            InfnServiceType,
    oduPmRxErroredBlocksFEND    HCPerfIntervalCount,
    oduPmTxErroredBlocksFEND    HCPerfIntervalCount,
    oduPmRxDefectSecondsFEND    Integer32,
    oduPmTxDefectSecondsFEND    Integer32,
    oduPmTribPRBSErr            HCPerfIntervalCount,
    oduPmTribPRBSSyncErr        Integer32,
    oduPmLinePRBSErr            HCPerfIntervalCount,
    oduPmLinePRBSSyncErr        Integer32
}
 

oduPmTimestamp 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."
    ::= { oduPmEntry  1 }


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


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


oduPmRxCVP OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter for number of BIP-8 errors at ingress direction"
    ::= { oduPmEntry  4 }

oduPmTxCVP OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter for number of BIP-8 errors at egress direction."
    ::= { oduPmEntry  5 }

oduPmRxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Errored Blocks on ODU at ingress."
    ::= { oduPmEntry  6 }

oduPmTxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Error Blocks at egress direction."
    ::= { oduPmEntry  7 }

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

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

oduPmRxBeiCount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Backward Err Indication on ODU at ingress."
    ::= { oduPmEntry  11 }

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

oduPmCircuitId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Circuit ID of the ODU connection."
    ::= { oduPmEntry  13 }

oduPmPayloadType OBJECT-TYPE
    SYNTAX      InfnServiceType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Payload type of ODU."
    ::= { oduPmEntry  14 }


oduPmRxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Errored Blocks on ODU at ingress."
    ::= { oduPmEntry  15 }

oduPmTxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Error Blocks at egress direction."
    ::= { oduPmEntry  16 }

oduPmRxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect seconds on ingress direction."
    ::= { oduPmEntry  17 }

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

oduPmTribPRBSErr OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmEntry 19 }

oduPmTribPRBSSyncErr OBJECT-TYPE
    SYNTAX      Integer32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmEntry 20 }

oduPmLinePRBSErr OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmEntry 21 }

oduPmLinePRBSSyncErr OBJECT-TYPE
    SYNTAX      Integer32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmEntry 22 }
    
oduPmRealTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OduPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of oduPmReal entries. Each entry is uniquely identified by the value of ifIndex."
    ::= { oduPmMIB 1 } 

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


OduPmRealEntry  ::= SEQUENCE {
    oduPmRealRxCVP                HCPerfIntervalCount,
    oduPmRealTxCVP                HCPerfIntervalCount,
    oduPmRealRxErroredBlocks      HCPerfIntervalCount,
    oduPmRealTxErroredBlocks      HCPerfIntervalCount,
    oduPmRealRxDefectSeconds      Integer32,
    oduPmRealTxDefectSeconds      Integer32,
    oduPmRealRxBeiCount           HCPerfIntervalCount,
    oduPmRealTxBeiCount			  HCPerfIntervalCount,    
    oduPmRealRxErroredBlocksFEND  HCPerfIntervalCount,
    oduPmRealTxErroredBlocksFEND  HCPerfIntervalCount,
    oduPmRealRxDefectSecondsFEND  Integer32,
    oduPmRealTxDefectSecondsFEND  Integer32,
    oduPmRealTribPRBSErr          HCPerfIntervalCount,
    oduPmRealTribPRBSSyncErr      Integer32,
    oduPmRealLinePRBSErr          HCPerfIntervalCount,
    oduPmRealLinePRBSSyncErr      Integer32

}

oduPmRealRxCVP OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter for number of BIP-8 errors at ingress direction."
    ::= { oduPmRealEntry  1 }

oduPmRealTxCVP OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Counter for number of BIP-8 errors at egress direction."
    ::= { oduPmRealEntry  2 }

oduPmRealRxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Errored Blocks on ODU at ingress."
    ::= { oduPmRealEntry  3 }

oduPmRealTxErroredBlocks OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Error Blocks at egress direction."
    ::= { oduPmRealEntry  4 }

oduPmRealRxDefectSeconds OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect seconds on ingress direction."
    ::= { oduPmRealEntry  5 }

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

oduPmRealRxBeiCount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Backward Err Indication on ODU at ingress."
    ::= { oduPmRealEntry  7 }

oduPmRealTxBeiCount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Backward Err Indication at egress direction."
    ::= { oduPmRealEntry  8 }
    
oduPmRealRxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Errored Blocks on ODU at ingress."
    ::= { oduPmRealEntry  9 }

oduPmRealTxErroredBlocksFEND OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Error Blocks at egress direction."
    ::= { oduPmRealEntry  10 }

oduPmRealRxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect seconds on ingress direction."
    ::= { oduPmRealEntry  11 }

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

oduPmRealTribPRBSErr OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmRealEntry 13 }
 
oduPmRealTribPRBSSyncErr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmRealEntry 14 }
    
oduPmRealLinePRBSErr OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmRealEntry 15 }
 
oduPmRealLinePRBSSyncErr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { oduPmRealEntry 16 }
 
-- Conformance Statements
oduPmConformance    OBJECT IDENTIFIER ::= { oduPmMIB 3 }
oduPmCompliances    OBJECT IDENTIFIER ::= { oduPmConformance 1 }
oduPmGroups         OBJECT IDENTIFIER ::= { oduPmConformance 2 }

oduPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the PM-odu-MIB"
    MODULE
        MANDATORY-GROUPS { oduPmGroup }
    ::= { oduPmCompliances 1 }

oduPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the oduPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { oduPmRealGroup }
    ::= { oduPmCompliances 2 }

oduPmGroup OBJECT-GROUP
    OBJECTS {
    oduPmTimestamp,
    oduPmSampleDuration,
    oduPmValidity,
    oduPmRxCVP,
    oduPmTxCVP,
    oduPmRxErroredBlocks,
    oduPmTxErroredBlocks,
    oduPmRxDefectSeconds,
    oduPmTxDefectSeconds,
	oduPmRxBeiCount,
    oduPmTxBeiCount,
    oduPmCircuitId,
    oduPmPayloadType,
    oduPmRxErroredBlocksFEND,
    oduPmTxErroredBlocksFEND,
    oduPmRxDefectSecondsFEND,
    oduPmTxDefectSecondsFEND,
    oduPmTribPRBSErr,
    oduPmTribPRBSSyncErr,
    oduPmLinePRBSErr,
    oduPmLinePRBSSyncErr
}
    STATUS current
    DESCRIPTION
        "A collection of objects for reading the performance of the odu."
    ::= { oduPmGroups 1 }

oduPmRealGroup OBJECT-GROUP
    OBJECTS {
    oduPmRealRxCVP,
    oduPmRealTxCVP,
    oduPmRealRxErroredBlocks,
    oduPmRealTxErroredBlocks,
    oduPmRealRxDefectSeconds,
    oduPmRealTxDefectSeconds,
	oduPmRealRxBeiCount,
    oduPmRealTxBeiCount,  
    oduPmRealRxErroredBlocksFEND,
    oduPmRealTxErroredBlocksFEND,
    oduPmRealRxDefectSecondsFEND,
    oduPmRealTxDefectSecondsFEND,
    oduPmRealTribPRBSErr,
    oduPmRealTribPRBSSyncErr,
    oduPmRealLinePRBSErr,
    oduPmRealLinePRBSSyncErr
    }
    STATUS current
    DESCRIPTION
        "A collection of objects for reading the real-time performance of the ODU."
    ::= { oduPmGroups 2 }

END

