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

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


asePtpPmMIB 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 84 }



asePtpPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AsePtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of AsePtpPm entries. Each entry is uniquely identified by the values of ifIndex, sample duration and asePtpPmTimestamp."
    ::= { asePtpPmMIB 2 } 

asePtpPmEntry  OBJECT-TYPE
    SYNTAX      AsePtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A AsePtpPm entry containing historical performance information pertaining to Infinera AsePtp 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, asePtpPmSampleDuration, asePtpPmTimestamp }
    ::= { asePtpPmTable 1 }


AsePtpPmEntry  ::= SEQUENCE {
    asePtpPmTimestamp          Integer32,
    asePtpPmSampleDuration     INTEGER,
    asePtpPmValidity           TruthValue,
    asePtpPmCmnAseOptMin             FloatArbitraryPrecision,
    asePtpPmCmnAseOptMax             FloatArbitraryPrecision,
    asePtpPmCmnAseOptAve             FloatArbitraryPrecision,
    asePtpPmCmnAseOprMin             FloatArbitraryPrecision,
    asePtpPmCmnAseOprMax             FloatArbitraryPrecision,
    asePtpPmCmnAseOprAve             FloatArbitraryPrecision,
    asePtpPmCmnAsePostRxVoaMin       FloatArbitraryPrecision,
    asePtpPmCmnAsePostRxVoaMax       FloatArbitraryPrecision,
    asePtpPmCmnAsePostRxVoaAve       FloatArbitraryPrecision
}

asePtpPmTimestamp 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."
    ::= { asePtpPmEntry  1 }


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


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


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

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

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


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

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

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

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

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

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

--Real PMs
asePtpPmRealTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AsePtpPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of AsePtpPmReal entries. Each entry is uniquely identified by the value of ifIndex."
    ::= { asePtpPmMIB 1 } 

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


AsePtpPmRealEntry  ::= SEQUENCE {
    asePtpPmRealCmnAseOpt                     FloatArbitraryPrecision,
    asePtpPmRealCmnAseOpr                     FloatArbitraryPrecision,
    asePtpPmRealCmnAsePostRxVoa               FloatArbitraryPrecision
}

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


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


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


-- Conformance Statements
asePtpPmConformance    OBJECT IDENTIFIER ::= { asePtpPmMIB 3 }
asePtpPmCompliances    OBJECT IDENTIFIER ::= { asePtpPmConformance 1 }
asePtpPmGroups         OBJECT IDENTIFIER ::= { asePtpPmConformance 2 }

asePtpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the ASEPTP-MIB"
    MODULE
        MANDATORY-GROUPS { asePtpPmGroup }
    ::= { asePtpPmCompliances 1 }

asePtpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the asePtpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { asePtpPmRealGroup }
    ::= { asePtpPmCompliances 2 }

asePtpPmGroup OBJECT-GROUP
    OBJECTS {
        asePtpPmTimestamp,     
        asePtpPmSampleDuration,
        asePtpPmValidity,      
        asePtpPmCmnAseOptMin,
        asePtpPmCmnAseOptMax,
        asePtpPmCmnAseOptAve,
        asePtpPmCmnAseOprMin,
        asePtpPmCmnAseOprMax,
        asePtpPmCmnAseOprAve,
        asePtpPmCmnAsePostRxVoaMin,
        asePtpPmCmnAsePostRxVoaMax,
        asePtpPmCmnAsePostRxVoaAve
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the asePtp."
    ::= { asePtpPmGroups 1 }

asePtpPmRealGroup OBJECT-GROUP
    OBJECTS {
    	asePtpPmRealCmnAseOpt,      
        asePtpPmRealCmnAseOpr,      
        asePtpPmRealCmnAsePostRxVoa
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the asePtp."
    ::= { asePtpPmGroups 2 }


END


