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

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


chassisPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201505180000Z"
    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      "201505180000Z" 
    DESCRIPTION
        "First Version"
    ::= { perfMon 51 }

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

chassisPmEntry  OBJECT-TYPE
    SYNTAX      ChassisPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Opsm entry containing historical performance information pertaining to Infinera CHASSIS.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces
        of type CHASSIS."
    INDEX { ifIndex, chassisPmSampleDuration, chassisPmTimestamp}
    ::= { chassisPmTable 1 }


ChassisPmEntry  ::= SEQUENCE {
   chassisPmTimestamp          Integer32,
   chassisPmSampleDuration     INTEGER,
   chassisPmValidity           TruthValue,
   chassisPmInPMin		       FloatHundredths,
   chassisPmInPMax			   FloatHundredths,
   chassisPmInPAvg			   FloatHundredths
}


chassisPmTimestamp 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."
    ::= { chassisPmEntry  1 }


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

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

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


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

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


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

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


ChassisPmRealEntry  ::= SEQUENCE {
    chassisPmRealInPRaw       FloatHundredths
}

chassisPmRealInPRaw	OBJECT-TYPE
    SYNTAX      FloatHundredths
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { chassisPmRealEntry  1 }


-- Conformance Statements
chassisPmConformance    OBJECT IDENTIFIER ::= { chassisPmMIB 3 }
chassisPmCompliances    OBJECT IDENTIFIER ::= { chassisPmConformance 1 }
chassisPmGroups         OBJECT IDENTIFIER ::= { chassisPmConformance 2 }

chassisPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the  chassis-MIB"
    MODULE
        MANDATORY-GROUPS { chassisPmGroup }
    ::= { chassisPmCompliances 1 }

chassisPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the ChassisPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { chassisPmRealGroup }
    ::= { chassisPmCompliances 2 }

chassisPmGroup OBJECT-GROUP
    OBJECTS {
        chassisPmTimestamp,
        chassisPmSampleDuration,
        chassisPmValidity,     
       	chassisPmInPMin,
		chassisPmInPMax,
		chassisPmInPAvg
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the  chassis."
    ::= { chassisPmGroups 1 }

chassisPmRealGroup OBJECT-GROUP
    OBJECTS {
       chassisPmRealInPRaw 
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the  chassis."
    ::= { chassisPmGroups 2 }

END




