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

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


idlerCtpPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201706090000Z"
    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      "201706090000Z"  
    DESCRIPTION
        "First Version"
    ::= { perfMon 86 }



idlerCtpPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IdlerCtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of IdlerCtpPm entries. Each entry is uniquely identified by the values of ifIndex, sample duration and idlerCtpPmTimestamp."
    ::= { idlerCtpPmMIB 2 } 

idlerCtpPmEntry  OBJECT-TYPE
    SYNTAX      IdlerCtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A IdlerCtpPm entry containing historical performance information pertaining to Infinera IdlerCtp interfaces.
        This table is a subclass of IfCommon.
        Entries will exist in this table only for interfaces of type C-Band CTP.
        Each interface may have a number of entries in this table, each with a different combination
        of timestamp and sample duration."
    INDEX { ifIndex, idlerCtpPmSampleDuration, idlerCtpPmTimestamp }
    ::= { idlerCtpPmTable 1 }


IdlerCtpPmEntry  ::= SEQUENCE {
    idlerCtpPmTimestamp                  Integer32,
    idlerCtpPmSampleDuration             INTEGER,
    idlerCtpPmValidity                   TruthValue,
    idlerCtpPmCmnIdlerOptMin             FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerOptMax             FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerOptAve             FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerOprMin             FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerOprMax             FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerOprAve             FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerPostRxVoaMin       FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerPostRxVoaMax       FloatArbitraryPrecision,
    idlerCtpPmCmnIdlerPostRxVoaAve       FloatArbitraryPrecision
}

idlerCtpPmTimestamp 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."
    ::= { idlerCtpPmEntry  1 }


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


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


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

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

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


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

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

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

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

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

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

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

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


IdlerCtpPmRealEntry  ::= SEQUENCE {
    idlerCtpPmRealCmnIdlerOpt                     FloatArbitraryPrecision,
    idlerCtpPmRealCmnIdlerOpr                     FloatArbitraryPrecision,
    idlerCtpPmRealCmnIdlerPostRxVoa               FloatArbitraryPrecision
}

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


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


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


-- Conformance Statements
idlerCtpPmConformance    OBJECT IDENTIFIER ::= { idlerCtpPmMIB 3 }
idlerCtpPmCompliances    OBJECT IDENTIFIER ::= { idlerCtpPmConformance 1 }
idlerCtpPmGroups         OBJECT IDENTIFIER ::= { idlerCtpPmConformance 2 }

idlerCtpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the IDLERCTP-MIB"
    MODULE
        MANDATORY-GROUPS { idlerCtpPmGroup }
    ::= { idlerCtpPmCompliances 1 }

idlerCtpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the idlerCtpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { idlerCtpPmRealGroup }
    ::= { idlerCtpPmCompliances 2 }

idlerCtpPmGroup OBJECT-GROUP
    OBJECTS {
        idlerCtpPmTimestamp,     
        idlerCtpPmSampleDuration,
        idlerCtpPmValidity,      
        idlerCtpPmCmnIdlerOptMin,
        idlerCtpPmCmnIdlerOptMax,
        idlerCtpPmCmnIdlerOptAve,
        idlerCtpPmCmnIdlerOprMin,
        idlerCtpPmCmnIdlerOprMax,
        idlerCtpPmCmnIdlerOprAve,
        idlerCtpPmCmnIdlerPostRxVoaMin,
        idlerCtpPmCmnIdlerPostRxVoaMax,
        idlerCtpPmCmnIdlerPostRxVoaAve
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the idlerCtp."
    ::= { idlerCtpPmGroups 1 }

idlerCtpPmRealGroup OBJECT-GROUP
    OBJECTS {
    	idlerCtpPmRealCmnIdlerOpt,      
        idlerCtpPmRealCmnIdlerOpr,      
        idlerCtpPmRealCmnIdlerPostRxVoa
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the idlerCtp."
    ::= { idlerCtpPmGroups 2 }


END


