-- ============================================================================
-- 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 FIB general configuration.
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 2021-12-08
--   Initial version, created by zhuqiuxue
-- V1.1 2022-09-08 Modify by yuanyuchen
--   Add hh3cFibIPv4MaxNumAlarmTraps, hh3cFibIPv6MaxNumAlarmTraps,
--   hh3cFibPub4OverloadTraps, hh3cFibPub6OverloadTraps
--      2022-12-19 Modify by yewenbing
--   Add hh3cFibEntryTraps, hh3cFibEcmpMemberLimitTraps,
--   hh3cFibDeliverFailedTraps
-- ============================================================================
HH3C-FIB-MIB DEFINITIONS ::= BEGIN

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

-- Node definitions
hh3cFib MODULE-IDENTITY
    LAST-UPDATED "202212201219Z"
    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 Fib trap warning feature only."
    REVISION "202212201219Z"
    DESCRIPTION
        "Add hh3cFibEntryTraps, hh3cFibEcmpMemberLimitTraps,
         hh3cFibDeliverFailedTraps."
    REVISION "202209080920Z"
    DESCRIPTION
        "Add hh3cFibIPv4MaxNumAlarmTraps, hh3cFibIPv6MaxNumAlarmTraps,
         hh3cFibPub4OverloadTraps, hh3cFibPub6OverloadTraps."
    REVISION "202112081430Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { hh3cCommon 216}


hh3cFibMsgTraps OBJECT IDENTIFIER ::= { hh3cFib 1 }

hh3cFibMsgTrap OBJECT IDENTIFIER ::= { hh3cFibMsgTraps 0 }

-- hh3cFibMsgTrap
hh3cFibBoardMsgCongest NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibChassisID,
            hh3cFibSlotID
        }
    STATUS      current
    DESCRIPTION
        "The FIB message on the board is congested."
    ::= { hh3cFibMsgTrap 1 }

hh3cFibBoardMsgCongestResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibChassisID,
            hh3cFibSlotID
        }
    STATUS      current
    DESCRIPTION
        "The FIB message congestion is resolved."
    ::= { hh3cFibMsgTrap 2 }


hh3cFibMsgTrapbjects OBJECT IDENTIFIER ::= { hh3cFibMsgTraps 1 }

-- hh3cFibMsgTrapbjects

hh3cFibChassisID 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."
    ::= { hh3cFibMsgTrapbjects 1 }
hh3cFibSlotID OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of slot ID."
    ::= { hh3cFibMsgTrapbjects 2 }

hh3cFibOverloadTraps OBJECT IDENTIFIER ::= { hh3cFib 2 }

hh3cFibOverloadTrap OBJECT IDENTIFIER ::= { hh3cFibOverloadTraps 0 }

-- hh3cFibOverloadTrap
hh3cFibOverloadForward NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibOverloadModule
        }
    STATUS      current
    DESCRIPTION
        "The system is in the overload forwarding state because the FIB module
        is overloaded."
    ::= { hh3cFibOverloadTrap 1 }

hh3cFibOverloadForwardResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibOverloadModule
        }
    STATUS      current
    DESCRIPTION
        "The system changes from the overload forwarding state to the normal
        state."
    ::= { hh3cFibOverloadTrap 2 }


hh3cFibOverloadTrapbjects OBJECT IDENTIFIER ::= { hh3cFibOverloadTraps 1 }

-- hh3cFibOverloadTrapbjects
hh3cFibOverloadModule OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of FIB module."
    ::= { hh3cFibOverloadTrapbjects 1 }

hh3cFibIPv4MaxNumAlarmTraps OBJECT IDENTIFIER ::= { hh3cFib 3 }

hh3cFibIPv4MaxNumAlarmTrap OBJECT IDENTIFIER ::= { hh3cFibIPv4MaxNumAlarmTraps 0 }

-- hh3cFibIPv4MaxNumAlarmTrap
hh3cFibIPv4MaxNumAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibIPv4MaxNumChassis,
            hh3cFibIPv4MaxNumSlot,
            hh3cFibIPv4MaxNumCurCount
        }
    STATUS      current
    DESCRIPTION
        "The number of FIB4 entries exceeds the maximum of the slot."
    ::= { hh3cFibIPv4MaxNumAlarmTrap 1 }

hh3cFibIPv4MaxNumResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibIPv4MaxNumChassis,
            hh3cFibIPv4MaxNumSlot,
            hh3cFibIPv4MaxNumCurCount
        }
    STATUS      current
    DESCRIPTION
        "The number of FIB4 entries drops below the maximum of the slot."
    ::= { hh3cFibIPv4MaxNumAlarmTrap 2 }


hh3cFibIPv4MaxNumAlarmObjects OBJECT IDENTIFIER ::= { hh3cFibIPv4MaxNumAlarmTraps 1 }

-- hh3cFibIPv4MaxNumAlarmObjects
hh3cFibIPv4MaxNumChassis 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."
    ::= { hh3cFibIPv4MaxNumAlarmObjects 1 }

hh3cFibIPv4MaxNumSlot OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of slot."
    ::= { hh3cFibIPv4MaxNumAlarmObjects 2 }

hh3cFibIPv4MaxNumCurCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Current count of FIB4 entry."
    ::= { hh3cFibIPv4MaxNumAlarmObjects 3 }

hh3cFibIPv6MaxNumAlarmTraps OBJECT IDENTIFIER ::= { hh3cFib 4 }

hh3cFibIPv6MaxNumAlarmTrap OBJECT IDENTIFIER ::= { hh3cFibIPv6MaxNumAlarmTraps 0 }

-- hh3cFibIPv6MaxNumAlarmTrap
hh3cFibIPv6MaxNumAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibIPv6MaxNumChassis,
            hh3cFibIPv6MaxNumSlot,
            hh3cFibIPv6MaxNumCurCount
        }
    STATUS      current
    DESCRIPTION
        "The number of FIB6 entries exceeds the maximum of the slot."
    ::= { hh3cFibIPv6MaxNumAlarmTrap 1 }

hh3cFibIPv6MaxNumResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibIPv6MaxNumChassis,
            hh3cFibIPv6MaxNumSlot,
            hh3cFibIPv6MaxNumCurCount
        }
    STATUS      current
    DESCRIPTION
        "The number of FIB6 entries drops below the maximum of the slot."
    ::= { hh3cFibIPv6MaxNumAlarmTrap 2 }


hh3cFibIPv6MaxNumAlarmObjects OBJECT IDENTIFIER ::= { hh3cFibIPv6MaxNumAlarmTraps 1 }

-- hh3cFibIPv6MaxNumAlarmObjects
hh3cFibIPv6MaxNumChassis 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."
    ::= { hh3cFibIPv6MaxNumAlarmObjects 1 }

hh3cFibIPv6MaxNumSlot OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of slot."
    ::= { hh3cFibIPv6MaxNumAlarmObjects 2 }

hh3cFibIPv6MaxNumCurCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Current count of FIB6 entry."
    ::= { hh3cFibIPv6MaxNumAlarmObjects 3 }

hh3cFibPub4OverloadTraps OBJECT IDENTIFIER ::= { hh3cFib 5 }

hh3cFibPub4OverloadTrap OBJECT IDENTIFIER ::= { hh3cFibPub4OverloadTraps 0 }

-- hh3cFibPub4OverloadTrap
hh3cFibPub4OverloadForward NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibPub4OverloadCurCount
        }
    STATUS      current
    DESCRIPTION
        "The system is in the overload forwarding state because the public FIB4 module
        is overloaded."
    ::= { hh3cFibPub4OverloadTrap 1 }

hh3cFibPub4OverloadForwardResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibPub4OverloadCurCount
        }
    STATUS      current
    DESCRIPTION
        "The system changes from the overload forwarding state to the normal
        state."
    ::= { hh3cFibPub4OverloadTrap 2 }


hh3cFibPub4OverloadTrapbjects OBJECT IDENTIFIER ::= { hh3cFibPub4OverloadTraps 1 }

-- hh3cFibPub4OverloadTrapbjects
hh3cFibPub4OverloadCurCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Current count of public FIB4 entry."
    ::= { hh3cFibPub4OverloadTrapbjects 1 }

hh3cFibPub6OverloadTraps OBJECT IDENTIFIER ::= { hh3cFib 6 }

hh3cFibPub6OverloadTrap OBJECT IDENTIFIER ::= { hh3cFibPub6OverloadTraps 0 }

-- hh3cFibPub6OverloadTrap
hh3cFibPub6OverloadForward NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibPub6OverloadCurCount
        }
    STATUS      current
    DESCRIPTION
        "The system is in the overload forwarding state because the public FIB6 module
        is overloaded."
    ::= { hh3cFibPub6OverloadTrap 1 }

hh3cFibPub6OverloadForwardResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibPub6OverloadCurCount
        }
    STATUS      current
    DESCRIPTION
        "The system changes from the overload forwarding state to the normal
        state."
    ::= { hh3cFibPub6OverloadTrap 2 }


hh3cFibPub6OverloadTrapbjects OBJECT IDENTIFIER ::= { hh3cFibPub6OverloadTraps 1 }

-- hh3cFibPub6OverloadTrapbjects
hh3cFibPub6OverloadCurCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Current count of public FIB6 entry."
    ::= { hh3cFibPub6OverloadTrapbjects 1 }

hh3cFibEntryTraps OBJECT IDENTIFIER ::= { hh3cFib 7 }

hh3cFibEntryTrap OBJECT IDENTIFIER ::= { hh3cFibEntryTraps 0 }

-- hh3cFibEntryTrap
hh3cFibEntryConsistencyAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibEntryChassisID,
            hh3cFibEntrySlotID
        }
    STATUS      current
    DESCRIPTION
        "The FIB software entry and hardware entry conflict."
    ::= { hh3cFibEntryTrap 1 }

hh3cFibEntryConsistencyResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibEntryChassisID,
            hh3cFibEntrySlotID
        }
    STATUS      current
    DESCRIPTION
        "The FIB entry has been refreshed."
    ::= { hh3cFibEntryTrap 2 }

hh3cFibEcmpMemberLimitAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibEntryChassisID,
            hh3cFibEntrySlotID
        }
    STATUS      current
    DESCRIPTION
        "The maximum number of ECMP members exceeds the threshold."
    ::= { hh3cFibEntryTrap 3 }

hh3cFibEcmpMemberLimitResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibEntryChassisID,
            hh3cFibEntrySlotID
        }
    STATUS      current
    DESCRIPTION
        "The maximum number of ECMP members drops below the threshold."
    ::= { hh3cFibEntryTrap 4 }

hh3cFibEntryTrapbjects OBJECT IDENTIFIER ::= { hh3cFibEntryTraps 1 }

-- hh3cFibEntryTrapbjects

hh3cFibEntryChassisID 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."
    ::= { hh3cFibEntryTrapbjects 1 }

hh3cFibEntrySlotID OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of slot ID."
    ::= { hh3cFibEntryTrapbjects 2 }

hh3cFibDeliverFailedTraps OBJECT IDENTIFIER ::= { hh3cFib 8 }

hh3cFibDeliverFailedTrap OBJECT IDENTIFIER ::= { hh3cFibDeliverFailedTraps 0 }

-- hh3cFibDeliverFailedTrap
hh3cFibDeliverFailed NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibDeliverFailedVrf,
            hh3cFibDeliverFailedIPType,
            hh3cFibDeliverFailedIPAddress,
            hh3cFibDeliverFailedMask,
            hh3cFibDeliverFailedReasonId
        }
    STATUS      current
    DESCRIPTION
        "The route failed to be deliverdf because of internal error."
    ::= { hh3cFibDeliverFailedTrap 1 }

hh3cFibDeliverFailedResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cFibDeliverFailedVrf,
            hh3cFibDeliverFailedIPType,
            hh3cFibDeliverFailedIPAddress,
            hh3cFibDeliverFailedMask,
            hh3cFibDeliverFailedReasonId
        }
    STATUS      current
    DESCRIPTION
        "The route success to be delivered in 60 minutes."
    ::= { hh3cFibDeliverFailedTrap 2 }


hh3cFibDeliverFailedTrapbjects OBJECT IDENTIFIER ::= { hh3cFibDeliverFailedTraps 1 }

-- hh3cFibDeliverFailedTrapbjects

hh3cFibDeliverFailedVrf OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The VRF of the FIB entry."
    ::= { hh3cFibDeliverFailedTrapbjects 1 }

hh3cFibDeliverFailedIPType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The inet address type of the FIB entry."
    ::= { hh3cFibDeliverFailedTrapbjects 2 }

hh3cFibDeliverFailedIPAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The inet address of the FIB entry."
    ::= { hh3cFibDeliverFailedTrapbjects 3 }

hh3cFibDeliverFailedMask OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The mask of the FIB entry."
    ::= { hh3cFibDeliverFailedTrapbjects 4 }

hh3cFibDeliverFailedReasonId OBJECT-TYPE
    SYNTAX      INTEGER
        {
            noResource(1),
            lpmFailed(2)
        }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The reason of the route deliver failed."
    ::= { hh3cFibDeliverFailedTrapbjects 5 }
END
