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

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


opsmPmMIB 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 50 }

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

opsmPmEntry  OBJECT-TYPE
    SYNTAX      OpsmPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Opsm entry containing historical performance information pertaining to Infinera OPSMPTP.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces
        of type OPSM."
    INDEX { ifIndex, opsmPmSampleDuration, opsmPmTimestamp}
    ::= { opsmPmTable 1 }


OpsmPmEntry  ::= SEQUENCE {
   opsmPmTimestamp          Integer32,
   opsmPmSampleDuration     INTEGER,
   opsmPmValidity           TruthValue,
   opsmPmOprMin             FloatHundredths,
   opsmPmOprMax             FloatHundredths,
   opsmPmOprAve             FloatHundredths
}


opsmPmTimestamp 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."
    ::= { opsmPmEntry  1 }


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

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

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


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


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


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

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


OpsmPmRealEntry  ::= SEQUENCE {
    opsmPmRealOpr       FloatHundredths
}

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


-- Conformance Statements
opsmPmConformance    OBJECT IDENTIFIER ::= { opsmPmMIB 3 }
opsmPmCompliances    OBJECT IDENTIFIER ::= { opsmPmConformance 1 }
opsmPmGroups         OBJECT IDENTIFIER ::= { opsmPmConformance 2 }

opsmPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the  opsm-MIB"
    MODULE
        MANDATORY-GROUPS { opsmPmGroup }
    ::= { opsmPmCompliances 1 }

opsmPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the OpsmPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { opsmPmRealGroup }
    ::= { opsmPmCompliances 2 }

opsmPmGroup OBJECT-GROUP
    OBJECTS {
        opsmPmTimestamp,
        opsmPmSampleDuration,
        opsmPmValidity,     
        opsmPmOprMin, 
        opsmPmOprMax, 
        opsmPmOprAve 
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the  opsm."
    ::= { opsmPmGroups 1 }

opsmPmRealGroup OBJECT-GROUP
    OBJECTS {
        opsmPmRealOpr
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the  opsm."
    ::= { opsmPmGroups 2 }

END




