-- ============================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description: The purpose of this MIB file is to provide the definition of
--              the ARP Rate Limit general configuration.
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 2009-12-08
--   Initial version, created by gejianzhuang
-- V1.1 2013-10-14
--   Add hpnicfARPRatelimitConfigTable, modified by yanjun
-- ============================================================================
HPN-ICF-ARP-RATELIMIT-MIB DEFINITIONS ::= BEGIN

IMPORTS
        hpnicfCommon
    FROM HPN-ICF-OID-MIB
        Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        ifIndex
    FROM IF-MIB;

-- Node definitions
hpnicfARPRatelimit MODULE-IDENTITY
    LAST-UPDATED "201310141800Z"        -- OCT 14, 2013 at 18:00 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB file defines the ARP packet rate limit configuration.
        The ARP packet rate limit feature monitors and controls the
        rate of ARP packets delivered to the CPU on a device.  The
        current version supports the monitoring feature only."
    REVISION "201310141800Z"
    DESCRIPTION
        "Add hpnicfARPRatelimitConfigTable."
    REVISION "200912081912Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { hpnicfCommon 110 }


hpnicfARPRatelimitObjects OBJECT IDENTIFIER ::= { hpnicfARPRatelimit 1 }

hpnicfARPRatelimitTrap OBJECT IDENTIFIER  ::= { hpnicfARPRatelimitObjects 1 }

hpnicfARPRatelimitConfig OBJECT IDENTIFIER  ::= { hpnicfARPRatelimitObjects 2 }

-- hpnicfARPRatelimitTraps

hpnicfARPRatelimitTraps OBJECT IDENTIFIER ::= { hpnicfARPRatelimitTrap 0 }

hpnicfARPRatelimitOverspeedTrap NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfARPRatelimitTrapVer,
            hpnicfARPRatelimitTrapCount,
            hpnicfARPRatelimitTrapMsg
        }
    STATUS      current
    DESCRIPTION
        "If the rate of ARP packets delivered to the CPU on a device
        exceeds the threshold, a trap message is generated and sent
        to the remote monitoring device."
    ::= { hpnicfARPRatelimitTraps 1 }

hpnicfARPRatelimitTrapObjects OBJECT IDENTIFIER  ::= { hpnicfARPRatelimitTrap 1 }

hpnicfARPRatelimitTrapVer OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The version of trap information."
    ::= { hpnicfARPRatelimitTrapObjects 1 }

hpnicfARPRatelimitTrapCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Number of cells in the trap message.  A trap message may contain
        multiple cells, each of which indicates that the rate information of
        ARP packets exceeds the threshold."
    ::= { hpnicfARPRatelimitTrapObjects 2 }

hpnicfARPRatelimitTrapMsg OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..254))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "This object is the cell section in a trap message sent from a
        monitored device.  This object can contain multiple cells.
        This object is in the format of '<cell1><cell2>...'.  Each cell
        consists of 17 octets in the format of
        '<TrapOrigin><IfIndex><OverSpeedValue><Threshold><Interval>'.

        <TrapOrigin> indicates the source of the trap message and has
        size of 1 octet.  It only supports the following values.
        1 - Global.
        2 - Interface.

        <IfIndex> is the index of the interface where the rate of ARP packet
        exceeds the threshold and has size of 4 octets.  It is 0xFFFFFFFF
        when <TrapOrigin> is 1(Global).

        <OverSpeedValue> indicates the rate that ARP packets are actually
        delivered and has size of 4 octets.

        <Threshold> indicates the threshold that ARP packets can be delivered
        to CPU and has size of 4 octets.

        <Interval> indicates the interval that a trap message is sent out
        and has size of 4 octets."

    ::= { hpnicfARPRatelimitTrapObjects 3 }

-- hpnicfARPRatelimitConfigTable

hpnicfARPRatelimitConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfARPRatelimitConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table is used to configure ARP packet
        rate limit on interfaces."
    ::= { hpnicfARPRatelimitConfig 1 }

hpnicfARPRatelimitConfigEntry OBJECT-TYPE
    SYNTAX      HpnicfARPRatelimitConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The entry of hpnicfARPRatelimitConfigTable."
    INDEX
        {
            ifIndex
        }
    ::= { hpnicfARPRatelimitConfigTable 1 }

HpnicfARPRatelimitConfigEntry ::= SEQUENCE
    {
        hpnicfARPRatelimitValue     Unsigned32
    }

hpnicfARPRatelimitValue OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure ARP packet rate limit.  Support for the value range
        depends on the device model.  If the object is set to 0, the ARP
        packet rate limit will be disabled."
    ::= { hpnicfARPRatelimitConfigEntry 1 }
END
