-- ============================================================================
-- 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 tunnel trap.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2022-05-16
--   Initial version, created by shaojunjun
--   Add hh3cTunnelTrapStatus
--   Modify by yuanyuchen
--   Add hh3cTunnelTrapVxlanCfg, hh3cTunnelTrapVxlanDecap,
--   hh3cTunnelTrapIfNumExceed
-- ============================================================================
HH3C-TUNNEL-TRAP-MIB DEFINITIONS ::= BEGIN

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

-- Node definitions
hh3cTunnelTrap MODULE-IDENTITY
    LAST-UPDATED "202205161800Z"        -- MAY 16, 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 tunnel trap warning feature only."
    REVISION "202205161800Z"
    DESCRIPTION
        "The initial version of this MIB file.
         Add hh3cTunnelTrapVxlanCfg, hh3cTunnelTrapVxlanDecap,
         hh3cTunnelTrapIfNumExceed, hh3cTunnelTrapStatus."
    ::= { hh3cCommon 226}

-- hh3cTunnelTrapStatus
hh3cTunnelTrapStatus OBJECT IDENTIFIER ::= { hh3cTunnelTrap 1 }
hh3cTunnelTrapVxlanStatus OBJECT IDENTIFIER  ::= { hh3cTunnelTrapStatus 1 }
hh3cTunnelTrapsVxlanStatus OBJECT IDENTIFIER  ::= { hh3cTunnelTrapVxlanStatus 0 }

-- hh3cTunnelTrapsVxlanStatus
hh3cTunnelTrapVxlanStatusUp NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cTunnelTrapVxlanStatusSType,
            hh3cTunnelTrapVxlanStatusSrcIP,
            hh3cTunnelTrapVxlanStatusDType,
            hh3cTunnelTrapVxlanStatusDstIP
        }
    STATUS      current
    DESCRIPTION
        "If the status of the VXLAN tunnel changes to up,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cTunnelTrapsVxlanStatus 1 }

hh3cTunnelTrapVxlanStatusDown NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cTunnelTrapVxlanStatusSType,
            hh3cTunnelTrapVxlanStatusSrcIP,
            hh3cTunnelTrapVxlanStatusDType,
            hh3cTunnelTrapVxlanStatusDstIP
        }
    STATUS      current
    DESCRIPTION
        "If the status of the VXLAN tunnel changes to down,
         a trap message is generated and sent to the remote monitoring device."
    ::= { hh3cTunnelTrapsVxlanStatus 2 }

hh3cTunnelTrapStatusObjects OBJECT IDENTIFIER  ::= { hh3cTunnelTrapVxlanStatus 1 }

-- hh3cTunnelTrapStatusObjects
hh3cTunnelTrapVxlanStatusSType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VXLAN tunnel source address type."
    ::= { hh3cTunnelTrapStatusObjects 1 }

hh3cTunnelTrapVxlanStatusSrcIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VXLAN tunnel source address."
    ::= { hh3cTunnelTrapStatusObjects 2 }

hh3cTunnelTrapVxlanStatusDType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VXLAN tunnel destination address type."
    ::= { hh3cTunnelTrapStatusObjects 3 }

hh3cTunnelTrapVxlanStatusDstIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        " VXLAN tunnel destination address."
    ::= { hh3cTunnelTrapStatusObjects 4 }

hh3cTunnelTrapVxlanCfg OBJECT IDENTIFIER  ::= { hh3cTunnelTrap 2 }
hh3cTunnelTrapsVxlanCfg OBJECT IDENTIFIER  ::= { hh3cTunnelTrapVxlanCfg 0 }

-- hh3cTunnelTrapsVxlanCfg
hh3cTunnelTrapVxlanCfgFailed NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cTunnelTrapVxlanCfgTunnelIfNo
        }
    STATUS      current
    DESCRIPTION
        "Vxlan tunnel configuration delivery failed."
    ::= { hh3cTunnelTrapsVxlanCfg 1 }

hh3cTunnelTrapVxlanCfgObjects OBJECT IDENTIFIER  ::= { hh3cTunnelTrapVxlanCfg 1 }

-- hh3cTunnelTrapVxlanCfgObjects
hh3cTunnelTrapVxlanCfgTunnelIfNo OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Tunnel interface number."
    ::= { hh3cTunnelTrapVxlanCfgObjects 1 }

hh3cTunnelTrapVxlanDecap OBJECT IDENTIFIER  ::= { hh3cTunnelTrap 3 }
hh3cTunnelTrapsVxlanDecap OBJECT IDENTIFIER  ::= { hh3cTunnelTrapVxlanDecap 0 }

-- hh3cTunnelTrapsVxlanDecap
hh3cTunnelTrapVxlanFailDecapPkt NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cTunnelTrapVxlanChassis,
            hh3cTunnelTrapVxlanSlot,
            hh3cTunnelTrapVxlanVni,
            hh3cTunnelTrapVxlanSrcType,
            hh3cTunnelTrapVxlanSrcIP,
            hh3cTunnelTrapVxlanDstType,
            hh3cTunnelTrapVxlanDstIP
        }
    STATUS      current
    DESCRIPTION
        "Failed to decapsulate VXLAN packet on the device."
    ::= { hh3cTunnelTrapsVxlanDecap 1 }

hh3cTunnelTrapVxlanDecapObjects OBJECT IDENTIFIER  ::= { hh3cTunnelTrapVxlanDecap 1 }

-- hh3cTunnelTrapVxlanDecapObjects
hh3cTunnelTrapVxlanChassis 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."
    ::= { hh3cTunnelTrapVxlanDecapObjects 1 }

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

hh3cTunnelTrapVxlanVni OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The network identifier of VXLAN."
    ::= { hh3cTunnelTrapVxlanDecapObjects 3 }

hh3cTunnelTrapVxlanSrcType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VXLAN tunnel source address type."
    ::= { hh3cTunnelTrapVxlanDecapObjects 4 }

hh3cTunnelTrapVxlanSrcIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VXLAN tunnel source address."
    ::= { hh3cTunnelTrapVxlanDecapObjects 5 }

hh3cTunnelTrapVxlanDstType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VXLAN tunnel destination address type."
    ::= { hh3cTunnelTrapVxlanDecapObjects 6 }

hh3cTunnelTrapVxlanDstIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "VXLAN tunnel destination address."
    ::= { hh3cTunnelTrapVxlanDecapObjects 7 }

hh3cTunnelTrapIfNumExceed OBJECT IDENTIFIER  ::= { hh3cTunnelTrap 4 }
hh3cTunnelTrapsIfNumExceed OBJECT IDENTIFIER  ::= { hh3cTunnelTrapIfNumExceed 0 }

-- hh3cTunnelTrapsIfNumExceed
hh3cTunnelTrapIfNumExceeded NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cTunnelTrapIfNumExceedCurNum,
            hh3cTunnelTrapIfNumExceedSpecNum
        }
    STATUS      current
    DESCRIPTION
        "The number of tunnel interfaces on the device exceeds the limit."
    ::= { hh3cTunnelTrapsIfNumExceed 1 }

hh3cTunnelTrapIfNumExceedObjects OBJECT IDENTIFIER  ::= { hh3cTunnelTrapIfNumExceed 1 }

-- hh3cTunnelTrapIfNumExceedObjects
hh3cTunnelTrapIfNumExceedCurNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Current number of tunnel interfaces."
    ::= { hh3cTunnelTrapIfNumExceedObjects 1 }

hh3cTunnelTrapIfNumExceedSpecNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Maximum number of tunnel interfaces."
    ::= { hh3cTunnelTrapIfNumExceedObjects 2 }

END

