-- *****************************************************************
-- INFINERA-PM-IDLERPTP-MIB
-- 
-- May 2017, Anisha A
-- 
-- 
-- Copyright (c) 2008-2014 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

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

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


idlerPtpPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201706210000Z"
    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      "201706210000Z"  
    DESCRIPTION
        "First Version"
    ::= { perfMon 85 }



idlerPtpPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IdlerPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of IdlerPtpPm entries. Each entry is uniquely identified by the values of ifIndex, sample duration and idlerPtpPmTimestamp."
    ::= { idlerPtpPmMIB 2 } 

idlerPtpPmEntry  OBJECT-TYPE
    SYNTAX      IdlerPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A IdlerPtpPm entry containing historical performance information pertaining to Infinera IdlerPtp interfaces.
        This table is a subclass of IfCommon.
        Entries will exist in this table only for interfaces of type C-Band PTP.
        Each interface may have a number of entries in this table, each with a different combination
        of timestamp and sample duration."
    INDEX { ifIndex, idlerPtpPmSampleDuration, idlerPtpPmTimestamp }
    ::= { idlerPtpPmTable 1 }


IdlerPtpPmEntry  ::= SEQUENCE {
    idlerPtpPmTimestamp                  Integer32,
    idlerPtpPmSampleDuration             INTEGER,
    idlerPtpPmValidity                   TruthValue,
    idlerPtpPmIdlerOptMin             FloatArbitraryPrecision,
    idlerPtpPmIdlerOptMax             FloatArbitraryPrecision,
    idlerPtpPmIdlerOptAve             FloatArbitraryPrecision,
    idlerPtpPmIdlerOprMin             FloatArbitraryPrecision,
    idlerPtpPmIdlerOprMax             FloatArbitraryPrecision,
    idlerPtpPmIdlerOprAve             FloatArbitraryPrecision,
    idlerPtpPmIdlerPostRxVoaMin       FloatArbitraryPrecision,
    idlerPtpPmIdlerPostRxVoaMax       FloatArbitraryPrecision,
    idlerPtpPmIdlerPostRxVoaAve       FloatArbitraryPrecision,
    idlerPtpPmTotalLaserPwrMin        FloatArbitraryPrecision,
    idlerPtpPmTotalLaserPwrMax        FloatArbitraryPrecision,
    idlerPtpPmTotalLaserPwrAve        FloatArbitraryPrecision
}

idlerPtpPmTimestamp 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."
    ::= { idlerPtpPmEntry  1 }


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


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


idlerPtpPmIdlerOptMin OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  4 }

idlerPtpPmIdlerOptMax OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  5 }

idlerPtpPmIdlerOptAve OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  6 }


idlerPtpPmIdlerOprMin OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  7 }

idlerPtpPmIdlerOprMax OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  8 }

idlerPtpPmIdlerOprAve OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  9 }

idlerPtpPmIdlerPostRxVoaMin OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  10 }

idlerPtpPmIdlerPostRxVoaMax OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  11 }

idlerPtpPmIdlerPostRxVoaAve OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  12 }

idlerPtpPmTotalLaserPwrMin OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  13 }

idlerPtpPmTotalLaserPwrMax OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  14 }

idlerPtpPmTotalLaserPwrAve OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmEntry  15 }

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

idlerPtpPmRealEntry  OBJECT-TYPE
    SYNTAX      IdlerPtpPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A IdlerPtpPmReal entry containing current real-time performance information pertaining to Infinera
        IdlerPtp interfaces. This table is a subclass of IfCommon.
        Entries will exist in this table only for interfaces of type C-Band PTP."
    INDEX { ifIndex }
    ::= { idlerPtpPmRealTable 1 }


IdlerPtpPmRealEntry  ::= SEQUENCE {
    idlerPtpPmRealIdlerOpt                     FloatArbitraryPrecision,
    idlerPtpPmRealIdlerOpr                     FloatArbitraryPrecision,
    idlerPtpPmRealIdlerPostRxVoa               FloatArbitraryPrecision,
    idlerPtpPmRealTotalLaserPwr                FloatArbitraryPrecision
}

idlerPtpPmRealIdlerOpt OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Och Span Loss"
    ::= { idlerPtpPmRealEntry  1 }


idlerPtpPmRealIdlerOpr OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmRealEntry  2 }


idlerPtpPmRealIdlerPostRxVoa OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmRealEntry  3 }

idlerPtpPmRealTotalLaserPwr OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { idlerPtpPmRealEntry  4 }

-- Conformance Statements
idlerPtpPmConformance    OBJECT IDENTIFIER ::= { idlerPtpPmMIB 3 }
idlerPtpPmCompliances    OBJECT IDENTIFIER ::= { idlerPtpPmConformance 1 }
idlerPtpPmGroups         OBJECT IDENTIFIER ::= { idlerPtpPmConformance 2 }

idlerPtpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the IDLERPTP-MIB"
    MODULE
        MANDATORY-GROUPS { idlerPtpPmGroup }
    ::= { idlerPtpPmCompliances 1 }

idlerPtpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the idlerPtpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { idlerPtpPmRealGroup }
    ::= { idlerPtpPmCompliances 2 }

idlerPtpPmGroup OBJECT-GROUP
    OBJECTS {
        idlerPtpPmTimestamp,     
        idlerPtpPmSampleDuration,
        idlerPtpPmValidity,      
        idlerPtpPmIdlerOptMin,
        idlerPtpPmIdlerOptMax,
        idlerPtpPmIdlerOptAve,
        idlerPtpPmIdlerOprMin,
        idlerPtpPmIdlerOprMax,
        idlerPtpPmIdlerOprAve,
        idlerPtpPmIdlerPostRxVoaMin,
        idlerPtpPmIdlerPostRxVoaMax,
        idlerPtpPmIdlerPostRxVoaAve,
        idlerPtpPmTotalLaserPwrMin,
        idlerPtpPmTotalLaserPwrMax,
        idlerPtpPmTotalLaserPwrAve
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the idlerPtp."
    ::= { idlerPtpPmGroups 1 }

idlerPtpPmRealGroup OBJECT-GROUP
    OBJECTS {
    	idlerPtpPmRealIdlerOpt,      
        idlerPtpPmRealIdlerOpr,      
        idlerPtpPmRealIdlerPostRxVoa,
        idlerPtpPmRealTotalLaserPwr
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the idlerPtp."
    ::= { idlerPtpPmGroups 2 }


END


