-- =================================================================
-- Copyright (c) 2004-2023 New H3C Tech. Co., Ltd.  All rights reserved.
--
-- Description: IP forwarding MIB File
-- Reference:
-- Version: V1.4
-- History:
-- V1.0 2021-10-11 created by zhangxing
-- V1.1 2021-12-08
--   Add hh3cIpfwFragTraps Modified by zhuqiuxue
-- V1.2 2022-07-14
--   Add hh3cIpfwMTUTable Modified by zhangxing
-- V1.3 2022-11-14
--   Add four NOTIFICATION-TYPE hh3cIpfwIpv4VfrExcAlarm,hh3cIpfwIPv4VfrExcAlarmResume,
--   hh3cIpfwIPv6VfrExcAlarm,hh3cIpfwIPv6VfrExcAlarmResume and seven OBJECT-TYPE
--   hh3cIpfwChassis,hh3cIpfwSlot,hh3cIpfwVsysID,hh3cIpfwIPv4FragBufSrcAddress,
--   hh3cIpfwIPv4FragBufDstAddress,hh3cIpfwIPv6FragBufSrcAddress,hh3cIpfwIPv6FragBufDstAddress
--   Modified by qiuhongdi
-- V1.4 2023-04-20
--   Add hh3cIpfwMbufAllocFailed and hh3cIpfwMbufAllocFailedNum
--   Modified by yuanyuchen
-- =================================================================
HH3C-IPFW-MIB DEFINITIONS ::= BEGIN

IMPORTS
    hh3cCommon
        FROM HH3C-OID-MIB
    OBJECT-TYPE, MODULE-IDENTITY, Unsigned32, Counter64, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    InterfaceIndex
        FROM IF-MIB;

hh3cIpfw MODULE-IDENTITY
    LAST-UPDATED
        "202304201610Z"
    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 contains objects that manage the configuration and
        information of IP forwarding.
        "
    REVISION "202304201610Z"
    DESCRIPTION
        "Add hh3cIpfwMbufAllocFailed and hh3cIpfwMbufAllocFailedNum."
    REVISION "202211141730Z"
    DESCRIPTION
        "Add four NOTIFICATION-TYPE hh3cIpfwIpv4VfrExcAlarm,hh3cIpfwIPv4VfrExcAlarmResume,
         hh3cIpfwIPv6VfrExcAlarm,hh3cIpfwIPv6VfrExcAlarmResume and seven OBJECT-TYPE
         hh3cIpfwChassis,hh3cIpfwSlot,hh3cIpfwVsysID,hh3cIpfwIPv4FragBufSrcAddress,
         hh3cIpfwIPv4FragBufDstAddress,hh3cIpfwIPv6FragBufSrcAddress,hh3cIpfwIPv6FragBufDstAddress."
    REVISION "202207141625Z"
    DESCRIPTION
        "Modified to add hh3cIpfwMTUTable."
    REVISION "202112081430Z"
    DESCRIPTION
        "Modified to add hh3cIpfwFragTraps."
    REVISION
        "202110111534Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { hh3cCommon 211 }

hh3cIpfwObjects OBJECT IDENTIFIER ::= { hh3cIpfw 1 }

-- ip forwarding speed table
hh3cIpfwSpeedTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIpfwSpeedEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains objects to get average speed information
                 in the specified interval for interfaces on a device."
    ::= { hh3cIpfwObjects 1 }

hh3cIpfwSpeedEntry    OBJECT-TYPE
    SYNTAX      Hh3cIpfwSpeedEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry items."
    INDEX {
            hh3cIpfwSpeedStatIfIndex,
            hh3cIpfwSpeedStatIpType
          }
    ::= { hh3cIpfwSpeedTable 1 }

Hh3cIpfwSpeedEntry ::=
    SEQUENCE
    {
            hh3cIpfwSpeedStatIfIndex              InterfaceIndex,
            hh3cIpfwSpeedStatIpType               INTEGER,
            hh3cIpfwSpeedStatInterval             Unsigned32,
            hh3cIpfwSpeedStatInPkts               Counter64,
            hh3cIpfwSpeedStatOutPkts              Counter64,
            hh3cIpfwSpeedStatInBytes              Counter64,
            hh3cIpfwSpeedStatOutBytes             Counter64,
            hh3cIpfwSpeedStatInBits               Counter64,
            hh3cIpfwSpeedStatOutBits              Counter64
    }

hh3cIpfwSpeedStatIfIndex    OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index value which uniquely identifies the interface to
            which this entry is applicable. The interface identified by
            a particular value of this index is the same interface as
            identified by the same value of RFC 2863's ifIndex."
    ::= { hh3cIpfwSpeedEntry 1 }

hh3cIpfwSpeedStatIpType    OBJECT-TYPE
    SYNTAX INTEGER {
                     ipv4(1),
                     ipv6(2)
                   }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "IP version."
    ::= { hh3cIpfwSpeedEntry 2 }

hh3cIpfwSpeedStatInterval   OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Sampling interval for in/out flow of interface."
    ::= { hh3cIpfwSpeedEntry 3 }

hh3cIpfwSpeedStatInPkts   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Average of input packets per second in the specified interval by
             hh3cIpfwSpeedStatInterval."
    ::= { hh3cIpfwSpeedEntry 4 }

hh3cIpfwSpeedStatOutPkts   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Average of output packets per second in the specified interval by
             hh3cIpfwSpeedStatInterval."
    ::= { hh3cIpfwSpeedEntry 5 }

hh3cIpfwSpeedStatInBytes   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Average of input bytes per second in the specified interval by
             hh3cIpfwSpeedStatInterval."
    ::= { hh3cIpfwSpeedEntry 6 }

hh3cIpfwSpeedStatOutBytes   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Average of output bytes per second in the specified interval by
             hh3cIpfwSpeedStatInterval."
    ::= { hh3cIpfwSpeedEntry 7 }

hh3cIpfwSpeedStatInBits   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Average of input bits per second in the specified interval by
             hh3cIpfwSpeedStatInterval."
    ::= { hh3cIpfwSpeedEntry 8 }

hh3cIpfwSpeedStatOutBits   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Average of output bits per second in the specified interval by
             hh3cIpfwSpeedStatInterval."
    ::= { hh3cIpfwSpeedEntry 9 }


-- ip mtu table
hh3cIpfwMTUTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIpfwMTUEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains objects to get interface MTU information
                 on a device."
    ::= { hh3cIpfwObjects 2 }

hh3cIpfwMTUEntry    OBJECT-TYPE
    SYNTAX      Hh3cIpfwMTUEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry items."
    INDEX {
            hh3cIpfwMTUIfIndex,
            hh3cIpfwMTUIpType
          }
    ::= { hh3cIpfwMTUTable 1 }

Hh3cIpfwMTUEntry ::=
    SEQUENCE
    {
            hh3cIpfwMTUIfIndex              InterfaceIndex,
            hh3cIpfwMTUIpType               INTEGER,
            hh3cIpfwMTUValue                Unsigned32
    }

hh3cIpfwMTUIfIndex    OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index value which uniquely identifies the interface to
            which this entry is applicable. The interface identified by
            a particular value of this index is the same interface as
            identified by the same value of RFC 2863's ifIndex."
    ::= { hh3cIpfwMTUEntry 1 }

hh3cIpfwMTUIpType    OBJECT-TYPE
    SYNTAX INTEGER {
                     ipv4(1),
                     ipv6(2)
                   }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "IP version."
    ::= { hh3cIpfwMTUEntry 2 }

hh3cIpfwMTUValue   OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A interface MTU in bytes."
    ::= { hh3cIpfwMTUEntry 3 }


hh3cIpfwFragTraps OBJECT IDENTIFIER ::= { hh3cIpfw 2 }
hh3cIpfwFragTrap OBJECT IDENTIFIER ::= { hh3cIpfwFragTraps 0 }

-- hh3cIpfwFragTrap
hh3cIpfwPktNumExcAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpfwIfIndex,
            hh3cIpfwPeerAddress,
            hh3cIpfwInterfaceName
        }
    STATUS      current
    DESCRIPTION
        "Received fragment packets over limit alarm was detected."
    ::= { hh3cIpfwFragTrap 1 }

hh3cIpfwPktNumExcAlarmResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpfwIfIndex,
            hh3cIpfwPeerAddress,
            hh3cIpfwInterfaceName
        }
    STATUS      current
    DESCRIPTION
        "Received fragment packets over limit alarm was resumed."
    ::= { hh3cIpfwFragTrap 2 }

hh3cIpfwIPv4VfrExcAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpfwChassis,
            hh3cIpfwSlot,
            hh3cIpfwVsysID,
            hh3cIpfwIPv4FragBufSrcAddress,
            hh3cIpfwIPv4FragBufDstAddress
        }
    STATUS      current
    DESCRIPTION
        "IP virtual fragment reassembly over limit alarm was detected."
    ::= { hh3cIpfwFragTrap 3 }

hh3cIpfwIPv4VfrExcAlarmResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpfwChassis,
            hh3cIpfwSlot,
            hh3cIpfwVsysID
        }
    STATUS      current
    DESCRIPTION
        "IP virtual fragment reassembly over limit alarm was resumed."
    ::= { hh3cIpfwFragTrap 4 }

hh3cIpfwIPv6VfrExcAlarm NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpfwChassis,
            hh3cIpfwSlot,
            hh3cIpfwVsysID,
            hh3cIpfwIPv6FragBufSrcAddress,
            hh3cIpfwIPv6FragBufDstAddress
        }
    STATUS      current
    DESCRIPTION
        "IPv6 virtual fragment reassembly over limit alarm was detected."
    ::= { hh3cIpfwFragTrap 5 }

hh3cIpfwIPv6VfrExcAlarmResume NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpfwChassis,
            hh3cIpfwSlot,
            hh3cIpfwVsysID
        }
    STATUS      current
    DESCRIPTION
        "IPv6 virtual fragment reassembly over limit alarm was resumed."
    ::= { hh3cIpfwFragTrap 6 }

hh3cIpfwMbufAllocFailed NOTIFICATION-TYPE
    OBJECTS
        {
            hh3cIpfwMbufAllocFailedNum
        }
    STATUS      current
    DESCRIPTION
        "Failed to create an MBUF(memory buffer) data block because of
         insufficient memory."
    ::= { hh3cIpfwFragTrap 7 }

hh3cIpfwFragTrapObjects OBJECT IDENTIFIER ::= { hh3cIpfwFragTraps 1 }

-- hh3cIPFWFragTrapObjects
hh3cIpfwIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The information of interface index."
    ::= { hh3cIpfwFragTrapObjects 1 }

hh3cIpfwPeerAddress OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The IP address of the peer."
    ::= { hh3cIpfwFragTrapObjects 2 }

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

hh3cIpfwChassis OBJECT-TYPE
    SYNTAX      Unsigned32(0..2147483647)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Chassis number."
    ::= { hh3cIpfwFragTrapObjects 4 }

hh3cIpfwSlot OBJECT-TYPE
    SYNTAX      Unsigned32(0..2147483647)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Slot number."
    ::= { hh3cIpfwFragTrapObjects 5 }

hh3cIpfwVsysID OBJECT-TYPE
    SYNTAX      Unsigned32(0..2147483647)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Vsystem number."
    ::= { hh3cIpfwFragTrapObjects 6 }

hh3cIpfwIPv4FragBufSrcAddress OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Source ip address."
    ::= { hh3cIpfwFragTrapObjects 7 }

hh3cIpfwIPv4FragBufDstAddress OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Destination ip address."
    ::= { hh3cIpfwFragTrapObjects 8 }

hh3cIpfwIPv6FragBufSrcAddress OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Source ipv6 address."
    ::= { hh3cIpfwFragTrapObjects 9 }

hh3cIpfwIPv6FragBufDstAddress OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Destination ipv6 address."
    ::= { hh3cIpfwFragTrapObjects 10 }

hh3cIpfwMbufAllocFailedNum OBJECT-TYPE
    SYNTAX      Unsigned32(0..2147483647)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The number of MBUF memory alloc failures."
    ::= { hh3cIpfwFragTrapObjects 11 }

END

