-- ==================================================================
-- Copyright (C) 2005 by H3C TECHNOLOGIES. All rights reserved.
--
-- Description:  HGMP Information MIB for LAN Switch
-- Reference:
-- Version: V1.8
-- History:
--   V1.0 2001.5.15 Created Ye dalu
--   V1.1 2004/7/20 Modify Object Name from HwNDPNbEntry
--        to HwNDPPortNbEntry
--   V1.2 2004/8/09 add notification hgmpNetTopChange
--   V1.3 2004-09-24 modify value of STATUS clause from 'mandatory' to 'current' by gaolong
--   V1.4 2004-10-12 updated by gaolong
--        Import NOTIFICATION-TYPE.
--   V1.5 2004-11-02 updated by gaolong
--        Import Counter32.
--   V1.6 2005-12-9  added by zhanglin KF0176
--        add hgmpClusterProtocolMac
--        add hgmpWhitelistNbTable
--        add hgmpWhitelistTable
--        add hgmpBlacklistTable
--        2005-12-20 added by zushuzhi 03030
--        add hgmpMemberPriPortTable
--        add hgmpNTDPTopLinkStatus
--   V1.7 2006-04-30 modified by gaolong
--        relocate hgmpProtocolMac, hgmpTopologyManagement, hgmpMemberPriPortTable
--        and the objects below them.
--        relocate hgmpNTDPTopLinkStatus in hgmpNTDPTopLinkStatus.
--   V1.8 2006-05-08 modify the description of hgmpNTDPCollectTopTime by shanfeng
-- ==================================================================
-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================
HUAWEI-HGMP-MIB  DEFINITIONS ::= BEGIN
    IMPORTS
        huaweiUtility
            FROM HUAWEI-3COM-OID-MIB
        IpAddress, Integer32, OBJECT-TYPE, MODULE-IDENTITY, OBJECT-IDENTITY,
        NOTIFICATION-TYPE, Counter32, Unsigned32
            FROM SNMPv2-SMI
        RowStatus, MacAddress, TEXTUAL-CONVENTION, DisplayString
            FROM SNMPv2-TC;

    hwCluster MODULE-IDENTITY
        LAST-UPDATED "200512061452Z"
        ORGANIZATION
            "Hangzhou H3C Tech. Co., Ltd."
        CONTACT-INFO
            "Platform Team Hangzhou H3C Tech. Co., Ltd.
            Hai-Dian District Beijing P.R. China
            http://www.h3c.com
            Zip:100085
            "
        DESCRIPTION
            "This MIB contains objects to manage the hgmp operations,
            which are used on lanswitch products."
        ::= { huaweiUtility 7 }

-- ==================================================================
--
-- ======================= definition begin =========================
--
-- ==================================================================

--
-- cluster definitions
--

    hwClusterObject OBJECT-IDENTITY
        STATUS      current
        DESCRIPTION
            "This MIB contains objects to manage the cluster operations, which
            are used on lanswitch products."
        ::= { hwCluster 1 }

    hgmpSetVLANSecurity OBJECT-TYPE
        SYNTAX      INTEGER
            {
                noSecurity(0),
                security(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Configure whether to perform the VLAN check inside the cluster."
        DEFVAL { security }
        ::= { hwClusterObject 1 }

    hgmpHandShakeInterval OBJECT-TYPE
        SYNTAX      Integer32(1..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Handshaking interval of the cluster member switches."
        DEFVAL { 10 }
        ::= { hwClusterObject 2 }

    hgmpHandShakeHoldtime OBJECT-TYPE
        SYNTAX      Integer32(1..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Holdtime of administrator switch and member switch in the cluster."
        DEFVAL { 60 }
        ::= { hwClusterObject 3 }

    hgmpGrpMemberTableChange OBJECT-TYPE
        SYNTAX      Integer32(0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Add 1 to the member list after it changes. The administrator checks if
            the value has changed. If not, he will not read the list once more."
        DEFVAL { 0 }
        ::= { hwClusterObject 4 }

    hgmpMemberDisconRate OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Disconnection times of the member and administrator switches divided by
            member number times 1000."
        DEFVAL { 0 }
        ::= { hwClusterObject 5 }

    hgmpCmdLanswitchFlag OBJECT-TYPE
        SYNTAX      INTEGER
            {
                false(0),
                true(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Administrator switch flag"
        DEFVAL { false }
        ::= { hwClusterObject 6 }

    hgmpCmdClusterName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE (0..8))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Cluster name of the administrator switch"
        ::= { hwClusterObject 7 }

    hgmpMngPriIpSegCMIP OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The private management IP address of the administrator switch,
            which can not be modified after the cluster has been created."
        ::= { hwClusterObject 8 }

    hgmpMngPriIpMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The private management IP address mask assigned by the administrator
            switch, which cannot be modified after the cluster has been created."
        ::= { hwClusterObject 9 }

    hgmpFtpServer OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The cluster members can access the Ftp Server through the administrator
            switch, which can only be configured and accessed on the administrator
            switch."
        ::= { hwClusterObject 10 }

    hgmpTftpServer OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The cluster members can access the Tftp Server through the administrator
             switch, which can only be configured and accessed on the administrator
             switch."
        ::= { hwClusterObject 11 }

    hgmpSnmpHost OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The Snmp Host to send the cluster trap packets, which can only be
            configured and accessed on the administrator switch."
        ::= { hwClusterObject 12 }

    hgmpLogHost OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Log host of the cluster, which can only be configured and accessed on
            the administrator switch."
        ::= { hwClusterObject 13 }

--
-- TABLE: Group member table
--

    hgmpGrpMemberTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpGrpMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of cluster member switches"
        ::= { hwClusterObject 14 }

    hgmpGrpMemberEntry OBJECT-TYPE
        SYNTAX      HgmpGrpMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hgmpGrpMemberDeviceId
            }
        ::= { hgmpGrpMemberTable 1 }

    HgmpGrpMemberEntry ::=
        SEQUENCE
            {
                hgmpGrpMemberDeviceId       OCTET STRING,
                hgmpGrpMemberSerial         Integer32,
                hgmpGrpMemberIpAddr         IpAddress,
                hgmpGrpMemberName           OCTET STRING,
                hgmpGrpMemberPassword       OCTET STRING,
                hgmpGrpMemberPlatform       OCTET STRING,
                hgmpGrpMemberStatus         INTEGER,
                hgmpGrpMemberDisconCount    Integer32,
                hgmpGrpMemberEnrollTime     Integer32,
                hgmpGrpMemberOperate        RowStatus
            }

    hgmpGrpMemberDeviceId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "4 bytes reserved as 0x0 + 6 bytes of MAC address, expressed as 
            a character string of the hexadecimal number."
        ::= { hgmpGrpMemberEntry 1 }

    hgmpGrpMemberSerial OBJECT-TYPE
        SYNTAX      Integer32(0..2047)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "When adding member switch to the cluster, the administrator switch
            will assign an unique integer to identify it."
        ::= { hgmpGrpMemberEntry 2 }

    hgmpGrpMemberIpAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The private IP addresses of the member switches for the communication
            inside the cluster."
        ::= { hgmpGrpMemberEntry 3 }

    hgmpGrpMemberName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..32))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Hostname of the member switch"
        ::= { hgmpGrpMemberEntry 4 }

    hgmpGrpMemberPassword OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Member password for joining a cluster"
        ::= { hgmpGrpMemberEntry 5 }

    hgmpGrpMemberPlatform OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Set the hardware platform. A null string indicates the information
            does not exist in the device adjacency table."
        ::= { hgmpGrpMemberEntry 6 }

    hgmpGrpMemberStatus OBJECT-TYPE
        SYNTAX      INTEGER
            {
                normal(0),
                fault(1)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Member status on the administrator switch, use for displaying the
            network management status."
        DEFVAL { fault }
        ::= { hgmpGrpMemberEntry 7 }

    hgmpGrpMemberDisconCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Count of inside communication disconnection between the member switch
            and the administrator switch."
        ::= { hgmpGrpMemberEntry 8 }

    hgmpGrpMemberEnrollTime OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Enrollment time of the member, measured in seconds."
        ::= { hgmpGrpMemberEntry 9 }

    hgmpGrpMemberOperate OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Operation indication field, indicates the operation of adding/removing
            a member by the network management agent."
        ::= { hgmpGrpMemberEntry 10 }

--
-- TABLE: Member reset table
--

    hgmpMemberResetTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpMemberResetEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Reset a member switch in the cluster."
        ::= { hwClusterObject 15 }

    hgmpMemberResetEntry OBJECT-TYPE
        SYNTAX      HgmpMemberResetEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hgmpMemberResetMAC
            }
        ::= { hgmpMemberResetTable 1 }

    HgmpMemberResetEntry ::=
        SEQUENCE
            {
                hgmpMemberResetMAC      OCTET STRING,
                hgmpMemberEraseflash    INTEGER
            }

    hgmpMemberResetMAC OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..6))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The management MAC address of the switch to be reset, which is the
            unique identifier of the switch."
        ::= { hgmpMemberResetEntry  1 }

    hgmpMemberEraseflash OBJECT-TYPE
        SYNTAX      INTEGER
            {
                noErase(0),
                erase(1),
                cannotget(65535)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Whether to erase the configuration file from the flash after
            resetting the switch. Read this node, cannotget(65535) will be
            returned."
        ::= { hgmpMemberResetEntry  2 }

    hgmpEventsV2 OBJECT-IDENTITY
        STATUS      current
        DESCRIPTION
            "Definition point for cluster notifications."
        ::= { hwClusterObject 0 }

    hgmpMemberfailure NOTIFICATION-TYPE
        OBJECTS
            {
                hgmpGrpMemberDeviceId
            }
        STATUS      current
        DESCRIPTION
            "When a cluster member failure, send a snmp trap to the network
            management."
        ::= { hgmpEventsV2 1 }

    hgmpMemberRecover NOTIFICATION-TYPE
        OBJECTS
            {
                hgmpGrpMemberDeviceId
            }
        STATUS      current
        DESCRIPTION
            "When a cluster member recover, send a snmp trap to the network
            management."
        ::= { hgmpEventsV2 2 }

    hgmpMemberStatusChange NOTIFICATION-TYPE
        OBJECTS
            {
                hgmpGrpMemberDeviceId,
                hgmpNTDPCacheClusterRole
            }
        STATUS      current
        DESCRIPTION
            "When a cluster member status change, send a snmp trap to the
            network management."
        ::= { hgmpEventsV2 3 }

    hgmpNetTopChange NOTIFICATION-TYPE
        STATUS      current
        DESCRIPTION
            "When net topology of this cluster change, send a snmp trap
            to the network management."
        ::= { hgmpEventsV2 4 }

    hgmpClusterRole OBJECT-TYPE
        SYNTAX      INTEGER
            {
                roleCMDSW(1),
                roleMEMBERSW(2),
                roleBAKSW(3),
                roleCASW(16),
                roleUNISW(17)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This switch's role in cluster."
        DEFVAL { roleUNISW }
        ::= { hwClusterObject 16 }

    hgmpClusterMaxPoolNum OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Max switch members that the cluster can support(include
            administrator switch)."
        ::= { hwClusterObject 17 }

    hgmpClusterCmdSwMac OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..6))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The MAC address of administrator switch. It will be filled with
            zero when not be a member of cluster."
        ::= { hwClusterObject 18 }

    hgmpRun OBJECT-TYPE
        SYNTAX      INTEGER
            {
                false(0),
                true(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Enable cluster on this switch."
        DEFVAL { true }
        ::= { hwClusterObject 19 }

--
-- cluster protocol MAC
--

    hgmpProtocolMac OBJECT IDENTIFIER ::= { hwClusterObject 22 }

    hgmpClusterProtocolMac OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Protocol MAC of HGMP protocol family. All multicast packets of this
            protocol family use this MAC as destination MAC."
        DEFVAL { '0180C200000A'H }
        ::= { hgmpProtocolMac 1 }

--
-- hgmp topology management
--

    hgmpTopologyManagement OBJECT IDENTIFIER ::= { hwClusterObject 23 }

--
-- TABLE: Whitelist Table
--

    hgmpWhitelistTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpWhitelistEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Cluster switches white list table. White list topology is the
            topology which has been affirmed by network administrator in a
            cluster, and all devices in white list topology are recorded in this
            table. Against to white list table, black list table records the
            devices which are denied to join in cluster. Adding a black list
            device to white list table will cause a failure."
        ::= { hgmpTopologyManagement 1 }

    hgmpWhitelistEntry OBJECT-TYPE
        SYNTAX      HgmpWhitelistEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Entry items"
        INDEX
            {
                hgmpWhitelistDeviceId
            }
        ::= { hgmpWhitelistTable 1 }

    HgmpWhitelistEntry ::=
        SEQUENCE
            {
                hgmpWhitelistDeviceId     OCTET STRING,
                hgmpWhitelistSerial       Integer32,
                hgmpWhitelistRowStatus    RowStatus
            }

    hgmpWhitelistDeviceId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(10))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Unique identifier indicating a white list switch. Value format of the
            this object is 'XXXXYYYYYY', in which 'XXXX' is reserved as 4 bytes of
            0x0, 'YYYYYY' is a MAC address.
            For example, if the MAC is 000f-e459-000a, the value of this object is
            an octet string: '00' '00' '00' '00' '00' '0f' 'e4' '59' '00' '0a'."
        ::= { hgmpWhitelistEntry  1 }

    hgmpWhitelistSerial OBJECT-TYPE
        SYNTAX      Integer32(0..2047 | 65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "When adding member switch to the cluster, the administrator switch
            will assign an unique integer to identify it. 0xffff means invalid
            value for this object."
        ::= { hgmpWhitelistEntry  2 }

    hgmpWhitelistRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The row status of this table."
        ::= { hgmpWhitelistEntry 3 }

--
-- TABLE: Whitelist neighbor table
--

    hgmpWhitelistNbTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpWhitelistNbEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Cluster switches white list neighboring information table. White
            list neighbor table records all neighbor devices for every white
            list device. In fact, white list neighbor table displays the whole
            white list topology."
        ::= { hgmpTopologyManagement 2 }

    hgmpWhitelistNbEntry OBJECT-TYPE
        SYNTAX      HgmpWhitelistNbEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Entry items"
        INDEX
            {
                hgmpWhitelistDeviceId,
                hgmpWhitelistNbIndex
            }
        ::= { hgmpWhitelistNbTable 1 }

    HgmpWhitelistNbEntry ::=
        SEQUENCE
            {
                hgmpWhitelistNbIndex       Integer32,
                hgmpWhitelistNbDeviceId    OCTET STRING,
                hgmpWhitelistPortName      OCTET STRING,
                hgmpWhitelistNbPortName    OCTET STRING
            }

    hgmpWhitelistNbIndex OBJECT-TYPE
        SYNTAX      Integer32(1..65535)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Index of a switch which is the neighbor of a white list switch
            identified by 'hgmpWhitelistDeviceId'."
        ::= { hgmpWhitelistNbEntry  1 }

    hgmpWhitelistNbDeviceId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Unique identifier indicating a neighbor switch of a white list
            switch. Value format of the this object is 'XXXXYYYYYY', in which
            'XXXX' is reserved as 4 bytes of 0x0, 'YYYYYY' is a MAC address.
            For example, if the MAC is 000f-e459-000a, the value of this object
            is an octet string: '00' '00' '00' '00' '00' '0f' 'e4' '59' '00' '0a'."
        ::= { hgmpWhitelistNbEntry  2 }

    hgmpWhitelistPortName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..47))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The name of the port which a white list switch connects to the
            neighbor specified by 'hgmpWhitelistNbIndex'."
        ::= { hgmpWhitelistNbEntry  3 }

    hgmpWhitelistNbPortName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..47))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The name of the port which a neighbor device connects to the white
            list switch specified by 'hgmpWhitelistDeviceId'."
        ::= { hgmpWhitelistNbEntry  4 }

--
-- TABLE: Blacklist table
--

    hgmpBlacklistTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpBlacklistEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Cluster switches black list table. The black list table records all
            black list devices, and a device in black list is not permitted to
            join in any cluster."
        ::= { hgmpTopologyManagement 3 }

    hgmpBlacklistEntry OBJECT-TYPE
        SYNTAX      HgmpBlacklistEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Entry items"
        INDEX
            {
                hgmpBlacklistDeviceId
            }
        ::= { hgmpBlacklistTable 1 }

    HgmpBlacklistEntry ::=
        SEQUENCE
            {
                hgmpBlacklistDeviceId         OCTET STRING,
                hgmpBlacklistAccessDeviceId   OCTET STRING,
                hgmpBlacklistAccessPortName   OCTET STRING,
                hgmpBlacklistRowStatus        RowStatus
            }

    hgmpBlacklistDeviceId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(10))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Unique identifier indicating a black list switch. Value format of the
            this object is 'XXXXYYYYYY', in which 'XXXX' is reserved as 4 bytes
            of 0x0, 'YYYYYY' is a MAC address.
            For example, if the MAC is 000f-e459-000a, the value of this object is
            an octet string: '00' '00' '00' '00' '00' '0f' 'e4' '59' '00' '0a'."
        ::= { hgmpBlacklistEntry  1 }

    hgmpBlacklistAccessDeviceId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Unique identifier indicating the access device of a black list switch.
            Tracing from a black list device to the cluster commander switch, the
            device which the black list switch directly connects to is the access
            device.
            Value format of the this object is 'XXXXYYYYYY', in which 'XXXX' is
            reserved as 4 bytes of 0x0, 'YYYYYY' is a MAC address. 10 bytes of 0xff
            means invalid value for this object.
            For example, if the MAC is 000f-e459-000a, the value of this object is
            an octet string: '00' '00' '00' '00' '00' '0f' 'e4' '59' '00' '0a'."
        ::= { hgmpBlacklistEntry  2 }

    hgmpBlacklistAccessPortName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..47))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The port which the access device connecting to the black list switch
            is named access port, the object returns the access port name.
            An empty string means invalid value for this object."
        ::= { hgmpBlacklistEntry  3 }

    hgmpBlacklistRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The row status of this table."
        ::= { hgmpBlacklistEntry 4 }

--
-- TABLE: Member private port number table
--

    hgmpMemberPriPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpMemberPriPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains port number for different network protocols
            on each member switch. The port number can be used to access
            a specified member switch with specified protocol and private
            IP address."
        ::= { hwClusterObject 24 }

    hgmpMemberPriPortEntry OBJECT-TYPE
        SYNTAX      HgmpMemberPriPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Information about a specified member private port entry. The
            indexes of the entry are hgmpGrpMemberDevId and
            hgmpMemberPriPortProto, which indicate entries in the table."
        INDEX
            {
                hgmpMemberDevId,
                hgmpMemberPriPortProto
            }
        ::= { hgmpMemberPriPortTable 1 }

    HgmpMemberPriPortEntry ::=
        SEQUENCE
            {
                hgmpMemberDevId                OCTET STRING,
                hgmpMemberPriPortProto         Unsigned32,
                hgmpMemberPriPortProtoDescr    DisplayString,
                hgmpMemberPriPortNum           Unsigned32
            }

    hgmpMemberDevId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Unique identifier indicating the switch in cluster.
            Value format of the this object is 'XXXXYYYYYY', in which 'XXXX' is 
            is reserved as 4 bytes of 0x0, 'YYYYYY' is a MAC address."
        ::= { hgmpMemberPriPortEntry 1 }

    hgmpMemberPriPortProto OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The index of this table. Each instance value of this object
            corresponds to a different protocol."
        ::= { hgmpMemberPriPortEntry 2 }

    hgmpMemberPriPortProtoDescr OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "It describes the hgmpMemberPriPortProtocol object value.
            For example, it is 'SNMP' when hgmpMemberPriPortProtocol value
            is 1."
        ::= { hgmpMemberPriPortEntry 3 }

    hgmpMemberPriPortNum OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The private port number of member switch, used by specified
            hgmpMemberPriPortProto. By using the private IP address,
            specified protocol and port number, other devices outside
            cluster can access member switch. The private IP address
            can be acquired by reading hgmpGrpMemberIpAddr."
        ::= { hgmpMemberPriPortEntry 4 }

--
-- stack definitions
--

    hwStackObject OBJECT-IDENTITY
        STATUS      current
        DESCRIPTION
            "This MIB contains objects to manage the stack operations, which is
            used on lanswitch products."
        ::= { hwCluster 2 }

    hgmpStackMemberTableChange OBJECT-TYPE
        SYNTAX      Integer32(0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Change identifier of the stack member table."
        DEFVAL { 0 }
        ::= { hwStackObject 1 }

    hgmpStackMemberDisconRate OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Disconnection rate of the stack member switches."
        DEFVAL { 0 }
        ::= { hwStackObject 2 }

    hgmpMainLanswitchFlag OBJECT-TYPE
        SYNTAX      INTEGER
            {
                false(0),
                true(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The status of the local switch in the stack."
        DEFVAL { false }
        ::= { hwStackObject 3 }

    hgmpStackIpPoolStartIP OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The first address of the management IP network segment assigned by
            the master switch, which cannot be modified in the case that there
            is IP address assignment."
        ::= { hwStackObject 4 }

    hgmpStackIpPoolLength OBJECT-TYPE
        SYNTAX      INTEGER(1..200)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The length of the management IP segment assigned by the master
            switch, which cannot be modified in the case that there is IP
            address assignment."
        ::= { hwStackObject 5 }

    hgmpStackIpPoolMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The mask of the management IP segment assigned by the master switch,
            which cannot be modified in the case that there is IP address assignment."
        DEFVAL { 'FFFF0000'H }
        ::= { hwStackObject 10 }

--
-- TABLE: Stack member table
--

    hgmpStackMemberTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpStackMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Stack member table."
        ::= { hwStackObject 6 }

    hgmpStackMemberEntry OBJECT-TYPE
        SYNTAX      HgmpStackMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hgmpStackMemberDeviceId
            }
        ::= { hgmpStackMemberTable 1 }

    HgmpStackMemberEntry ::=
        SEQUENCE
        {
            hgmpStackMemberDeviceId       OCTET STRING,
            hgmpStackMemberSerial         Integer32,
            hgmpStackMemberIpAddr         IpAddress,
            hgmpStackMemberName           OCTET STRING,
            hgmpStackMemberPassword       OCTET STRING,
            hgmpStackMemberPlatform       OCTET STRING,
            hgmpStackMemberStatus         INTEGER,
            hgmpStackMemberDisconCount    Integer32,
            hgmpStackMemberEnrollTime     Integer32
        }

    hgmpStackMemberDeviceId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "2 bytes address type of the switch + 2 bytes zero + MAC address,
            expressed as a hexadecimal number string."
        ::= { hgmpStackMemberEntry 1 }

    hgmpStackMemberSerial OBJECT-TYPE
        SYNTAX      Integer32(0..2047)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "When adding a member switch to the stack, the master switch will
            assign an unique integer to identify it."
        ::= { hgmpStackMemberEntry 2 }

    hgmpStackMemberIpAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The private member IP address for the communication inside the stack."
        ::= { hgmpStackMemberEntry 3 }

    hgmpStackMemberName OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Hostname of the member switch."
        ::= { hgmpStackMemberEntry 4 }

    hgmpStackMemberPassword OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Member password for joining a stack."
        ::= { hgmpStackMemberEntry 5 }

    hgmpStackMemberPlatform OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Set the hardware platform. A null string indicates the information
            does not exist in the device adjacency table."
        ::= { hgmpStackMemberEntry 6 }

    hgmpStackMemberStatus OBJECT-TYPE
        SYNTAX      INTEGER
            {
                normal(0),
                fault(1)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Member status on the master switch, use for displaying the network
            management status."
        DEFVAL { fault }
        ::= { hgmpStackMemberEntry 7 }

    hgmpStackMemberDisconCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Count of inside communication disconnection between the member switch
            and the master switch."
        ::= { hgmpStackMemberEntry 8 }

    hgmpStackMemberEnrollTime OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Enrollment time of the member, measured in seconds."
        ::= { hgmpStackMemberEntry 9 }

    hgmpStackRole OBJECT-TYPE
        SYNTAX      INTEGER
            {
                roleCMDSW(1),
                roleMEMBERSW(2),
                roleBAKSW(3),
                roleCASW(16),
                roleUNISW(17)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This switch's role status in stack."
        DEFVAL { roleUNISW }
        ::= { hwStackObject 7 }

    hgmpStackMaxPoolNum OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Max switch members in one stack that the switch support (include
            main switch)."
        ::= { hwStackObject 8 }

    hgmpStackMainSwMac OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..6))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The MAC address of main switch. It will be 00.00.00 when not be a
            member of stack."
        ::= { hwStackObject 9 }

--
-- Neighbor protocol objects
--

    hwNDPObject OBJECT-IDENTITY
        STATUS      current
        DESCRIPTION
            "This MIB contains objects to manage the ndp operations, which are
            used on lanswitch products."
        ::= { hwCluster 5 }

    hwNDPStatus OBJECT-TYPE
        SYNTAX      INTEGER
            {
                disable(0),
                enable(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "NDP protocol module enable flag"
        DEFVAL { enable }
        ::= { hwNDPObject 1 }

    hwNDPHelloTimer OBJECT-TYPE
        SYNTAX      Integer32 (5..254)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "NDP packet transmission interval, measured in seconds."
        DEFVAL { 60 }
        ::= { hwNDPObject 2 }

    hwNDPAgingTime OBJECT-TYPE
        SYNTAX      Integer32(5..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "How long the NDP information of the local switch can be hold in
            the adjacent switch, measured in seconds."
        DEFVAL { 180 }
        ::= { hwNDPObject 3 }

    hwNDPChange OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Change identifier of the Neighbor table"
        DEFVAL { 0 }
        ::= { hwNDPObject 4 }

    hwNDPPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HwNDPPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Configure to enable/disable the interface NDP of the switch."
        ::= { hwNDPObject 5 }

    hwNDPPortEntry OBJECT-TYPE
        SYNTAX      HwNDPPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hwNDPIfIndex
            }
        ::= { hwNDPPortTable 1 }

    HwNDPPortEntry ::=
        SEQUENCE
            {
                hwNDPIfIndex       Integer32,
                hwNDPPortStatus    INTEGER
            }

    hwNDPIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Unique identifier of an interface of the device."
        ::= { hwNDPPortEntry 1 }

    hwNDPPortStatus OBJECT-TYPE
        SYNTAX      INTEGER
            {
                disable(0),
                enable(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "If it is enable, the device will send and receive the NDP
            packets via the interface. To disable the NDP function on the
            interface, set the entry as false."
        DEFVAL { enable }
        ::= { hwNDPPortEntry 2 }

    hwNDPPortNbTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HwNDPPortNbEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "NDP neighbor information on the switch."
        ::= { hwNDPObject 6 }

    hwNDPPortNbEntry OBJECT-TYPE
        SYNTAX      HwNDPPortNbEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hwNDPIfIndex,
                hwNDPPortNbDeviceId,
                hwNDPPortNbPortName
            }
        ::= { hwNDPPortNbTable 1 }

    HwNDPPortNbEntry ::=
        SEQUENCE
            {
                hwNDPPortNbDeviceId      OCTET STRING,
                hwNDPPortNbPortName      OCTET STRING,
                hwNDPPortNbDeviceName    OCTET STRING,
                hwNDPPortNbPortMode      INTEGER,
                hwNDPPortNbProductVer    OCTET STRING,
                hwNDPPortNbHardVer       OCTET STRING,
                hwNDPPortNbBootromVer    OCTET STRING,
                hwNDPPortNbSoftVer       OCTET STRING,
                hwNDPPortNbAgingtime     Integer32
            }

    hwNDPPortNbDeviceId OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "2 bytes address type of the member switch + 2 bytes zero + MAC
            address, expressed as a character string of the hexadecimal
            number."
        ::= { hwNDPPortNbEntry 1 }

    hwNDPPortNbPortName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..47))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Unique identifier of a port. A null string indicates that the
            field was not included in in the latest NDP packet. Interface
            type + card number / slot number / sequence number."
        ::= { hwNDPPortNbEntry 2 }

    hwNDPPortNbDeviceName OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Device name. A null string indicates that the field was not
            included in the latest NDP packet."
        ::= { hwNDPPortNbEntry 3 }

    hwNDPPortNbPortMode OBJECT-TYPE
        SYNTAX      INTEGER
            {
                full(1),
                half(2),
                auto(3)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The neighbor port duplex mode."
        ::= { hwNDPPortNbEntry 4 }

    hwNDPPortNbProductVer OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Product version. A null string indicates that the field was
            not included in the latest NDP packet."
        ::= { hwNDPPortNbEntry 5 }

    hwNDPPortNbHardVer OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Hardware version. A null string indicates that the field was
            not included in the latest NDP packet."
        ::= { hwNDPPortNbEntry 6 }

    hwNDPPortNbBootromVer OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Bootrom version. A null string indicates that the field was
            not included in the latest NDP packet."
        ::= { hwNDPPortNbEntry 7 }

    hwNDPPortNbSoftVer OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Software version. A null string indicates that the field was
            not included in the latest NDP packet."
        ::= { hwNDPPortNbEntry 8 }

    hwNDPPortNbAgingtime OBJECT-TYPE
        SYNTAX      Integer32 (5..255)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "How long the NDP information of the local switch can be hold
            in the adjacent switch, measured in seconds."
        ::= { hwNDPPortNbEntry 9 }

--
-- NTDP management objects
--

    hwNTDPObject OBJECT-IDENTITY
        STATUS      current
        DESCRIPTION
            "This MIB contains objects to manage the ntdp operations, which
            are used on lanswitch products."
        ::= { hwCluster 4 }

    hgmpNTDPCollectTopTime OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Topology collection interval of the administrator switch of
            the cluster, measured in minutes."
        DEFVAL { 0 }
        ::= { hwNTDPObject 1 }

    hgmpNTDPHopRange OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Range of the topology collection of the administrator switch"
        DEFVAL { 3 }
        ::= { hwNTDPObject 2 }

    hgmpNTDPRun OBJECT-TYPE
        SYNTAX      INTEGER
            {
                false(0),
                true(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Enable/Disable the NTDP function on the switch."
        DEFVAL { true }
        ::= { hwNTDPObject 3 }

    hgmpNTDPPortDelay OBJECT-TYPE
        SYNTAX      Integer32 (1..100)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Set the delay to forward the topology request via the ports,
            measured in milliseconds."
        DEFVAL { 20 }
        ::= { hwNTDPObject 4 }

    hgmpNTDPHopDelay OBJECT-TYPE
        SYNTAX      Integer32 (1..1000)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Set the delay to forward the topology request from every hop,
            measured in milliseconds."
        DEFVAL { 200 }
        ::= { hwNTDPObject 5 }

    hgmpNTDPLastTopCollectDuration OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Duration of the latest overall topology collection, a
            performance count measured in seconds."
        DEFVAL { 0 }
        ::= { hwNTDPObject 6 }

    hgmpNTDPCacheChange OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Add 1 when the device table changes. The network administrator
            will check if it has changed before accessing the table. If it
            has not changed, he will not access again."
        DEFVAL { 0 }
        ::= { hwNTDPObject 7 }

    hgmpNTDPTOPTableChange OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Add 1 when the topology table changes. The network
            administrator will check if it has changed before accessing
            the table. If it has not changed, he will not access again."
        DEFVAL { 0 }
        ::= { hwNTDPObject 8 }

    hgmpNTDPInterfaceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpNTDPInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Enable/Disable the NTDP on the switch port."
        ::= { hwNTDPObject 9 }

    hgmpNTDPInterfaceEntry OBJECT-TYPE
        SYNTAX      HgmpNTDPInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hgmpNTDPInterfaceIfIndex
            }
        ::= { hgmpNTDPInterfaceTable 1 }

    HgmpNTDPInterfaceEntry ::=
        SEQUENCE
            {
                hgmpNTDPInterfaceIfIndex    Integer32,
                hgmpNTDPInterfaceEnable     INTEGER
            }

    hgmpNTDPInterfaceIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Unique identifier an interface of the device."
        ::= { hgmpNTDPInterfaceEntry 1 }

    hgmpNTDPInterfaceEnable OBJECT-TYPE
        SYNTAX      INTEGER
            {
                false(0),
                true(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "If it is true, the device will send and receive the NTDP
            packets via the interface. To disable the NTDP function on the
            interface, set the entry as false."
        DEFVAL { true }
        ::= { hgmpNTDPInterfaceEntry 2 }

    hgmpNTDPCacheTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpNTDPCacheEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Access the information about the switch from the topology table."
        ::= { hwNTDPObject 10 }

    hgmpNTDPCacheEntry OBJECT-TYPE
        SYNTAX      HgmpNTDPCacheEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hgmpNTDPCacheHashIndex,
                hgmpNTDPCacheDeviceID
            }
        ::= { hgmpNTDPCacheTable 1 }

    HgmpNTDPCacheEntry ::=
        SEQUENCE
            {
                hgmpNTDPCacheHashIndex       Integer32,
                hgmpNTDPCacheDeviceID        OCTET STRING,
                hgmpNTDPCacheClusterName     OCTET STRING,
                hgmpNTDPCacheClusterRole     INTEGER,
                hgmpNTDPCacheCapabilities    INTEGER,
                hgmpNTDPCacheVersion         OCTET STRING,
                hgmpNTDPCachePlatform        OCTET STRING,
                hgmpNTDPCacheMngVLAN         INTEGER,
                hgmpNTDPCacheHop             INTEGER
            }

    hgmpNTDPCacheHashIndex OBJECT-TYPE
        SYNTAX      Integer32 (0..255)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Our NTDP information is saved in the HASH table on the
            administrator switch. Using DeviceID as index will lead to the
            comparison of a large amount of character strings, which puts
            too many burdens on the administrator switch. A HAHSIndex is
            added to reduce the character string comparison to the
            least range."
        ::= { hgmpNTDPCacheEntry 1 }

    hgmpNTDPCacheDeviceID OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "2 bytes address type of the member switch + 2 bytes zero + MAC
            address, expressed as a character string of the
            hexadecimal number."
        ::= { hgmpNTDPCacheEntry 2 }

    hgmpNTDPCacheClusterName OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Name of the cluster including the device."
        ::= { hgmpNTDPCacheEntry 3 }

    hgmpNTDPCacheClusterRole OBJECT-TYPE
        SYNTAX      INTEGER
            {
                roleCOSW(1),
                roleMSW(2),
                roleBKSW(3),
                roleCASW(16),
                roleUNISW(17)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Cluster role of the current device, which can be a
            administrator switch (0x01), member switch(0x02), backup
            switch(0x03), candidate switch(0x10) or an independent
            switch (incapable of cluster member) (0x11)."
        DEFVAL { 17 }
        ::= { hgmpNTDPCacheEntry 4 }

    hgmpNTDPCacheCapabilities OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The capabilities of the device. FF indicates that the field
            was not included in in the latest NTDP packet."
        DEFVAL { 255 }
        ::= { hgmpNTDPCacheEntry 5 }

    hgmpNTDPCacheVersion OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The version information of the corresponding device. A null
            string indicates that the field was not included in in the
            latest NTDP packet."
        ::= { hgmpNTDPCacheEntry 6 }

    hgmpNTDPCachePlatform OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Hardware platform. A null string indicates that the field
            was not included in the latest NTDP packet."
        ::= { hgmpNTDPCacheEntry 7 }

    hgmpNTDPCacheMngVLAN OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The management VLAN ID of the device."
        DEFVAL { 1 }
        ::= { hgmpNTDPCacheEntry 8 }

    hgmpNTDPCacheHop OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Hops to this switch."
        ::= { hgmpNTDPCacheEntry 9 }

    hgmpNTDPTopTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HgmpNTDPTopEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Access the topology structure collected by the NTDP."
        ::= { hwNTDPObject 11 }

    hgmpNTDPTopEntry OBJECT-TYPE
        SYNTAX      HgmpNTDPTopEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hgmpNTDPTopHashIndex,
                hgmpNTDPTopEdgeStartDevID,
                hgmpNTDPTopEdgeIndex
            }
        ::= { hgmpNTDPTopTable 1 }

    HgmpNTDPTopEntry ::=
        SEQUENCE
            {
                hgmpNTDPTopHashIndex                  Integer32,
                hgmpNTDPTopEdgeStartDevID             OCTET STRING,
                hgmpNTDPTopEdgeIndex                  Integer32,
                hgmpNTDPTopEdgeEndDevID               OCTET STRING,
                hgmpNTDPTopEdgeStartPort              OCTET STRING,
                hgmpNTDPTopEdgeStartPortFullDuplex    INTEGER,
                hgmpNTDPTopEdgeStartPortSpeed         Integer32,
                hgmpNTDPTopEdgeEndPort                OCTET STRING,
                hgmpNTDPTopLinkStatus                 INTEGER
            }

    hgmpNTDPTopHashIndex OBJECT-TYPE
        SYNTAX      Integer32 (0..255)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Our NTDP information is saved in the HASH table on the
            administrator switch. Using DeviceID as index will lead to the
            comparison of a large amount of character strings, which puts
            too many burdens on the administrator switch. A HAHSIndex is
            added to reduce the character string comparison to the
            least range."
        ::= { hgmpNTDPTopEntry 1 }

    hgmpNTDPTopEdgeStartDevID OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "2 bytes address type of the member switch + 2 bytes zero + MAC
            address, expressed as a character string of the hexadecimal number."
        ::= { hgmpNTDPTopEntry 2 }

    hgmpNTDPTopEdgeIndex OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Edge index of this entry in the data structure."
        ::= { hgmpNTDPTopEntry 3 }

    hgmpNTDPTopEdgeEndDevID OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..10))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "2 bytes address type of the member switch + 2 bytes zero + MAC
            address, expressed as a character string of the hexadecimal number."
        ::= { hgmpNTDPTopEntry 4 }

    hgmpNTDPTopEdgeStartPort OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..47))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of the first port of a topology edge. Interface
            type + card number / slot number / sequence number."
        ::= { hgmpNTDPTopEntry 5 }

    hgmpNTDPTopEdgeStartPortFullDuplex OBJECT-TYPE
        SYNTAX      INTEGER
            {
                half(0),
                full(1)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The full-duplex status of the first port on a topology edge."
        DEFVAL { half }
        ::= { hgmpNTDPTopEntry 6 }

    hgmpNTDPTopEdgeStartPortSpeed OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The speed of the first port on a topology edge."
        DEFVAL { 0 }
        ::= { hgmpNTDPTopEntry 7 }

    hgmpNTDPTopEdgeEndPort OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..47))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of the last port of a topology edge. Interface
            type + card number / slot number / sequence number."
        ::= { hgmpNTDPTopEntry 8 }

    hgmpNTDPTopLinkStatus OBJECT-TYPE
        SYNTAX      INTEGER
            {
                forwarding(1),
                blocking(2)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "In STP or RSTP, it describes link status according to port STP
            steady status. In MSTP it describes STP steady status of the
            instance which management VLAN belongs to. Either
            'hgmpNTDPTopEdgeStartPort' or 'hgmpNTDPTopEdgeEndPort' STP
            steady status is 'blocking', this object is 'blocking',
            otherwise is 'forwarding'.
            If STP or MSTP is disabled, this object is 'forwarding'."
        ::= { hgmpNTDPTopEntry 11 }

    hgmpStackEventsV2 OBJECT-IDENTITY
        STATUS      current
        DESCRIPTION
            "Definition point for Stack notifications."
        ::= { hwStackObject 0 }

    hgmpStackMemberfailure NOTIFICATION-TYPE
        OBJECTS
            {
                hgmpStackMemberDeviceId
            }
        STATUS      current
        DESCRIPTION
            "When a stack member failure, send a snmp trap to the network
            management."
        ::= { hgmpStackEventsV2 1 }

    hgmpStackMemberRecover NOTIFICATION-TYPE
        OBJECTS
            {
                hgmpStackMemberDeviceId
            }
        STATUS      current
        DESCRIPTION
            "When a stack member Recover, send a snmp trap to the network
            management."
        ::= { hgmpStackEventsV2 2 }

    hgmpStackMemberStatusChange NOTIFICATION-TYPE
        OBJECTS
            {
                hgmpStackMemberDeviceId,
                hgmpNTDPCacheClusterRole
            }
        STATUS      current
        DESCRIPTION
            "When a stack member status change, send a snmp trap to the network
            management."
        ::= { hgmpStackEventsV2 3 }
END
