-- *****************************************************************
-- INFINERA-PM-OSAPTP-MIB
-- 
-- October 2008, Sharfuddin Syed / Narendra Gupta
-- 
-- 
-- Copyright (c) 2008-2012 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

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

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32                                   FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP             FROM SNMPv2-CONF
    TruthValue                                  FROM SNMPv2-TC
    ifIndex                                     FROM IF-MIB
    FloatHundredths                             FROM INFINERA-TC-MIB
    perfMon                                     FROM INFINERA-REG-MIB;


osaPtpPmMIB MODULE-IDENTITY
    LAST-UPDATED  "200810200000Z" 
    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      "200810200000Z"  
    DESCRIPTION
        "First Version"
    ::= { perfMon 19 }



osaPtpPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsaPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of OsaPtpPm entries. Each entry is uniquely identified by the value of ifIndex and osaPtpPmTimestamp."
    ::= { osaPtpPmMIB 2 } 

osaPtpPmEntry  OBJECT-TYPE
    SYNTAX      OsaPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A OsaPtp entry containing historical performance information pertaining to Infinera BMM OCG PTP interfaces.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces
        of type BMM OCG PTP.
        Each interface may have a number of entries in this table, each with a different combination of timestamp
        and sample duration."
    INDEX { ifIndex, osaPtpPmSampleDuration, osaPtpPmTimestamp }
    ::= { osaPtpPmTable 1 }


OsaPtpPmEntry  ::= SEQUENCE {
    osaPtpPmTimestamp        Integer32,
    osaPtpPmSampleDuration   INTEGER,
    osaPtpPmValidity         TruthValue,
    osaPtpPmOprMin     FloatHundredths,
    osaPtpPmOprMax     FloatHundredths,
    osaPtpPmOprAve     FloatHundredths
    }

osaPtpPmTimestamp 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."
    ::= { osaPtpPmEntry  1 }


osaPtpPmSampleDuration OBJECT-TYPE
    SYNTAX      INTEGER {
                    fifteenMinutes(1),
                    day(2)
                }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The duration of this sample."
    ::= { osaPtpPmEntry  2 }


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

osaPtpPmOprMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Minimum optical power received."
    ::= { osaPtpPmEntry  4 }


osaPtpPmOprMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Maximum optical power received."
    ::= { osaPtpPmEntry  5 }


osaPtpPmOprAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Average optical power received."
    ::= { osaPtpPmEntry  6 }


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

osaPtpPmRealEntry  OBJECT-TYPE
    SYNTAX      OsaPtpPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A OsaPtp entry containing real-time performance information pertaining to Infinera
        BMM OCG PTP interfaces. This table is a subclass of IfCommon. Entries will exist in this
        table only for interfaces of type BMM OCG PTP."
    INDEX { ifIndex }
    ::= { osaPtpPmRealTable 1 }


OsaPtpPmRealEntry  ::= SEQUENCE {
    osaPtpPmRealOpr               FloatHundredths,
    osaOprOsaTapRatio            FloatHundredths
}

osaPtpPmRealOpr OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Osa Opr"
    ::= { osaPtpPmRealEntry  1 }

osaOprOsaTapRatio OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Opr Osa ratio"
    ::= { osaPtpPmRealEntry  2 }
    
-- Conformance Statements
osaPtpPmConformance    OBJECT IDENTIFIER ::= { osaPtpPmMIB 3 }
osaPtpPmCompliances    OBJECT IDENTIFIER ::= { osaPtpPmConformance 1 }
osaPtpPmGroups         OBJECT IDENTIFIER ::= { osaPtpPmConformance 2 }

osaPtpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the OSAPTP-MIB"
    MODULE
        MANDATORY-GROUPS { osaPtpPmGroup }
    ::= { osaPtpPmCompliances 1 }

osaPtpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the osaPtpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { osaPtpPmRealGroup }
    ::= { osaPtpPmCompliances 2 }

osaPtpPmGroup OBJECT-GROUP
    OBJECTS {
        osaPtpPmValidity,
        osaPtpPmOprMin,
        osaPtpPmOprMax,
        osaPtpPmOprAve
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the osaPtp."
    ::= { osaPtpPmGroups 1 }

osaPtpPmRealGroup OBJECT-GROUP
    OBJECTS {
        osaPtpPmRealOpr,
        osaOprOsaTapRatio
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the osaPtp."
    ::= { osaPtpPmGroups 2 }


END
