-- *****************************************************************
-- INFINERA-PM-BANDPTP-MIB
-- 
-- February 2014, Rishab Joshi
-- 
-- 
-- Copyright (c) 2008-2014 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

INFINERA-PM-BANDPTP-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
    FloatHundredths                             FROM INFINERA-TC-MIB
    perfMon                                     FROM INFINERA-REG-MIB;


bandPtpPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201402170000Z"
    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      "201402170000Z"  
    DESCRIPTION
        "First Version"
    ::= { perfMon 81 }



bandPtpPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BandPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of BandPtpPm entries. Each entry is uniquely identified by the values of ifIndex, sample duration and bandPtpPmTimestamp."
    ::= { bandPtpPmMIB 2 } 

bandPtpPmEntry  OBJECT-TYPE
    SYNTAX      BandPtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A BandPtpPm entry containing historical performance information pertaining to Infinera BandPtp 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, bandPtpPmSampleDuration, bandPtpPmTimestamp }
    ::= { bandPtpPmTable 1 }


BandPtpPmEntry  ::= SEQUENCE {
    bandPtpPmTimestamp          Integer32,
    bandPtpPmSampleDuration     INTEGER,
    bandPtpPmValidity           TruthValue,
    bandPtpPmOptMin          	FloatHundredths,
    bandPtpPmOptMax             FloatHundredths,
    bandPtpPmOptAve             FloatHundredths,
    bandPtpPmOprMin             FloatHundredths,
    bandPtpPmOprMax             FloatHundredths,
    bandPtpPmOprAve             FloatHundredths,
    bandPtpPmRxEdfaOptMin       FloatHundredths,
    bandPtpPmRxEdfaOptMax       FloatHundredths,
    bandPtpPmRxEdfaOptAve       FloatHundredths,
    bandPtpPmTxEdfaOptMin       FloatHundredths,
    bandPtpPmTxEdfaOptMax       FloatHundredths,
    bandPtpPmTxEdfaOptAve       FloatHundredths,
    bandPtpPmRxEdfaOprMin       FloatHundredths,
    bandPtpPmRxEdfaOprMax       FloatHundredths,
    bandPtpPmRxEdfaOprAve       FloatHundredths,
    bandPtpPmTxEdfaOprMin       FloatHundredths,
    bandPtpPmTxEdfaOprMax       FloatHundredths,
    bandPtpPmTxEdfaOprAve       FloatHundredths,
    bandPtpRxEdfaLBCMin         FloatHundredths,
    bandPtpRxEdfaLBCMax         FloatHundredths,
    bandPtpRxEdfaLBCAve         FloatHundredths,
    bandPtpTxEdfaLBCMin         FloatHundredths,
    bandPtpTxEdfaLBCMax         FloatHundredths,
    bandPtpTxEdfaLBCAve         FloatHundredths
}

bandPtpPmTimestamp 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."
    ::= { bandPtpPmEntry  1 }


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


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


bandPtpPmOptMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  4 }

bandPtpPmOptMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  5 }

bandPtpPmOptAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  6 }


bandPtpPmOprMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  7 }

bandPtpPmOprMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  8 }

bandPtpPmOprAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  9 }

bandPtpPmRxEdfaOptMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  10 }

bandPtpPmRxEdfaOptMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  11 }

bandPtpPmRxEdfaOptAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  12 }


bandPtpPmTxEdfaOptMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  13 }

bandPtpPmTxEdfaOptMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  14 }

bandPtpPmTxEdfaOptAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  15 }

bandPtpPmRxEdfaOprMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  16 }


bandPtpPmRxEdfaOprMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  17 }

bandPtpPmRxEdfaOprAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  18 }


bandPtpPmTxEdfaOprMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  19 }


bandPtpPmTxEdfaOprMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  20 }

bandPtpPmTxEdfaOprAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  21 }

bandPtpRxEdfaLBCMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  22 }

bandPtpRxEdfaLBCMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  23 }

bandPtpRxEdfaLBCAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  24 }

bandPtpTxEdfaLBCMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  25 }

bandPtpTxEdfaLBCMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  26 }

bandPtpTxEdfaLBCAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmEntry  27 }



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

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


BandPtpPmRealEntry  ::= SEQUENCE {
    bandPtpPmRealOpt                     FloatHundredths,
    bandPtpPmRealOpr                     FloatHundredths,
    bandPtpPmRealRxEdfaOpt               FloatHundredths,
    bandPtpPmRealTxEdfaOpt               FloatHundredths,
    bandPtpPmRealRxEdfaOpr               FloatHundredths,
    bandPtpPmRealTxEdfaOpr               FloatHundredths,
    bandPtpPmRealRxEdfaLBC               FloatHundredths,
    bandPtpPmRealTxEdfaLBC               FloatHundredths,
    bandPtpPmRealOptOsaTapRatio          FloatHundredths
}

bandPtpPmRealOpt OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Och Span Loss"
    ::= { bandPtpPmRealEntry  1 }


bandPtpPmRealOpr OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  2 }


bandPtpPmRealRxEdfaOpt OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  3 }


bandPtpPmRealTxEdfaOpt OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  4 }


bandPtpPmRealRxEdfaOpr OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  5 }


bandPtpPmRealTxEdfaOpr OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  6 }


bandPtpPmRealRxEdfaLBC OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  7 }


bandPtpPmRealTxEdfaLBC OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  8 }

bandPtpPmRealOptOsaTapRatio OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bandPtpPmRealEntry  9 }


-- Conformance Statements
bandPtpPmConformance    OBJECT IDENTIFIER ::= { bandPtpPmMIB 3 }
bandPtpPmCompliances    OBJECT IDENTIFIER ::= { bandPtpPmConformance 1 }
bandPtpPmGroups         OBJECT IDENTIFIER ::= { bandPtpPmConformance 2 }

bandPtpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the BANDPTP-MIB"
    MODULE
        MANDATORY-GROUPS { bandPtpPmGroup }
    ::= { bandPtpPmCompliances 1 }

bandPtpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the bandPtpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { bandPtpPmRealGroup }
    ::= { bandPtpPmCompliances 2 }

bandPtpPmGroup OBJECT-GROUP
    OBJECTS {
        bandPtpPmTimestamp,     
        bandPtpPmSampleDuration,
        bandPtpPmValidity,      
        bandPtpPmOptMin,
        bandPtpPmOptMax,
        bandPtpPmOptAve,
        bandPtpPmOprMin,
        bandPtpPmOprMax,
        bandPtpPmOprAve,
        bandPtpPmRxEdfaOptMin,
        bandPtpPmRxEdfaOptMax,
        bandPtpPmRxEdfaOptAve,
        bandPtpPmTxEdfaOptMin,
        bandPtpPmTxEdfaOptMax,
        bandPtpPmTxEdfaOptAve,
        bandPtpPmRxEdfaOprMin,
        bandPtpPmRxEdfaOprMax,
        bandPtpPmRxEdfaOprAve,
        bandPtpPmTxEdfaOprMin,
        bandPtpPmTxEdfaOprMax,
        bandPtpPmTxEdfaOprAve,
        bandPtpRxEdfaLBCMin,
        bandPtpRxEdfaLBCMax,
        bandPtpRxEdfaLBCAve,
        bandPtpTxEdfaLBCMin,
        bandPtpTxEdfaLBCMax,
        bandPtpTxEdfaLBCAve
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the bandPtp."
    ::= { bandPtpPmGroups 1 }

bandPtpPmRealGroup OBJECT-GROUP
    OBJECTS {
    	bandPtpPmRealOpt,      
        bandPtpPmRealOpr,      
        bandPtpPmRealRxEdfaOpt,
        bandPtpPmRealTxEdfaOpt,
        bandPtpPmRealRxEdfaOpr,
        bandPtpPmRealTxEdfaOpr,
        bandPtpPmRealRxEdfaLBC,
        bandPtpPmRealTxEdfaLBC,
        bandPtpPmRealOptOsaTapRatio
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the bandPtp."
    ::= { bandPtpPmGroups 2 }


END


