-- =================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description: interface extension mib
-- Reference: IF-MIB
-- Version: V1.8
-- History:
--   V1.0 created by gaolong
--     Initial version 2004-11-13
--   V1.1 2007-01-13 Modified by wanglirong
--     Add hpnicfIfStatGlobalFlowInterval and hpnicfIfSpeedStatTable
--   V1.2 Modified by chenxi
--     Add hpnicfRTParentIfTable, hpnicfRTSubIfTable and
--     hpnicfIfLinkModeTable 2007-10-15
--   V1.3 2009-05-05 Add hpnicfIfPhysicalNumber, hpnicfIfTable
--   V1.4 2009-08-08 Add hpnicfIfMtu, hpnicfIfBandwidth, hpnicfIfDiscardPktRate,
--     hpnicfIfExtTrapCfgTable
--   V1.5 2010-09-04 Add hpnicfIfInNUcastPkts, hpnicfIfOutNUcastPkts and hpnicfIfStatusKeepTime by shuaixj
--   V1.6 2011-09-16 Add hpnicfIfHCFlowStatTable by xiedong
--        2011-11-04 Add hpnicfIfIsPoe by duyanbing
--   V1.7 2013-09-13 Added hpnicfIfOperStatus and hpnicfIfDownTimes by duyanbing
--   V1.8 2014-07-23 Added hpnicfIfShutDownInterval and hpnicfIfUsingTable by xiedong
--        2014-09-19 Added hpnicfIfDampeningSuppressed and hpnicfIfDampeningNotSuppressed by yinzhonghong
-- =================================================================
HPN-ICF-IF-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
        hpnicfCommon
    FROM HPN-ICF-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;

hpnicfIfExt MODULE-IDENTITY
    LAST-UPDATED "200905061936Z"        -- May 6, 2009 at 19:36 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    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
        detailed 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."
    ::= { hpnicfCommon 40 }


--
-- Node definitions
--

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

hpnicfIfStatGlobalFlowInterval 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."
    ::= { hpnicfIfExtScalarGroup 1 }

hpnicfIfShutDownInterval OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set the port status detection timer.  The device starts a port status
        detection timer when a port is shut down by a protocol.  Once the timer
        expires, the device brings up the port so the port status reflects
        the port's physical status."
    ::= { hpnicfIfExtScalarGroup 2 }

-- =================================================================
-- 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.
hpnicfIfExtGroup OBJECT IDENTIFIER ::= { hpnicfIfExt 2 }


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

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

hpnicfIfStatTable OBJECT IDENTIFIER ::= { hpnicfIfStat 2 }

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

hpnicfIfFlowStatEntry OBJECT-TYPE
    SYNTAX      HpnicfIfFlowStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { hpnicfIfFlowStatTable 1 }

HpnicfIfFlowStatEntry ::= SEQUENCE
    {
        hpnicfIfStatFlowInterval    Integer32,
        hpnicfIfStatFlowInBits      Unsigned32,
        hpnicfIfStatFlowOutBits     Unsigned32,
        hpnicfIfStatFlowInPkts      Unsigned32,
        hpnicfIfStatFlowOutPkts     Unsigned32,
        hpnicfIfStatFlowInBytes     Unsigned32,
        hpnicfIfStatFlowOutBytes    Unsigned32
    }

hpnicfIfStatFlowInterval 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."
    ::= { hpnicfIfFlowStatEntry 1 }

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

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

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

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

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

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


-- =================================================================
hpnicfIfSpeedStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfIfSpeedStatEntry
    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."
    ::= { hpnicfIfStatTable 2 }

hpnicfIfSpeedStatEntry OBJECT-TYPE
    SYNTAX      HpnicfIfSpeedStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { hpnicfIfSpeedStatTable 1 }

HpnicfIfSpeedStatEntry ::= SEQUENCE
    {
        hpnicfIfSpeedStatInterval    Integer32,
        hpnicfIfSpeedStatInPkts      Unsigned32,
        hpnicfIfSpeedStatOutPkts     Unsigned32,
        hpnicfIfSpeedStatInBytes     Unsigned32,
        hpnicfIfSpeedStatOutBytes    Unsigned32
    }

hpnicfIfSpeedStatInterval 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."
    ::= { hpnicfIfSpeedStatEntry 1 }

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

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

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

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

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

hpnicfIfHCFlowStatEntry OBJECT-TYPE
    SYNTAX      HpnicfIfHCFlowStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { hpnicfIfHCFlowStatTable 1 }

HpnicfIfHCFlowStatEntry ::= SEQUENCE
    {
        hpnicfIfStatFlowHCInBits      CounterBasedGauge64,
        hpnicfIfStatFlowHCOutBits     CounterBasedGauge64,
        hpnicfIfStatFlowHCInPkts      CounterBasedGauge64,
        hpnicfIfStatFlowHCOutPkts     CounterBasedGauge64,
        hpnicfIfStatFlowHCInBytes     CounterBasedGauge64,
        hpnicfIfStatFlowHCOutBytes    CounterBasedGauge64
    }

hpnicfIfStatFlowHCInBits 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 hpnicfIfStatFlowInBits."
    ::= { hpnicfIfHCFlowStatEntry 1 }

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

hpnicfIfStatFlowHCInPkts 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 hpnicfIfStatFlowInPkts."
    ::= { hpnicfIfHCFlowStatEntry 3 }

hpnicfIfStatFlowHCOutPkts 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 hpnicfIfStatFlowOutPkts."
    ::= { hpnicfIfHCFlowStatEntry 4 }

hpnicfIfStatFlowHCInBytes 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 hpnicfIfStatFlowInBytes."
    ::= { hpnicfIfHCFlowStatEntry 5 }

hpnicfIfStatFlowHCOutBytes 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 hpnicfIfStatFlowOutBytes."
    ::= { hpnicfIfHCFlowStatEntry 6 }

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

hpnicfIfControl OBJECT IDENTIFIER ::= { hpnicfIfExtGroup 2 }

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

hpnicfRTParentIfEntry OBJECT-TYPE
    SYNTAX      HpnicfRTParentIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry describes a interface that can create sub
        interface."
    INDEX
        {
            hpnicfRTParentIfIndex
        }
    ::= { hpnicfRTParentIfTable 1}

HpnicfRTParentIfEntry    ::= SEQUENCE
    {
        hpnicfRTParentIfIndex      Integer32,
        hpnicfRTMinSubIfOrdinal    Integer32,
        hpnicfRTMaxSubIfOrdinal    Integer32
    }

hpnicfRTParentIfIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    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."
    ::= { hpnicfRTParentIfEntry 1 }

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

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

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

hpnicfRTSubIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfRTSubIfEntry
    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 hpnicfRTSubIfParentIfIndex and the hpnicfRTSubIfOrdinal
        must be in the range between hpnicfRTMinSubIfOrdinal and
        hpnicfRTMaxSubIfOrdinal of the parent interface from
        hpnicfRTParentIfTable.

        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."
    ::= { hpnicfIfControl  2 }

hpnicfRTSubIfEntry OBJECT-TYPE
    SYNTAX      HpnicfRTSubIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The hpnicfRTSubIfTable entry items"
    INDEX
        {
            hpnicfRTSubIfParentIfIndex,
            hpnicfRTSubIfOrdinal
        }
    ::= { hpnicfRTSubIfTable 1}

HpnicfRTSubIfEntry    ::= SEQUENCE
    {
        hpnicfRTSubIfParentIfIndex    Integer32,
        hpnicfRTSubIfOrdinal          Integer32,
        hpnicfRTSubIfSubIfIndex       Integer32,
        hpnicfRTSubIfSubIfDesc        DisplayString,
        hpnicfRTSubIfRowStatus        RowStatus
    }

hpnicfRTSubIfParentIfIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The parent interface index.  The value should be the same as the
        hpnicfRTParentIfIndex."
    ::= { hpnicfRTSubIfEntry 1 }

hpnicfRTSubIfOrdinal OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ordinal of sub interface.  It should between
        hpnicfRTMinSubIfOrdinal and hpnicfRTMaxSubIfOrdinal of the parent
        interface."
    ::= { hpnicfRTSubIfEntry 2 }

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

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

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

-- =================================================================
hpnicfIfLinkModeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfIfLinkModeEntry
    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."
    ::= { hpnicfIfControl  3 }

hpnicfIfLinkModeEntry OBJECT-TYPE
    SYNTAX      HpnicfIfLinkModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The interface link mode table entry"
    INDEX
        {
            hpnicfIfLinkModeIndex
        }
    ::= { hpnicfIfLinkModeTable 1}

HpnicfIfLinkModeEntry    ::= SEQUENCE
    {
        hpnicfIfLinkModeIndex            Integer32,
        hpnicfIfLinkMode                 INTEGER,
        hpnicfIfLinkModeSwitchSupport    TruthValue
    }

hpnicfIfLinkModeIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value is same as ifIndex."
    ::= { hpnicfIfLinkModeEntry 1 }


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

hpnicfIfLinkModeSwitchSupport 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."
    ::= { hpnicfIfLinkModeEntry 3 }

hpnicfIfInterfaces OBJECT IDENTIFIER ::= { hpnicfIfExtGroup 3 }

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

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

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

HpnicfIfEntry ::= SEQUENCE
    {
        hpnicfIfUpDownTimes      Integer32,
        hpnicfIfMtu              Integer32,
        hpnicfIfBandwidthRate    Integer32,
        hpnicfIfDiscardPktRate   Integer32,
        hpnicfIfStatusKeepTime   TimeTicks,
        hpnicfIfInNUcastPkts     Counter64,
        hpnicfIfOutNUcastPkts    Counter64,
        hpnicfIfIsPoe            TruthValue,
        hpnicfIfOperStatus       INTEGER,
        hpnicfIfDownTimes        Integer32
    }

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

hpnicfIfMtu 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."
    ::= { hpnicfIfEntry 2 }

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

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

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

hpnicfIfInNUcastPkts 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."
    ::= { hpnicfIfEntry 6 }

hpnicfIfOutNUcastPkts 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."
    ::= { hpnicfIfEntry 7 }

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

hpnicfIfOperStatus 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, hpnicfIfOperStatus should be admindown.  If
            ifAdminStatus is changed to up, hpnicfIfOperStatus should
            change to up if the interface is ready to send and receive
            network traffic; otherwise, it should stay in down state."
    ::= { hpnicfIfEntry 9 }

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

hpnicfIfUsingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfIfUsingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing management information applicable to splitting
       interfaces.  To improve port density, reduce costs, and improve network
       flexibility, a high-bandwidth interface can be split into multiple
       low-bandwidth breakout interfaces, and the breakout interfaces can be
       combined into a higher-bandwidth interface.
       For example, a 40-GE interface can be split into four 10-GE breakout
       interfaces.  After the operation takes effect on a 40-GE interface, the
       system deletes the 40-GE interface and creates four 10-GE breakout
       interfaces."
    ::= { hpnicfIfInterfaces 3 }

hpnicfIfUsingEntry OBJECT-TYPE
    SYNTAX      HpnicfIfUsingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of hpnicfIfUsingTable."
    INDEX { hpnicfIfUsingIndex }
    ::= { hpnicfIfUsingTable 1 }

HpnicfIfUsingEntry ::= SEQUENCE
    {
        hpnicfIfUsingIndex              Integer32,
        hpnicfIfUsingSupportType        Integer32,
        hpnicfIfUsingType               INTEGER,
        hpnicfIfUsingStatus             INTEGER
    }

hpnicfIfUsingIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Index of an interface which can be split into multiple low-bandwidth
        breakout interfaces or be restored to a high-bandwidth interface."
    ::= { hpnicfIfUsingEntry 1 }

hpnicfIfUsingSupportType OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the port type which can be split into or restored to.
        From lowest bit, each bit corresponds to a port type ('10GE', '20GE',
        '40GE', '100GE').
        For example, value 3 means this object can be split into 10GE or 20GE,
        value 4 means this object can be split into 40GE, or can be restored to
        40GE."
    ::= { hpnicfIfUsingEntry 2 }

hpnicfIfUsingType OBJECT-TYPE
    SYNTAX  INTEGER {
                noUsing(0),
                using10GE(1),
                using20GE(2),
                using40GE(3),
                using100GE(4)
             }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies the port type that can be split into or restored to.

        After this object is set to a none-zero value, the operation returns
        success in the following cases:
        1.  The original instance stills exist and is read as a non-zero value.
            In this case, object hpnicfIfUsingStatus change to needReboot(1),
            which means that you need to reboot the line card (for distributed
            devices) or device (for centralized devices) where the port is
            located to make the operation take effect.
            Set this object to noUsing(0) for cancelling the operation.
        2.  The operation takes effect immediately.
        Original instance is deleted and new instance is created while the
        operation takes effect."
    ::= { hpnicfIfUsingEntry 3 }

hpnicfIfUsingStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                noUsing(0),
                needReboot(1)
             }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "After object hpnicfIfUsingType is set to a none-zero value, if the operation
        does not takes effect before reboot the line card (for distributed devices)
        or device (for centralized devices) where the port is located, the value
        of this object is needReboot(1)."
    ::= { hpnicfIfUsingEntry 4 }

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

hpnicfIfExtTrap OBJECT IDENTIFIER ::= { hpnicfIfExt 3 }
hpnicfIfExtTrapPrex OBJECT IDENTIFIER ::= { hpnicfIfExtTrap 0 }
-- All trap definitions should be placed under this object.

hpnicfIfBandwidthUsageHigh NOTIFICATION-TYPE
    OBJECTS
        {
            ifDescr,
            hpnicfIfBandwidthRate,
            hpnicfIfBandwidthUpperLimit
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the rate of the bandwidth for the
         interface exceeds the upper limit."
    ::= { hpnicfIfExtTrapPrex 1 }

hpnicfIfDiscardPktRateHigh NOTIFICATION-TYPE
    OBJECTS
        {
            ifDescr,
            hpnicfIfDiscardPktRate,
            hpnicfIfDiscardPktRateUpperLimit
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the rate of the discarded packets
         for the interface exceeds the upper limit."
    ::= { hpnicfIfExtTrapPrex 2 }

hpnicfIfDampeningSuppressed NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the interface is suppressed
         via dampening."
    ::= { hpnicfIfExtTrapPrex 3 }

hpnicfIfDampeningNotSuppressed NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the interface is resumed to
         not suppressed via dampening."
    ::= { hpnicfIfExtTrapPrex 4 }

hpnicfIfExtTrapObject OBJECT IDENTIFIER ::= { hpnicfIfExtTrap 1 }

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

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

HpnicfIfExtTrapCfgEntry ::= SEQUENCE
    {
        hpnicfIfBandwidthUpperLimit      Integer32,
        hpnicfIfDiscardPktRateUpperLimit Integer32
    }

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

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

END
