-- *****************************************************************
-- INFINERA-PM-FLEXCARRIER-MIB
-- 
-- April 2015, Mithun Murthy
-- 
-- 
-- Copyright (c) 2008-2013 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

INFINERA-PM-FLEXCARRIER-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, InfnSampleDuration         FROM INFINERA-TC-MIB
    perfMon                                     FROM INFINERA-REG-MIB;


flexCarrierPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201504180000Z"
    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      "201504180000Z" 
    DESCRIPTION
        "First Version"
    ::= { perfMon 60 } 

flexCarrierPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FlexCarrierPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of FlexCarrierPm entries. Each entry is uniquely identified by the value of ifIndex."
    ::= { flexCarrierPmMIB 2 } 

flexCarrierPmEntry  OBJECT-TYPE
    SYNTAX      FlexCarrierPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A FlexCarrier entry containing historical performance information pertaining to Infinera FLEXCARRIER.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces
        of type FLEXCARRIER."
    INDEX { ifIndex, flexCarrierPmSampleDuration, flexCarrierPmTimestamp}
    ::= { flexCarrierPmTable 1 }


FlexCarrierPmEntry  ::= SEQUENCE {
   flexCarrierPmTimestamp            Integer32,
   flexCarrierPmSampleDuration       INTEGER,
   flexCarrierPmValidity             TruthValue,
   flexCarrierPmCmnScgOptMin         FloatHundredths,
   flexCarrierPmCmnScgOptMax         FloatHundredths,
   flexCarrierPmCmnScgOptAve         FloatHundredths,
   flexCarrierPmCmnScgOprMin         FloatHundredths,
   flexCarrierPmCmnScgOprMax         FloatHundredths,
   flexCarrierPmCmnScgOprAve         FloatHundredths
}


flexCarrierPmTimestamp 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."
    ::= { flexCarrierPmEntry  1 }


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

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


flexCarrierPmCmnScgOptMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Minimum FlexCarrier optical power min."
    ::= { flexCarrierPmEntry  4 }


flexCarrierPmCmnScgOptMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Maximum FlexCarrier optical power max."
    ::= { flexCarrierPmEntry  5 }


flexCarrierPmCmnScgOptAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Average FlexCarrier optical power ave."
    ::= { flexCarrierPmEntry  6 }


flexCarrierPmCmnScgOprMin OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Minimum FlexCarrier optical power min."
    ::= { flexCarrierPmEntry  7}


flexCarrierPmCmnScgOprMax OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Maximum FlexCarrier optical power max."
    ::= { flexCarrierPmEntry  8}


flexCarrierPmCmnScgOprAve OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Average FlexCarrier optical power ave."
    ::= { flexCarrierPmEntry  9}


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

flexCarrierPmRealEntry  OBJECT-TYPE
    SYNTAX      FlexCarrierPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A  flexCarrier entry containing real-time performance information pertaining to Infinera
         flexCarrier interfaces. This table is a subclass of IfCommon."
    INDEX { ifIndex }
    ::= { flexCarrierPmRealTable 1 }


FlexCarrierPmRealEntry  ::= SEQUENCE {
    flexCarrierPmRealCmnScgOpt       		FloatHundredths,
    flexCarrierPmRealCmnScgOpr       		FloatHundredths,
	flexCarrierPmRealLastPollTimeStampOpt	INTEGER,
	flexCarrierPmRealLastPollTimeStampOpr	INTEGER
}

flexCarrierPmRealCmnScgOpt OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Total FlexCarrier optical power trasmit."
    ::= { flexCarrierPmRealEntry  1 }


flexCarrierPmRealCmnScgOpr OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Total FlexCarrier optical power receive."
    ::= { flexCarrierPmRealEntry  2 }

flexCarrierPmRealLastPollTimeStampOpt	OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "poll time of  FlexCarrier optical power transmit."
    ::= { flexCarrierPmRealEntry  3 }

flexCarrierPmRealLastPollTimeStampOpr	OBJECT-TYPE
    SYNTAX      INTEGER 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "poll time of flexcarrier optical power receive."
    ::= { flexCarrierPmRealEntry  4 }


-- Conformance Statements
flexCarrierPmConformance    OBJECT IDENTIFIER ::= { flexCarrierPmMIB 3 }
flexCarrierPmCompliances    OBJECT IDENTIFIER ::= { flexCarrierPmConformance 1 }
flexCarrierPmGroups         OBJECT IDENTIFIER ::= { flexCarrierPmConformance 2 }

flexCarrierPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the  flexCarrier-MIB"
    MODULE
        MANDATORY-GROUPS { flexCarrierPmGroup }
    ::= { flexCarrierPmCompliances 1 }

flexCarrierPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the FlexCarrierPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { flexCarrierPmRealGroup }
    ::= { flexCarrierPmCompliances 2 }

flexCarrierPmGroup OBJECT-GROUP
    OBJECTS {
        flexCarrierPmTimestamp,
        flexCarrierPmSampleDuration,
        flexCarrierPmValidity,     
        flexCarrierPmCmnScgOptMin, 
        flexCarrierPmCmnScgOptMax, 
        flexCarrierPmCmnScgOptAve, 
        flexCarrierPmCmnScgOprMin, 
        flexCarrierPmCmnScgOprMax, 
        flexCarrierPmCmnScgOprAve  
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the  flexCarrier."
    ::= { flexCarrierPmGroups 1 }

flexCarrierPmRealGroup OBJECT-GROUP
    OBJECTS {
        flexCarrierPmRealCmnScgOpt,
        flexCarrierPmRealCmnScgOpr,
		flexCarrierPmRealLastPollTimeStampOpt,
		flexCarrierPmRealLastPollTimeStampOpr
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the  flexCarrier."
    ::= { flexCarrierPmGroups 2 }

END

