-- *****************************************************************
-- INFINERA-PM-DWCTP-MIB
--
-- February 2017, Kavitha Manjunatha / Divyank Rastogi
--
--
-- Copyright (c) 2008-2013 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

INFINERA-PM-DWCTP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
    MODULE-IDENTITY, OBJECT-TYPE,
    Counter64                            FROM SNMPv2-SMI
    TruthValue                           FROM SNMPv2-TC
    ifIndex                              FROM IF-MIB
    FloatArbitraryPrecision              FROM INFINERA-TC-MIB
    perfMon                              FROM INFINERA-REG-MIB;

dwCtpPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201702030000Z"
    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      "201701030000Z"
    DESCRIPTION
        "First Version"
    ::= { perfMon 47 }

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

dwCtpPmEntry  OBJECT-TYPE
    SYNTAX      DwCtpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A dwCtp entry containing historical performance information pertaining to Infinera DigitalWrapper CTP interfaces.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces
        of type dwCtp."
    INDEX { ifIndex, dwCtpPmSampleDuration, dwCtpPmTimestamp}
    ::= { dwCtpPmTable 1 }

DwCtpPmEntry  ::= SEQUENCE {
	dwCtpPmTimestamp                    Integer32,
	dwCtpPmSampleDuration               INTEGER,
    dwCtpPmValidity                     TruthValue,
    dwCtpPmFecCodeWords                 Counter64,
    dwCtpPmFecUncorCodeWords            Counter64,
    dwCtpPmPostFecQmin                  FloatArbitraryPrecision,
    dwCtpPmPostFecQmax                  FloatArbitraryPrecision,
    dwCtpPmPostFecQave                  FloatArbitraryPrecision,
    dwCtpPmPreFecQMin                   FloatArbitraryPrecision,
    dwCtpPmPreFecQMax                   FloatArbitraryPrecision,
    dwCtpPmPreFecQAve                   FloatArbitraryPrecision,
    dwCtpPmBerPreFecMin                 FloatArbitraryPrecision,
    dwCtpPmBerPreFecMax                 FloatArbitraryPrecision,
    dwCtpPmBerPreFecAve                 FloatArbitraryPrecision,
    dwCtpPmBerPostFecMin                FloatArbitraryPrecision,
    dwCtpPmBerPostFecMax                FloatArbitraryPrecision,
    dwCtpPmBerPostFecAve                FloatArbitraryPrecision,
    dwCtpPmUnCorrectedBits              Counter64,
    dwCtpPmCorrectedBits                Counter64,
    dwCtpPmPropagationDelayMin          FloatArbitraryPrecision,
    dwCtpPmPropagationDelayMax          FloatArbitraryPrecision,
    dwCtpPmPropagationDelayAve          FloatArbitraryPrecision
}

dwCtpPmTimestamp 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."
    ::= { dwCtpPmEntry  1 }

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

dwCtpPmValidity OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry 3 }

dwCtpPmFecCodeWords OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  4 }

dwCtpPmFecUncorCodeWords OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  5 }

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

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

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

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

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

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

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

dwCtpPmBerPreFecMax OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  13 }

dwCtpPmBerPreFecAve OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  14 }

dwCtpPmBerPostFecMin OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  15 }

dwCtpPmBerPostFecMax OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  16 }

dwCtpPmBerPostFecAve OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  17 }

dwCtpPmUnCorrectedBits OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  18 }

dwCtpPmCorrectedBits OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  19 }

dwCtpPmPropagationDelayMin OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  20 }

dwCtpPmPropagationDelayMax OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  21 }

dwCtpPmPropagationDelayAve OBJECT-TYPE
    SYNTAX      FloatArbitraryPrecision
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmEntry  22 }

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

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

DwCtpPmRealEntry  ::= SEQUENCE {
	dwCtpPmRealFecCodeWords             Counter64,
	dwCtpPmRealFecUncorCodeWords        Counter64,
    dwCtpPmRealPostFecQ                 FloatArbitraryPrecision,
    dwCtpPmRealPreFecQ                  FloatArbitraryPrecision,
    dwCtpPmRealBerPreFec                FloatArbitraryPrecision,
    dwCtpPmRealBerPostFec               FloatArbitraryPrecision,
    dwCtpPmRealUnCorrectedBits          Counter64,
    dwCtpPmRealCorrectedBits            Counter64,
    dwCtpPmRealPropagationDelay         FloatArbitraryPrecision
}

dwCtpPmRealFecCodeWords OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmRealEntry  1 }

dwCtpPmRealFecUncorCodeWords OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmRealEntry  2 }

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

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

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

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

dwCtpPmRealUnCorrectedBits OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmRealEntry  7 }

dwCtpPmRealCorrectedBits OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { dwCtpPmRealEntry  8 }

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

-- Conformance Statements
dwCtpPmConformance    OBJECT IDENTIFIER ::= { dwCtpPmMIB 3 }
dwCtpPmCompliances    OBJECT IDENTIFIER ::= { dwCtpPmConformance 1 }
dwCtpPmGroups         OBJECT IDENTIFIER ::= { dwCtpPmConformance 2 }

dwCtpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the dwCtp-MIB"
    MODULE
        MANDATORY-GROUPS { dwCtpPmGroup }
    ::= { dwCtpPmCompliances 1 }

dwCtpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the dwCtpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { dwCtpPmRealGroup }
    ::= { dwCtpPmCompliances 2 }

dwCtpPmGroup OBJECT-GROUP
    OBJECTS {
        dwCtpPmFecCodeWords,
        dwCtpPmFecUncorCodeWords,
        dwCtpPmPostFecQmin,
        dwCtpPmPostFecQmax,
        dwCtpPmPostFecQave,
        dwCtpPmPreFecQMin,
        dwCtpPmPreFecQMax,
        dwCtpPmPreFecQAve,
        dwCtpPmBerPreFecMin,
        dwCtpPmBerPreFecMax,
        dwCtpPmBerPreFecAve,
        dwCtpPmBerPostFecMin,
        dwCtpPmBerPostFecMax,
        dwCtpPmBerPostFecAve,
        dwCtpPmUnCorrectedBits,
        dwCtpPmCorrectedBits,
        dwCtpPmPropagationDelayMin,
        dwCtpPmPropagationDelayMax,
        dwCtpPmPropagationDelayAve
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the historical performance of the dwCtp."
    ::= { dwCtpPmGroups 1 }

dwCtpPmRealGroup OBJECT-GROUP
    OBJECTS {
        dwCtpPmRealFecCodeWords,
        dwCtpPmRealFecUncorCodeWords,
        dwCtpPmRealPostFecQ,
        dwCtpPmRealPreFecQ,
        dwCtpPmRealBerPreFec,
        dwCtpPmRealBerPostFec,
        dwCtpPmRealUnCorrectedBits,
        dwCtpPmRealCorrectedBits,
        dwCtpPmRealPropagationDelay
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the dwCtp."
    ::= { dwCtpPmGroups 2 }

END
