-- =================================================================
-- Copyright (c) 2004-2014 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: interface extension mib
-- Reference: IF-MIB
-- Version: V1.7
-- History:
--   V1.0 created by gaolong
--     Initial version 2004-11-13
--   V1.1 2007-01-13 Modified by wanglirong
--     Add hh3cIfStatGlobalFlowInterval and hh3cIfSpeedStatTable
--   V1.2 Modified by chenxi
--     Add hh3cRTParentIfTable, hh3cRTSubIfTable and
--     hh3cIfLinkModeTable 2007-10-15
--   V1.3 2009-05-05 Add hh3cIfPhysicalNumber, hh3cIfTable
--   V1.4 2009-08-08 Add hh3cIfMtu, hh3cIfBandwidth, hh3cIfDiscardPktRate,
--     hh3cIfExtTrapCfgTable
--   V1.5 2010-09-04 Add hh3cIfInNUcastPkts, hh3cIfOutNUcastPkts and hh3cIfStatusKeepTime by shuaixj
--   V1.6 2011-09-16 Add hh3cIfHCFlowStatTable by xiedong
--        2011-11-04 Add hh3cIfIsPoe by duyanbing
--   V1.7 2013-09-13 Added hh3cIfOperStatus and hh3cIfDownTimes by duyanbing
-- =================================================================
HH3C-IF-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
        hh3cCommon
    FROM HH3C-OID-MIB
        ifIndex, ifDescr
    FROM IF-MIB
        Integer32, Counter64, Unsigned32, TimeTicks,
        OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        CounterBasedGauge64
    FROM HCNUM-TC
        DisplayString, RowStatus, TruthValue
    FROM SNMPv2-TC;

hh3cIfExt MODULE-IDENTITY
    LAST-UPDATED "200905061936Z"        -- May 6, 2009 at 19:36 GMT
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip: 100085"
    DESCRIPTION
        "This MIB is an extension of interface MIBs such as IF-MIB.

        This MIB is applicable to routers, switches and other products.

        Some objects in this may be used only for some specific products,
        so users should refer to the related documents to acquire more
        detail information.
        "
    REVISION "200905061936Z"
    DESCRIPTION
        "Update this MIB module."
    REVISION "200411131936Z"        -- December 13, 2004 at 19:36 GMT
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { hh3cCommon 40 }


--
-- Node definitions
--

-- Scalar MIB objects, which are considered as global variables
-- to all interfaces in a device, are defined in this section.
hh3cIfExtScalarGroup OBJECT IDENTIFIER ::= { hh3cIfExt 1 }

hh3cIfStatGlobalFlowInterval OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sampling interval for in/out flow of all interfaces.
        Setting zero indicates closing the statistic function."
    ::= { hh3cIfExtScalarGroup 1 }

-- =================================================================
-- All other groups are defined below. Of course, scalar objects can
-- also be defined in a sub section, but they must be one part of
-- that sub section.

-- Note that a scalar group should be defined firstly and all
-- scalar objects are placed under that group when doing so.
hh3cIfExtGroup OBJECT IDENTIFIER ::= { hh3cIfExt 2 }


-- =================================================================
-- The section below describes statistics of interfaces in a device.
-- These statistics may not be included in standard MIBs.
hh3cIfStat OBJECT IDENTIFIER ::= { hh3cIfExtGroup 1 }

-- Define a scalar group which consists of all scalar objects used for
-- interface statistics.
hh3cIfStatScalarGroup OBJECT IDENTIFIER ::= { hh3cIfStat 1 }

hh3cIfStatTable OBJECT IDENTIFIER ::= { hh3cIfStat 2 }

hh3cIfFlowStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIfFlowStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to get statistic information
        of interfaces on a device."
    ::= { hh3cIfStatTable 1 }

hh3cIfFlowStatEntry OBJECT-TYPE
    SYNTAX      Hh3cIfFlowStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { hh3cIfFlowStatTable 1 }

Hh3cIfFlowStatEntry ::= SEQUENCE
    {
        hh3cIfStatFlowInterval    Integer32,
        hh3cIfStatFlowInBits      Unsigned32,
        hh3cIfStatFlowOutBits     Unsigned32,
        hh3cIfStatFlowInPkts      Unsigned32,
        hh3cIfStatFlowOutPkts     Unsigned32,
        hh3cIfStatFlowInBytes     Unsigned32,
        hh3cIfStatFlowOutBytes    Unsigned32
    }

hh3cIfStatFlowInterval OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sampling interval for in/out flow of interface.
        Setting zero indicates closing this statistic function
        and objects in this table should return 0."
    ::= { hh3cIfFlowStatEntry 1 }

hh3cIfStatFlowInBits OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In bits in the specific interval."
    ::= { hh3cIfFlowStatEntry 2 }

hh3cIfStatFlowOutBits OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out bits in specific interval."
    ::= { hh3cIfFlowStatEntry 3 }

hh3cIfStatFlowInPkts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In Packets in the specific interval."
    ::= { hh3cIfFlowStatEntry 4 }

hh3cIfStatFlowOutPkts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out packets in the specific interval."
    ::= { hh3cIfFlowStatEntry 5 }

hh3cIfStatFlowInBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In bytes in the specific interval."
    ::= { hh3cIfFlowStatEntry 6 }

hh3cIfStatFlowOutBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out bytes in the specific interval."
    ::= { hh3cIfFlowStatEntry 7 }


-- =================================================================
hh3cIfSpeedStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIfSpeedStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to get average speed information
        in the specific interval of interfaces on a device."
    ::= { hh3cIfStatTable 2 }

hh3cIfSpeedStatEntry OBJECT-TYPE
    SYNTAX      Hh3cIfSpeedStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { hh3cIfSpeedStatTable 1 }

Hh3cIfSpeedStatEntry ::= SEQUENCE
    {
        hh3cIfSpeedStatInterval    Integer32,
        hh3cIfSpeedStatInPkts      Unsigned32,
        hh3cIfSpeedStatOutPkts     Unsigned32,
        hh3cIfSpeedStatInBytes     Unsigned32,
        hh3cIfSpeedStatOutBytes    Unsigned32
    }

hh3cIfSpeedStatInterval OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sampling interval for in/out flow of interface.
        Setting zero indicates closing this statistic function
        and objects in this table should return 0."
    ::= { hh3cIfSpeedStatEntry 1 }

hh3cIfSpeedStatInPkts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of input packets per second in the specific interval by
        hh3cIfSpeedStatInterval."
    ::= { hh3cIfSpeedStatEntry 2 }

hh3cIfSpeedStatOutPkts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of output packets per second in the specific interval by
        hh3cIfSpeedStatInterval."
    ::= { hh3cIfSpeedStatEntry 3 }

hh3cIfSpeedStatInBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of input bytes per second in the specific interval by
        hh3cIfSpeedStatInterval."
    ::= { hh3cIfSpeedStatEntry 4 }

hh3cIfSpeedStatOutBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of output bytes per second in the specific interval by
        hh3cIfSpeedStatInterval."
    ::= { hh3cIfSpeedStatEntry 5 }

-- =================================================================
hh3cIfHCFlowStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIfHCFlowStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to get statistic information
         of interfaces on a device."
    ::= { hh3cIfStatTable 3 }

hh3cIfHCFlowStatEntry OBJECT-TYPE
    SYNTAX      Hh3cIfHCFlowStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { hh3cIfHCFlowStatTable 1 }

Hh3cIfHCFlowStatEntry ::= SEQUENCE
    {
        hh3cIfStatFlowHCInBits      CounterBasedGauge64,
        hh3cIfStatFlowHCOutBits     CounterBasedGauge64,
        hh3cIfStatFlowHCInPkts      CounterBasedGauge64,
        hh3cIfStatFlowHCOutPkts     CounterBasedGauge64,
        hh3cIfStatFlowHCInBytes     CounterBasedGauge64,
        hh3cIfStatFlowHCOutBytes    CounterBasedGauge64
    }

hh3cIfStatFlowHCInBits OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In bits in the specific interval.  This object is a 64-bit
         version of hh3cIfStatFlowInBits."
    ::= { hh3cIfHCFlowStatEntry 1 }

hh3cIfStatFlowHCOutBits OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out bits in specific interval.  This object is a 64-bit
         version of hh3cIfStatFlowOutBits."
    ::= { hh3cIfHCFlowStatEntry 2 }

hh3cIfStatFlowHCInPkts OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In Packets in the specific interval.  This object is a 64-bit
         version of hh3cIfStatFlowInPkts."
    ::= { hh3cIfHCFlowStatEntry 3 }

hh3cIfStatFlowHCOutPkts OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out packets in the specific interval.  This object is a 64-bit
         version of hh3cIfStatFlowOutPkts."
    ::= { hh3cIfHCFlowStatEntry 4 }

hh3cIfStatFlowHCInBytes OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In bytes in the specific interval.  This object is a 64-bit
         version of hh3cIfStatFlowInBytes."
    ::= { hh3cIfHCFlowStatEntry 5 }

hh3cIfStatFlowHCOutBytes OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out bytes in the specific interval.  This object is a 64-bit
         version of hh3cIfStatFlowOutBytes."
    ::= { hh3cIfHCFlowStatEntry 6 }

-- =================================================================

hh3cIfControl OBJECT IDENTIFIER ::= { hh3cIfExtGroup 2 }

hh3cRTParentIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cRTParentIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains all interfaces that can create sub
        interface."
    ::= { hh3cIfControl  1 }

hh3cRTParentIfEntry OBJECT-TYPE
    SYNTAX      Hh3cRTParentIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry describes a interface that can create sub
        interface."
    INDEX
        {
            hh3cRTParentIfIndex
        }
    ::= { hh3cRTParentIfTable 1}

Hh3cRTParentIfEntry    ::= SEQUENCE
    {
        hh3cRTParentIfIndex      Integer32,
        hh3cRTMinSubIfOrdinal    Integer32,
        hh3cRTMaxSubIfOrdinal    Integer32
    }

hh3cRTParentIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index of interface that can creat sub interface.  The value
        is the same as ifIndex value for this interface."
    ::= { hh3cRTParentIfEntry 1 }

hh3cRTMinSubIfOrdinal OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum ordinal of the sub interface can be created."
    ::= { hh3cRTParentIfEntry 2 }

hh3cRTMaxSubIfOrdinal OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The max ordinal of the sub interface can be created."
    ::= { hh3cRTParentIfEntry 3 }

-- =================================================================

hh3cRTSubIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cRTSubIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to create or delete sub interfaces.
        To create a sub interface, a valid parent interface must be
        specified by hh3cRTSubIfParentIfIndex and the hh3cRTSubIfOrdinal
        must be in the range between hh3cRTMinSubIfOrdinal and
        hh3cRTMaxSubIfOrdinal of the parent interface from
        hh3cRTParentIfTable.

        Sub interfaces are logical virtual interfaces configured on a
        main interface.  The main interface can be either a physical
        interface (such as a Layer 3 Ethernet interface) or a logical
        interface (such as an MFR interface).  The subinterfaces on a
        main interface share the physical layer parameters of the main
        interface but can have link layer and network layer parameters
        of their own.  Disabling or enabling a subinterface does not
        affect the main interface, but the main interface status change
        affects the subinterfaces.  The subinterfaces cannot operate
        normally unless the main interface is connected.
        A single physical interface containing multiple subinterfaces
        enables you to network in a more flexible way.

        You can create subinterfaces for the following physical
        interfaces:
        Ethernet interface.  An Ethernet subinterface associated with no
        VLAN supports only IPX, while an Ethernet subinterface associated
        with a VLAN supports both IP and IPX.
        WAN interfaces with their data link layer protocols being frame
        relay, whose subinterfaces support IP and IPX.
        WAN interfaces with their data link layer protocols being X.25,
        whose subinterfaces support IP and IPX.
        ATM interface, whose subinterfaces support only IP."
    ::= { hh3cIfControl  2 }

hh3cRTSubIfEntry OBJECT-TYPE
    SYNTAX      Hh3cRTSubIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The hh3cRTSubIfTable entry items"
    INDEX
        {
            hh3cRTSubIfParentIfIndex,
            hh3cRTSubIfOrdinal
        }
    ::= { hh3cRTSubIfTable 1}

Hh3cRTSubIfEntry    ::= SEQUENCE
    {
        hh3cRTSubIfParentIfIndex    Integer32,
        hh3cRTSubIfOrdinal          Integer32,
        hh3cRTSubIfSubIfIndex       Integer32,
        hh3cRTSubIfSubIfDesc        DisplayString,
        hh3cRTSubIfRowStatus        RowStatus
    }

hh3cRTSubIfParentIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The parent interface index.  The value should be the same as the
        hh3cRTParentIfIndex."
    ::= { hh3cRTSubIfEntry 1 }

hh3cRTSubIfOrdinal OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ordinal of sub interface.  It should between
        hh3cRTMinSubIfOrdinal and hh3cRTMaxSubIfOrdinal of the parent
        interface."
    ::= { hh3cRTSubIfEntry 2 }

hh3cRTSubIfSubIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ifIndex value of the sub interface"
    ::= { hh3cRTSubIfEntry 3 }

hh3cRTSubIfSubIfDesc OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the interface"
    ::= { hh3cRTSubIfEntry 4 }

hh3cRTSubIfRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status."
    ::= { hh3cRTSubIfEntry 5 }

-- =================================================================
hh3cIfLinkModeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIfLinkModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to get or set the link mode of an
        interface.
        According to the layer at which the device processes received
        data packets, Ethernet interfaces can operate in bridge or route
        mode."
    ::= { hh3cIfControl  3 }

hh3cIfLinkModeEntry OBJECT-TYPE
    SYNTAX      Hh3cIfLinkModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The interface link mode table entry"
    INDEX
        {
            hh3cIfLinkModeIndex
        }
    ::= { hh3cIfLinkModeTable 1}

Hh3cIfLinkModeEntry    ::= SEQUENCE
    {
        hh3cIfLinkModeIndex            Integer32,
        hh3cIfLinkMode                 INTEGER,
        hh3cIfLinkModeSwitchSupport    TruthValue
    }

hh3cIfLinkModeIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value is same as ifIndex."
    ::= { hh3cIfLinkModeEntry 1 }


hh3cIfLinkMode OBJECT-TYPE
    SYNTAX      INTEGER
        {
            bridgeMode(1),
            routeMode(2)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current link mode of the interface
        If hh3cIfLinkModeSwitchSupport is true, writing to the object can
        change the link mode of the interface."
    ::= { hh3cIfLinkModeEntry 2 }

hh3cIfLinkModeSwitchSupport OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Whether the interface supports link mode switching.
        If this object is true, the interface can operate in either
        bridge mode or route mode.  Otherwise the interfaces can operate
        only in bridge or route mode."
    ::= { hh3cIfLinkModeEntry 3 }

hh3cIfInterfaces OBJECT IDENTIFIER ::= { hh3cIfExtGroup 3 }

hh3cIfPhysicalNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Represents the number of physical interfaces in the device."
    ::= { hh3cIfInterfaces 1 }

hh3cIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of interface entries.  The number of entries is given by
         the value of IfNumber."
    ::= { hh3cIfInterfaces 2 }

hh3cIfEntry OBJECT-TYPE
    SYNTAX      Hh3cIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing management information applicable to a
         particular interface."
    INDEX
        {
            ifIndex
        }
    ::= { hh3cIfTable 1 }

Hh3cIfEntry ::= SEQUENCE
    {
        hh3cIfUpDownTimes      Integer32,
        hh3cIfMtu              Integer32,
        hh3cIfBandwidthRate    Integer32,
        hh3cIfDiscardPktRate   Integer32,
        hh3cIfStatusKeepTime   TimeTicks,
        hh3cIfInNUcastPkts     Counter64,
        hh3cIfOutNUcastPkts    Counter64,
        hh3cIfIsPoe            TruthValue,
        hh3cIfOperStatus       INTEGER,
        hh3cIfDownTimes        Integer32
    }

hh3cIfUpDownTimes OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The interface's up/down times, since the device was initialized."
    ::= { hh3cIfEntry 1 }

hh3cIfMtu OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The size of the largest datagram which can be sent/received on the
        interface, specified in octets.  For interfaces that are used for
        transmitting network datagram, this is the size of the largest network
        datagram that can be sent on the interface."
    ::= { hh3cIfEntry 2 }

hh3cIfBandwidthRate OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The rate of the bandwidth for an interface."
    ::= { hh3cIfEntry 3 }

hh3cIfDiscardPktRate OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The rate of the discarded packets for an interface."
    ::= { hh3cIfEntry 4 }

hh3cIfStatusKeepTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time since the interface
        entered its current operational state."
    ::= { hh3cIfEntry 5 }

hh3cIfInNUcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of non-unicast (i.e., subnetwork-
        broadcast or subnetwork-multicast) packets
        delivered to a higher-layer protocol."
    ::= { hh3cIfEntry 6 }

hh3cIfOutNUcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of packets that higher-level
        protocols requested be transmitted to a non-
        unicast (i.e., a subnetwork-broadcast or
        subnetwork-multicast) address."
    ::= { hh3cIfEntry 7 }

hh3cIfIsPoe OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Whether the interface supports poe."
    ::= { hh3cIfEntry 8 }

hh3cIfOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                up(1),        -- ready to forward packets
                down(2),
                testing(3),   -- in a test mode
                admindown(4)  -- shutdown by administrator
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Current status of the interface.  In testing state,
            no operational packets can be forwarded.  If ifAdminStatus
            is down, hh3cIfOperStatus should be admindown.  If
            ifAdminStatus is changed to up, hh3cIfOperStatus should
            change to up if the interface is ready to send and receive
            network traffic; otherwise, it should stay in down state."
    ::= { hh3cIfEntry 9 }

hh3cIfDownTimes OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of times the interface went down, since the device was initialized."
    ::= { hh3cIfEntry 10 }

--
-- Notification definitions
--
-- =================================================================
-- Traps are defined below.

hh3cIfExtTrap OBJECT IDENTIFIER ::= { hh3cIfExt 3 }
hh3cIfExtTrapPrex OBJECT IDENTIFIER ::= { hh3cIfExtTrap 0 }
-- All trap definitions should be placed under this object.

hh3cIfBandwidthUsageHigh NOTIFICATION-TYPE
    OBJECTS
        {
            ifDescr,
            hh3cIfBandwidthRate,
            hh3cIfBandwidthUpperLimit
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the rate of the bandwidth for the
         interface exceeds the upper limit."
    ::= { hh3cIfExtTrapPrex 1 }

hh3cIfDiscardPktRateHigh NOTIFICATION-TYPE
    OBJECTS
        {
            ifDescr,
            hh3cIfDiscardPktRate,
            hh3cIfDiscardPktRateUpperLimit
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the rate of the discarded packets
         for the interface exceeds the upper limit."
    ::= { hh3cIfExtTrapPrex 2 }

hh3cIfExtTrapObject OBJECT IDENTIFIER ::= { hh3cIfExtTrap 1 }

hh3cIfExtTrapCfgTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cIfExtTrapCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The trap configuration table."
    ::= { hh3cIfExtTrapObject 1 }

hh3cIfExtTrapCfgEntry OBJECT-TYPE
    SYNTAX      Hh3cIfExtTrapCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for this table."
    INDEX
        {
            ifIndex
        }
    ::= { hh3cIfExtTrapCfgTable 1 }

Hh3cIfExtTrapCfgEntry ::= SEQUENCE
    {
        hh3cIfBandwidthUpperLimit      Integer32,
        hh3cIfDiscardPktRateUpperLimit Integer32
    }

hh3cIfBandwidthUpperLimit OBJECT-TYPE
    SYNTAX      Integer32(1..100)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The rate of the bandwidth upper limit for an interface."
    ::= { hh3cIfExtTrapCfgEntry 1 }

hh3cIfDiscardPktRateUpperLimit OBJECT-TYPE
    SYNTAX      Integer32(1..100)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The rate of the discarded packets upper limit for an interface."
    ::= { hh3cIfExtTrapCfgEntry 2 }

END
