-- *****************************************************************
-- INFINERA-PM-GROUPTP-MIB
-- 
-- October 2008, Sharfuddin Syed / Narendra Gupta
-- 
-- 
-- Copyright (c) 2008-2012 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

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

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, Counter64                        FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP             FROM SNMPv2-CONF
    DisplayString, TruthValue                   FROM SNMPv2-TC
    ifIndex                                     FROM IF-MIB
    HCPerfIntervalCount                         FROM HC-PerfHist-TC-MIB
    perfMon                                         FROM INFINERA-REG-MIB;


groupTpPmMIB MODULE-IDENTITY
    LAST-UPDATED  "200810200000Z"
    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      "200810200000Z" 
    DESCRIPTION
        "First Version"
    ::= { perfMon 9 }



groupTpPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF GroupTpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of GroupTpPm entries. Each entry is uniquely identified by the value of ifIndex, sampleDuration and groupTpPmTimestamp."
    ::= { groupTpPmMIB 2 } 

groupTpPmEntry  OBJECT-TYPE
    SYNTAX      GroupTpPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A GroupTp entry containing historical performance information pertaining to Infinera GroupTp interfaces.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces of type GroupTp.
        Each interface may have a number of entries in this table, each with a different combination
        of timestamp and sample duration."
    INDEX { ifIndex, groupTpPmSampleDuration, groupTpPmTimestamp }
    ::= { groupTpPmTable 1 }


GroupTpPmEntry  ::= SEQUENCE {
    groupTpPmTimestamp          Integer32,
    groupTpPmSampleDuration     INTEGER,
    groupTpPmValidity           TruthValue,
    groupTpPmDtpRxCV            HCPerfIntervalCount,
    groupTpPmDtpRxES            Integer32,
    groupTpPmDtpRxSES           Integer32,
    groupTpPmDtpRxUAS           Integer32,
    groupTpPmDtpTxCV            HCPerfIntervalCount,
    groupTpPmDtpTxES            Integer32,
    groupTpPmDtpTxSES           Integer32,
    groupTpPmDtpTxUAS           Integer32
}

groupTpPmTimestamp 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."
    ::= { groupTpPmEntry  1 }


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


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


groupTpPmDtpRxCV OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Received Code Violations."
    ::= { groupTpPmEntry  4 }


groupTpPmDtpRxES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Received Errored Seconds"
    ::= { groupTpPmEntry  5 }


groupTpPmDtpRxSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Received Severely Errored Seconds"
    ::= { groupTpPmEntry  6 }


groupTpPmDtpRxUAS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "DTF Path Layer Unavailable Seconds."
    ::= { groupTpPmEntry  7 }


groupTpPmDtpTxCV OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Transmitted Code Violations"
    ::= { groupTpPmEntry  8 }


groupTpPmDtpTxES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Transmitted Errored Seconds"
    ::= { groupTpPmEntry  9 }


groupTpPmDtpTxSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Transmitted Severely Errored Seconds"
    ::= { groupTpPmEntry  10 }


groupTpPmDtpTxUAS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "DTF Path Layer Unavailable Seconds."
    ::= { groupTpPmEntry  11 }


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

groupTpPmRealEntry  OBJECT-TYPE
    SYNTAX      GroupTpPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A GroupTp entry containing real-time performance information pertaining to Infinera GroupTp interfaces.
        This table is a subclass of IfCommon. Entries will exist in this table only for interfaces of type GroupTp."
    INDEX { ifIndex }
    ::= { groupTpPmRealTable 1 }


GroupTpPmRealEntry  ::= SEQUENCE {
    groupTpPmRealDtpRxCV            Counter64,
    groupTpPmRealDtpRxES            Integer32,
    groupTpPmRealDtpRxSES           Integer32,
    groupTpPmRealDtpRxUAS           Integer32,
    groupTpPmRealDtpTxCV            Counter64,
    groupTpPmRealDtpTxES            Integer32,
    groupTpPmRealDtpTxSES           Integer32,
    groupTpPmRealDtpTxUAS           Integer32
}

groupTpPmRealDtpRxCV OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Code Violations"
    ::= { groupTpPmRealEntry  1 }


groupTpPmRealDtpRxES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Errored Seconds"
    ::= { groupTpPmRealEntry  2 }


groupTpPmRealDtpRxSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Severely Errored Seconds"
    ::= { groupTpPmRealEntry  3 }


groupTpPmRealDtpRxUAS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "DtpUAS"
    ::= { groupTpPmRealEntry  4 }


groupTpPmRealDtpTxCV OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Transmitted Code Violations"
    ::= { groupTpPmRealEntry  5 }


groupTpPmRealDtpTxES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Transmitted Errored Seconds"
    ::= { groupTpPmRealEntry  6 }


groupTpPmRealDtpTxSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Transmitted Severely Errored Seconds"
    ::= { groupTpPmRealEntry  7 }


groupTpPmRealDtpTxUAS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "DtpTxUAS"
    ::= { groupTpPmRealEntry  8 }


-- Conformance Statements
groupTpPmConformance    OBJECT IDENTIFIER ::= { groupTpPmMIB 3 }
groupTpPmCompliances    OBJECT IDENTIFIER ::= { groupTpPmConformance 1 }
groupTpPmGroups         OBJECT IDENTIFIER ::= { groupTpPmConformance 2 }

groupTpPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the PM-GROUPTP-MIB"
    MODULE
        MANDATORY-GROUPS { groupTpPmGroup }
    ::= { groupTpPmCompliances 1 }

groupTpPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the groupTpPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { groupTpPmRealGroup }
    ::= { groupTpPmCompliances 2 }

groupTpPmGroup OBJECT-GROUP
    OBJECTS {
        groupTpPmValidity,
        groupTpPmDtpRxCV,
        groupTpPmDtpRxES,
        groupTpPmDtpRxSES,
        groupTpPmDtpRxUAS,
        groupTpPmDtpTxCV,
        groupTpPmDtpTxES,
        groupTpPmDtpTxSES,
        groupTpPmDtpTxUAS
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the performance of the groupTp."
    ::= { groupTpPmGroups 1 }

groupTpPmRealGroup OBJECT-GROUP
    OBJECTS {
        groupTpPmRealDtpRxCV,
        groupTpPmRealDtpRxES,
        groupTpPmRealDtpRxSES,
        groupTpPmRealDtpRxUAS,
        groupTpPmRealDtpTxCV,
        groupTpPmRealDtpTxES,
        groupTpPmRealDtpTxSES,
        groupTpPmRealDtpTxUAS
    }
    STATUS current
    DESCRIPTION
        " A collection of objects for reading the real-time performance of the groupTp."
    ::= { groupTpPmGroups 2 }


END
