-- =================================================================
-- Copyright (c) 2004-2018 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: interface extension mib
-- Reference: IF-MIB
-- Version: V2.1
-- History:
--   V1.0 Created by gaolong
--     Initial version 2004-11-13
--   V1.1 2007-01-13 Modified by wanglirong
--     Added h3cIfStatGlobalFlowInterval and h3cIfSpeedStatTable
--   V1.2 Modified by chenxi
--     Added h3cRTParentIfTable, h3cRTSubIfTable, and
--     h3cIfLinkModeTable 2007-10-15
--   V1.3 2009-05-05 Added h3cIfPhysicalNumber and h3cIfTable
--   V1.4 2009-08-08 Added h3cIfMtu, h3cIfBandwidth, h3cIfDiscardPktRate,
--     and h3cIfExtTrapCfgTable
--   V1.5 2010-09-04 Added h3cIfInNUcastPkts, h3cIfOutNUcastPkts, and h3cIfStatusKeepTime by shuaixj
--   V1.6 2011-09-16 Added h3cIfHCFlowStatTable by xiedong
--        2011-11-04 Added h3cIfIsPoe by duyanbing
--   V1.7 2013-09-13 Added h3cIfOperStatus and h3cIfDownTimes by duyanbing
--   V1.8 2014-07-23 Added h3cIfShutDownInterval and h3cIfUsingTable by xiedong
--        2014-09-19 Added h3cIfDampeningSuppressed and h3cIfDampeningNotSuppressed by yinzhonghong
--   V1.9 2014-11-20 Added h3cIfPortTypeTable, h3cIfPfcStatus, and h3cIfPfcDot1pNoDrop by songhao
--   V2.0 2015-02-12 Added h3cIfPortUp, h3cIfPortDown by chenzhouhui
--        2015-12-10 Added h3cIfDescription by chenzhouhui
--   V2.1 2016-07-01 Added the values 25GE and 50GE to h3cIfUsingType and h3cIfUsingSupportType by yuhaiyan
--        2016-12-05 Added h3cIfHCSpeedStatTable by songhao.
--        2017-07-13 Added h3cIfFwdErrDiscards by songhao.
--        2017-12-13 Added h3cIfThroughputInKbps and h3cIfThroughputOutKbps by chenzhouhui.
--        2018-01-09 Added h3cIfMonScalarGroup,h3cIfMonGroup ,h3cIfMonGroup and h3cIfMonTrapPrex  by guhangchao.
--        2018-02-07 Added h3cIfPortDot1pTable,h3cIfPfcOutRising and h3cIfPfcInRising by guhangchao.
-- =================================================================
H3C-IF-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
        h3cCommon
    FROM HUAWEI-3COM-OID-MIB
        ifIndex, ifDescr, InterfaceIndex
    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;

h3cIfExt MODULE-IDENTITY
    LAST-UPDATED "201802070000Z"
    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 MIB may be used only for some specific products,
        so users should refer to the related documents to acquire more
        detailed information.
        "
    REVISION "201802070000Z"
    DESCRIPTION
        "Added h3cIfPortDot1pTable,h3cIfPfcOutRising and h3cIfPfcInRising."
    REVISION "201801090000Z"
    DESCRIPTION
        "Added h3cIfMonScalarGroup,h3cIfMonGroup ,h3cIfMonGroup and h3cIfMonTrapPrex."
    REVISION "201712131820Z"
    DESCRIPTION
        "Added Added h3cIfThroughputInKbps and h3cIfThroughputOutKbps."
    REVISION "201707131040Z"
    DESCRIPTION
        "Added h3cIfFwdErrDiscards."
    REVISION "201612051800Z"
    DESCRIPTION
        "Added h3cIfHCSpeedStatTable."
    REVISION "201607011700Z"
    DESCRIPTION
        "Added the values 25GE and 50GE to h3cIfUsingType and h3cIfUsingSupportType."
    REVISION "201512101000Z"
    DESCRIPTION
        "Added h3cIfDescription."
    REVISION "201504020458Z"
    DESCRIPTION
        "Added h3cIfPortUp and h3cIfPortDown"
    REVISION "201411200800Z"
    DESCRIPTION
        "Added h3cIfPortTypeTable, h3cIfPfcStatus, and h3cIfPfcDot1pNoDrop."
    REVISION "200905061936Z"
    DESCRIPTION
        "Update this MIB module."
    REVISION "200411131936Z"        -- December 13, 2004 at 19:36 GMT
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { h3cCommon 40 }


--
-- Node definitions
--

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

h3cIfStatGlobalFlowInterval 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."
    ::= { h3cIfExtScalarGroup 1 }

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

h3cIfThroughputInKbps OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Actual incoming throughput of the device in kbps."
    ::= { h3cIfExtScalarGroup 3 }

h3cIfThroughputOutKbps OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Actual outgoing throughput of the device in kbps."
    ::= { h3cIfExtScalarGroup 4 }

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

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


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

-- Define a scalar group that contains all scalar objects used for
-- interface statistics.
h3cIfStatScalarGroup OBJECT IDENTIFIER ::= { h3cIfStat 1 }

h3cIfStatTable OBJECT IDENTIFIER ::= { h3cIfStat 2 }

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

h3cIfStatEntry OBJECT-TYPE
    SYNTAX      H3cIfStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { h3cIfFlowStatTable 1 }

H3cIfStatEntry ::= SEQUENCE
    {
        h3cIfStatFlowInterval    Integer32,
        h3cIfStatFlowInBits      Unsigned32,
        h3cIfStatFlowOutBits     Unsigned32,
        h3cIfStatFlowInPkts      Unsigned32,
        h3cIfStatFlowOutPkts     Unsigned32,
        h3cIfStatFlowInBytes     Unsigned32,
        h3cIfStatFlowOutBytes    Unsigned32
    }

h3cIfStatFlowInterval 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."
    ::= { h3cIfStatEntry 1 }

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

h3cIfStatFlowOutBits OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out bits in the specified interval."
    ::= { h3cIfStatEntry 3 }

h3cIfStatFlowInPkts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In packets in the specified interval."
    ::= { h3cIfStatEntry 4 }

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

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

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


-- =================================================================
h3cIfSpeedStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfSpeedStatEntry
    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."
    ::= { h3cIfStatTable 2 }

h3cIfSpeedStatEntry OBJECT-TYPE
    SYNTAX      H3cIfSpeedStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { h3cIfSpeedStatTable 1 }

H3cIfSpeedStatEntry ::= SEQUENCE
    {
        h3cIfSpeedStatInterval    Integer32,
        h3cIfSpeedStatInPkts      Unsigned32,
        h3cIfSpeedStatOutPkts     Unsigned32,
        h3cIfSpeedStatInBytes     Unsigned32,
        h3cIfSpeedStatOutBytes    Unsigned32
    }

h3cIfSpeedStatInterval 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."
    ::= { h3cIfSpeedStatEntry 1 }

h3cIfSpeedStatInPkts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of input packets per second in the specified interval by
        h3cIfSpeedStatInterval."
    ::= { h3cIfSpeedStatEntry 2 }

h3cIfSpeedStatOutPkts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of output packets per second in the specified interval by
        h3cIfSpeedStatInterval."
    ::= { h3cIfSpeedStatEntry 3 }

h3cIfSpeedStatInBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of input bytes per second in the specified interval by
        h3cIfSpeedStatInterval."
    ::= { h3cIfSpeedStatEntry 4 }

h3cIfSpeedStatOutBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of output bytes per second in the specified interval by
        h3cIfSpeedStatInterval."
    ::= { h3cIfSpeedStatEntry 5 }

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

h3cIfHCFlowStatEntry OBJECT-TYPE
    SYNTAX      H3cIfHCFlowStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { h3cIfHCFlowStatTable 1 }

H3cIfHCFlowStatEntry ::= SEQUENCE
    {
        h3cIfStatFlowHCInBits      CounterBasedGauge64,
        h3cIfStatFlowHCOutBits     CounterBasedGauge64,
        h3cIfStatFlowHCInPkts      CounterBasedGauge64,
        h3cIfStatFlowHCOutPkts     CounterBasedGauge64,
        h3cIfStatFlowHCInBytes     CounterBasedGauge64,
        h3cIfStatFlowHCOutBytes    CounterBasedGauge64
    }

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

h3cIfStatFlowHCOutBits OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Out bits in the specified interval.  This object is a 64-bit
         version of h3cIfStatFlowOutBits."
    ::= { h3cIfHCFlowStatEntry 2 }

h3cIfStatFlowHCInPkts OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "In packets in the specified interval.  This object is a 64-bit
         version of h3cIfStatFlowInPkts."
    ::= { h3cIfHCFlowStatEntry 3 }

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

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

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

-- =================================================================
h3cIfHCSpeedStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfHCSpeedStatEntry
    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.

        This table is a 64-bit version of h3cIfSpeedStatTable."
    ::= { h3cIfStatTable 4 }

h3cIfHCSpeedStatEntry OBJECT-TYPE
    SYNTAX      H3cIfHCSpeedStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { h3cIfHCSpeedStatTable 1 }

H3cIfHCSpeedStatEntry ::= SEQUENCE
    {
        h3cIfSpeedStatHCInPkts      CounterBasedGauge64,
        h3cIfSpeedStatHCOutPkts     CounterBasedGauge64,
        h3cIfSpeedStatHCInBytes     CounterBasedGauge64,
        h3cIfSpeedStatHCOutBytes    CounterBasedGauge64
    }

h3cIfSpeedStatHCInPkts OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of input packets per second in the specified interval by
        h3cIfSpeedStatInterval.

        This object is a 64-bit version of h3cIfSpeedStatInPkts."
    ::= { h3cIfHCSpeedStatEntry 1 }

h3cIfSpeedStatHCOutPkts OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of output packets per second in the specified interval by
        h3cIfSpeedStatInterval.

        This object is a 64-bit version of h3cIfSpeedStatOutPkts."
    ::= { h3cIfHCSpeedStatEntry 2 }

h3cIfSpeedStatHCInBytes OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of input bytes per second in the specified interval by
        h3cIfSpeedStatInterval.

        This object is a 64-bit version of h3cIfSpeedStatInBytes."
    ::= { h3cIfHCSpeedStatEntry 3 }

h3cIfSpeedStatHCOutBytes OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Average of output bytes per second in the specified interval by
        h3cIfSpeedStatInterval.

        This object is a 64-bit version of h3cIfSpeedStatOutBytes."
    ::= { h3cIfHCSpeedStatEntry 4 }

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

h3cIfControl OBJECT IDENTIFIER ::= { h3cIfExtGroup 2 }

h3cRTParentIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cRTParentIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains all interfaces that can create subinterfaces."
    ::= { h3cIfControl  1 }

h3cRTParentIfEntry OBJECT-TYPE
    SYNTAX      H3cRTParentIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry describes an interface that can create subinterfaces."
    INDEX
        {
            h3cRTParentIfIndex
        }
    ::= { h3cRTParentIfTable 1}

H3cRTParentIfEntry    ::= SEQUENCE
    {
        h3cRTParentIfIndex      Integer32,
        h3cRTMinSubIfOrdinal    Integer32,
        h3cRTMaxSubIfOrdinal    Integer32
    }

h3cRTParentIfIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index of the interface that can create subinterfaces.  The value
        is the same as the ifIndex value for this interface."
    ::= { h3cRTParentIfEntry 1 }

h3cRTMinSubIfOrdinal OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The min ordinal of the subinterface."
    ::= { h3cRTParentIfEntry 2 }

h3cRTMaxSubIfOrdinal OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The max ordinal of the subinterface."
    ::= { h3cRTParentIfEntry 3 }

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

h3cRTSubIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cRTSubIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to create or delete subinterfaces.
        To create a subinterface, a valid parent interface must be
        specified by h3cRTSubIfParentIfIndex, and h3cRTSubIfOrdinal
        must be in the range between h3cRTMinSubIfOrdinal and
        h3cRTMaxSubIfOrdinal of the parent interface from
        h3cRTParentIfTable.

        Subinterfaces 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 doesn't
        affect the main interface, but the main interface status change
        affects the subinterfaces.  The subinterfaces can't operate
        correctly unless the main interface is connected.
        Creating multiple subinterfaces on a single interface
        enables you to plan 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."
    ::= { h3cIfControl  2 }

h3cRTSubIfEntry OBJECT-TYPE
    SYNTAX      H3cRTSubIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The h3cRTSubIfTable entry items"
    INDEX
        {
            h3cRTSubIfParentIfIndex,
            h3cRTSubIfOrdinal
        }
    ::= { h3cRTSubIfTable 1}

H3cRTSubIfEntry    ::= SEQUENCE
    {
        h3cRTSubIfParentIfIndex    Integer32,
        h3cRTSubIfOrdinal          Integer32,
        h3cRTSubIfSubIfIndex       Integer32,
        h3cRTSubIfSubIfDesc        DisplayString,
        h3cRTSubIfRowStatus        RowStatus
    }

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

h3cRTSubIfOrdinal OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ordinal of the subinterface.  It should between
        h3cRTMinSubIfOrdinal and h3cRTMaxSubIfOrdinal of the parent
        interface."
    ::= { h3cRTSubIfEntry 2 }

h3cRTSubIfSubIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ifIndex value of the subinterface"
    ::= { h3cRTSubIfEntry 3 }

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

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

-- =================================================================
h3cIfLinkModeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfLinkModeEntry
    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."
    ::= { h3cIfControl  3 }

h3cIfLinkModeEntry OBJECT-TYPE
    SYNTAX      H3cIfLinkModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The interface link mode table entry"
    INDEX
        {
            h3cIfLinkModeIndex
        }
    ::= { h3cIfLinkModeTable 1}

H3cIfLinkModeEntry    ::= SEQUENCE
    {
        h3cIfLinkModeIndex            Integer32,
        h3cIfLinkMode                 INTEGER,
        h3cIfLinkModeSwitchSupport    TruthValue
    }

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


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

h3cIfLinkModeSwitchSupport 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."
    ::= { h3cIfLinkModeEntry 3 }

-- =================================================================
h3cIfPortTypeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfPortTypeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains objects to get or set the port type
        of an interface."
    ::= { h3cIfControl  4 }

h3cIfPortTypeEntry OBJECT-TYPE
    SYNTAX      H3cIfPortTypeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The interface port type table entry."
    INDEX
        {
            h3cIfPortTypeIndex
        }
    ::= { h3cIfPortTypeTable 1}

H3cIfPortTypeEntry    ::= SEQUENCE
    {
        h3cIfPortTypeIndex            InterfaceIndex,
        h3cIfPortType                 INTEGER
    }

h3cIfPortTypeIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value is the same as ifIndex."
    ::= { h3cIfPortTypeEntry 1 }

h3cIfPortType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            other(1),
            ethernet(2),
            fc(3)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current port type of the interface.
        Don't set the port type to other for an interface."
    ::= { h3cIfPortTypeEntry 2 }

-- =================================================================
h3cIfPfcDot1pTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfPfcDot1pEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table can set the inbound and outbound rate thresholds for the specified dot1p values."
    ::= { h3cIfControl 5 }

h3cIfPfcDot1pEntry OBJECT-TYPE
    SYNTAX      H3cIfPfcDot1pEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry items"
    INDEX
        {
            ifIndex,
            h3cIfPfcDot1pValue
        }
    ::= { h3cIfPfcDot1pTable 1}

H3cIfPfcDot1pEntry ::= SEQUENCE
    {
       h3cIfPfcDot1pValue                 INTEGER,
       h3cIfPfcDot1pInPps                 Unsigned32,
       h3cIfPfcDot1pOutPps                Unsigned32,
       h3cIfPfcDot1pInPpsThreshold        Unsigned32,
       h3cIfPfcDot1pOutPpsThreshold       Unsigned32
    }

h3cIfPfcDot1pValue OBJECT-TYPE
    SYNTAX INTEGER
    {
        pri0(1),
        pri1(2),
        pri2(3),
        pri3(4),
        pri4(5),
        pri5(6),
        pri6(7),
        pri7(8)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The PFC dot1p value list."
    ::= { h3cIfPfcDot1pEntry 1 }

h3cIfPfcDot1pInPps OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current PFC dot1p for the inbound rate."
    ::= { h3cIfPfcDot1pEntry 2 }

h3cIfPfcDot1pOutPps  OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current PFC dot1p for the outbound rate. "
    ::= { h3cIfPfcDot1pEntry 3 }

h3cIfPfcDot1pInPpsThreshold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The threshold for the inbound rate.
         If the h3cIfPfcDot1pInPpsThreshold is set to 0, no h3cIfPfcInRising will be generated."
    ::= { h3cIfPfcDot1pEntry 4 }

h3cIfPfcDot1pOutPpsThreshold  OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The threshold for the outbound rate.
         If the h3cIfPfcDot1pOutPpsThreshold is set to 0, no h3cIfPfcOutRising will be generated."
    ::= { h3cIfPfcDot1pEntry 5 }

-- =================================================================
h3cIfInterfaces OBJECT IDENTIFIER ::= { h3cIfExtGroup 3 }

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

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

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

H3cIfEntry ::= SEQUENCE
    {
        h3cIfUpDownTimes      Integer32,
        h3cIfMtu              Integer32,
        h3cIfBandwidthRate    Integer32,
        h3cIfDiscardPktRate   Integer32,
        h3cIfStatusKeepTime   TimeTicks,
        h3cIfInNUcastPkts     Counter64,
        h3cIfOutNUcastPkts    Counter64,
        h3cIfIsPoe            TruthValue,
        h3cIfOperStatus       INTEGER,
        h3cIfDownTimes        Integer32,
        h3cIfPfcStatus        INTEGER,
        h3cIfPfcDot1pNoDrop   BITS,
        h3cIfDescription      DisplayString,
        h3cIfFwdErrDiscards   Unsigned32
    }

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

h3cIfMtu OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The size of the largest datagram that can be sent or 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 interfaces."
    ::= { h3cIfEntry 2 }

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

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

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

h3cIfInNUcastPkts 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."
    ::= { h3cIfEntry 6 }

h3cIfOutNUcastPkts 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."
    ::= { h3cIfEntry 7 }

h3cIfIsPoe OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Whether the interface supports PoE."
    ::= { h3cIfEntry 8 }

h3cIfOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                up(1),        -- ready to forward packets
                down(2),
                testing(3),   -- in a test mode
                admindown(4)  -- shut down 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, h3cIfOperStatus should be admindown.  If
            ifAdminStatus is changed to up, h3cIfOperStatus should
            change to up if the interface is ready to send and receive
            network traffic; otherwise, it should stay in down state."
    ::= { h3cIfEntry 9 }

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

h3cIfPfcStatus OBJECT-TYPE
    SYNTAX      INTEGER
        {
            enable(1),
            disable(2),
            auto(3)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Pfc (Priority-based Flow Control) status.
         Forcibly enable Pfc by enable(1).
         Disable Pfc by disable(2).
         Set Pfc to auto mode by auto(3).
               In auto mode, the local end automatically negotiates
               the Pfc status with its peer.
         When congestion occurs in the network, the local device notifies
         the peer to stop sending packets carrying the specified 802.1p
         priority if all of the following conditions exist:
         1. Both the local end and the remote end have Pfc enabled.
         2. Both the local end and the remote end have the dot1p list specified
         by h3cIfPfcDot1pNoDrop.
         3. The specified 802.1p priority is in the dot1p list of h3cIfPfcDot1pNoDrop.
         4. The local end receives a packet carrying the specified 802.1p priority."
    DEFVAL { disable }
    ::= { h3cIfEntry 11 }

h3cIfPfcDot1pNoDrop OBJECT-TYPE
    SYNTAX      BITS { pri0(0), pri1(1), pri2(2), pri3(3), pri4(4), pri5(5), pri6(6), pri7(7) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Pfc (Priority-based Flow Control) dot1q list,
        bit 0 through bit 7 corresponding to priority 0 through priority 7.
        See h3cIfPfcStatus."
    DEFVAL{ { } }
    ::= { h3cIfEntry 12 }

h3cIfDescription OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is also an 'alias' name for the interface specified by a
        network manager, like the object of ifAlias.  However, the size of
        this object is larger than ifAlias.  When this object is set to a
        string of more than 64 characters, only the first 64 characters of the
        object are read for the IfAlias object."
    ::= { h3cIfEntry 13 }

h3cIfFwdErrDiscards OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets that were discarded when being forwarded."
    ::= { h3cIfEntry 14 }

h3cIfUsingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfUsingEntry
    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."
    ::= { h3cIfInterfaces 3 }

h3cIfUsingEntry OBJECT-TYPE
    SYNTAX      H3cIfUsingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of h3cIfUsingTable."
    INDEX { h3cIfUsingIndex }
    ::= { h3cIfUsingTable 1 }

H3cIfUsingEntry ::= SEQUENCE
    {
        h3cIfUsingIndex              Integer32,
        h3cIfUsingSupportType        Integer32,
        h3cIfUsingType               INTEGER,
        h3cIfUsingStatus             INTEGER
    }

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

h3cIfUsingSupportType 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', '25GE', '50GE').
        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."
    ::= { h3cIfUsingEntry 2 }

h3cIfUsingType OBJECT-TYPE
    SYNTAX  INTEGER {
                noUsing(0),
                using10GE(1),
                using20GE(2),
                using40GE(3),
                using100GE(4),
                using25GE(5),
                using50GE(6)
             }
    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 non-zero value, the operation returns
        success in the following cases:
        1.  The original instance still exists and is read as a non-zero value.
            In this case, object h3cIfUsingStatus 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."
    ::= { h3cIfUsingEntry 3 }

h3cIfUsingStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                noUsing(0),
                needReboot(1)
             }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " After object h3cIfUsingType is set to a non-zero value, the value
         for this object is needReboot(1) until you reboot the line card (for
         distributed devices) or device (for centralized devices) where the
         port is located."
    ::= { h3cIfUsingEntry 4 }

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

h3cIfExtTrap OBJECT IDENTIFIER ::= { h3cIfExt 3 }
h3cIfExtTrapPrex OBJECT IDENTIFIER ::= { h3cIfExtTrap 0 }
-- All trap definitions should be placed under this object.

h3cIfBandwidthUsageHigh NOTIFICATION-TYPE
    OBJECTS
        {
            ifDescr,
            h3cIfBandwidthRate,
            h3cIfBandwidthUpperLimit
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the rate of the bandwidth for the
         interface exceeds the upper limit."
    ::= { h3cIfExtTrapPrex 1 }

h3cIfDiscardPktRateHigh NOTIFICATION-TYPE
    OBJECTS
        {
            ifDescr,
            h3cIfDiscardPktRate,
            h3cIfDiscardPktRateUpperLimit
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the rate of the discarded packets
         for the interface exceeds the upper limit."
    ::= { h3cIfExtTrapPrex 2 }

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

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

h3cIfPortUp NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when physical state of the interface changes to up."
    ::= { h3cIfExtTrapPrex 5 }

h3cIfPortDown NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when physical state of the interface changes to down."
    ::= { h3cIfExtTrapPrex 6 }

h3cIfPfcOutRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfPfcDot1pValue,
            h3cIfPfcDot1pOutPps,
            h3cIfPfcDot1pOutPpsThreshold
        }
    STATUS current
    DESCRIPTION
    "The notification is generated when the outbound rate exceeds the threshold for the dot1p value.
     If the h3cIfPfcDot1pOutPpsThreshold is set to 0, no h3cIfPfcOutRising will be generated."
    ::= { h3cIfExtTrapPrex 7 }

h3cIfPfcInRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfPfcDot1pValue,
            h3cIfPfcDot1pInPps,
            h3cIfPfcDot1pInPpsThreshold
        }
    STATUS current
    DESCRIPTION
    "The notification is generated when the inbound rate exceeds the threshold for the dot1p value.
     If the h3cIfPfcDot1pInPpsThreshold is set to 0, no h3cIfPfcInRising will be generated."
    ::= { h3cIfExtTrapPrex 8 }

h3cIfExtTrapObject OBJECT IDENTIFIER ::= { h3cIfExtTrap 1 }

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

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

H3cIfExtTrapCfgEntry ::= SEQUENCE
    {
        h3cIfBandwidthUpperLimit      Integer32,
        h3cIfDiscardPktRateUpperLimit Integer32
    }

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

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

-- =================================================================
h3cIfMonScalarGroup OBJECT IDENTIFIER ::= { h3cIfExt 4 }

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

-- Note that a scalar group should be defined firstly and all
-- scalar objects are placed under that group when doing so.

h3cIfMonGroup OBJECT IDENTIFIER ::= { h3cIfExt 5 }

-- =================================================================
h3cIfMonStat OBJECT IDENTIFIER ::= { h3cIfMonGroup 1 }

h3cIfMonStatTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfMonStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table is about some types of statistics."
    ::= { h3cIfMonStat 1}

h3cIfMonStatEntry OBJECT-TYPE
    SYNTAX      H3cIfMonStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry items."
    INDEX
        {
            ifIndex
        }
    ::= { h3cIfMonStatTable 1}

H3cIfMonStatEntry ::= SEQUENCE
    {
        h3cIfMonInputRateStatistics          Counter64,
        h3cIfMonOutputRateStatistics         Counter64,
        h3cIfMonInputErrorAlarmStatistics    Counter64,
        h3cIfMonOutputErrorAlarmStatistics   Counter64,
        h3cIfMonSdhErrorStatistics           Counter64,
        h3cIfMonSdhB1ErrorStatistics         Counter64,
        h3cIfMonSdhB2ErrorStatistics         Counter64,
        h3cIfMonCRCErrorStatistics           Counter64,
        h3cIfMonPauseFrameStatistics         Counter64,
        h3cIfMonTxPauseFrameStatistics       Counter64
    }
h3cIfMonInputRateStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the inbound bandwidth."
    ::= { h3cIfMonStatEntry 1 }

h3cIfMonOutputRateStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the outbound bandwidth."
    ::= { h3cIfMonStatEntry 2 }

h3cIfMonInputErrorAlarmStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the number of inbound error packets."
    ::= { h3cIfMonStatEntry 3 }

h3cIfMonOutputErrorAlarmStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics  about the number of outbound error packets."
    ::= { h3cIfMonStatEntry 4 }

h3cIfMonSdhErrorStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the number of SDH error packets."
    ::= { h3cIfMonStatEntry 5 }

h3cIfMonSdhB1ErrorStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the number of SDH B1 error packets."
    ::= { h3cIfMonStatEntry 6 }

h3cIfMonSdhB2ErrorStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the number of SDH B2 error packets."
    ::= { h3cIfMonStatEntry 7 }

h3cIfMonCRCErrorStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the number of CRC error packets. "
    ::= { h3cIfMonStatEntry 8}

h3cIfMonPauseFrameStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the number of pause frames."
    ::= { h3cIfMonStatEntry 9}

h3cIfMonTxPauseFrameStatistics OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Statistics about the number of Tx-pause frames."
    ::= { h3cIfMonStatEntry 10}

-- =================================================================
h3cIfMonControl  OBJECT IDENTIFIER ::= { h3cIfMonGroup 2 }

h3cIfMonThresholdTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfMonThresholdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table is about the upper threshold,low-er threshold, and inspection interval. "
    ::= { h3cIfMonControl 1 }

h3cIfMonThresholdEntry OBJECT-TYPE
    SYNTAX      H3cIfMonThresholdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry items."
    INDEX
        {
            ifIndex
        }
    ::= { h3cIfMonThresholdTable 1}

H3cIfMonThresholdEntry ::= SEQUENCE
    {
        h3cIfMonInputRateLowThres                Unsigned32,
        h3cIfMonInputRateHighThres               Unsigned32,
        h3cIfMonOutputRateLowThres               Unsigned32,
        h3cIfMonOutputRateHighThres              Unsigned32,
        h3cIfMonInputErrorAlarmLowThres          Unsigned32,
        h3cIfMonInputErrorAlarmHighThres         Unsigned32,
        h3cIfMonInputErrorAlarmInterval          Unsigned32,
        h3cIfMonOutputErrorAlarmLowThres         Unsigned32,
        h3cIfMonOutputErrorAlarmHighThres        Unsigned32,
        h3cIfMonOutputErrorAlarmInterval         Unsigned32,
        h3cIfMonSdhErrorLowThres                 Unsigned32,
        h3cIfMonSdhErrorHighThres                Unsigned32,
        h3cIfMonSdhErrorInterval                 Unsigned32,
        h3cIfMonSdhB1ErrorLowThres               Unsigned32,
        h3cIfMonSdhB1ErrorHighThres              Unsigned32,
        h3cIfMonSdhB1ErrorInterval               Unsigned32,
        h3cIfMonSdhB2ErrorLowThres               Unsigned32,
        h3cIfMonSdhB2ErrorHighThres              Unsigned32,
        h3cIfMonSdhB2ErrorInterval               Unsigned32,
        h3cIfMonCRCErrorLowThres                 Unsigned32,
        h3cIfMonCRCErrorHighThres                Unsigned32,
        h3cIfMonCRCErrorInterval                 Unsigned32,
        h3cIfMonCRCErrType                       INTEGER,
        h3cIfMonPauseFrameLowThres               Unsigned32,
        h3cIfMonPauseFrameHighThres              Unsigned32,
        h3cIfMonPauseFrameInterval               Unsigned32,
        h3cIfMonTxPauseFrameLowThres             Unsigned32,
        h3cIfMonTxPauseFrameHighThres            Unsigned32,
        h3cIfMonTxPauseFrameInterval             Unsigned32
    }

h3cIfMonInputRateLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Low threshold for the inbound bandwidth."
    DEFVAL { 80 }
    ::= { h3cIfMonThresholdEntry 1 }

h3cIfMonInputRateHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the inbound bandwidth."
    DEFVAL { 90 }
    ::= { h3cIfMonThresholdEntry 2 }

h3cIfMonOutputRateLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the outbound bandwidth."
    DEFVAL { 80 }
    ::= { h3cIfMonThresholdEntry 3 }

h3cIfMonOutputRateHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the outbound bandwidth."
    DEFVAL { 90 }
    ::= { h3cIfMonThresholdEntry 4 }

h3cIfMonInputErrorAlarmLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of inbound error packets."
    DEFVAL { 100 }
    ::= { h3cIfMonThresholdEntry 5 }

h3cIfMonInputErrorAlarmHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of inbound error packets."
    DEFVAL { 1000 }
    ::= { h3cIfMonThresholdEntry 6 }

h3cIfMonInputErrorAlarmInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of inbound error packets."
    DEFVAL { 10 }
    ::= { h3cIfMonThresholdEntry 7 }

h3cIfMonOutputErrorAlarmLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of outbound error packets."
    DEFVAL { 100 }
    ::= { h3cIfMonThresholdEntry 8 }

h3cIfMonOutputErrorAlarmHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of outbound error packets."
    DEFVAL { 1000 }
    ::= { h3cIfMonThresholdEntry 9 }

h3cIfMonOutputErrorAlarmInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of outbound error packets."
    DEFVAL { 10 }
    ::= { h3cIfMonThresholdEntry 10 }

h3cIfMonSdhErrorLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of SDH error packets."
    DEFVAL { 100 }
    ::= { h3cIfMonThresholdEntry 11 }

h3cIfMonSdhErrorHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of SDH error packets."
    DEFVAL { 1000 }
    ::= { h3cIfMonThresholdEntry 12 }

h3cIfMonSdhErrorInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of SDH error packets."
    DEFVAL { 10 }
    ::= { h3cIfMonThresholdEntry 13 }

h3cIfMonSdhB1ErrorLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of SDH B1 error packets."
    ::= { h3cIfMonThresholdEntry 14 }

h3cIfMonSdhB1ErrorHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of SDH B1 error packets."
    DEFVAL { 1000 }
    ::= { h3cIfMonThresholdEntry 15 }

h3cIfMonSdhB1ErrorInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of SDH B1 error packets. "
    DEFVAL { 10 }
    ::= { h3cIfMonThresholdEntry 16 }

h3cIfMonSdhB2ErrorLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of SDH B2 error packets."
    ::= { h3cIfMonThresholdEntry 17 }

h3cIfMonSdhB2ErrorHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of SDH B2 error packets."
    DEFVAL { 1000 }
    ::= { h3cIfMonThresholdEntry 18 }

h3cIfMonSdhB2ErrorInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of SDH B2 error packets."
    DEFVAL { 10 }
    ::= { h3cIfMonThresholdEntry 19 }

h3cIfMonCRCErrorLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of CRC error packets."
    ::= { h3cIfMonThresholdEntry 20 }

h3cIfMonCRCErrorHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of CRC error packets."
    ::= { h3cIfMonThresholdEntry 21 }

h3cIfMonCRCErrorInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of CRC error packets."
    DEFVAL { 10 }
    ::= { h3cIfMonThresholdEntry 22 }

h3cIfMonCRCErrType OBJECT-TYPE
    SYNTAX INTEGER
        {
        absolute(1),
        ratio(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        " Inspection type for the CRC error packets."
    ::= { h3cIfMonThresholdEntry 23 }

h3cIfMonPauseFrameLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of inbound pause frames."
    ::= { h3cIfMonThresholdEntry 24 }

h3cIfMonPauseFrameHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of inbound pause frames."
    ::= { h3cIfMonThresholdEntry 25 }

h3cIfMonPauseFrameInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of inbound pause frames."
    ::= { h3cIfMonThresholdEntry 26 }

h3cIfMonTxPauseFrameLowThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Lower threshold for the number of inbound Tx-pause frames."
    DEFVAL { 100 }
    ::= { h3cIfMonThresholdEntry 27 }

h3cIfMonTxPauseFrameHighThres OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Upper threshold for the number of inbound Tx-pause frames."
    DEFVAL { 500 }
    ::= { h3cIfMonThresholdEntry 28 }

h3cIfMonTxPauseFrameInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Inspection interval for the number of inbound Tx-pause frames."
    DEFVAL { 10 }
    ::= { h3cIfMonThresholdEntry 29 }

-- =================================================================
h3cIfMonAlarmDownEnableTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cIfMonAlarmDownEnableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table can set or get whether to enable the interface down function."
    ::= { h3cIfMonControl 2 }

h3cIfMonAlarmDownEnableEntry OBJECT-TYPE
    SYNTAX      H3cIfMonAlarmDownEnableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry items"
    INDEX
        {
            ifIndex
        }
    ::= { h3cIfMonAlarmDownEnableTable 1}

H3cIfMonAlarmDownEnableEntry ::= SEQUENCE
    {
        h3cIfMonInputRateEnableDown              TruthValue,
        h3cIfMonOutputRateEnableDown             TruthValue,
        h3cIfMonInputErrorAlarmEnableDown        TruthValue,
        h3cIfMonOutputErrorAlarmEnableDown       TruthValue,
        h3cIfMonSdhErrorEnableDown               TruthValue,
        h3cIfMonSdhB1ErrorEnableDown             TruthValue,
        h3cIfMonSdhB2ErrorEnableDown             TruthValue,
        h3cIfMonCRCErrorEnableDown               TruthValue,
        h3cIfMonPauseFrameEnableDown             TruthValue,
        h3cIfMonTxPauseFrameEnableDown           TruthValue
    }

h3cIfMonInputRateEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the inbound bandwidth exceeds the upper threshold,the physical
         interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 1 }

h3cIfMonOutputRateEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the outbound bandwidth exceeds the upper threshold,the physical
         interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 2 }

h3cIfMonInputErrorAlarmEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of inbound error packets-exceeds the upper threshold,
         the physical interface goes down. "
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 3 }

h3cIfMonOutputErrorAlarmEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of outbound error packets-exceeds the upper threshold,
         the physical interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 4 }

h3cIfMonSdhErrorEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of SDH error packets-exceeds the upper threshold,
         the physical interface goes down. "
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 5 }

h3cIfMonSdhB1ErrorEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of SDH B1 error packets-exceeds the upper threshold,
         the physical interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 6 }

h3cIfMonSdhB2ErrorEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of SDH B2 error packets-exceeds the upper threshold,
         the physical interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 7 }

h3cIfMonCRCErrorEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of CRC error packets-exceeds the upper threshold,
         the physical interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 8 }

h3cIfMonPauseFrameEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of inbound pause frames exceeds the upper threshold,
         the physical interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 9 }

h3cIfMonTxPauseFrameEnableDown OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the number of inbound Tx-pause frames exceeds the upper threshold,
         the physical interface goes down."
    DEFVAL { false }
    ::= { h3cIfMonAlarmDownEnableEntry 10 }

-- =================================================================
-- Traps are defined below.

h3cIfMonTrap OBJECT IDENTIFIER ::= { h3cIfExt 6 }
h3cIfMonTrapPrex OBJECT IDENTIFIER ::= { h3cIfMonTrap 0 }
-- All trap definitions should be placed under this object.

h3cIfMonInputRateRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonInputRateLowThres,
            h3cIfMonInputRateHighThres,
            h3cIfMonInputRateStatistics
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the inbound bandwidth exceeds the
         upper threshold."
    ::= { h3cIfMonTrapPrex 1 }

h3cIfMonInputRateResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonInputRateLowThres,
            h3cIfMonInputRateHighThres,
            h3cIfMonInputRateStatistics
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the inbound bandwidth drops from
         above the upper threshold to below the lower threshold."
    ::= { h3cIfMonTrapPrex 2 }

h3cIfMonOutputRateRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonOutputRateLowThres,
            h3cIfMonOutputRateHighThres,
            h3cIfMonOutputRateStatistics
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the outbound bandwidth exceeds the
         upper threshold."
    ::= { h3cIfMonTrapPrex 3 }

h3cIfMonOutputRateResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonOutputRateLowThres,
            h3cIfMonOutputRateHighThres,
            h3cIfMonOutputRateStatistics
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the outbound bandwidth drops from
         above the upper threshold to below the lower threshold."
    ::= { h3cIfMonTrapPrex 4 }

h3cIfMonInputErrorAlarmRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonInputErrorAlarmHighThres,
            h3cIfMonInputErrorAlarmLowThres,
            h3cIfMonInputErrorAlarmStatistics,
            h3cIfMonInputErrorAlarmInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of inbound error packets exceeds the
         upper threshold within the default interval."
    ::= { h3cIfMonTrapPrex 5 }

h3cIfMonInputErrorAlarmResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonInputErrorAlarmHighThres,
            h3cIfMonInputErrorAlarmLowThres,
            h3cIfMonInputErrorAlarmStatistics,
            h3cIfMonInputErrorAlarmInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of inbound error packets drops from
         above the upper threshold to below the lower threshold within the default interval."
    ::= { h3cIfMonTrapPrex 6 }

h3cIfMonOutputErrorAlarmRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonOutputErrorAlarmHighThres,
            h3cIfMonOutputErrorAlarmLowThres,
            h3cIfMonOutputErrorAlarmStatistics,
            h3cIfMonOutputErrorAlarmInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of outbound error packets exceeds the
         upper threshold within the default interval."
    ::= { h3cIfMonTrapPrex 7 }

h3cIfMonOutputErrorAlarmResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonOutputErrorAlarmHighThres,
            h3cIfMonOutputErrorAlarmLowThres,
            h3cIfMonOutputErrorAlarmStatistics,
            h3cIfMonOutputErrorAlarmInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of outbound error packets drops from
         above the upper threshold to below the lower threshold within the default interval."
    ::= { h3cIfMonTrapPrex 8 }

h3cIfMonSdhErrorRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonSdhErrorLowThres,
            h3cIfMonSdhErrorHighThres,
            h3cIfMonSdhErrorStatistics,
            h3cIfMonSdhErrorInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of SDH error packets exceeds
         the upper threshold within the default interval."
    ::= { h3cIfMonTrapPrex 9 }

h3cIfMonSdhErrorResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonSdhErrorLowThres,
            h3cIfMonSdhErrorHighThres,
            h3cIfMonSdhErrorStatistics,
            h3cIfMonSdhErrorInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of SDH error packets drops from
         above the upper threshold to below the lower threshold within the default interval."
    ::= { h3cIfMonTrapPrex 10 }

h3cIfMonSdhB1ErrorRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonSdhB1ErrorLowThres,
            h3cIfMonSdhB1ErrorHighThres,
            h3cIfMonSdhB1ErrorStatistics,
            h3cIfMonSdhB1ErrorInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of SDH B1 error packets exceeds
         the upper threshold within the default interval."
    ::= { h3cIfMonTrapPrex 11 }

h3cIfMonSdhB1ErrorResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonSdhB1ErrorLowThres,
            h3cIfMonSdhB1ErrorHighThres,
            h3cIfMonSdhB1ErrorStatistics,
            h3cIfMonSdhB1ErrorInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of SDH B1 error packets drops from
         above the upper threshold to below the lower threshold within the default interval."
    ::= { h3cIfMonTrapPrex 12 }

h3cIfMonSdhB2ErrorRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonSdhB2ErrorLowThres,
            h3cIfMonSdhB2ErrorHighThres,
            h3cIfMonSdhB2ErrorStatistics,
            h3cIfMonSdhB2ErrorInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of SDH B2 error packets exceeds
         the upper threshold within the default interval."
    ::= { h3cIfMonTrapPrex 13 }

h3cIfMonSdhB2ErrorResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonSdhB2ErrorLowThres,
            h3cIfMonSdhB2ErrorHighThres,
            h3cIfMonSdhB2ErrorStatistics,
            h3cIfMonSdhB2ErrorInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of SDH B2 error packets drops from
         above the upper threshold to below the lower threshold within the default interval."
    ::= { h3cIfMonTrapPrex 14 }

h3cIfMonCRCErrorRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonCRCErrorHighThres,
            h3cIfMonCRCErrorLowThres,
            h3cIfMonCRCErrorStatistics,
            h3cIfMonCRCErrorInterval,
            h3cIfMonCRCErrType
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of CRC error packets exceeds
         the upper threshold within the default interval."
    ::= { h3cIfMonTrapPrex 15 }

h3cIfMonCRCErrorResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonCRCErrorHighThres,
            h3cIfMonCRCErrorLowThres,
            h3cIfMonCRCErrorStatistics,
            h3cIfMonCRCErrorInterval,
            h3cIfMonCRCErrType
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of CRC error packets drops from
         above the upper threshold to below the lower threshold within the default interval."
    ::= { h3cIfMonTrapPrex 16 }

h3cIfMonPauseFrameRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonPauseFrameHighThres,
            h3cIfMonPauseFrameLowThres,
            h3cIfMonPauseFrameStatistics,
            h3cIfMonPauseFrameInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of inbound pause frames exceeds the
         upper threshold."
    ::= { h3cIfMonTrapPrex 17 }

h3cIfMonPauseFrameResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonPauseFrameHighThres,
            h3cIfMonPauseFrameLowThres,
            h3cIfMonPauseFrameStatistics,
            h3cIfMonPauseFrameInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of inbound pause frames drops from
         above the upper threshold to below the lower-threshold."
    ::= { h3cIfMonTrapPrex 18 }

h3cIfMonTxPauseFrameRising NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonTxPauseFrameHighThres,
            h3cIfMonTxPauseFrameLowThres,
            h3cIfMonTxPauseFrameStatistics,
            h3cIfMonTxPauseFrameInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of inbound Tx-pause frames exceeds
         the upper threshold."
    ::= { h3cIfMonTrapPrex 19 }

h3cIfMonTxPauseFrameResume NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr,
            h3cIfMonTxPauseFrameHighThres,
            h3cIfMonTxPauseFrameLowThres,
            h3cIfMonTxPauseFrameStatistics,
            h3cIfMonTxPauseFrameInterval
        }
    STATUS current
    DESCRIPTION
        "The notification is generated when the number of inbound Tx-pause frames  drops from
         above the upper threshold to below the lower threshold."
    ::= { h3cIfMonTrapPrex 20 }

h3cIfMonTrapObject OBJECT IDENTIFIER ::= { h3cIfMonTrap 1 }

END
