HP-SwitchStack-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY, Integer32, IpAddress
            FROM SNMPv2-SMI
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF
        RowStatus, MacAddress
            FROM SNMPv2-TC
        hpSwitch
            FROM HP-ICF-OID;

    hpSwitchVirtualStackMib MODULE-IDENTITY
        LAST-UPDATED "200011032344Z"  -- November 3, 2000
        ORGANIZATION "Hewlett Packard Company,
                      Network Infrastructure Solutions"
        CONTACT-INFO "Hewlett Packard Company
                      8000 Foothills Blvd.
                      Roseville, CA 95747"
        DESCRIPTION  "This MIB module describes objects for managing
                     the Stacking features of devices in the HP
                     Integrated Communication Facility product line."

        REVISION     "200011032344Z"  -- November 3, 2000
        DESCRIPTION  "Initial version of this MIB module."

        ::= { hpSwitch 10 }


    -- Configuration support for Stacking

    hpSwitchStackConfig  OBJECT IDENTIFIER ::= { hpSwitchVirtualStackMib 1 }

    hpSwitchStackAdminStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                        candidate(1),
                        disabled(2),
                        member(3),
                        command(4),
                        pending(5)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The operational status of the stacking feature."
         ::= { hpSwitchStackConfig 1 }

    hpSwitchStackCommandAddr OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable is only valid if
                    'hpSwitchStackAdminStatus' has been set 'member'.
                    This is the MAC address of the command switch for
                    this member."
         ::= { hpSwitchStackConfig 2 }

    hpSwitchStackName OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (0..20))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable is only valid if
                    'hpSwitchStackAdminStatus' has been set
                    'command-switch'. This is the name of the stack for
                    which this switch is serving as the command switch
                    (maximum length of 20 characters)."
        ::= { hpSwitchStackConfig 3 }

    hpSwitchStackPropagate OBJECT-TYPE
        SYNTAX      INTEGER{
                        enable(1),
                        disable(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable/disable SNMP community propagation. This
                    variable is only valid if 'hpSwitchStackAdminStatus'
                    has been set to 'command-switch'."
        ::= { hpSwitchStackConfig 4 }

    hpSwitchStackAutoJoin OBJECT-TYPE
        SYNTAX      INTEGER {
                        enable(1),
                        disable(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable/disable auto join on stack. This variable 
                    is only valid for candidate switch."
        ::= { hpSwitchStackConfig 5 }

    hpSwitchStackAutoGrab OBJECT-TYPE
        SYNTAX      INTEGER {
                        enable(1),
                        disable(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable/disable auto grab on stack. This variable 
                    is only valid if 'hpSwitchStackAdminStatus' has been
                    set to 'command-switch'."
        ::= { hpSwitchStackConfig 6 }


    hpSwitchStackConfigMemberTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpSwitchStackConfigMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table that contains a group of member switches
                    configured to be in this switch's stack."
        ::= { hpSwitchVirtualStackMib 2 }

    hpSwitchStackConfigMemberEntry OBJECT-TYPE
        SYNTAX      HpSwitchStackConfigMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A group of member switches configured to be in this
                    switch's stack."
        INDEX       { hpSwitchStackMemberSwitchNum }
        ::= { hpSwitchStackConfigMemberTable 1 }

    HpSwitchStackConfigMemberEntry ::=
        SEQUENCE {
            hpSwitchStackMemberSwitchNum            Integer32,
            hpSwitchStackMemberMacAddr              MacAddress,
            hpSwitchStackMemberPassword             OCTET STRING,
            hpSwitchStackMemberEntryStatus          RowStatus
        }

    hpSwitchStackMemberSwitchNum OBJECT-TYPE
        SYNTAX      Integer32 (1..15)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "An index that uniquely identifies the member switch
                    associated with this row entry."
        ::= { hpSwitchStackConfigMemberEntry 1 }

    hpSwitchStackMemberMacAddr OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-create
        STATUS	    current
        DESCRIPTION "The MAC Address that identifies the member switch."
        ::= { hpSwitchStackConfigMemberEntry 2 }

    hpSwitchStackMemberPassword OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (0..17))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The manager password configured on the member switch.
                    This object always returns a 0 length octet string
                    when read."
        ::= { hpSwitchStackConfigMemberEntry 3 }

    hpSwitchStackMemberEntryStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The status of a stack member entry."          
        ::= { hpSwitchStackConfigMemberEntry 4 }

    -- Status support for Stacking

    hpStackStats   OBJECT IDENTIFIER ::= { hpSwitchVirtualStackMib 3 }

    hpStackStatsName OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The stack name of this switch."
        ::= { hpStackStats 1 }

    hpStackStatsMembersNum OBJECT-TYPE
        SYNTAX      Integer32 (0..32)           
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of members switches that have joined this
                    switch's stack.  This variable is only valid if this
                    switch has been set as a 'command-switch'."
        ::= { hpStackStats 2 }

    hpStackStatsMembersUnreachable OBJECT-TYPE
        SYNTAX      Integer32 (0..32)           
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of unreachable member switches. This
                    variable is only valid if this switch has been set as
                    a 'command-switch'."
        ::= { hpStackStats 3 }

    hpStackStatsMemberID OBJECT-TYPE
        SYNTAX      Integer32 (0..32)          
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number by which member switch is known on the
                    stack."
        ::= { hpStackStats 4 }

    hpStackStatsMgmtIpAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The IP address of the Stack manager switch (command
                    switch).  This variable is only valid if this switch
                    has been set as a 'member-switch'."
        ::= { hpStackStats 5 }

    hpStackStatsStackingStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                        joined(1),         -- joined successfully
                        pending(2),        -- join pending
                        noReponse(3),      -- No response from command switch
                        notCommand(4),     -- Not a command switch
                        stackFull(5),      -- Stack full on command switch
                        remoteFailure(6),  -- Unknown remote failure
                        unknownFailure(7), -- Unknown failure
                        evicted(8),        -- Evicted by command switch
                        commandUp(9),      -- command switch is up
                        commandDown(10),   -- command switch is down
                        unusedStatus(11),  -- Status not currently used
                        undiscovered(12)   -- Undiscovered switch
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The status of this switch. This variable is only
                    valid if this switch has been set as a 'member-switch'."
        ::= { hpStackStats 6 }


    hpStackStatsMembersTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpStackStatsMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table containing the member switches that have
                    joined this switch's stack."
        ::= { hpSwitchVirtualStackMib 4 }

    hpStackStatsMemberEntry OBJECT-TYPE
        SYNTAX      HpStackStatsMemberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The information assosiated with each row in the
                    member table."
        INDEX       { hpStackStatsMemberSwitchIndx }
        ::= { hpStackStatsMembersTable 1 }

    HpStackStatsMemberEntry ::=
        SEQUENCE {
            hpStackStatsMemberSwitchIndx      Integer32,
            hpStackStatsMemberMacAddr         MacAddress,
            hpStackStatsMemberSystemName      OCTET STRING,
            hpStackStatsMemberDeviceType      OCTET STRING,
            hpStackStatsMemberOperStatus      INTEGER
        }

    hpStackStatsMemberSwitchIndx OBJECT-TYPE
        SYNTAX      Integer32 (0..32)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The index identifying the member switch."
        ::= { hpStackStatsMemberEntry 1 }

    hpStackStatsMemberMacAddr OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The MAC address of the member switch."
        ::= { hpStackStatsMemberEntry 2 }

    hpStackStatsMemberSystemName OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The system name of the member switch."
        ::= { hpStackStatsMemberEntry 3 }

    hpStackStatsMemberDeviceType OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The device type of the member switch."
        ::= { hpStackStatsMemberEntry 4 }

    hpStackStatsMemberOperStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                        pending(1),               -- join pending
                        joined(2),                -- joined
                        noReponse(3),             -- No response from
                                                  -- member switch
                        stackingDisabled(4),      -- Stacking disabled
                        invalidPassword(5),       -- Invalid password
                        commanderAnotherStack(6), -- Commander of another
                                                  -- stack
                        remoteFailure(7),         -- Remote failure
                        unknownFailure(8),        -- Unknown failure
                        rejected(9),              -- rejected by command
                                                  -- switch
                        memberUp(10),             -- member switch is up
                        memberDown(11),           -- member switch is down
                        commanderThisStack(12),   -- Commander of this stack
                        unusedStatus(13),         -- Status not currently
                                                  -- being used
                        undiscovered(14)          -- Undiscovered switch
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The current state of the member switch."
        ::= { hpStackStatsMemberEntry 5 }

    -- Configuration support for Discovery Protocol
    hpSwitchDiscoveryConfig OBJECT IDENTIFIER ::=
        { hpSwitchVirtualStackMib 5 }

    hpSwitchDiscoveryAdminStatus  OBJECT-TYPE 
        SYNTAX      INTEGER {
                        enable(1),
                        disable(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The operational status of the discovery protocol."
        ::= { hpSwitchDiscoveryConfig 1 }

    hpSwitchDiscoveryTransmissionInterval OBJECT-TYPE
        SYNTAX      Integer32 (1..300)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The interval between the sending out of new
                    discovery packets."
        ::= { hpSwitchDiscoveryConfig 2 }


    -- Status support for Discovery Protocol

    hpDiscoverStatsCandidatesTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpDiscoverStatsCandidateEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table containing the switches that have been
                    discovered as a candidates to form a stack."
        ::= { hpSwitchVirtualStackMib 6 }

    hpDiscoverStatsCandidateEntry OBJECT-TYPE
        SYNTAX      HpDiscoverStatsCandidateEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The information assosiated with each row in the
                    candidate table."
        INDEX       { hpDiscoverStatsCandidateMacAddr }
        ::= { hpDiscoverStatsCandidatesTable 1 }

    HpDiscoverStatsCandidateEntry ::=
        SEQUENCE {
            hpDiscoverStatsCandidateMacAddr         MacAddress,
            hpDiscoverStatsCandidateSystemName      OCTET STRING,
            hpDiscoverStatsCandidateDeviceType      OCTET STRING
        }

    hpDiscoverStatsCandidateMacAddr OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The MAC address of the candidate switch.  Used as
                    an index identifying row in the table."
        ::= { hpDiscoverStatsCandidateEntry 1 }

    hpDiscoverStatsCandidateSystemName OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The system name of the candidate switch."
        ::= { hpDiscoverStatsCandidateEntry 2 }

    hpDiscoverStatsCandidateDeviceType OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The device type of the candidate switch."
        ::= { hpDiscoverStatsCandidateEntry 3 }

    hpDiscoverStatsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpDiscoverStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table containing the switches that have been
                    discovered on the network."
        ::= { hpSwitchVirtualStackMib 7 }

    hpDiscoverStatsEntry OBJECT-TYPE
        SYNTAX      HpDiscoverStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The information assosiated with each row in the
                    discover table."
        INDEX       { hpDiscoverStatsSwitchIndex }
        ::= { hpDiscoverStatsTable 1 }

    HpDiscoverStatsEntry ::=
        SEQUENCE {
            hpDiscoverStatsSwitchIndex          Integer32,
            hpDiscoverStatsSwitchStackName      OCTET STRING,
            hpDiscoverStatsSwitchMacAddr        MacAddress,
            hpDiscoverStatsSwitchSystemName     OCTET STRING,
            hpDiscoverStatsSwitchStatus         OCTET STRING
        }

    hpDiscoverStatsSwitchIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The index identifying the row in the table."
        ::= { hpDiscoverStatsEntry 1 }

    hpDiscoverStatsSwitchStackName OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The stack name of the discovered switch."
        ::= { hpDiscoverStatsEntry 2 }

    hpDiscoverStatsSwitchMacAddr OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION "The MAC address of the discovered switch."
        ::= { hpDiscoverStatsEntry 3 }

    hpDiscoverStatsSwitchSystemName OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The system name of the discovered switch."
        ::= { hpDiscoverStatsEntry 4 }

    hpDiscoverStatsSwitchStatus    OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..35))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The status of the discovered switch."
        ::= { hpDiscoverStatsEntry 5 }



    hpSwitchVirtualStackMibConformance
        OBJECT IDENTIFIER ::= { hpSwitchVirtualStackMib 8 }

    hpSwitchVirtualStackMibCompliances
        OBJECT IDENTIFIER ::= {  hpSwitchVirtualStackMibConformance 1}

    hpSwitchVirtualStackMibGroups
        OBJECT IDENTIFIER ::= {  hpSwitchVirtualStackMibConformance 2}

    hpSwitchVirtualStackMibCompliance MODULE-COMPLIANCE 
        STATUS      current
        DESCRIPTION "The compliance statement for devices implementing the
                    HP Stack Mib."
        MODULE
            MANDATORY-GROUPS { hpSwitchStackConfigGroup,
                               hpSwitchStackStatsGroup,
                               hpSwitchDiscoverConfigGroup,
                               hpDiscoverStatsGroup }
        ::= { hpSwitchVirtualStackMibCompliances 1 }



    hpSwitchStackConfigGroup OBJECT-GROUP
        OBJECTS     { hpSwitchStackAdminStatus,
		      hpSwitchStackCommandAddr,
                      hpSwitchStackName,
                      hpSwitchStackPropagate,
                      hpSwitchStackAutoJoin,
                      hpSwitchStackAutoGrab,
                      hpSwitchStackMemberSwitchNum,
                      hpSwitchStackMemberMacAddr,
                      hpSwitchStackMemberPassword,
                      hpSwitchStackMemberEntryStatus
                    }
        STATUS      current
	DESCRIPTION "A collection of objects for configuring a stack."
        ::= { hpSwitchVirtualStackMibGroups 1 }

    hpSwitchStackStatsGroup OBJECT-GROUP
        OBJECTS     { hpStackStatsName,
                      hpStackStatsMembersNum,
                      hpStackStatsMembersUnreachable,
                      hpStackStatsMemberID,
                      hpStackStatsMgmtIpAddr,
                      hpStackStatsStackingStatus,
                      hpStackStatsMemberSwitchIndx,
                      hpStackStatsMemberMacAddr,
                      hpStackStatsMemberSystemName,
                      hpStackStatsMemberDeviceType,
                      hpStackStatsMemberOperStatus
                    }
	STATUS      current
        DESCRIPTION "A collection of objects for determining state 
                    and status of a stack."
        ::= { hpSwitchVirtualStackMibGroups 2 }

    hpSwitchDiscoverConfigGroup OBJECT-GROUP
        OBJECTS     { hpSwitchDiscoveryAdminStatus,
                      hpSwitchDiscoveryTransmissionInterval
                    }
        STATUS      current
        DESCRIPTION "A collection of objects for configuring the 
                    state of the stack discovery protocol."
        ::= { hpSwitchVirtualStackMibGroups 3 }
       
    hpDiscoverStatsGroup OBJECT-GROUP
        OBJECTS     { hpDiscoverStatsCandidateMacAddr,
                      hpDiscoverStatsCandidateSystemName,
                      hpDiscoverStatsCandidateDeviceType,
                      hpDiscoverStatsSwitchIndex,
                      hpDiscoverStatsSwitchStackName,
                      hpDiscoverStatsSwitchMacAddr,
                      hpDiscoverStatsSwitchSystemName,
                      hpDiscoverStatsSwitchStatus
                    }
        STATUS      current
        DESCRIPTION "A collection of objects for viewing the
                    discovered devices by the stack discovery 
                    protocol."
        ::= { hpSwitchVirtualStackMibGroups 4 }

END
