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

INFINERA-PM-ODUI-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;


oduiPmMIB 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 29 }



oduiPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OduiPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of ODUI Performance monitoring entries. Each entry is uniquely identified by the value of ifIndex, sampleDuration and oduiPmTimestamp."
    ::= { oduiPmMIB 2 } 

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


OduiPmEntry  ::= SEQUENCE {
    oduiPmTimestamp          Integer32,
    oduiPmSampleDuration     InfnSampleDuration,
    oduiPmValidity           InfnValidityBitmap,
    oduiPmRxDefectSeconds    Integer32,
    oduiPmCircuitId          DisplayString,
    oduiPmPayloadType        InfnServiceType,
    oduiPmRxDefectSecondsFEND    Integer32,
    oduiPmRxCVP                  HCPerfIntervalCount,
    oduiPmRxBEICount                  HCPerfIntervalCount
}
 

oduiPmTimestamp 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."
    ::= { oduiPmEntry  1 }


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


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


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


oduiPmCircuitId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Circuit ID of the ODUI connection."
    ::= { oduiPmEntry  5 }

oduiPmPayloadType OBJECT-TYPE
    SYNTAX      InfnServiceType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Payload type of ODUI."
    ::= { oduiPmEntry  6 }


oduiPmRxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect Seconds on ODUI at ingress"
    ::= { oduiPmEntry 7 }


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

oduiPmRxBEICount OBJECT-TYPE
      SYNTAX      HCPerfIntervalCount
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION "Receive BEI count"
      ::= { oduiPmEntry  9 }


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

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


OduiPmRealEntry  ::= SEQUENCE {
    oduiPmRealRxDefectSeconds      Integer32,
    oduiPmRealRxDefectSecondsFEND   Integer32,
    oduiPmRealRxCVP           HCPerfIntervalCount,
    oduiPmRealRxBEICount           HCPerfIntervalCount
}



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

oduiPmRealRxDefectSecondsFEND OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of Defect seconds on far direction."
    ::= { oduiPmRealEntry  2 }



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

oduiPmRealRxBEICount OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Receive BEI count."
    ::= { oduiPmRealEntry  4 }



-- Conformance Statements
oduiPmConformance    OBJECT IDENTIFIER ::= { oduiPmMIB 3 }
oduiPmCompliances    OBJECT IDENTIFIER ::= { oduiPmConformance 1 }
oduiPmGroups         OBJECT IDENTIFIER ::= { oduiPmConformance 2 }

oduiPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the PM-odui-MIB"
    MODULE
        MANDATORY-GROUPS { oduiPmGroup }
    ::= { oduiPmCompliances 1 }

oduiPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the oduiPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { oduiPmRealGroup }
    ::= { oduiPmCompliances 2 }

oduiPmGroup OBJECT-GROUP
    OBJECTS {
    oduiPmTimestamp,
    oduiPmSampleDuration,
    oduiPmValidity,
    oduiPmRxDefectSeconds,
    oduiPmCircuitId,
    oduiPmPayloadType,
    oduiPmRxDefectSecondsFEND,
    oduiPmRealRxCVP,
    oduiPmRealRxBEICount
    }
    STATUS current
    DESCRIPTION
        "A collection of objects for reading the performance of the odui."
    ::= { oduiPmGroups 1 }

oduiPmRealGroup OBJECT-GROUP
    OBJECTS {
    oduiPmRealRxDefectSeconds,
    oduiPmRealRxDefectSecondsFEND,
    oduiPmRealRxCVP,
    oduiPmRealRxBEICount    
    }
    STATUS current
    DESCRIPTION
        "A collection of objects for reading the real-time performance of the ODUI."
    ::= { oduiPmGroups 2 }

END

