-- *****************************************************************
-- INFINERA-PM-SECYSTATS-MIB
-- 
-- October 2016, Kavitha Manjunatha
--
-- Copyright (c) 2008-2012 by Infinera Inc.
--
-- All rights reserved.
-- ****************************************************************

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

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

secyStatsPmMIB MODULE-IDENTITY
    LAST-UPDATED  "201502060000Z"
    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      "201502060000Z" 
    DESCRIPTION
        "First Version"
    ::= { macsecPerfMon 3 }

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

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


SecyStatsRealEntry  ::= SEQUENCE {
        secyStatsPmRealInOctetsValidated        Counter64,
        secyStatsPmRealInOctetsDecrypted        Counter64
}

secyStatsPmRealInOctetsValidated OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Real Stats InOctetsValidated"
    ::= { secyStatsPmRealEntry  1 }

secyStatsPmRealInOctetsDecrypted OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Real Stats InOctetsDecrypted"
    ::= { secyStatsPmRealEntry  2 }

-- Historical PMs
secyStatsPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SecyStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of SecyStats entries. Each entry is uniquely identified by the value of ifIndex, sampleDuration and secyStatsPmTimestamp."
    ::= { secyStatsPmMIB 2 } 

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

SecyStatsEntry  ::= SEQUENCE {
    secyStatsPmTimestamp            Integer32,
    secyStatsPmSampleDuration       INTEGER,
    secyStatsPmValidity             TruthValue,
    secyStatsPmInOctetsValidated    HCPerfIntervalCount,
    secyStatsPmInOctetsDecrypted    HCPerfIntervalCount,
    secyStatsPmTxUntaggedPkts       HCPerfIntervalCount,
    secyStatsPmTxTooLongPkts        HCPerfIntervalCount,
    secyStatsPmRxUntaggedPkts       HCPerfIntervalCount,
    secyStatsPmRxNoTagPkts          HCPerfIntervalCount,
    secyStatsPmRxBadTagPkts         HCPerfIntervalCount,
    secyStatsPmRxUnknownSCIPkts     HCPerfIntervalCount,
    secyStatsPmRxNoSCIPkts          HCPerfIntervalCount,
    secyStatsPmRxOverrunPkts        HCPerfIntervalCount
}

secyStatsPmTimestamp 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."
    ::= { secyStatsPmEntry  1 }

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

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

secyStatsPmInOctetsValidated OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats InOctetsValidated"
    ::= { secyStatsPmEntry  4 }

secyStatsPmInOctetsDecrypted OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats InOctetsDecrypted"
    ::= { secyStatsPmEntry  5 }

secyStatsPmTxUntaggedPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats TxUntaggedPkts"
    ::= { secyStatsPmEntry  6 }

secyStatsPmTxTooLongPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats TxTooLongPkts"
    ::= { secyStatsPmEntry  7 }

secyStatsPmRxUntaggedPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats RxUntaggedPkts"
    ::= { secyStatsPmEntry  8 }

secyStatsPmRxNoTagPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats RxNoTagPkts"
    ::= { secyStatsPmEntry  9 }

secyStatsPmRxBadTagPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats RxBadTagPkts"
    ::= { secyStatsPmEntry  10 }

secyStatsPmRxUnknownSCIPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats RxUnknownSCIPkts"
    ::= { secyStatsPmEntry  11 }

secyStatsPmRxNoSCIPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats RxNoSCIPkts"
    ::= { secyStatsPmEntry  12 }

secyStatsPmRxOverrunPkts OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "SECY Stats RxOverrunPkts"
    ::= { secyStatsPmEntry  13 }

-- Conformance Statements

secyStatsPmConformance    OBJECT IDENTIFIER ::= { secyStatsPmMIB 3 }
secyStatsPmCompliances    OBJECT IDENTIFIER ::= { secyStatsPmConformance 1 }
secyStatsPmGroups         OBJECT IDENTIFIER ::= { secyStatsPmConformance 2 }

secyStatsPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the secyStatsPmRealMIB"
    MODULE
        MANDATORY-GROUPS { secyStatsPmRealGroup }
    ::= { secyStatsPmCompliances 1 }

secyStatsPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the secyStatsPmMIB"
    MODULE
        MANDATORY-GROUPS { secyStatsPmGroup }
    ::= { secyStatsPmCompliances 2 }

-- Real PM groups
secyStatsPmRealGroup OBJECT-GROUP
    OBJECTS {
        secyStatsPmRealInOctetsValidated,
        secyStatsPmRealInOctetsDecrypted
    }
    STATUS current          
    DESCRIPTION             
        " A collection of objects for reading Real SecyStats."
    ::= { secyStatsPmGroups 1 }

-- Historical PM groups
secyStatsPmGroup OBJECT-GROUP
    OBJECTS {
	    secyStatsPmValidity,
        secyStatsPmInOctetsValidated,
        secyStatsPmInOctetsDecrypted,
    	secyStatsPmTxUntaggedPkts,
    	secyStatsPmTxTooLongPkts,
    	secyStatsPmRxUntaggedPkts,
        secyStatsPmRxNoTagPkts,
        secyStatsPmRxBadTagPkts,
        secyStatsPmRxUnknownSCIPkts,
        secyStatsPmRxNoSCIPkts,
        secyStatsPmRxOverrunPkts
    }
    STATUS current          
    DESCRIPTION             
        " A collection of objects for reading SecyStats."
    ::= { secyStatsPmGroups 2 }

END
