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

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

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, Counter64                        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;

oscPtpPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201210200000Z"
    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      "201210200000Z" 
    DESCRIPTION
        "First Version"
    ::= { perfMon 34 }

oscPtpPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OscPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of OscPtpPm entries. Each entry is uniquely identified by the value of ifIndex, sampleDuration and oscPtpPmTimestamp."
    ::= { oscPtpPmMIB 2 } 

oscPtpPmEntry  OBJECT-TYPE
    SYNTAX      OscPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A OscPtp entry containing historical performance information pertaining to Infinera OscPtp interfaces.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces
        of type OSC PTP."
    INDEX { ifIndex, oscPtpPmSampleDuration, oscPtpPmTimestamp }
    ::= { oscPtpPmTable 1 }


OscPtpPmEntry  ::= SEQUENCE {
    oscPtpPmTimestamp        Integer32,
    oscPtpPmSampleDuration   INTEGER,
    oscPtpPmOscOPRMin        FloatHundredths,
    oscPtpPmOscOPRMax        FloatHundredths,
    oscPtpPmOscOPRAve        FloatHundredths
}

oscPtpPmTimestamp 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."
    ::= { oscPtpPmEntry  1 }


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


oscPtpPmOscOPRMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "OSC Optical Power Received, minimum (dBm)"
    ::= { oscPtpPmEntry  3 }


oscPtpPmOscOPRMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "OSC Optical Power Received, maximum (dBm)"
    ::= { oscPtpPmEntry  4 }


oscPtpPmOscOPRAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only 
    STATUS      current
    DESCRIPTION "OSC Optical Power Received, average (dBm)"
    ::= { oscPtpPmEntry  5 }

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

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


OscPtpPmRealEntry  ::= SEQUENCE {
    oscPtpPmRealOscOPR              FloatHundredths
}

oscPtpPmRealOscOPR OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "OSC Optical Power Received"
    ::= { oscPtpPmRealEntry  1 }

-- Conformance Statements
oscPtpPmConformance    OBJECT IDENTIFIER ::= { oscPtpPmMIB 3 }
oscPtpPmCompliances    OBJECT IDENTIFIER ::= { oscPtpPmConformance 1 }
oscPtpPmGroups         OBJECT IDENTIFIER ::= { oscPtpPmConformance 2 }

oscPtpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the PM-OSCPTP-MIB"
    MODULE
        MANDATORY-GROUPS { oscPtpPmGroup }
    ::= { oscPtpPmCompliances 1 }

oscPtpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the oscPtpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { oscPtpPmRealGroup }
    ::= { oscPtpPmCompliances 2 }

oscPtpPmGroup OBJECT-GROUP
    OBJECTS {
        oscPtpPmOscOPRMin,
        oscPtpPmOscOPRMax,
        oscPtpPmOscOPRAve
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the performance of the oscPtp."
    ::= { oscPtpPmGroups 1 }

oscPtpPmRealGroup OBJECT-GROUP
    OBJECTS {
        oscPtpPmRealOscOPR
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the oscPtp."
    ::= { oscPtpPmGroups 2 }
END
