-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- 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 HpnicfNDPNbEntry
--        to HpnicfNDPPortNbEntry
--   V1.2 2004/8/09 add notification hpnicfhgmpNetTopChange
--   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 hpnicfhgmpClusterProtocolMac
--        add hpnicfhgmpWhitelistNbTable
--        add hpnicfhgmpWhitelistTable
--        add hpnicfhgmpBlacklistTable
--        2005-12-20 added by zushuzhi 03030
--        add hpnicfhgmpMemberPriPortTable
--        add hpnicfhgmpNTDPTopLinkStatus
--   V1.7 2006-04-30 modified by gaolong
--        relocate hpnicfhgmpProtocolMac, hpnicfhgmpTopologyManagement, hpnicfhgmpMemberPriPortTable
--        and the objects below them.
--        relocate hpnicfhgmpNTDPTopLinkStatus in hpnicfhgmpNTDPTopLinkStatus.
--   V1.8 2006-05-08 modify the description of hpnicfhgmpNTDPCollectTopTime by shanfeng
-- ==================================================================
-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================
HPN-ICF-HGMP-MIB  DEFINITIONS ::= BEGIN
    IMPORTS
        hpnicfRhw
            FROM HPN-ICF-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;

    hpnicfHgmp MODULE-IDENTITY
        LAST-UPDATED "200512061452Z"
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            "This MIB contains objects to manage the hpnicfhgmp operations,
            which are used on lanswitch products."
        ::= { hpnicfRhw 7 }

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

--
-- cluster definitions
--

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

    hpnicfhgmpSetVLANSecurity 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 }
        ::= { hpnicfClusterObject 1 }

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

    hpnicfhgmpHandShakeHoldtime 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 }
        ::= { hpnicfClusterObject 3 }

    hpnicfhgmpGrpMemberTableChange 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 }
        ::= { hpnicfClusterObject 4 }

    hpnicfhgmpMemberDisconRate 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 }
        ::= { hpnicfClusterObject 5 }

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

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

    hpnicfhgmpMngPriIpSegCMIP 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."
        ::= { hpnicfClusterObject 8 }

    hpnicfhgmpMngPriIpMask 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."
        ::= { hpnicfClusterObject 9 }

    hpnicfhgmpFtpServer 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."
        ::= { hpnicfClusterObject 10 }

    hpnicfhgmpTftpServer 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."
        ::= { hpnicfClusterObject 11 }

    hpnicfhgmpSnmpHost 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."
        ::= { hpnicfClusterObject 12 }

    hpnicfhgmpLogHost 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."
        ::= { hpnicfClusterObject 13 }

--
-- TABLE: Group member table
--

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

    hpnicfhgmpGrpMemberEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpGrpMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfhgmpGrpMemberDeviceId
            }
        ::= { hpnicfhgmpGrpMemberTable 1 }

    HpnicfHgmpGrpMemberEntry ::=
        SEQUENCE
            {
                hpnicfhgmpGrpMemberDeviceId       OCTET STRING,
                hpnicfhgmpGrpMemberSerial         Integer32,
                hpnicfhgmpGrpMemberIpAddr         IpAddress,
                hpnicfhgmpGrpMemberName           OCTET STRING,
                hpnicfhgmpGrpMemberPassword       OCTET STRING,
                hpnicfhgmpGrpMemberPlatform       OCTET STRING,
                hpnicfhgmpGrpMemberStatus         INTEGER,
                hpnicfhgmpGrpMemberDisconCount    Integer32,
                hpnicfhgmpGrpMemberEnrollTime     Integer32,
                hpnicfhgmpGrpMemberOperate        RowStatus
            }

    hpnicfhgmpGrpMemberDeviceId 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."
        ::= { hpnicfhgmpGrpMemberEntry 1 }

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

    hpnicfhgmpGrpMemberIpAddr 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."
        ::= { hpnicfhgmpGrpMemberEntry 3 }

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

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

    hpnicfhgmpGrpMemberPlatform 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."
        ::= { hpnicfhgmpGrpMemberEntry 6 }

    hpnicfhgmpGrpMemberStatus 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 }
        ::= { hpnicfhgmpGrpMemberEntry 7 }

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

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

    hpnicfhgmpGrpMemberOperate 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."
        ::= { hpnicfhgmpGrpMemberEntry 10 }

--
-- TABLE: Member reset table
--

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

    hpnicfhgmpMemberResetEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpMemberResetEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfhgmpMemberResetMAC
            }
        ::= { hpnicfhgmpMemberResetTable 1 }

    HpnicfHgmpMemberResetEntry ::=
        SEQUENCE
            {
                hpnicfhgmpMemberResetMAC      OCTET STRING,
                hpnicfhgmpMemberEraseflash    INTEGER
            }

    hpnicfhgmpMemberResetMAC 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."
        ::= { hpnicfhgmpMemberResetEntry  1 }

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

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

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

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

    hpnicfhgmpMemberStatusChange NOTIFICATION-TYPE
        OBJECTS
            {
                hpnicfhgmpGrpMemberDeviceId,
                hpnicfhgmpNTDPCacheClusterRole
            }
        STATUS      current
        DESCRIPTION
            "When a cluster member status change, send a snmp trap to the
            network management."
        ::= { hpnicfhgmpEventsV2 3 }

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

    hpnicfhgmpClusterRole 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 }
        ::= { hpnicfClusterObject 16 }

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

    hpnicfhgmpClusterCmdSwMac 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."
        ::= { hpnicfClusterObject 18 }

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

--
-- cluster protocol MAC
--

    hpnicfhgmpProtocolMac OBJECT IDENTIFIER ::= { hpnicfClusterObject 22 }

    hpnicfhgmpClusterProtocolMac 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 }
        ::= { hpnicfhgmpProtocolMac 1 }

--
-- hpnicfhgmp topology management
--

    hpnicfhgmpTopologyManagement OBJECT IDENTIFIER ::= { hpnicfClusterObject 23 }

--
-- TABLE: Whitelist Table
--

    hpnicfhgmpWhitelistTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfHgmpWhitelistEntry
        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."
        ::= { hpnicfhgmpTopologyManagement 1 }

    hpnicfhgmpWhitelistEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpWhitelistEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Entry items"
        INDEX
            {
                hpnicfhgmpWhitelistDeviceId
            }
        ::= { hpnicfhgmpWhitelistTable 1 }

    HpnicfHgmpWhitelistEntry ::=
        SEQUENCE
            {
                hpnicfhgmpWhitelistDeviceId     OCTET STRING,
                hpnicfhgmpWhitelistSerial       Integer32,
                hpnicfhgmpWhitelistRowStatus    RowStatus
            }

    hpnicfhgmpWhitelistDeviceId 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'."
        ::= { hpnicfhgmpWhitelistEntry  1 }

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

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

--
-- TABLE: Whitelist neighbor table
--

    hpnicfhgmpWhitelistNbTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfHgmpWhitelistNbEntry
        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."
        ::= { hpnicfhgmpTopologyManagement 2 }

    hpnicfhgmpWhitelistNbEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpWhitelistNbEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Entry items"
        INDEX
            {
                hpnicfhgmpWhitelistDeviceId,
                hpnicfhgmpWhitelistNbIndex
            }
        ::= { hpnicfhgmpWhitelistNbTable 1 }

    HpnicfHgmpWhitelistNbEntry ::=
        SEQUENCE
            {
                hpnicfhgmpWhitelistNbIndex       Integer32,
                hpnicfhgmpWhitelistNbDeviceId    OCTET STRING,
                hpnicfhgmpWhitelistPortName      OCTET STRING,
                hpnicfhgmpWhitelistNbPortName    OCTET STRING
            }

    hpnicfhgmpWhitelistNbIndex 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'."
        ::= { hpnicfhgmpWhitelistNbEntry  1 }

    hpnicfhgmpWhitelistNbDeviceId 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'."
        ::= { hpnicfhgmpWhitelistNbEntry  2 }

    hpnicfhgmpWhitelistPortName 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'."
        ::= { hpnicfhgmpWhitelistNbEntry  3 }

    hpnicfhgmpWhitelistNbPortName 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'."
        ::= { hpnicfhgmpWhitelistNbEntry  4 }

--
-- TABLE: Blacklist table
--

    hpnicfhgmpBlacklistTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfHgmpBlacklistEntry
        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."
        ::= { hpnicfhgmpTopologyManagement 3 }

    hpnicfhgmpBlacklistEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpBlacklistEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Entry items"
        INDEX
            {
                hpnicfhgmpBlacklistDeviceId
            }
        ::= { hpnicfhgmpBlacklistTable 1 }

    HpnicfHgmpBlacklistEntry ::=
        SEQUENCE
            {
                hpnicfhgmpBlacklistDeviceId         OCTET STRING,
                hpnicfhgmpBlacklistAccessDeviceId   OCTET STRING,
                hpnicfhgmpBlacklistAccessPortName   OCTET STRING,
                hpnicfhgmpBlacklistRowStatus        RowStatus
            }

    hpnicfhgmpBlacklistDeviceId 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'."
        ::= { hpnicfhgmpBlacklistEntry  1 }

    hpnicfhgmpBlacklistAccessDeviceId 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'."
        ::= { hpnicfhgmpBlacklistEntry  2 }

    hpnicfhgmpBlacklistAccessPortName 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."
        ::= { hpnicfhgmpBlacklistEntry  3 }

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

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

    hpnicfhgmpMemberPriPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfHgmpMemberPriPortEntry
        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."
        ::= { hpnicfClusterObject 24 }

    hpnicfhgmpMemberPriPortEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpMemberPriPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Information about a specified member private port entry. The
            indexes of the entry are hpnicfhgmpGrpMemberDevId and
            hpnicfhgmpMemberPriPortProto, which indicate entries in the table."
        INDEX
            {
                hpnicfhgmpMemberDevId,
                hpnicfhgmpMemberPriPortProto
            }
        ::= { hpnicfhgmpMemberPriPortTable 1 }

    HpnicfHgmpMemberPriPortEntry ::=
        SEQUENCE
            {
                hpnicfhgmpMemberDevId                OCTET STRING,
                hpnicfhgmpMemberPriPortProto         Unsigned32,
                hpnicfhgmpMemberPriPortProtoDescr    DisplayString,
                hpnicfhgmpMemberPriPortNum           Unsigned32
            }

    hpnicfhgmpMemberDevId 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."
        ::= { hpnicfhgmpMemberPriPortEntry 1 }

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

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

    hpnicfhgmpMemberPriPortNum OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The private port number of member switch, used by specified
            hpnicfhgmpMemberPriPortProto. 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 hpnicfhgmpGrpMemberIpAddr."
        ::= { hpnicfhgmpMemberPriPortEntry 4 }

--
-- stack definitions
--

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

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

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

    hpnicfhgmpMainLanswitchFlag 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 }
        ::= { hpnicfStackObject 3 }

    hpnicfhgmpStackIpPoolStartIP 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."
        ::= { hpnicfStackObject 4 }

    hpnicfhgmpStackIpPoolLength 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."
        ::= { hpnicfStackObject 5 }

    hpnicfhgmpStackIpPoolMask 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 }
        ::= { hpnicfStackObject 10 }

--
-- TABLE: Stack member table
--

    hpnicfhgmpStackMemberTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfHgmpStackMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Stack member table."
        ::= { hpnicfStackObject 6 }

    hpnicfhgmpStackMemberEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpStackMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfhgmpStackMemberDeviceId
            }
        ::= { hpnicfhgmpStackMemberTable 1 }

    HpnicfHgmpStackMemberEntry ::=
        SEQUENCE
        {
            hpnicfhgmpStackMemberDeviceId       OCTET STRING,
            hpnicfhgmpStackMemberSerial         Integer32,
            hpnicfhgmpStackMemberIpAddr         IpAddress,
            hpnicfhgmpStackMemberName           OCTET STRING,
            hpnicfhgmpStackMemberPassword       OCTET STRING,
            hpnicfhgmpStackMemberPlatform       OCTET STRING,
            hpnicfhgmpStackMemberStatus         INTEGER,
            hpnicfhgmpStackMemberDisconCount    Integer32,
            hpnicfhgmpStackMemberEnrollTime     Integer32
        }

    hpnicfhgmpStackMemberDeviceId 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."
        ::= { hpnicfhgmpStackMemberEntry 1 }

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

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

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

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

    hpnicfhgmpStackMemberPlatform 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."
        ::= { hpnicfhgmpStackMemberEntry 6 }

    hpnicfhgmpStackMemberStatus 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 }
        ::= { hpnicfhgmpStackMemberEntry 7 }

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

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

    hpnicfhgmpStackRole 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 }
        ::= { hpnicfStackObject 7 }

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

    hpnicfhgmpStackMainSwMac 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."
        ::= { hpnicfStackObject 9 }

--
-- Neighbor protocol objects
--

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

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

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

    hpnicfNDPAgingTime 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 }
        ::= { hpnicfNDPObject 3 }

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

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

    hpnicfNDPPortEntry OBJECT-TYPE
        SYNTAX      HpnicfNDPPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfNDPIfIndex
            }
        ::= { hpnicfNDPPortTable 1 }

    HpnicfNDPPortEntry ::=
        SEQUENCE
            {
                hpnicfNDPIfIndex       Integer32,
                hpnicfNDPPortStatus    INTEGER
            }

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

    hpnicfNDPPortStatus 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 }
        ::= { hpnicfNDPPortEntry 2 }

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

    hpnicfNDPPortNbEntry OBJECT-TYPE
        SYNTAX      HpnicfNDPPortNbEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfNDPIfIndex,
                hpnicfNDPPortNbDeviceId,
                hpnicfNDPPortNbPortName
            }
        ::= { hpnicfNDPPortNbTable 1 }

    HpnicfNDPPortNbEntry ::=
        SEQUENCE
            {
                hpnicfNDPPortNbDeviceId      OCTET STRING,
                hpnicfNDPPortNbPortName      OCTET STRING,
                hpnicfNDPPortNbDeviceName    OCTET STRING,
                hpnicfNDPPortNbPortMode      INTEGER,
                hpnicfNDPPortNbProductVer    OCTET STRING,
                hpnicfNDPPortNbHardVer       OCTET STRING,
                hpnicfNDPPortNbBootromVer    OCTET STRING,
                hpnicfNDPPortNbSoftVer       OCTET STRING,
                hpnicfNDPPortNbAgingtime     Integer32
            }

    hpnicfNDPPortNbDeviceId 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."
        ::= { hpnicfNDPPortNbEntry 1 }

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

    hpnicfNDPPortNbDeviceName 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."
        ::= { hpnicfNDPPortNbEntry 3 }

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

    hpnicfNDPPortNbProductVer 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."
        ::= { hpnicfNDPPortNbEntry 5 }

    hpnicfNDPPortNbHardVer 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."
        ::= { hpnicfNDPPortNbEntry 6 }

    hpnicfNDPPortNbBootromVer 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."
        ::= { hpnicfNDPPortNbEntry 7 }

    hpnicfNDPPortNbSoftVer 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."
        ::= { hpnicfNDPPortNbEntry 8 }

    hpnicfNDPPortNbAgingtime 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."
        ::= { hpnicfNDPPortNbEntry 9 }

--
-- NTDP management objects
--

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

    hpnicfhgmpNTDPCollectTopTime 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 }
        ::= { hpnicfNTDPObject 1 }

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

    hpnicfhgmpNTDPRun 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 }
        ::= { hpnicfNTDPObject 3 }

    hpnicfhgmpNTDPPortDelay 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 }
        ::= { hpnicfNTDPObject 4 }

    hpnicfhgmpNTDPHopDelay 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 }
        ::= { hpnicfNTDPObject 5 }

    hpnicfhgmpNTDPLastTopCollectDuration 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 }
        ::= { hpnicfNTDPObject 6 }

    hpnicfhgmpNTDPCacheChange 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 }
        ::= { hpnicfNTDPObject 7 }

    hpnicfhgmpNTDPTOPTableChange 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 }
        ::= { hpnicfNTDPObject 8 }

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

    hpnicfhgmpNTDPInterfaceEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpNTDPInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfhgmpNTDPInterfaceIfIndex
            }
        ::= { hpnicfhgmpNTDPInterfaceTable 1 }

    HpnicfHgmpNTDPInterfaceEntry ::=
        SEQUENCE
            {
                hpnicfhgmpNTDPInterfaceIfIndex    Integer32,
                hpnicfhgmpNTDPInterfaceEnable     INTEGER
            }

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

    hpnicfhgmpNTDPInterfaceEnable 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 }
        ::= { hpnicfhgmpNTDPInterfaceEntry 2 }

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

    hpnicfhgmpNTDPCacheEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpNTDPCacheEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfhgmpNTDPCacheHashIndex,
                hpnicfhgmpNTDPCacheDeviceID
            }
        ::= { hpnicfhgmpNTDPCacheTable 1 }

    HpnicfHgmpNTDPCacheEntry ::=
        SEQUENCE
            {
                hpnicfhgmpNTDPCacheHashIndex       Integer32,
                hpnicfhgmpNTDPCacheDeviceID        OCTET STRING,
                hpnicfhgmpNTDPCacheClusterName     OCTET STRING,
                hpnicfhgmpNTDPCacheClusterRole     INTEGER,
                hpnicfhgmpNTDPCacheCapabilities    INTEGER,
                hpnicfhgmpNTDPCacheVersion         OCTET STRING,
                hpnicfhgmpNTDPCachePlatform        OCTET STRING,
                hpnicfhgmpNTDPCacheMngVLAN         INTEGER,
                hpnicfhgmpNTDPCacheHop             INTEGER
            }

    hpnicfhgmpNTDPCacheHashIndex 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."
        ::= { hpnicfhgmpNTDPCacheEntry 1 }

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

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

    hpnicfhgmpNTDPCacheClusterRole 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 }
        ::= { hpnicfhgmpNTDPCacheEntry 4 }

    hpnicfhgmpNTDPCacheCapabilities 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 }
        ::= { hpnicfhgmpNTDPCacheEntry 5 }

    hpnicfhgmpNTDPCacheVersion 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."
        ::= { hpnicfhgmpNTDPCacheEntry 6 }

    hpnicfhgmpNTDPCachePlatform 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."
        ::= { hpnicfhgmpNTDPCacheEntry 7 }

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

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

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

    hpnicfhgmpNTDPTopEntry OBJECT-TYPE
        SYNTAX      HpnicfHgmpNTDPTopEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            ""
        INDEX
            {
                hpnicfhgmpNTDPTopHashIndex,
                hpnicfhgmpNTDPTopEdgeStartDevID,
                hpnicfhgmpNTDPTopEdgeIndex
            }
        ::= { hpnicfhgmpNTDPTopTable 1 }

    HpnicfHgmpNTDPTopEntry ::=
        SEQUENCE
            {
                hpnicfhgmpNTDPTopHashIndex                  Integer32,
                hpnicfhgmpNTDPTopEdgeStartDevID             OCTET STRING,
                hpnicfhgmpNTDPTopEdgeIndex                  Integer32,
                hpnicfhgmpNTDPTopEdgeEndDevID               OCTET STRING,
                hpnicfhgmpNTDPTopEdgeStartPort              OCTET STRING,
                hpnicfhgmpNTDPTopEdgeStartPortFullDuplex    INTEGER,
                hpnicfhgmpNTDPTopEdgeStartPortSpeed         Integer32,
                hpnicfhgmpNTDPTopEdgeEndPort                OCTET STRING,
                hpnicfhgmpNTDPTopLinkStatus                 INTEGER
            }

    hpnicfhgmpNTDPTopHashIndex 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."
        ::= { hpnicfhgmpNTDPTopEntry 1 }

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

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

    hpnicfhgmpNTDPTopEdgeEndDevID 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."
        ::= { hpnicfhgmpNTDPTopEntry 4 }

    hpnicfhgmpNTDPTopEdgeStartPort 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."
        ::= { hpnicfhgmpNTDPTopEntry 5 }

    hpnicfhgmpNTDPTopEdgeStartPortFullDuplex 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 }
        ::= { hpnicfhgmpNTDPTopEntry 6 }

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

    hpnicfhgmpNTDPTopEdgeEndPort 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."
        ::= { hpnicfhgmpNTDPTopEntry 8 }

    hpnicfhgmpNTDPTopLinkStatus 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'."
        ::= { hpnicfhgmpNTDPTopEntry 11 }

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

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

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

    hpnicfhgmpStackMemberStatusChange NOTIFICATION-TYPE
        OBJECTS
            {
                hpnicfhgmpStackMemberDeviceId,
                hpnicfhgmpNTDPCacheClusterRole
            }
        STATUS      current
        DESCRIPTION
            "When a stack member status change, send a snmp trap to the network
            management."
        ::= { hpnicfhgmpStackEventsV2 3 }
END
