-- ****************************************************************************
--
--                           Cluster Features
--         Management Information Base for SNMP Network Management
--
--
--      Copyright 1997,2003 Hewlett-Packard Development Company, L.P.
--
--      Hewlett-Packard Company shall not be liable for technical or
--      editorial errors or omissions contained herein. The information in
--      this document is provided "as is" without warranty of any kind and
--      is subject to change without notice. The warranties for HP products
--      are set forth in the express limited warranty statements
--      accompanying such products. Nothing herein should be construed as
--      constituting an additional warranty.
--
--      Confidential computer software. Valid license from HP required for
--      possession, use or copying. Consistent with FAR 12.211 and 12.212,
--      Commercial Computer Software, Computer Software Documentation, and
--      Technical Data for Commercial Items are licensed to the U.S.
--      Government under vendor's standard commercial license.
--
--      Refer to the READMIB.RDM file for more information about the
--      organization of the information in the Compaq Enterprise.
--
--      The Compaq Enterprise number is 232.
--      The ASN.1 prefix to, and including the Compaq Enterprise is:
--           1.3.6.1.4.1.232
--
-- ****************************************************************************


CPQCLUSTER-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        DisplayString           FROM RFC1213-MIB
        OBJECT-TYPE             FROM RFC-1212
        TRAP-TYPE               FROM RFC-1215
        sysName                 FROM RFC1213-MIB
        compaq                  FROM CPQHOST-MIB
        cpqHoTrapFlags          FROM CPQHOST-MIB;

--    compaq                  OBJECT IDENTIFIER ::= { enterprises 232 }
    cpqCluster              OBJECT IDENTIFIER ::= { compaq 15 }
    cpqClusterMibRev        OBJECT IDENTIFIER ::= { cpqCluster 1 }
    cpqClusterComponent     OBJECT IDENTIFIER ::= { cpqCluster 2 }
    cpqClusterTrap          OBJECT IDENTIFIER ::= { cpqCluster 3 }

    cpqClusterInterface     OBJECT IDENTIFIER ::= { cpqClusterComponent 1 }
    cpqClusterInfo          OBJECT IDENTIFIER ::= { cpqClusterComponent 2 }
    cpqClusterNode          OBJECT IDENTIFIER ::= { cpqClusterComponent 3 }
    cpqClusterResource      OBJECT IDENTIFIER ::= { cpqClusterComponent 4 }
    cpqClusterInterconnect  OBJECT IDENTIFIER ::= { cpqClusterComponent 5 }
    cpqClusterNetwork       OBJECT IDENTIFIER ::= { cpqClusterComponent 6 }

    cpqClusterOsCommon      OBJECT IDENTIFIER ::= { cpqClusterInterface 4 }


-- ****************************************************************************
--   Cluster Information MIB Revision
--   ====================================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group               (1.3.6.1.4.1.232.15)
--       cpqClusterMibRev Group        (1.3.6.1.4.1.232.15.1)
--
--      Implementation of the cpqClusterMibRev group is mandatory for all agents
--      supporting the Cluster MIB.
--
--      An Insight Agent conforming to this document will return a
--      cpqClusterMibRevMajor of one (1) and a cpqClusterMibRevMinor of three (3).
--
-- ****************************************************************************

    cpqClusterMibRevMajor OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The Major Revision level of the MIB.

            A change in the major revision level represents a major change
            in the architecture of the MIB.  A change in the major revision
            level may indicate a significant change in the information
            supported and/or the meaning of the supported information.
            Correct interpretation of data may require a MIB document with
            the same major revision level."
        ::= { cpqClusterMibRev 1 }

    cpqClusterMibRevMinor OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The Minor Revision level of the MIB.

            A change in the minor revision level may represent some minor
            additional support, no changes to any pre-existing information
            has occurred."
        ::= { cpqClusterMibRev 2 }

    cpqClusterMibCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The overall condition of the cluster represented by this MIB.
             This variable is the same as cpqClusterCondition in the Cluster
             Info Group. It is a combination of the Cluster node conditions,
             the resource conditions, and the network conditions as defined
             later in the Cluster Node group the Cluster Resource group, and
             the Cluster Network group.
             other(1)    The cluster condition can not be determined. Every
                         node condition, resource condition, and network
                         condition is undetermined.
             ok(2)       The cluster condition is functioning normally.
                         Every node condition, resource condition, and network
                         condition is ok.
             degraded(3) The cluster condition is degraded if at least one node
                         condition is failed or degraded or at least one
                         resource condition, or one network condition is degraded.
             failed(4)   The cluster condition is failed if every node condition
                         is failed, or at least one resource condition is failed,
                         or at least one network condition is failed."
        ::= { cpqClusterMibRev 3 }


-- ****************************************************************************
--   Cluster OS Common
--   ========================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group                   (1.3.6.1.4.1.232.15)
--       cpqClusterComponent Group         (1.3.6.1.4.1.232.15.2)
--        cpqClusterInterface Group        (1.3.6.1.4.1.232.15.2.1)
--         cpqClusterOsCommon Group        (1.3.6.1.4.1.232.15.2.1.4)
--
--
--  Implementation of the cpqClusterOsCommon group is mandatory for all
--  agents that support the Cluster MIB.
--
-- ****************************************************************************

    cpqClusterOsCommonPollFreq OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "The Insight Agent's polling frequency.

            The frequency, in seconds, at which the Insight Agent requests
            information from the device driver.  A frequency of zero (0)
            indicates that the Insight Agent retrieves the information upon
            request of a management station, it does not poll the device
            driver at a specific interval.

            If the poll frequency is zero (0) all attempts to write to
            this object will fail.  If the poll frequency is non-zero,
            setting this value will change the polling frequency of the
            Insight Agent.  Setting the poll frequency to zero (0) will
            always fail, an agent may also choose to fail any request to
            change the poll frequency to a value that would severely impact
            system performance."
        ::= { cpqClusterOsCommon 1 }


-- ****************************************************************************
--   Cluster OS Common Module Table
--   =====================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group                   (1.3.6.1.4.1.232.15)
--       cpqClusterComponent Group         (1.3.6.1.4.1.232.15.2)
--        cpqClusterInterface Group        (1.3.6.1.4.1.232.15.2.1)
--         cpqClusterOsCommon Group        (1.3.6.1.4.1.232.15.2.1.4)
--          cpqClusterOsCommonModuleTable  (1.3.6.1.4.1.232.15.2.1.4.2) deprecated
--
-- ****************************************************************************

    cpqClusterOsCommonModuleTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqClusterOsCommonModuleEntry
        ACCESS  not-accessible
        STATUS  deprecated
        DESCRIPTION
            "A table of software modules that provide an interface to the
            device this MIB describes."
        ::= { cpqClusterOsCommon 2 }

    cpqClusterOsCommonModuleEntry OBJECT-TYPE
        SYNTAX  CpqClusterOsCommonModuleEntry
        ACCESS  not-accessible
        STATUS  deprecated
        DESCRIPTION
            "A description of a software module that provides an interface
            to the device this MIB describes."
        INDEX   { cpqClusterOsCommonModuleIndex }
        ::= { cpqClusterOsCommonModuleTable 1 }

        CpqClusterOsCommonModuleEntry ::= SEQUENCE {
            cpqClusterOsCommonModuleIndex       INTEGER,
            cpqClusterOsCommonModuleName        DisplayString,
            cpqClusterOsCommonModuleVersion     DisplayString,
            cpqClusterOsCommonModuleDate        OCTET STRING,
            cpqClusterOsCommonModulePurpose     DisplayString
        }

    cpqClusterOsCommonModuleIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "A unique index for this module description."
        ::= { cpqClusterOsCommonModuleEntry 1 }

    cpqClusterOsCommonModuleName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "The module name."
        ::= { cpqClusterOsCommonModuleEntry 2 }

    cpqClusterOsCommonModuleVersion OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..5))
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "The module version in XX.YY format.

            Where XX is the major version number and YY is the minor version
            number.  This field will be null (size 0) string if the agent
            cannot provide the module version."
        ::= { cpqClusterOsCommonModuleEntry 3 }

    cpqClusterOsCommonModuleDate OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (7))
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "The module date.

             field  octets  contents                  range
             =====  ======  =======                  =====
               1      1-2   year                      0..65536
               2       3    month                     1..12
               3       4    day                       1..31
               4       5    hour                      0..23
               5       6    minute                    0..59
               6       7    second                    0..60
                            (use 60 for leap-second)

            This field will be set to year = 0 if the agent cannot provide
            the module date.  The hour, minute, and second field will be set
            to zero (0) if they are not relevant.  The year field is set
            with the most significant octet first."
        ::= { cpqClusterOsCommonModuleEntry 4 }

    cpqClusterOsCommonModulePurpose OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "The purpose of the module described in this entry."
        ::= { cpqClusterOsCommonModuleEntry 5 }


-- ****************************************************************************
--   Cluster Info Group
--   ===============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group               (1.3.6.1.4.1.232.15)
--       cpqClusterComponent Group     (1.3.6.1.4.1.232.15.2)
--        cpqClusterInfo Group         (1.3.6.1.4.1.232.15.2.2)
--
--      The cpqClusterInfo group contains the general information about the
--      cluster.
--
--      Implementation of the cpqClusterInfo group is mandatory for all agents
--      that support the Cluster MIB.
--
-- ****************************************************************************

    cpqClusterName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "The name of the cluster."
        ::= { cpqClusterInfo 1 }

    cpqClusterCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The cluster condition as reported by this node. It is a
             combination of the Cluster node conditions, resource conditions,
             and network conditions as defined later in the Cluster Node
             group, Cluster Resource group, and Cluster Network group.
             other(1)    The cluster condition can not be determined. Every
                         node condition, resource condition, and network
                         condition is undetermined.
             ok(2)       The cluster condition is functioning normally.
                         Every node condition, resource condition, and network
                         condition is ok.
             degraded(3) The cluster condition is degraded if at least one node
                         condition is failed or degraded or at least one
                         resource condition, or one network condition is degraded.
             failed(4)   The cluster condition is failed if every node condition
                         is failed, or at least one resource condition is failed,
                         or at least one network condition is failed."
        ::= { cpqClusterInfo 2 }

    cpqClusterIpAddress OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The first cluster static IP address enumerated. This cluster IP
             address and any other cluster IP address are in the Cluster Resource
             Group with the resource type 'IP Address'."
        ::= { cpqClusterInfo 3 }

    cpqClusterQuorumResource OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The Quorum resource name for the cluster.  This number
             is the index into the resource table which contains the Quorum
             resource.
             -1         No Quorum resource available.
             0..64      Index into the resource table."
        ::= { cpqClusterInfo 4 }

    cpqClusterMajorVersion OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Identifies the major version number of the cluster software."
        ::= { cpqClusterInfo 5 }

    cpqClusterMinorVersion OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Identifies the minor version number of the cluster software."
        ::= { cpqClusterInfo 6 }

    cpqClusterCSDVersion OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..64))
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
            "The latest Service Pack installed on the system.
             If no Service Pack has been installed, the string is empty."
        ::= { cpqClusterInfo 7 }

    cpqClusterVendorId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The cluster software vendor identifier information."
        ::= { cpqClusterInfo 8 }

    cpqClusterResourceAggregateCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The cluster resource aggregate condition as reported by this node.
             This condition is derived directly from each and every Cluster
             resource condition as defined later in the Cluster Resource group.
             other(1)    The condition can not be determined, which equates to
                         each and every resource condition as undetermined.
             ok(2)       The condition is functioning normally, which equates
                         to each and every resource condition as ok.
             degraded(3) The condition is degraded if at least one resource
                         condition is degraded.
             failed(4)   The condition is failed if at least one resource
                         condition is failed."
        ::= { cpqClusterInfo 9 }

    cpqClusterNetworkAggregateCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The cluster network aggregate condition as reported by this node.
             This condition is derived directly from the condition of each
             Cluster network with a role of internal, or clientAndInternal or
             client as defined later in the Cluster Network group. Networks
             with a role of none are not considered in overall condition.
             other(1)    The condition can not be determined, all network
                         conditions are undetermined.
             ok(2)       The condition is functioning normally, which equates
                         to each and every network condition as ok.
             degraded(3) The condition is degraded if at least one network
                         condition is degraded.
             failed(4)   The condition is failed if at least one network
                         condition is failed."
        ::= { cpqClusterInfo 10 }

-- ****************************************************************************
--   Cluster Node Group
--   ===============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group               (1.3.6.1.4.1.232.15)
--       cpqClusterComponent Group     (1.3.6.1.4.1.232.15.2)
--        cpqClusterNode Group         (1.3.6.1.4.1.232.15.2.3)
--
--      The cpqClusterNode group contains information about the nodes in a
--      cluster.  A node is a server running the cluster software. A node is
--      responsible for hosting a number of cluster resources.  A node shares
--      storage with the other nodes in the cluster.
--
--      Implementation of the cpqClusterNode group is mandatory for all agents
--      that support the Cluster MIB.
--
-- ****************************************************************************

    cpqClusterNodeTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqClusterNodeEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "A table of cluster node entries."
        ::= { cpqClusterNode 1 }

    cpqClusterNodeEntry OBJECT-TYPE
        SYNTAX  CpqClusterNodeEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "A description of a cluster node"
        INDEX   { cpqClusterNodeIndex }
        ::= { cpqClusterNodeTable 1 }

        CpqClusterNodeEntry ::= SEQUENCE {
            cpqClusterNodeIndex         INTEGER,
            cpqClusterNodeName          DisplayString,
            cpqClusterNodeStatus        INTEGER,
            cpqClusterNodeCondition     INTEGER
        }

    cpqClusterNodeIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "A unique index for this node entry."
        ::= { cpqClusterNodeEntry 1 }

    cpqClusterNodeName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The name of the node."
        ::= { cpqClusterNodeEntry 2 }

     cpqClusterNodeStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                nodeUp(2),
                nodeDown(3),
                nodePaused(4),
                nodeJoining(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The current status of the node.  The following values are defined:
             other(1)           - Indicates that an error has occurred and
                                  the exact state of the node could not be
                                  determined, or the node status is unavailable.
             nodeUp(2)          - The node is operating as an active member of a
                                  cluster. A node that is up responds to updates
                                  to the cluster database, can host and manage
                                  groups, and can maintain communication with
                                  other nodes in the cluster.
             nodeDown(3)        - The node is trying to form or rejoin a cluster
                                  or is down. A node that is down is not an active
                                  cluster member and it may or may not be running.
                                  The Cluster Service may have started and then
                                  failed, or may have failed to start completely.
             nodePaused(4)      - The node is operating as an active member of a
                                  cluster but cannot host any resources or
                                  resource groups,is up but cluster activity is
                                  paused. Nodes that are undergoing maintenance
                                  are typically placed in this state.
             nodeJoining(5)     - The node is in the process of joining a cluster.
                                  This is a short lived state."
        ::= { cpqClusterNodeEntry 3 }

     cpqClusterNodeCondition OBJECT-TYPE
        SYNTAX  INTEGER {
                   other(1),
                   ok(2),
                   degraded(3),
                   failed(4)
                }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The current condition of the node. The following values are defined:
             other(1)           - The node status is unavailable, or could not
                                  be determined.
             ok(2)              - The node status is nodeUp.
             degraded(3)        - The node status is nodeUnavailable or
                                  nodePaused or nodeJoining.
             failed(4)          - The node status is nodeDown."
        ::= { cpqClusterNodeEntry 4 }


-- ****************************************************************************
--   Cluster Resource Group
--   ===============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group               (1.3.6.1.4.1.232.15)
--       cpqClusterComponent Group     (1.3.6.1.4.1.232.15.2)
--        cpqClusterResource Group     (1.3.6.1.4.1.232.15.2.4)
--
--      The cpqClusterResource group contains information about the resources in a
--      cluster.  A cluster resource is any physical or logical entity that is
--      used to provide a service to clients of the cluster, such as an application
--      or SCSI-attached disk. A resource is the basic unit of fail-over in a
--      cluster.
--
--      Implementation of the cpqClusterResource group is mandatory for all agents
--      that support the Cluster MIB.
--
-- ****************************************************************************

    cpqClusterResourceTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqClusterResourceEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "A table of resources managed by the cluster reported by this MIB."
        ::= { cpqClusterResource 1 }

    cpqClusterResourceEntry OBJECT-TYPE
        SYNTAX  CpqClusterResourceEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "The properties describing a resource managed by the cluster."
        INDEX   { cpqClusterResourceIndex }
        ::= { cpqClusterResourceTable 1 }

        CpqClusterResourceEntry ::= SEQUENCE {
            cpqClusterResourceIndex                 INTEGER,
            cpqClusterResourceName                  DisplayString,
            cpqClusterResourceType                  DisplayString,
            cpqClusterResourceState                 INTEGER,
            cpqClusterResourceOwnerNode             DisplayString,
            cpqClusterResourcePhysId                DisplayString,
            cpqClusterResourceCondition             INTEGER,
            cpqClusterResourceDriveLetter           DisplayString,
            cpqClusterResourceIpAddress             DisplayString,
            cpqClusterResourceGroupName             DisplayString
        }

    cpqClusterResourceIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "A unique index for this resource entry."
        ::= { cpqClusterResourceEntry 1 }

    cpqClusterResourceName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The name of the resource.  It must be unique within the cluster."
        ::= { cpqClusterResourceEntry 2 }

    cpqClusterResourceType OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The resource type, such as 'Physical Disk', 'Generic Application',
             'IP Address', 'File Share', 'Network Name', etc.."
        ::= { cpqClusterResourceEntry 3 }

    cpqClusterResourceState OBJECT-TYPE
        SYNTAX  INTEGER {
                   other(1),
                   online(2),
                   offline(3),
                   failed(4),
                   onlinePending(5),
                   offlinePending(6)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The resource's current state.  The following values are defined:
             other(1)         - Indicates that an error has occurred and the
                                exact state of the resource could not be determined or
                                the resource state is unavailable.
             online(2)        - The resource is online and functioning normally.
             offline(3)       - The resource is offline.
             failed(4)        - The resource has failed.
             onlinePending(5) - The resource is in the process of coming online.
             offlinePending(6)- The resource is in the process of going offline."
        ::= { cpqClusterResourceEntry 4 }

    cpqClusterResourceOwnerNode OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The node in the cluster where the group of the resource is
             currently online."
    ::= { cpqClusterResourceEntry 5 }

    cpqClusterResourcePhysId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The physical identification for resource type 'Physical Disk'.
             It contains the following components: storage box name,
             logical drive NN. where NN is a number from 0..n.  It is
             blank for all other resource types."
        ::= { cpqClusterResourceEntry 6 }

    cpqClusterResourceCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The resource condition.  The following values are defined:
             other(1)    - Unable to determine the resource condition.
             ok(2)       - The resource status is online.
             degraded(3) - The resource status is unavailable or offline
                           or online pending or offline pending.
             failed(4)   - The resource status is failed."
        ::= { cpqClusterResourceEntry 7 }

    cpqClusterResourceDriveLetter OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The drive letter with semi-colon of a physical disk such as x:.
             Blank if the resource type is not 'Physical Disk'."
        ::= { cpqClusterResourceEntry 8 }

    cpqClusterResourceIpAddress OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "A cluster IP address expressed as xxx.xxx.xxx.xxx where xxx
             is a decimal number between 0 and 255.  Blank if the resource
             type is not 'IP Address'."
        ::= { cpqClusterResourceEntry 9 }

    cpqClusterResourceGroupName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The name of the cluster group that the resource belongs to."
        ::= { cpqClusterResourceEntry 10 }

-- ****************************************************************************
--   Cluster Interconnect Group
--   ===============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group               (1.3.6.1.4.1.232.15)
--       cpqClusterComponent Group     (1.3.6.1.4.1.232.15.2)
--        cpqClusterInterconnect Group (1.3.6.1.4.1.232.15.2.5)
--
--      The cpqClusterInterconnect group describes the physical hardware used
--      by the node to communicate with the other nodes in the cluster.
--
--      Implementation of the cpqClusterInterconnect group is mandatory for all
--      agents that support the Cluster MIB.
--
-- ****************************************************************************

    cpqClusterInterconnectTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqClusterInterconnectEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "A table of network interfaces used by the node for communication."
        ::= { cpqClusterInterconnect 1 }

    cpqClusterInterconnectEntry OBJECT-TYPE
        SYNTAX  CpqClusterInterconnectEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "The properties describing the interconnect."
        INDEX   { cpqClusterInterconnectIndex }
        ::= { cpqClusterInterconnectTable 1 }

        CpqClusterInterconnectEntry ::= SEQUENCE {
            cpqClusterInterconnectIndex            INTEGER,
            cpqClusterInterconnectPhysId           DisplayString,
            cpqClusterInterconnectTransport        DisplayString,
            cpqClusterInterconnectAddress          DisplayString,
            cpqClusterInterconnectNetworkName      DisplayString,
            cpqClusterInterconnectNodeName         DisplayString,
            cpqClusterInterconnectRole             INTEGER
        }

    cpqClusterInterconnectIndex OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Uniquely identifies the interconnect entry."
        ::= { cpqClusterInterconnectEntry 1 }

    cpqClusterInterconnectPhysId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The physical identification of the device.
             For an embedded NIC the value format is as followed:
             1) for embedded NIC, Embedded NIC, Base I/O Addr: <base addr>
             2) Known slot number, Slot: <slot number>, Base I/O Addr: <base addr>
             3) Unknown slot number, Slot: unknown, Base I/O Addr: <base addr>"
        ::= { cpqClusterInterconnectEntry 2 }

    cpqClusterInterconnectTransport OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The network transport used by the interconnect.
             For example, Tcpip."
        ::= { cpqClusterInterconnectEntry 3 }

    cpqClusterInterconnectAddress OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The address used by the interconnect expressed in the format
             specified by the transport type."
        ::= { cpqClusterInterconnectEntry 4 }

    cpqClusterInterconnectNetworkName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "This interconnect is a part of this network. The network name is
             used to correlate information in the network table."
        ::= { cpqClusterInterconnectEntry 5 }

    cpqClusterInterconnectNodeName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The name of the node in which the network interface is installed."
        ::= { cpqClusterInterconnectEntry 6 }

    cpqClusterInterconnectRole OBJECT-TYPE
        SYNTAX  INTEGER {
            none(1),
            client(2),
            internal(3),
            clientAndInternal(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The communications role of the interconnect in the cluster. The
             following values are defined:
             none(1)              - The interconnect is not used by the cluster.
             client(2)            - The interconnect is used to connect client
                                    systems to the cluster.
             internal(3)          - The interconnect is used to carry internal
                                    cluster communication.
             clientAndInternal(4) - The interconnect is used to connect client
                                    systems and for internal cluster communication."
        ::= { cpqClusterInterconnectEntry 7 }


-- ****************************************************************************
--   Cluster Network Group
--   ===============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqCluster Group               (1.3.6.1.4.1.232.15)
--       cpqClusterComponent Group     (1.3.6.1.4.1.232.15.2)
--        cpqClusterNetwork Group      (1.3.6.1.4.1.232.15.2.6)
--
--      The cpqClusterNetwork group describes all of the networks available for
--      communication with the other nodes in the cluster or clients attached
--      the to node. The entries in the table are the properties obtained when
--      enumerating the cluster networks except for state and condition.
--
--      Implementation of the cpqClusterNetwork group is mandatory for all
--      agents that support the Cluster MIB.
--
-- ****************************************************************************

    cpqClusterNetworkTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqClusterNetworkEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "A table of networks available for communication with other nodes
             or clients."
        ::= { cpqClusterNetwork 1 }

    cpqClusterNetworkEntry OBJECT-TYPE
        SYNTAX  CpqClusterNetworkEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "The properties describing the network."
        INDEX   { cpqClusterNetworkIndex }
        ::= { cpqClusterNetworkTable 1 }

        CpqClusterNetworkEntry ::= SEQUENCE {
            cpqClusterNetworkIndex            INTEGER,
            cpqClusterNetworkName             DisplayString,
            cpqClusterNetworkAddressMask      DisplayString,
            cpqClusterNetworkDescription      DisplayString,
            cpqClusterNetworkRole             INTEGER,
            cpqClusterNetworkState            INTEGER,
            cpqClusterNetworkCondition        INTEGER
        }

    cpqClusterNetworkIndex OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Uniquely identifies the network entry."
        ::= { cpqClusterNetworkEntry 1 }

    cpqClusterNetworkName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The text name of the network."
        ::= { cpqClusterNetworkEntry 2 }

    cpqClusterNetworkAddressMask OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The network IP address mask expressed as xxx.xxx.xxx.xxx where
             xxx is a decimal number between 0 and 255."
        ::= { cpqClusterNetworkEntry 3 }

    cpqClusterNetworkDescription OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..128))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The text description of the network."
        ::= { cpqClusterNetworkEntry 4 }

    cpqClusterNetworkRole OBJECT-TYPE
        SYNTAX  INTEGER {
            none(1),
            client(2),
            internal(3),
            clientAndInternal(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The communications role of the network in the cluster. The
             following values are defined:
             none(1)              - The network is not used by the cluster.
             client(2)            - The network is used to connect client
                                    systems to the cluster.
             internal(3)          - The network is used to carry internal
                                    cluster communication.
             clientAndInternal(4) - The network is used to connect client
                                    systems and for internal cluster communication."
        ::= { cpqClusterNetworkEntry 5 }

    cpqClusterNetworkState OBJECT-TYPE
        SYNTAX  INTEGER {
                   other(1),
                   online(2),
                   offline(3),
                   partitioned(4),
                   unavailable(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The network's current state.  The following values are defined:
             other(1)       - Indicates that an error has occurred and the
                              exact state of the network could not be
                              determined.
             online(2)      - The network is operational; all of the nodes in
                              the cluster can communicate.
             offline(3)     - The network is not operational; none of the nodes
                              on the network can communicate.
             partitioned(4) - The network is operational, but two or more nodes
                              on the network cannot communicate. Typically a
                              path-specific problem has occurred.
             unavailable(5) - The network is unavailable to the cluster because
                              the network's role is 'none'."
        ::= { cpqClusterNetworkEntry 6 }

    cpqClusterNetworkCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The network condition uses cpqClusterNetworkState to determine the
             network condition.  The following values are defined:
             other(1)    - The network state indicates that an error has
                           occurred and the exact state of the network could
                           not be determined or the network state is unavailable.
             ok(2)       - The network state is online or unavailable.
             degraded(3) - The network state is partitioned.
             failed(4)   - The network state is offline."
        ::= { cpqClusterNetworkEntry 7 }


-- ****************************************************************************
--   Cluster Trap Definition
--   ==============================
--
--  The compaq enterprise               (1.3.6.1.4.1.232)
--
--  The SNMP trap messages must not be bigger than 484 octets (bytes).
--
--  Trap support in an SNMP agent implementation is optional.  An SNMP
--  agent implementation may support all, some, or none of the traps.
--  If traps are supported, the user should be provided with the option of
--  disabling traps.
--
-- ****************************************************************************

-- The following 2 traps are deprecated

    cpqClusterDegraded TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterName }
        DESCRIPTION
            "This trap will be sent any time the condition of the cluster
             becomes degraded."

        --#TYPE      "Cluster Degraded (15001)"
        --#SUMMARY   "Cluster %s has become degraded."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     DEGRADED
    ::= 15001

    cpqClusterFailed TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterName }
        DESCRIPTION
            "This trap will be sent any time the condition of the cluster
             becomes failed."

        --#TYPE      "Cluster Failed (15002)"
        --#SUMMARY   "Cluster %s has failed."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     FAILED
    ::= 15002

-- The above trap definitions 15001 & 15002 are deprecated in release 4.20.
-- Traps in version 4.20 and greater have the new traps below to indicate what
-- resource or node is degraded or what resource or node has failed.

    cpqClusterNodeDegraded TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterNodeName }
        DESCRIPTION
            "This trap will be sent any time the condition of a node in
             the cluster becomes degraded.

             User Action: Make a note of the cluster node name then
             check the node for the cause of the degraded condition."

        --#TYPE      "Cluster Node Degraded (15003)"
        --#SUMMARY   "Cluster service on %s has become degraded."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     DEGRADED
    ::= 15003

    cpqClusterNodeFailed TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterNodeName }
        DESCRIPTION
            "This trap will be sent any time the condition of a node in
             the cluster becomes failed.

             User Action: Make a note of the cluster node name
             then check the node for the cause of the failure."

        --#TYPE      "Cluster Node Failed (15004)"
        --#SUMMARY   "Cluster service on %s has failed."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     FAILED
    ::= 15004

    cpqClusterResourceDegraded TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterResourceName }
        DESCRIPTION
            "This trap will be sent any time the condition of a cluster
             resource becomes degraded.

             User Action: Make a note of the cluster resource name then
             check the resource for the cause of the degraded condition."

        --#TYPE      "Cluster Resource Degraded (15005)"
        --#SUMMARY   "Cluster resource %s has become degraded."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     DEGRADED
    ::= 15005

    cpqClusterResourceFailed TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterResourceName }
        DESCRIPTION
            "This trap will be sent any time the condition of a cluster
             resource becomes failed.

             User Action: Make a note of the cluster resource name
             then check the resource for the cause of the failure."

        --#TYPE      "Cluster Resource Failed (15006)"
        --#SUMMARY   "Cluster resource %s has failed."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     FAILED
    ::= 15006

    cpqClusterNetworkDegraded TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterNetworkName }
        DESCRIPTION
            "This trap will be sent any time the condition of a cluster
             network becomes degraded.

             User Action: Make a note of the cluster network name then
             check the network for the cause of the degraded condition."

        --#TYPE      "Cluster Network Degraded (15007)"
        --#SUMMARY   "Cluster network %s has become degraded."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     DEGRADED
    ::= 15007

    cpqClusterNetworkFailed TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqClusterNetworkName }
        DESCRIPTION
            "This trap will be sent any time the condition of a cluster
             network becomes failed.

             User Action: Make a note of the cluster network name
             then check the network for the cause of the failure."

        --#TYPE      "Cluster Network Failed (15008)"
        --#SUMMARY   "Cluster network %s has failed."
        --#ARGUMENTS {2}
        --#SEVERITY  MAJOR
        --#TIMEINDEX 99
        --#STATE     FAILED
    ::= 15008

END
