-- ============================================================================
-- Copyright (c) 2004-2022 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: The purpose of this MIB file is to provide the definition of
--              the Ip Source Guard trap.
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 2022-07-27
--   Initial version, created by wangyuqing
-- V1.1 2022-12-22
--   Add 'hh3cIpsgVlanDropAlarm'
--   And 'hh3cIpsgVlanDropAlarmResume'
--   And 'hh3cIpsgDropVlan'
--   And 'hh3cIpsgChassis'
--   And 'hh3cIpsgSlot' by wangyuqing
-- ============================================================================
HH3C-IPSG-MIB DEFINITIONS ::= BEGIN

IMPORTS
        hh3cCommon
    FROM HH3C-OID-MIB
        Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        InetAddressType
    FROM INET-ADDRESS-MIB;

-- Node definitions
hh3cIpsg MODULE-IDENTITY
    LAST-UPDATED "202212221800Z"        -- DEC 22, 2022 at 18:00 GMT
    ORGANIZATION
        "New H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team New H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip: 100085"
    DESCRIPTION
        "This MIB file is to provide the definition of the Ip Source Guard."
    REVISION "202212221800Z"
    DESCRIPTION
        "Add the objects of hh3cIpsgVlanDropAlarm, hh3cIpsgVlanDropAlarmResume,
        hh3cIpsgChassis, hh3cIpsgSlot and hh3cIpsgDropVlan."
    REVISION "202207271800Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { hh3cCommon 246}

-- hh3cIpsgTrapPkt
hh3cIpsgTrapPkt OBJECT IDENTIFIER ::= { hh3cIpsg 1 }

hh3cIpsgTrapPkts OBJECT IDENTIFIER  ::= { hh3cIpsgTrapPkt 0 }

hh3cIpsgDropAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpsgDropFamily,
            hh3cIpsgDropIfName,
            hh3cIpsgDropThreshold,
            hh3cIpsgChassis,
            hh3cIpsgSlot
        }
    STATUS      current
    DESCRIPTION
        "If the number of packets discarded by Ip Source Guard on an interface exceeds the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cIpsgTrapPkts 1 }

hh3cIpsgDropAlarmResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpsgDropFamily,
            hh3cIpsgDropIfName,
            hh3cIpsgDropThreshold,
            hh3cIpsgChassis,
            hh3cIpsgSlot
        }
    STATUS      current
    DESCRIPTION
        "If the number of packets discarded by Ip Source Guard on an interface drops below the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cIpsgTrapPkts 2 }

hh3cIpsgVlanDropAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpsgDropFamily,
            hh3cIpsgDropVlan,
            hh3cIpsgDropThreshold,
            hh3cIpsgChassis,
            hh3cIpsgSlot
        }
    STATUS      current
    DESCRIPTION
        "If the number of packets discarded by Ip Source Guard on the vlan exceeds the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cIpsgTrapPkts 3 }

hh3cIpsgVlanDropAlarmResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpsgDropFamily,
            hh3cIpsgDropVlan,
            hh3cIpsgDropThreshold,
            hh3cIpsgChassis,
            hh3cIpsgSlot
        }
    STATUS      current
    DESCRIPTION
        "If the number of packets discarded by Ip Source Guard on the vlan drops below the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cIpsgTrapPkts 4 }

hh3cIpsgTrapPktObjects OBJECT IDENTIFIER  ::= { hh3cIpsgTrapPkt 1 }

-- hh3cIpsgTrapPktObjects

hh3cIpsgDropFamily OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The protocol family may be ipv4 or ipv6 ."
    ::= { hh3cIpsgTrapPktObjects 1 }

hh3cIpsgDropIfName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of interface name."
    ::= { hh3cIpsgTrapPktObjects 2 }

hh3cIpsgDropThreshold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of Threshold."
    ::= { hh3cIpsgTrapPktObjects 3 }

hh3cIpsgDropVlan OBJECT-TYPE
    SYNTAX      Unsigned32(1..4094)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of vlan id."
    ::= { hh3cIpsgTrapPktObjects 4 }

hh3cIpsgChassis OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of chassis ID. If the value is 65535, the device is
        not a stacked device ."
    ::= { hh3cIpsgTrapPktObjects 5 }

hh3cIpsgSlot OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of slot."
    ::= { hh3cIpsgTrapPktObjects 6 }

END
