-- ============================================================================
-- 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 MAC trap.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2022-7-28
--   Initial version, created by lichao
-- ============================================================================
HH3C-MAC-TRAP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        hh3cCommon
    FROM HH3C-OID-MIB
        Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        MacAddress
    FROM SNMPv2-TC;

-- Node definitions
hh3cMACTrap MODULE-IDENTITY
    LAST-UPDATED "202207281800Z"        -- JUL 28, 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 defines the MAC trap warning feature only."
    REVISION "202207281800Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { hh3cCommon 245}

-- hh3cMACTrapEntry
hh3cMACTrapEntry OBJECT IDENTIFIER ::= { hh3cMACTrap 1 }

hh3cMACTrapsEntry OBJECT IDENTIFIER  ::= { hh3cMACTrapEntry 0 }

-- hh3cMACTrapIfThresholdAlarm
hh3cMACTrapIfThresholdAlarm  NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACTrapEntryLearnIfName,
            hh3cMACTrapEntryLearnThreshold,
            hh3cMACTrapEntryChassis,
            hh3cMACTrapEntrySlot
        }
    STATUS      current
    DESCRIPTION
        "If the numbers of MAC entry learned on the interface exceeds the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsEntry 1 }

hh3cMACTrapIfThresholdResume  NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACTrapEntryLearnIfName,
            hh3cMACTrapEntryLearnThreshold,
            hh3cMACTrapEntryCurLearnCount,
            hh3cMACTrapEntryChassis,
            hh3cMACTrapEntrySlot
        }
    STATUS      current
    DESCRIPTION
        "If the numbers of MAC entry learned by the interface drops below the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsEntry 2 }

hh3cMACTrapVlanThresholdAlarm  NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACTrapEntryLearnVlan,
            hh3cMACTrapEntryLearnThreshold,
            hh3cMACTrapEntryChassis,
            hh3cMACTrapEntrySlot
        }
    STATUS      current
    DESCRIPTION
        "If the numbers of MAC entry learned on the vlan exceeds the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsEntry 3 }

hh3cMACTrapVlanThresholdResume  NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACTrapEntryLearnVlan,
            hh3cMACTrapEntryLearnThreshold,
            hh3cMACTrapEntryCurLearnCount,
            hh3cMACTrapEntryChassis,
            hh3cMACTrapEntrySlot
        }
    STATUS      current
    DESCRIPTION
        "If the numbers of MAC entry learned by the vlan drops below the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsEntry 4 }

hh3cMACTrapVsiThresholdAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACTrapEntryLearnVsiName,
            hh3cMACTrapEntryLearnThreshold,
            hh3cMACTrapEntryChassis,
            hh3cMACTrapEntrySlot
        }
    STATUS      current
    DESCRIPTION
        "If the numbers of MAC entry learned on the vsi exceeds the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsEntry 5 }

hh3cMACTrapVsiThresholdResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACTrapEntryLearnVsiName,
            hh3cMACTrapEntryLearnThreshold,
            hh3cMACTrapEntryCurLearnCount,
            hh3cMACTrapEntryChassis,
            hh3cMACTrapEntrySlot
        }
    STATUS      current
    DESCRIPTION
        "If the numbers of MAC entry learned by the vsi drops below the threshold,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsEntry 6 }

hh3cMACTrapEntryObjects OBJECT IDENTIFIER  ::= { hh3cMACTrapEntry 1 }

-- hh3cMACTrapEntryObjects

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

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

hh3cMACTrapEntryLearnVsiName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (1..31))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of vsi name."
    ::= { hh3cMACTrapEntryObjects 3 }

hh3cMACTrapEntryLearnThreshold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Maximum learning limit of MAC table entry."
    ::= { hh3cMACTrapEntryObjects 4 }

hh3cMACTrapEntryCurLearnCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The numbers of MAC entry learned."
    ::= { hh3cMACTrapEntryObjects 5 }

hh3cMACTrapEntryChassis 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 ."
    ::= { hh3cMACTrapEntryObjects 6 }

hh3cMACTrapEntrySlot OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of slot."
    ::= { hh3cMACTrapEntryObjects 7 }


hh3cMACTrapRecIllegalMacPkt OBJECT IDENTIFIER  ::= { hh3cMACTrap 2 }

hh3cMACTrapsRecIllegalMacPkt OBJECT IDENTIFIER  ::= { hh3cMACTrapRecIllegalMacPkt 0 }

hh3cMACTrapRcvIllegalMacPktAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACTrapRcvIllegalPktIfName
        }
    STATUS      current
    DESCRIPTION
        "If the port receives the packet that the source MAC or destination MAC is all 0,
        a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsRecIllegalMacPkt 1 }

hh3cMACTrapRecIllegalMacPktObjs OBJECT IDENTIFIER  ::= { hh3cMACTrapRecIllegalMacPkt 1 }

hh3cMACTrapRcvIllegalPktIfName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of interface name that receives the
        packet that the source MAC or destination MAC is all 0."
    ::= { hh3cMACTrapRecIllegalMacPktObjs 1 }

hh3cMACTrapHashConflict OBJECT IDENTIFIER  ::= { hh3cMACTrap 3 }

hh3cMACTrapsHashConflict OBJECT IDENTIFIER  ::= { hh3cMACTrapHashConflict 0 }

hh3cMACTrapVlanHashConflictAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACHashConflictMac,
            hh3cMACHashConflictMacVlan,
            hh3cMACHashConflictMacIfName,
            hh3cMACHashConflictChassis,
            hh3cMACHashConflictSlot
        }
    STATUS      current
    DESCRIPTION
        "If the MAC entries learned are discarded on the vlan due to hash conflicts,
        a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsHashConflict 1 }

hh3cMACTrapVsiHashConflictAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cMACHashConflictMac,
            hh3cMACHashConflictMacIfName,
            hh3cMACHashConflictMacVsiName,
            hh3cMACHashConflictChassis,
            hh3cMACHashConflictSlot
        }
    STATUS      current
    DESCRIPTION
        "If the MAC entries learned are discarded on the vsi due to hash conflicts,
        a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cMACTrapsHashConflict 2 }

hh3cMACTrapHashConflictObjs OBJECT IDENTIFIER  ::= { hh3cMACTrapHashConflict 1 }

hh3cMACHashConflictMac OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Hash conflicting MAC address."
    ::= { hh3cMACTrapHashConflictObjs 1 }

hh3cMACHashConflictMacVlan OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4094)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VLAN corresponding to MAC of hash conflict."
    ::= { hh3cMACTrapHashConflictObjs 2 }

hh3cMACHashConflictMacIfName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Interface name corresponding to MAC in hash conflict."
    ::= { hh3cMACTrapHashConflictObjs 3 }

hh3cMACHashConflictMacVsiName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (1..31))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VSI name corresponding to MAC of hash conflict."
    ::= { hh3cMACTrapHashConflictObjs 4 }

hh3cMACHashConflictChassis 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 ."
    ::= { hh3cMACTrapHashConflictObjs 5 }

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

END
