-- ****************************************************************************
--
--                             Fibre Channel Array
--           Management Information Base for SNMP Network Management
--
--
--      Copyright 1992,2005 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
--
-- ****************************************************************************

CPQFCA-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        compaq                  FROM CPQHOST-MIB
        enterprises             FROM RFC1155-SMI
        Counter                 FROM RFC1155-SMI
        Gauge                   FROM RFC1155-SMI
        DisplayString           FROM RFC1213-MIB
        OBJECT-TYPE             FROM RFC-1212
        TRAP-TYPE               FROM RFC-1215
        sysName                 FROM RFC1213-MIB
        cpqHoTrapFlags          FROM CPQHOST-MIB
        cpqSsChassisName        FROM CPQSTSYS-MIB
        cpqSsChassisTime        FROM CPQSTSYS-MIB;

--  compaq              OBJECT IDENTIFIER ::= { enterprises 232 }

    cpqFibreArray        OBJECT IDENTIFIER ::= { compaq 16 }
    cpqFcaMibRev         OBJECT IDENTIFIER ::= { cpqFibreArray 1 }
    cpqFcaComponent      OBJECT IDENTIFIER ::= { cpqFibreArray 2 }
    cpqFcTapeComponent   OBJECT IDENTIFIER ::= { cpqFibreArray 3 }
    cpqFcSwitchComponent OBJECT IDENTIFIER ::= { cpqFibreArray 4 }

    cpqFcaInterface      OBJECT IDENTIFIER ::= { cpqFcaComponent 1 }
    cpqFcaCntlr          OBJECT IDENTIFIER ::= { cpqFcaComponent 2 }
    cpqFcaLogDrv         OBJECT IDENTIFIER ::= { cpqFcaComponent 3 }
    cpqFcaSpareDrv       OBJECT IDENTIFIER ::= { cpqFcaComponent 4 }
    cpqFcaPhyDrv         OBJECT IDENTIFIER ::= { cpqFcaComponent 5 }
    cpqFcaPhyDrvThr      OBJECT IDENTIFIER ::= { cpqFcaComponent 6 }
    cpqFcaHostCntlr      OBJECT IDENTIFIER ::= { cpqFcaComponent 7 }
    cpqExtArrRsrcVol     OBJECT IDENTIFIER ::= { cpqFcaComponent 8 }
    cpqExtArrSnapshot    OBJECT IDENTIFIER ::= { cpqFcaComponent 9 }

    cpqFcaOsCommon       OBJECT IDENTIFIER ::= { cpqFcaInterface 4 }

    cpqFcTapeCntlr       OBJECT IDENTIFIER ::= { cpqFcTapeComponent 1 }
    cpqFcTapeLibrary     OBJECT IDENTIFIER ::= { cpqFcTapeComponent 2 }
    cpqFcTapeDrive       OBJECT IDENTIFIER ::= { cpqFcTapeComponent 3 }
    cpqFcTapeCounters    OBJECT IDENTIFIER ::= { cpqFcTapeComponent 4 }

    cpqFcSwitch          OBJECT IDENTIFIER ::= { cpqFcSwitchComponent 1 }


-- ****************************************************************************
--   Fibre Channel Array MIB Revision
--  =================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaMibRev Group            (1.3.6.1.4.1.232.16.1)
--
--      An SNMP agent conforming to this document will return a
--      cpqFcaMibRevMajor of one (1) and a cpqFcaMibRevMinor of
--      twenty nine (29).
--
--      Implementation of the cpqFcaMibRev group is mandatory for all agents
--      supporting the Fibre Channel Array MIB.
--
--      NOTE:  The Fibre Channel Array MIB also supports SCSI attached
--             external arrays, such as Smart Array Cluster Storage.
--
-- ****************************************************************************

    cpqFcaMibRevMajor OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The Major Revision level.
             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."
        ::= { cpqFcaMibRev 1 }

    cpqFcaMibRevMinor OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The Minor Revision level.
             A change in the minor revision level may represent some minor
             additional support, no changes to any pre-existing information
             has occurred."
        ::= { cpqFcaMibRev 2 }

    cpqFcaMibCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The overall condition (status) of the system represented by
            this MIB."
        ::= { cpqFcaMibRev 3 }


-- ****************************************************************************
--    External Array Common Group
--    ===========================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaInterface Group        (1.3.6.1.4.1.232.16.2.1)
--         cpqFcaOsCommon Group        (1.3.6.1.4.1.232.16.2.1.4)
--
--  The cpqFcaOsCommon group describes the interface to the External
--  Array components.  This information describes the interface modules
--  and general OS interface architectural information.
--
--  Implementation of the cpqFcaOsCommon group is mandatory for all
--  agents that support the Fibre Channel Array MIB.
--
-- ****************************************************************************

    cpqFcaOsCommonPollFreq 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."
        ::= { cpqFcaOsCommon 1 }

-- ****************************************************************************
--    External Array Common Module
--    ============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaInterface Group        (1.3.6.1.4.1.232.16.2.1)
--         cpqFcaOsCommon Group        (1.3.6.1.4.1.232.16.2.1.4)
--          cpqFcaOsCommonModuleTable  (1.3.6.1.4.1.232.16.2.1.4.2) deprecated
--
-- ****************************************************************************

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

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

        CpqFcaOsCommonModuleEntry ::= SEQUENCE {
            cpqFcaOsCommonModuleIndex       INTEGER,
            cpqFcaOsCommonModuleName        DisplayString,
            cpqFcaOsCommonModuleVersion     DisplayString,
            cpqFcaOsCommonModuleDate        OCTET STRING,
            cpqFcaOsCommonModulePurpose     DisplayString
        }

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

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

    cpqFcaOsCommonModuleVersion 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 a null (size 0) string if the agent
            cannot provide the module version."
        ::= { cpqFcaOsCommonModuleEntry 3 }

    cpqFcaOsCommonModuleDate 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 octect first."
        ::= { cpqFcaOsCommonModuleEntry 4 }

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

-- ****************************************************************************
--    External Array Controller Group
--    ===============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaCntlr Group            (1.3.6.1.4.1.232.16.2.2)
--         cpqFcaCntlrTable            (1.3.6.1.4.1.232.16.2.2.1)
--
--      The Cntlr group contains the configuration and statistical
--      information of the External Array controllers and
--      controller accelerator daughter boards.
--
--      Implementation of the cpqFcaCntlr group is mandatory for all
--      agents that support the Fibre Channel Array MIB.
--
-- ****************************************************************************

     cpqFcaCntlrTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcaCntlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Table."
        ::= { cpqFcaCntlr 1 }

     cpqFcaCntlrEntry OBJECT-TYPE
        SYNTAX  CpqFcaCntlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Array Controller Entry."
        INDEX   { cpqFcaCntlrBoxIndex, cpqFcaCntlrBoxIoSlot }
        ::= { cpqFcaCntlrTable 1 }

     CpqFcaCntlrEntry ::= SEQUENCE
     {
        cpqFcaCntlrBoxIndex            INTEGER,
        cpqFcaCntlrBoxIoSlot           INTEGER,
        cpqFcaCntlrModel               INTEGER,
        cpqFcaCntlrFWRev               DisplayString,
        cpqFcaCntlrStatus              INTEGER,
        cpqFcaCntlrCondition           INTEGER,
        cpqFcaCntlrProductRev          DisplayString,
        cpqFcaCntlrWorldWideName       DisplayString,
        cpqFcaCntlrSerialNumber        DisplayString,
        cpqFcaCntlrCurrentRole         INTEGER,
        cpqFcaCntlrRedundancyType      INTEGER,
        cpqFcaCntlrRedundancyError     INTEGER,
        cpqFcaCntlrBlinkTime           Counter,
        cpqFcaCntlrWorldWideNodeName   DisplayString,
        cpqFcaCntlrRebuildPriority     INTEGER,
        cpqFcaCntlrExpandPriority      INTEGER
     }

     cpqFcaCntlrBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Storage Box Index.

            The storage box index indicates which storage box this
            controller is in."
        ::= { cpqFcaCntlrEntry 1 }

     cpqFcaCntlrBoxIoSlot OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Box I/O Slot.

            This identifies the physical I/O slot where this controller
            resides in the storage box."
        ::= { cpqFcaCntlrEntry 2 }

     cpqFcaCntlrModel OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            fibreArray(2),
            msa1000(3),
            smartArrayClusterStorage(4),
            hsg80(5),
            hsv110(6),
            msa500G2(7),
            msa20(8),
            msa1510i(9)            
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Model.

            The type of controller card.  The valid types are:

            Other (1)
              You may need to upgrade your driver software and\or instrument
              agent(s).  You have an array controller in the storage box
              that the instrument agent does not recognize.

            fibreArray (2)
              Compaq StorageWorks RAID Array 4000 Controller.

            msa1000 (3)
              Compaq StorageWorks Modular Smart Array 1000 Controller.

            smartArrayClusterStorage (4)
              HP StorageWorks Modular Smart Array 500 Controller
              (Formerly Smart Array Cluster Storage Controller).

            hsg80 (5)
              Compaq StorageWorks HSG80 RAID Array Controller.

            hsv110 (6)
              Compaq StorageWorks HSV110 Virtual Array Controller.

            msa500G2 (7)
              HP StorageWorks Modular Smart Array 500 G2 Controller.

            msa20 (8)
              HP StorageWorks Modular Smart Array 20 Controller.

            msa1510i (9)
              HP StorageWorks Modular Smart Array 1510i Controller.

            Reserved (10)"
        ::= { cpqFcaCntlrEntry 3 }

     cpqFcaCntlrFWRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..5))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Firmware Revision.

            This value can be used to help identify a particular revision
            of the controller."
        ::= { cpqFcaCntlrEntry 4 }

     cpqFcaCntlrStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            failed(3),
            offline(4),
            redundantPathOffline(5),
            notConnected(6)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Status.

            This value represents the status of the External Array
            Controller.  The following values are valid:

            other (1)
              Indicates that the agent does not recognize the status of the
              controller.  You may need to upgrade the agent.

            ok (2)
              All paths to this controller are available.

            offline (4)
              No paths are available to this controller.

            redundantPathOffline (5)
              At least one path to this controller is available and at least
              one path to this controller is unavailable.

            notConnected (6)
              No paths are available to this controller.  However, in an
              active/active configuration, this is a valid configuration."
        ::= { cpqFcaCntlrEntry 5 }

     cpqFcaCntlrCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Condition.

            This value represents the overall condition of this controller
            and any array accelerators."
        ::= { cpqFcaCntlrEntry 6 }

     cpqFcaCntlrProductRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..1))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Product Revision.

            The Product Revision of the controller.  This value can be
            used to further identify a particular revision of the
            controller model.  This will be one character ASCII value that
            is zero terminated.  If the controller model or the firmware
            does not support the product revision, the agents will return
            a NULL string."
        ::= { cpqFcaCntlrEntry 7 }

     cpqFcaCntlrWorldWideName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller World Wide Port Name.

            This value can be used to further identify a particular
            controller.  If the world wide port name is not supported, the
            agent will return a NULL string."
        ::= { cpqFcaCntlrEntry 8 }

     cpqFcaCntlrSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Serial Number.

            This value can be used to further identify a particular
            controller.  If the serial number is not supported, the agent
            will return a NULL string."
        ::= { cpqFcaCntlrEntry 9 }

     cpqFcaCntlrCurrentRole OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            notDuplexed(2),
            active(3),
            backup(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Current Role.

            For duplexed controllers, this is the controllers current
            role.  The following values are valid:

            other (1)
              Indicates that the instrument agent does not recognize the
              role of the controller.  You may need to upgrade the instrument
              agent.

            notDuplexed (2)
              This controller is not duplexed.

            active (3)
              This duplexed controller is the active controller.

            backup (4)
              This duplexed controller is the backup controller."
        ::= { cpqFcaCntlrEntry 10 }

     cpqFcaCntlrRedundancyType OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            notRedundant(2),
            fwActiveStandby(3),
            fwPrimarySecondary(4),
            fwActiveActive(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Redundancy Type.

            The following values are valid:

            other (1)
              Indicates that the instrument agent does not recognize the
              redundancy type of the controller.  You may need to upgrade
              the instrument agent.

            notRedundant (2)
              The array controller is not in a redundant configuration.

            fwActiveStandby (3)
              The array controller is using an active/standby algorithm
              implemented in the controller firmware and the operating system
              driver.

            fwPrimarySecondary (4)
              The array controller is using a primary/secondary algorithm
              implemented in the controller firmware and the operating system
              driver.

            fwActiveActive (5)
              The array controller is using an active/active algorithm
              implemented in the controller firmware and the operating system
              driver."
        ::= { cpqFcaCntlrEntry 11 }

     cpqFcaCntlrRedundancyError OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            noFailure(2),
            noRedundantController(3),
            differentHardware(4),
            noLink(5),
            differentFirmware(6),
            differentCache(7),
            otherCacheFailure(8),
            noDrives(9),
            otherNoDrives(10),
            unsupportedDrives(11),
            expandInProgress(12)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Redundancy Error.

            The following values are valid:

            other (1)
              Indicates that the instrument agent does not recognize the
              redundancy error of the controller.  You may need to upgrade
              the instrument agent.

            noFailure (2)
              No failures have been detected.

            noRedundantController (3)
              No redundant controller is installed.

            differentHardware (4)
              The other controller indicates a different hardware model.

            noLink (5)
              An inter-controller link to the other controller could not be
              established.

            differentFirmware (6)
              The other controller indicates a different firmware version.

            differentCache (7)
              The other controller indicates a different cache size.

            otherCacheFailure (8)
              The other controller indicates a cache failure.

            noDrives (9)
              This controller cannot see any attached drives, but the other
              controller can.

            otherNoDrives (10)
              This controller can see the attached drives, but the other
              controller cannot.

            unsupportedDrives (11)
              One or more attached drives has been determined to be incapable
              of properly supporting redundant controller operation.

            expandInProgress (12)
              Expand operation in progress.  Redundant operation not
              supported until expand operation is complete."
        ::= { cpqFcaCntlrEntry 12 }

     cpqFcaCntlrBlinkTime OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Physical Drive Blink Time Count.

             The controller blink time variable allows the drive tray LEDs
             of all physical drives attached to this controller to blink.
             This value indicates the amount of time, in tenths of a second,
             that the physical drive LEDs will continue to blink.  A value
             of zero indicates the drive LEDs are not blinking.  If the
             value cannot be determined or no drive on this controller is in
             a hot plug tray, 4,294,967,295 is returned.

             To blink the drive LEDs on all physical drives attached to this
             controller, set this value to the time to blink in tenths of
             seconds.

             To stop the drive LEDs from blinking, set this value to 0."
        ::= { cpqFcaCntlrEntry 13 }

     cpqFcaCntlrWorldWideNodeName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller World Wide Node Name.

            This value can be used to further identify a particular
            controller.  If the world wide name is not supported, the
            agent will return a NULL string."
        ::= { cpqFcaCntlrEntry 14 }

     cpqFcaCntlrRebuildPriority OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            low(2),
            medium(3),
            high(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Controller Rebuild Priority.

            This is the controller's rebuild priority.  The following values
            are valid:

            other (1)
              Indicates that the agent does not recognize the rebuild
              priority of the controller.  You may need to upgrade the
              agent.

            low (2)
              The rebuild priority is low.

            medium (3)
              The rebuild priority is medium.

            high (4)
              The rebuild priority is high."
        ::= { cpqFcaCntlrEntry 15 }

     cpqFcaCntlrExpandPriority OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            low(2),
            medium(3),
            high(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Controller Expand Priority.

            This is the controller's expand priority.  The following values
            are valid:

            other (1)
              Indicates that the agent does not recognize the expand
              priority of the controller.  You may need to upgrade the agent.

            low (2)
              The expand priority is low.

            medium (3)
              The expand priority is medium.

            high (4)
              The expand priority is high."
        ::= { cpqFcaCntlrEntry 16 }


-- ****************************************************************************
--    External Array Accelerator Module Table
--    =======================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaCntlr Group            (1.3.6.1.4.1.232.16.2.2)
--         cpqFcaAccelTable            (1.3.6.1.4.1.232.16.2.2.2)
--
-- ****************************************************************************

     cpqFcaAccelTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcaAccelEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Table."
        ::= { cpqFcaCntlr 2 }

     cpqFcaAccelEntry OBJECT-TYPE
        SYNTAX  CpqFcaAccelEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Entry."
        INDEX   { cpqFcaAccelBoxIndex, cpqFcaAccelBoxIoSlot }
        ::= { cpqFcaAccelTable 1 }

     CpqFcaAccelEntry ::= SEQUENCE
     {
        cpqFcaAccelBoxIndex         INTEGER,
        cpqFcaAccelBoxIoSlot        INTEGER,
        cpqFcaAccelStatus           INTEGER,
        cpqFcaAccelBadData          INTEGER,
        cpqFcaAccelErrCode          INTEGER,
        cpqFcaAccelBatteryStatus    INTEGER,
        cpqFcaAccelReadErrs         Counter,
        cpqFcaAccelWriteErrs        Counter,
        cpqFcaAccelCondition        INTEGER,
        cpqFcaAccelWriteCache       INTEGER,
        cpqFcaAccelReadCache        INTEGER,
        cpqFcaAccelSerialNumber      DisplayString,
        cpqFcaAccelTotalMemory      INTEGER,
        cpqFcaAccelFailedBatteries  OCTET STRING
     }

     cpqFcaAccelBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Storage Box Index.

            The storage box index indicates which storage box this
            accelerator is in."
        ::= { cpqFcaAccelEntry 1 }

     cpqFcaAccelBoxIoSlot OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Controller Box I/O Slot.

            This identifies the physical I/O slot where this accelerator
            resides in the storage box."
        ::= { cpqFcaAccelEntry 2 }

     cpqFcaAccelStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            invalid(2),
            enabled(3),
            tmpDisabled(4),
            permDisabled(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Status.

            This describes the status of the Array Accelerator Cache.

            The status can be:

            Other (1)
              Indicates that the instrument agent does not recognize the
              status of the Array Accelerator.  You may need to upgrade
              the instrument agent.

            Invalid (2)
              Indicates that an Array Accelerator board has not been
              installed in this system or is present but not configured.

            Enabled (3)
              Indicates that write cache operations are currently configured
              and enabled for at least one logical drive.

            Temporarily Disabled (4)
              Indicates that write cache operations have been temporarily
              disabled. View the Array Accelerator Board Error Code object
              to determine why the write cache operations have been
              temporarily disabled.

            Permanently Disabled (5)
              Indicates that write cache operations have been permanently
              disabled.  View the Array Accelerator Board Error Code object
              to determine why the write cache operations have been disabled."
        ::= { cpqFcaAccelEntry 3 }

     cpqFcaAccelBadData OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            none(2),
            possible(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Bad Data.

            The following values are valid:

            None (2)
              Indicates that no data loss occurred.  The battery packs were
              properly charged when the system was initialized.

            Possible (3)
              Indicates that at power up, the battery packs were not
              sufficiently charged.  Because the batteries did not retain
              sufficient charge when the system resumed power, the board
              has not retained any data that may have been stored.
              If no data was on the board, no data was lost.  Several things
              may have caused this condition:

              * If the system was without power for eight days, and the
                battery packs were on (battery packs only activate if
                system looses power unexpectedly), any data that may have
                been stored in the cache was lost.

              * There may be a problem with the battery pack.
                See the Battery Status for more information.

              * This status will also appear if the Array Accelerator
                board is replaced with a new board that has discharged
                batteries.  No data has been lost in this case, and posted
                writes will automatically be enabled when the batteries
                reach full charge."
        ::= { cpqFcaAccelEntry 4 }

     cpqFcaAccelErrCode OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            invalid(2),
            badConfig(3),
            lowBattery(4),
            disableCmd(5),
            noResources(6),
            notConnected(7),
            badMirrorData(8),
            readErr(9),
            writeErr(10),
            configCmd(11),
            expandInProgress(12),
            snapshotInProgress(13),
            redundantLowBattery(14),
            redundantSizeMismatch(15),
            redundantCacheFailure(16),
            excessiveEccErrors(17),
            postEccErrors(19)

        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Error Code.

            Use this to determine the status of the write cache operations.

            The status can be:

            Other (1)
              Indicates that the instrument agent does not recognize the
              error code.  You may need to update your software.

            Invalid (2)
              Indicates that write cache operations are currently
              configured and enabled for at least one logical drive.
              No write cache errors have occurred.

            Bad Configuration (3)
              Indicates that write cache operations are temporarily
              disabled.  The Array Accelerator board was configured for a
              different controller.  This error could be caused if boards
              were switched from one system to another.  Rerun the
              configuration utility and ensurethat the board has been
              properly configured for this system.

            Low Battery Power (4)
              Indicates that write cache operations are temporarily
              disabled due to insufficient battery power.  Please view
              the Battery Status object instance for more information.

            Disable Command Issued (5)
              Indicates that write cache operations are temporarily
              disabled.  The device driver issues this command when
              the server is taken down.  This condition should not
              exist when the system regains power.

            No Resources Available (6)
              Indicates that write cache operations are temporarily
              disabled.  The controller does not have sufficient
              resources to perform write cache operations.
              For example, when a replaced drive is being rebuilt,
              there will not be sufficient resources.  Once the
              operation that requires the resources has completed,
              this condition will clear and write cache operations
              will resume.

            Board Not Connected (7)
              Indicates that write cache operations are temporarily
              disabled.  The Array Accelerator board has been
              configured but is not currently attached to the
              controller. Check the alignment of the board and
              connections.

            Bad Mirror Data (8)
              Indicates that write cache operations have been
              permanently disabled.  The Array Accelerator board stores
              mirrored copies of all data.  If data exists on the
              board when the system is first powered up, the board
              performs a data compare test between the mirrored copies.
              If the data does not match, an error has occurred.
              Data may have been lost.  Your board may need servicing.

            Read Failure (9)
              Indicates that write cache operations have been permanently
              disabled.  The Array Accelerator board stores mirror copies
              of all data.  While reading the data from the board, memory
              parity errors have occurred.  Both copies were corrupted and
              cannot be retrieved.  Data has been lost, and you should
              service the board.

            Write Failure (10)
              Indicates that write cache operations have been permanently
              disabled.  This error occurs when an unsuccessful attempt was
              made to write data to the Array Accelerator board.  Data could
              not be written to write cache memory in duplicate due to the
              detection of parity errors.  This error does not indicate data
              loss.  You should service the Array Accelerator board.

            Config Command (11)
              Indicates that write cache operations have been permanently
              disabled.  The configuration of the logical drives has changed.
              You need to reconfigure the Array Accelerator board.

            Expand In Progress (12)
              Indicates that cache operations are temporarily disabled
              due to an expand of a logical drive.  When the expand
              operation completes, the accelerator will be enabled.

            Snapshot In Progress (13)
              Indicates that cache operations are temporarily disabled
              due to a snapshot operation that is queued up or in progress.
              When the snapshot operation completes, the accelerator will
              be enabled.

            Redundant Low Battery (14)
              Indicates that cache operations are temporarily disabled.
              The redundant controller has insufficient cache battery power.

            Redundant Size Mismatch (15)
              Indicates that cache operations are temporarily disabled.
              The cache sizes on the redundant controllers do not match.

            Redundant Cache Failure (16)
              Indicates that cache operations are temporarily disabled.
              The cache on the redundant controller has failed.

            Excessive ECC Errors (17)
              Indicates that write cache operations have been permanently
              disabled.  The number of cache lines experiencing excessive
              ECC errors has reached a preset limit.

            Power On Self Test (Post) ECC Errors (19)
              Indicates that write cache operations have been permanently
              disabled.  The cache has been disabled due to a large number
              of ECC errors detected while testing the cache during Power
              On Self Test (Post)."
        ::= { cpqFcaAccelEntry 5 }

     cpqFcaAccelBatteryStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            recharging(3),
            failed(4),
            degraded(5),
            notPresent(6)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Battery Status.

            This monitors the status of each battery pack on the board.  The
            batteries can only recharge when the system has power applied.

            The following values are valid:

            Other (1)
              Indicates that the instrument agent does not recognize
              battery status.  You may need to update your software.

            Ok (2)
              Indicates that a particular battery pack is fully charged.

            Charging (3)
              The battery power is less than 75%.  The array controller
              is attempting to recharge the battery.  A battery can take
              as long as 36 hours to fully recharge.  After 36 hours,
              if the battery has not recharged, it is considered failed.

            Failed (4)
              The battery pack is below the sufficient voltage level and
              has not recharged in 36 hours.  Your Array Accelerator board
              needs to be serviced.

            Degraded (5)
              The battery is still operating, however, one of the batteries
              in the pack has failed to recharge properly.  Your Array
              Accelerator board should be serviced as soon as possible.

            NotPresent (6)
              There are no batteries associated with this controller."
        ::= { cpqFcaAccelEntry 6 }

     cpqFcaAccelReadErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Read Errors.

            This shows the total number of read memory parity errors that
            were detected while reading from the Array Accelerator board.
            The mirrored copy of data on the board can be accessed to
            obtain correct data if a memory parity errors occurs.

            Memory parity errors occur when the system detects that
            information has not been transferred correctly.  A parity bit
            is included for each byte of information stored in memory.
            When the microprocessor reads or writes data, the system
            counts the value of the bits in each byte.  If a total does
            not match the system's expectations, a parity error has
            occurred. A bad memory chip, memory corruption, or lack of
            refresh may cause memory parity errors."
        ::= { cpqFcaAccelEntry 7 }

     cpqFcaAccelWriteErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Write Errors.

            This shows the total number of write memory parity errors that
            were detected while writing to the Array Accelerator board.

            Write parity errors occur when the system detects that
            information has not been transferred to the Array
            Accelerator board correctly.  A parity bit is included for
            each byte of information stored in memory.  When the
            microprocessor reads or writes data, the system counts the
            value of the bits in each byte.  If the total does not match
            the system's expectations, a parity error has occurred."
        ::= { cpqFcaAccelEntry 8 }

     cpqFcaAccelCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The condition of the device.  This value represents the overall
            condition of this array accelerator."
        ::= { cpqFcaAccelEntry 9 }

     cpqFcaAccelWriteCache OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Write Cache Memory.

            This shows the amount of memory allocated for the write cache in
            megabytes.  Because data is kept in duplicate (mirrored), the
            actual amount of usable memory is half the amount shown."
        ::= { cpqFcaAccelEntry 10 }

     cpqFcaAccelReadCache OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Read Cache Memory.

            This shows the amount of memory allocated for the read cache in
            megabytes."
        ::= { cpqFcaAccelEntry 11 }

     cpqFcaAccelSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Board Serial Number.

            This value can be used to further identify the cache
            controller.  If the serial number is not supported, the agent
            will return a NULL string."
        ::= { cpqFcaAccelEntry 12 }

     cpqFcaAccelTotalMemory OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Total Memory.

            This value is the total amount of accelerator memory in
            megabytes, including both battery-backed and non-battery-backed
            memory."
        ::= { cpqFcaAccelEntry 13 }

     cpqFcaAccelFailedBatteries OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Array Accelerator Failed Batteries.

            This lists the location of accelerator failed batteries.
            Each octet present contains the position number of a failed
            battery.  An octet string of length zero indicates that there
            are no failed batteries or that the controller does not have
            the ability to identify individual failed batteries."
        ::= { cpqFcaAccelEntry 14 }



-- ****************************************************************************
--    External Array Logical Drive Table
--    ==================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaLogDrv Group           (1.3.6.1.4.1.232.16.2.3)
--         cpqFcaLogDrvTable           (1.3.6.1.4.1.232.16.2.3.1)
--
--      The cpqFcaLogDrv group contains configuration and statistical
--      information about the logical drives associated with External
--      Array controllers.
--
--      Implementation of the cpqFcaLogDrv group is mandatory for all agents
--      that support the Fibre Channel Array MIB.
--
-- ****************************************************************************


     cpqFcaLogDrvTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcaLogDrvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Table.

            A table of logical drive entries."
        ::= { cpqFcaLogDrv 1 }

     cpqFcaLogDrvEntry OBJECT-TYPE
        SYNTAX  CpqFcaLogDrvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Entry.

            A logical drive entry."
        INDEX   { cpqFcaLogDrvBoxIndex, cpqFcaLogDrvIndex }
        ::= { cpqFcaLogDrvTable 1 }

     CpqFcaLogDrvEntry ::= SEQUENCE
     {
        cpqFcaLogDrvBoxIndex                 INTEGER,
        cpqFcaLogDrvIndex                    INTEGER,
        cpqFcaLogDrvFaultTol                 INTEGER,
        cpqFcaLogDrvStatus                   INTEGER,
        cpqFcaLogDrvAutoRel                  INTEGER,
        cpqFcaLogDrvPercentRebuild           Gauge,
        cpqFcaLogDrvHasAccel                 INTEGER,
        cpqFcaLogDrvAvailSpares              OCTET STRING,
        cpqFcaLogDrvSize                     INTEGER,
        cpqFcaLogDrvPhyDrvIDs                OCTET STRING,
        cpqFcaLogDrvCondition                INTEGER,
        cpqFcaLogDrvStripeSize               INTEGER,
        cpqFcaLogDrvOsName                   DisplayString,
        cpqFcaLogDrvBlinkTime                Counter,
        cpqFcaLogDrvSpareReplaceMap          OCTET STRING,
        cpqFcaLogDrvRebuildingPhyDrv         INTEGER,
        cpqFcaLogDrvSnapshotResourceDrvIndex INTEGER,
        cpqFcaLogDrvSnapshotSourceDrvIndex   INTEGER,
        cpqFcaLogDrvPreferredPath            INTEGER,
        cpqFcaLogDrvCurrentPath              INTEGER
     }

     cpqFcaLogDrvBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Storage Box Index.

            The storage box index indicates which storage box this
            logical drive is in."
        ::= { cpqFcaLogDrvEntry 1 }

     cpqFcaLogDrvIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Index.

            This logical drive number keeps track of multiple instances of
            logical drives which are in the same storage box.  For each
            storage box index value, the logical drive index starts at 1 and
            increments for each logical drive."
        ::= { cpqFcaLogDrvEntry 2 }

     cpqFcaLogDrvFaultTol OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            none(2),
            mirroring(3),
            dataGuard(4),
            distribDataGuard(5),
            advancedDataGuard(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Logical Drive Fault Tolerance.

            This shows the fault tolerance mode of the logical drive.
            To change the fault tolerance mode, run the configuration
            utility.

            The following values are valid for the Logical Drive Fault
            Tolerance:

            None (2)
              Fault tolerance is not enabled.  If a physical drive reports
              an error, the data cannot be recovered by the array
              controller.

            Mirroring (3)
              For each physical drive, there is a second physical drive
              containing identical data. If a drive fails, the data can be
              retrieved from the mirror drive.

            Data Guard (4)
              One of the physical drives is used as a data guard drive and
              contains the exclusive OR of the data on the remaining drives.
              If a failure is detected, the External Array Controller
              rebuilds the data using the data guard information plus
              information from the other drives.

            Distributed Data Guard (5)
              Distributed Data Guarding, sometimes referred to as RAID 5,
              is similar to Data Guarding, but instead of storing the parity
              information on one drive, the information is distributed
              across all of the drives.  If a failure is detected, the array
              controller rebuilds the data using the data guard information
              from all the drives.

            Advanced Data Guarding (7)
              Advanced Data Guarding (RAID ADG) is the fault tolerance method
              that provides the highest level of data protection.  It
              'stripes' data and parity across all the physical drives in the
              configuration to ensure the uninterrupted availability of
              uncorrupted data.  This fault-tolerance method is similar to
              distributed data guard (RAID 5) in that parity data is
              distributed across all drives in the array, except in RAID ADG
              the capacity of multiple drives is used to store parity data.
              Assuming the capacity of 2 drives is used for parity data,
              this allows continued operation despite simultaneous failure of
              any 2 drives in the array, whereas RAID 4 and RAID 5 can only
              sustain failure of a single drive."
        ::= { cpqFcaLogDrvEntry 3 }

     cpqFcaLogDrvStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            failed(3),
            unconfigured(4),
            recovering(5),
            readyForRebuild(6),
            rebuilding(7),
            wrongDrive(8),
            badConnect(9),
            overheating(10),
            shutdown(11),
            expanding(12),
            notAvailable(13),
            queuedForExpansion(14),
            hardError(15)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Logical Drive Status.

            The logical drive can be in one of the following states:

            Ok (2)
              Indicates that the logical drive is in normal operation mode.

            Failed (3)
              Indicates that more physical drives have failed than the
              fault tolerance mode of the logical drive can handle without
              data loss.

            Unconfigured (4)
              Indicates that the logical drive is not configured.

            Recovering (5)
              Indicates that the logical drive is using Interim Recovery Mode.
              In Interim Recovery Mode, at least one physical drive has
              failed, but the logical drive's fault tolerance mode lets the
              drive continue to operate with no data loss.

            Ready Rebuild (6)
              Indicates that the logical drive is ready for Automatic Data
              Recovery.  The physical drive that failed has been replaced,
              but the logical drive is still operating in Interim Recovery
              Mode.

            Rebuilding (7)
              Indicates that the logical drive is currently doing Automatic
              Data Recovery.  During Automatic Data Recovery, fault tolerance
              algorithms restore data to the replacement drive.

            Wrong Drive (8)
              Indicates that the wrong physical drive was replaced after a
              physical drive failure.

            Bad Connect (9)
              Indicates that a physical drive is not responding.

            Overheating (10)
              Indicates that the storage box that contains the logical drive
              is overheating.  The array is still functioning, but
              should be shutdown.

            Shutdown (11)
              Indicates that the storage box that contains the logical drive
              has overheated.  The logical drive is no longer functioning.

            Expanding (12)
              Indicates that the logical drive is currently doing Automatic
              Data Expansion.  During Automatic Data Expansion, fault
              tolerance algorithms redistribute logical drive data to the
              newly added physical drive.

            Not Available (13)
              Indicates that the logical drive is currently unavailable.
              If a logical drive is expanding and the new configuration
              frees additional disk space, this free space can be
              configured into another logical volume.  If this is done,
              the new volume will be set to not available.

            Queued For Expansion (14)
              Indicates that the logical drive is ready for Automatic Data
              Expansion.  The logical drive is in the queue for expansion.

            Hard Error (15)
              Indicates that a hard error occurred for this LUN."
        ::= { cpqFcaLogDrvEntry 4 }

     cpqFcaLogDrvAutoRel OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Logical Drive Auto-Reliability Delay.

            This value indicates how many seconds the logical drive will wait
            with no requests before beginning Auto-Reliability monitoring.
            For example, the default value is five, so the logical drive will
            begin Auto-Reliability monitoring if it receives no requests for
            five seconds.  If the value is zero, the logical drive will not
            perform Auto-Reliability monitoring.  Auto-Reliability only
            operates if the logical drive is configured in one of the fault
            tolerance modes.

            If the logical drive receives a request while performing
            Auto-Reliability monitoring, the drive will stop monitoring to
            process the request.  Once it has satisfied all incoming requests,
            the drive will wait for the Auto-Reliability delay to expire
            before returning to Auto-Reliability monitoring.

            Auto-Reliability monitoring is a process to insure the highest
            level of data reliability.  In this process each disk is scanned
            to verify that all of the sectors in the array are readable.
            If the Auto-Reliability monitoring process detects any bad
            sectors on the drives, it automatically remaps these bad sectors
            where possible.

            If the value cannot be determined or is not applicable, the
            value is set to -1."

        ::= { cpqFcaLogDrvEntry 5 }

     cpqFcaLogDrvPercentRebuild OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Logical Drive Percent Rebuild.

            After a failed physical drive has been replaced, the physical
            drive must have its data rebuilt.  This value the percent
            complete of the rebuild.  When the value reaches 100, the
            rebuilding process is complete.  The drive array continues to
            operate in interim recovery mode while a drive is rebuilding.

            When a logical volume is Expanding, the drive must redistribute
            the logical volume data across the physical drives.  This value
            shows how many blocks of data still need to be redistributed.
            When the value reaches one hundred (100), the expand process
            is complete.  The array continues to operate normally while
            the drive is expanding.

            This value is only valid if the Logical Drive Status is
            rebuilding (7) or expanding (12).

            If the value cannot be determined or a rebuild is not active,
            the value is set to 4,294,967,295."
        ::= { cpqFcaLogDrvEntry 6 }

     cpqFcaLogDrvHasAccel OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            unavailable(2),
            enabled(3),
            disabled(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Logical Drive Has Array Accelerator Board.

            This indicates whether the logical drive has an Array Accelerator
            board configured and enabled.  The following values are valid:

            Other (1)
              Indicates that the instrument agent does not recognize the
              Array Accelerator board.  You may need to upgrade your software.

            Unavailable (2)
              Indicates that there is no Array Accelerator board configured
              for this logical drive.

            Enabled (3)
              Indicates that the Array Accelerator board is configured and
              enabled for this logical drive.

            Disabled (4)
              Indicates that the Array Accelerator board is configured but
              not enabled for this logical drive."
        ::= { cpqFcaLogDrvEntry 7 }

     cpqFcaLogDrvAvailSpares OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Available Spares.

            This indicates if this logical drive has one or more spares
            designated for it that are not currently in use by another drive.
            Each octet present will be a physical drive ID that is an
            available spare for this logical drive.  These are the same ID's
            which can be used as indexes into the physical drive table.
            An octet string of length zero indicates that there are no
            available spares for this logical drive."
        ::= { cpqFcaLogDrvEntry 8 }

     cpqFcaLogDrvSize OBJECT-TYPE
        SYNTAX  INTEGER (0..2147483647)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Size.

            This is the size of the logical drive in megabytes.  This value
            is calculated using the value 1,048,576 (2^20) as a megabyte.
            Drive manufacturers sometimes use the number 1,000,000 as a
            megabyte when giving drive capacities so this value may
            differ from the advertised size of a drive."
        ::= { cpqFcaLogDrvEntry 9 }

     cpqFcaLogDrvPhyDrvIDs OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Physical Drive IDs.

            This lists the physical drive IDs which are associated with this
            logical drive. These are the same IDs which can be used as
            indices into the physical drive table. Each byte of the string
            is an index."
        ::= { cpqFcaLogDrvEntry 10 }

     cpqFcaLogDrvCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The Logical Drive condition.

            This value represents the overall condition of this logical drive and
            any associated physical drives."
        ::= { cpqFcaLogDrvEntry 11 }

     cpqFcaLogDrvStripeSize OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Stripe Size.

            This is the size of a logical drive stripe in kilobytes."
        ::= { cpqFcaLogDrvEntry 12 }

     cpqFcaLogDrvOsName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive OS Name.

            The OS name for this array logical drive.  This field will be
            a null (size 0) string if the agent does not support OS name."
        ::= { cpqFcaLogDrvEntry 13 }

     cpqFcaLogDrvBlinkTime OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Physical Drive Blink Time Count.

             The logical drive blink time variable allows the drive tray LEDs
             of all physical drives in a logical drive to blink.  This value
             indicates the amount of time, in tenths of a second, that the
             physical drive LEDs will continue to blink.  A value of zero
             indicates the drive LEDs are not blinking.  If the value cannot
             be determined or no drive in this logical drive is in a hot
             plug tray, 4,294,967,295 is returned.

             To blink the drive LEDs on all physical drives in this logical
             drive (including any configured spare drives), set this value
             to the time to blink in tenths of seconds.

             To stop the drive LEDs from blinking, set this value to 0."
        ::= { cpqFcaLogDrvEntry 14 }

     cpqFcaLogDrvSpareReplaceMap OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..256))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Spare To Replacement Drive Map.

            This data structure contains the spare to physical drive
            replacement map.  The format is:

              octet  contents
              =====  ========
                1    Spare drive physical drive index
                2    Replaced drive physical drive index

            These 2 octets are repeated for each replaced drive.  For n
            replaced drives, the string is 2 * n octets long.  An octet
            string of length zero indicates that there are no replaced
            drives currently in use."
        ::= { cpqFcaLogDrvEntry 15 }

     cpqFcaLogDrvRebuildingPhyDrv OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Physical Drive Rebuilding Index.

            This is the physical drive index of the physical drive that is
            currently rebuilding.  If the value cannot be determined or is
            not applicable, the value is set to -1."
        ::= { cpqFcaLogDrvEntry 16 }

     cpqFcaLogDrvSnapshotResourceDrvIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Snapshot Resource Drive Index.

            This is the logical drive index of the Snapshot Resource Volume
            associated with this logical drive.  If there is no Snapshot
            Resource Volume association, the value is set to -1."
        ::= { cpqFcaLogDrvEntry 17 }

     cpqFcaLogDrvSnapshotSourceDrvIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Snapshot Source Drive Index.

            This is the drive index of the source logical drive associated
            with this Snapshot Resource Volume.  If this logical drive is
            not a Snapshot Resource Volume, the value is set to -1."
        ::= { cpqFcaLogDrvEntry 18 }

     cpqFcaLogDrvPreferredPath OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Preferred Path.

            This identifies the preferred controller path to this logical
            drive in a redundant active/active configuration.  The value is
            the controller index.  If the controller is not configured as
            active/active, the value is set to -1."
        ::= { cpqFcaLogDrvEntry 19 }

     cpqFcaLogDrvCurrentPath OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Logical Drive Current Path.

            This identifies the current controller path to this logical drive
            in a redundant active/active configuration.  The value is the
            controller index.  If the controller is not configured as
            active/active, the value is set to -1."
        ::= { cpqFcaLogDrvEntry 20 }


-- ****************************************************************************
--    External Array Spare Drive Table
--    ================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaSpareDrv Group         (1.3.6.1.4.1.232.16.2.4)
--         cpqFcaSpareTable            (1.3.6.1.4.1.232.16.2.4.1)
--
--      The cpqFcaSpareDrv group contains configuration and statistical
--      information about the spare drives associated with External
--      Array controllers.
--
--      Implementation of the cpqFcaSpareDrv group is mandatory for all
--      agents that support the Fibre Channel Array MIB that have a spare
--      configured.
--
-- ****************************************************************************


     cpqFcaSpareTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcaSpareEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Spare Table.

            A table of spare entries."
        ::= { cpqFcaSpareDrv 1 }

     cpqFcaSpareEntry OBJECT-TYPE
        SYNTAX  CpqFcaSpareEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Spare Entry.

            An entry in the spare table."
        INDEX   { cpqFcaSpareBoxIndex, cpqFcaSparePhyDrvIndex }
        ::= { cpqFcaSpareTable 1 }

     CpqFcaSpareEntry ::= SEQUENCE
     {
        cpqFcaSpareBoxIndex               INTEGER,
        cpqFcaSparePhyDrvIndex            INTEGER,
        cpqFcaSpareStatus                 INTEGER,
        cpqFcaSpareReplacedDrvBay         INTEGER,
        cpqFcaSparePercentRebuild         Gauge,
        cpqFcaSpareCondition              INTEGER,
        cpqFcaSpareBusNumber              INTEGER,
        cpqFcaSpareBay                    INTEGER,
        cpqFcaSpareReplacedDrvBusNumber   INTEGER,
        cpqFcaSpareLocationString         DisplayString
     }

     cpqFcaSpareBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Spare Drive Storage Box Index.

            The storage box index indicates which storage box this spare
            drive is in."
        ::= { cpqFcaSpareEntry 1 }

     cpqFcaSparePhyDrvIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Spare Physical Drive Index.

            This index maps the spare to the physical drive it represents.
            The value of this index is the same as the one used with the
            physical drive table."
        ::= { cpqFcaSpareEntry 2 }

     cpqFcaSpareStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            inactive(2),
            failed(3),
            building(4),
            active(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Spare Status.

            This shows the status of the on-line spare drive.

            The following values are valid for the spare status:

            Inactive (2)
              The monitored system has an on-line spare configured, but is
              not currently in use.

            Failed (3)
              The on-line spare has failed and is no longer available for use.

            Building (4)
              A physical drive has failed. Automatic Data Recovery
              is in progress to recover data to the on-line spare.

            Active (5)
              A physical drive has failed. Automatic Data Recovery is
              complete.  The system is using the on-line spare as a
              replacement for the failed drive."
        ::= { cpqFcaSpareEntry 3 }

     cpqFcaSpareReplacedDrvBay OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Spare Replaced Drive Bay.

             If the spare status is active(6) or building(5), then this
             has the physical drive bay number of the replaced drive.
             If the value cannot be determined or is not applicable, the
             value is set to -1."
        ::= { cpqFcaSpareEntry 4 }

     cpqFcaSparePercentRebuild OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Spare Percent Rebuild.

            If the spare status is building(5), then this is percent
            complete of of the rebuild.

            The data contained on the failed physical drive must be
            reconstructed from the fault tolerance data and copied to the
            spare so that the spare can function in place of the failed drive.

            When the number reaches one hundred (100), the building process
            is complete and the spare has replaced the physical drive.

            If the value cannot be determined or a rebuild is not active,
            the value is set to 4,294,967,295."
        ::= { cpqFcaSpareEntry 5 }

     cpqFcaSpareCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The Spare Drive condition.

            This value represents the overall condition of this spare drive
            and any associated physical drives."
        ::= { cpqFcaSpareEntry 6 }

     cpqFcaSpareBusNumber OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Spare Drive SCSI Bus Number.

            The bus number indicates to which SCSI bus this spare drive
            is attached.  The first instance is one and increments
            for each SCSI bus on a controller."
        ::= { cpqFcaSpareEntry 7 }

     cpqFcaSpareBay OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Spare Drive Bay Location.

            This value matches the bay location where the physical drive has
            been installed.  Each bay is labeled with a separate number so
            that you can identify the location of the drive."
        ::= { cpqFcaSpareEntry 8 }

     cpqFcaSpareReplacedDrvBusNumber OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Spare Replaced Drive Bus Number.

             If the spare status is active(6) or building(5), then this
             has the physical drive bus number of the replaced drive.
             If the value cannot be determined or is not applicable, the
             value is set to -1."
        ::= { cpqFcaSpareEntry 9 }

     cpqFcaSpareLocationString OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Spare Drive Location String.

            This string describes the location of the drive in relation to
            the storage box.  If the location string cannot be determined,
            the agent will return a NULL string."
        ::= { cpqFcaSpareEntry 10 }



-- ****************************************************************************
--    External Array Physical Drive Group
--    ===================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaPhyDrv Group           (1.3.6.1.4.1.232.16.2.5)
--         cpqFcaPhyDrvTable           (1.3.6.1.4.1.232.16.2.5.1)
--
--      The cpqFcaPhyDrv group contains configuration and statistical
--      information about the physical drives associated with the array
--      controllers.
--
--      Implementation of the cpqFcaPhyDrv group is mandatory for all agents
--      that support the Fibre Channel Array MIB.
--
-- ****************************************************************************


     cpqFcaPhyDrvTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcaPhyDrvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Table.

            A table of physical drive entries."
        ::= { cpqFcaPhyDrv 1 }

     cpqFcaPhyDrvEntry OBJECT-TYPE
        SYNTAX  CpqFcaPhyDrvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Entry.

            A physical drive entry."
        INDEX   { cpqFcaPhyDrvBoxIndex, cpqFcaPhyDrvIndex }
        ::= { cpqFcaPhyDrvTable 1 }

     CpqFcaPhyDrvEntry ::= SEQUENCE
     {
        cpqFcaPhyDrvBoxIndex              INTEGER,
        cpqFcaPhyDrvIndex                 INTEGER,
        cpqFcaPhyDrvModel                 DisplayString,
        cpqFcaPhyDrvFWRev                 DisplayString,
        cpqFcaPhyDrvBay                   INTEGER,
        cpqFcaPhyDrvStatus                INTEGER,
        cpqFcaPhyDrvUsedReallocs          Counter,
        cpqFcaPhyDrvRefHours              Counter,
        cpqFcaPhyDrvHReads                Counter,
        cpqFcaPhyDrvReads                 Counter,
        cpqFcaPhyDrvHWrites               Counter,
        cpqFcaPhyDrvWrites                Counter,
        cpqFcaPhyDrvHSeeks                Counter,
        cpqFcaPhyDrvSeeks                 Counter,
        cpqFcaPhyDrvHardReadErrs          Counter,
        cpqFcaPhyDrvRecvReadErrs          Counter,
        cpqFcaPhyDrvHardWriteErrs         Counter,
        cpqFcaPhyDrvRecvWriteErrs         Counter,
        cpqFcaPhyDrvHSeekErrs             Counter,
        cpqFcaPhyDrvSeekErrs              Counter,
        cpqFcaPhyDrvSpinupTime            INTEGER,
        cpqFcaPhyDrvFunctTest1            Gauge,
        cpqFcaPhyDrvFunctTest2            Gauge,
        cpqFcaPhyDrvFunctTest3            Gauge,
        cpqFcaPhyDrvOtherTimeouts         Counter,
        cpqFcaPhyDrvBadRecvReads          Counter,
        cpqFcaPhyDrvBadRecvWrites         Counter,
        cpqFcaPhyDrvFormatErrs            Counter,
        cpqFcaPhyDrvNotReadyErrs          Counter,
        cpqFcaPhyDrvHasMonInfo            INTEGER,
        cpqFcaPhyDrvCondition             INTEGER,
        cpqFcaPhyDrvHotPlugs              Counter,
        cpqFcaPhyDrvMediaErrs             Counter,
        cpqFcaPhyDrvHardwareErrs          Counter,
        cpqFcaPhyDrvAbortedCmds           Counter,
        cpqFcaPhyDrvSpinUpErrs            Counter,
        cpqFcaPhyDrvBadTargetErrs         Counter,
        cpqFcaPhyDrvSize                  INTEGER,
        cpqFcaPhyDrvBusFaults             Counter,
        cpqFcaPhyDrvHotPlug               INTEGER,
        cpqFcaPhyDrvPlacement             INTEGER,
        cpqFcaPhyDrvBusNumber             INTEGER,
        cpqFcaPhyDrvSerialNum             DisplayString,
        cpqFcaPhyDrvPreFailMonitoring     INTEGER,
        cpqFcaPhyDrvCurrentWidth          INTEGER,
        cpqFcaPhyDrvCurrentSpeed          INTEGER,
        cpqFcaPhyDrvFailureCode           INTEGER,
        cpqFcaPhyDrvBlinkTime             Counter,
        cpqFcaPhyDrvSmartStatus           INTEGER,
        cpqFcaPhyDrvRotationalSpeed       INTEGER,
        cpqFcaPhyDrvType                  INTEGER,
        cpqFcaPhyDrvSataVersion           INTEGER,
        cpqFcaPhyDrvBoxConnector          DisplayString,
        cpqFcaPhyDrvBoxOnConnector        INTEGER,
        cpqFcaPhyDrvLocationString        DisplayString,
        cpqFcaPhyDrvNegotiatedLinkRate    INTEGER,
        cpqFcaPhyDrvPhyCount              INTEGER,
        cpqFcaPhyDrvUnsupportedDrive      INTEGER
     }

     cpqFcaPhyDrvBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Storage Box Index.

            The storage box index indicates which storage box this physical
            drive is in."
        ::= { cpqFcaPhyDrvEntry 1 }

     cpqFcaPhyDrvIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Index.

            This index is used for selecting the physical drive table entry.
            This number, along with the cpqFcaPhyDrvBoxIndex uniquely
            identify a specific physical drive."
        ::= { cpqFcaPhyDrvEntry 2 }

     cpqFcaPhyDrvModel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..41))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Model.

            This is a text description of the physical drive.  The text that
            appears depends upon who manufactured the drive and the drive
            type.

            If a drive fails, note the model to identify the type of drive
            necessary for replacement."
        ::= { cpqFcaPhyDrvEntry 3 }

     cpqFcaPhyDrvFWRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..8))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Firmware Revision.

            This shows the physical drive firmware revision number."
        ::= { cpqFcaPhyDrvEntry 4 }

     cpqFcaPhyDrvBay OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Bay Location.

            This value matches the bay location where the physical drive has
            been installed.  Each bay is labeled with a separate number so
            that you can identify the location of the drive."
        ::= { cpqFcaPhyDrvEntry 5 }

     cpqFcaPhyDrvStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            unconfigured(2),
            ok(3),
            threshExceeded(4),
            predictiveFailure(5),
            failed(6),
            unsupportedDrive(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Status.

            This shows the status of the physical drive.

            The following values are valid for the physical drive status:

            other (1)
              Indicates that the instrument agent does not recognize
              the drive.  You may need to upgrade your instrument agent
              and/or driver software.

            unconfigured (2)
              Indicates the drive is present, but is not part of any
              logical drive configuration.

            ok (3)
              Indicates the drive is functioning properly.

            thresholdExceeded (4)
              Indicates that the drive has a threshold exceeded error and
              should be replaced.

            predictiveFailure (5)
              Indicates that the drive has a predictive failure error and
              should be replaced.

            failed (6)
              Indicates that the drive is no longer operating and
              should be replaced.

            unsupportedDrive(7)
              Indicates that an unsupported drive has been detected and
              should be replaced.  See cpqFcaPhyDrvUnsupportedDrive for
              more details."
        ::= { cpqFcaPhyDrvEntry 6 }

     cpqFcaPhyDrvUsedReallocs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Used Reallocated Sectors.

            This shows the number of sectors of the reallocation area that
            have been used by the physical drive.

            To see how many sectors were originally available for use in the
            reallocation area, refer to the factory reallocation information
            if it exists.  Not all drives support factory reallocation.

            Because of the nature of magnetic disks, certain sectors on a
            drive may have media defects. The reallocation area is part of
            the disk drive that the drive manufacturer sets aside to
            compensate for these defects. The drive array controller writes
            information addressed from these unusable sectors to available
            sectors in the reallocation area.  If too many sectors have
            been reallocated, there may be a problem with the drive.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 7 }

     cpqFcaPhyDrvRefHours OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Reference Time in hours.

            This shows the total number of hours that a physical drive has
            been spinning since the drive was stamped.  The drive will have
            either been stamped when it left the factory or when you ran
            diagnostics on your new drive.  You can use the reference
            time to calculate rates for other physical drive events."
        ::= { cpqFcaPhyDrvEntry 8 }

     cpqFcaPhyDrvHReads OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Sectors Read (high).

            The phyDrvHReads and the phyDrvReads together shows the total
            number of sectors read from the physical disk drive during the
            reference time (phyDrvRefHours).

            The actual number of sectors read equals the phyDrvHReads
            times 2^32 plus the phyDrvReads.

            This information may be useful for determining rates.
            For instance, if you wanted to calculate the average number
            of reads per hour of operation, divide this number by the
            reference hours.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 9 }

     cpqFcaPhyDrvReads OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Sectors Read (low).

            The phyDrvHReads and the phyDrvReads together shows
            the total number of sectors read from the physical disk drive
            during the reference time (phyDrvRefHours).

            The actual number of sectors read equals the phyDrvHReads
            times 2^32 plus the phyDrvReads.

            This information may be useful for determining rates.
            For instance, if you wanted to calculate the average number
            of reads per hour of operation, divide this number by the
            reference hours.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 10 }

     cpqFcaPhyDrvHWrites OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Sectors Written (high).

            The phyDrvHWrites and the phyDrvWrites together shows the
            total number of sectors written to the physical disk drive
            during the reference hours (phyDrvRefHours).

            The actual number of sectors written equals the phyDrvHWrites
            times 2^32 plus the phyDrvWrites.

            This information may be useful for determining rates.
            For instance, if you wanted to calculate the average number
            of writes per hour of operation, divide this number by the
            reference hours.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 11 }

     cpqFcaPhyDrvWrites OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Sectors Written (low).

            The phyDrvHWrites and the phyDrvWrites together
            shows the total number of sectors written to the physical
            disk drive during the reference hours (phyDrvRefHours).

            The actual number of sectors written equals the phyDrvHWrites
            times 2^32 plus the phyDrvWrites.

            This information may be useful for determining rates.
            For instance, if you wanted to calculate the average number of
            writes per hour of operation, divide this number by the reference
            hours.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 12 }

     cpqFcaPhyDrvHSeeks OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Total Seeks (high).

            The phyDrvHSeeks and the phyDrvSeeks together shows the total
            number of seek operations performed by the physical disk drive
            during the reference hours (phyDrvRefHours).

            The actual number of seeks equals the phyDrvHSeeks times
            2^32 plus the phyDrvWriteSeeks.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 13 }

     cpqFcaPhyDrvSeeks OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Total Seeks (low).

            The phyDrvHSeeks and the phyDrvSeeks together shows the total
            number of seek operations performed by the physical disk drive
            during the reference hours (phyDrvRefHours).

            The actual number of seeks equals the phyDrvHSeeks times
            2^32 plus the phyDrvWriteSeeks.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 14 }

     cpqFcaPhyDrvHardReadErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Hard Read Errors.

            This shows the number of read errors that have occurred on a
            drive that could not be recovered by a physical drive's Error
            Correction Code (ECC) algorithm or through retries during the
            reference time (phyDrvRefTime).  Over time, a disk drive may
            produce these errors.  If you receive these errors, a problem
            may exist with your drive.

            The value increases every time the physical drive detects another
            error.

            The severity of these errors depends on whether the monitored
            system is running in a fault tolerant mode. With fault tolerance,
            the controller can remap data to eliminate the problems caused by
            these errors.  In either case, if you see an increase in these
            errors, run diagnostics to verify that a problem exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 15 }

     cpqFcaPhyDrvRecvReadErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Recovered Read Errors.

            This shows the number of read errors corrected through physical
            drive retries during the reference time (phyDrvRefTime).

            Over time, all disk drives produce these errors.  If you notice a
            rapid increase in the value for Recovered Read Errors (or Hard
            Read Errors), a problem may exist with the drive.  The value
            increases every time the physical drive detects and corrects
            another error.

            Expect more Recovered Read Errors than Hard Read Errors. If you
            suspect that a problem may exist with the drive, run diagnostics.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 16 }

     cpqFcaPhyDrvHardWriteErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Hard Write Errors.

            This shows the number of write errors that could not be recovered
            by a physical drive during the reference time (phyDrvRefTime).

            Over time a disk drive may detect these errors. If you notice an
            increase in the value shown for Hard Write Errors or Recovered
            Write Errors, a problem may exist with the drive.  The value
            increases every time the physical drive detects another error.
            On average, these errors should occur less frequently than
            read errors.  If you see an increase in these errors, run
            diagnostics to verify that a problem exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 17 }

     cpqFcaPhyDrvRecvWriteErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Recovered Write Errors.

            This shows the number of write errors corrected through physical
            drive retries or recovered by a physical drive during the
            reference time (phyDrvRefTime).

            Over time a disk drive may produce these errors.

            If you notice an increase in the value shown for Hard Write
            Errors or Recovered Write Errors, a problem may exist with
            the drive.

            The value increases every time the physical drive detects and
            corrects an error. Only an unusually rapid increase in these
            errors indicates a problem.

            On average, these errors should occur less frequently than hard
            read errors.  If you suspect that a problem may exist with the
            drive, run diagnostics.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 18 }

     cpqFcaPhyDrvHSeekErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Seek Errors (High).

            The phyDrvHSeekErrs and the phyDrvSeekErrs together shows the
            total number of times that the physical disk drive detected a
            seek error during the reference hours (phyDrvRefHours).

            The actual number of seek errors equals the phyDrvHSeekErrs times
            2^32 plus the phyDrvWriteSeekErrs.

            Over time, a disk drive usually produces these errors. If you
            notice a rapid increase in the value shown for Seek Errors,
            this physical drive may be failing.

            The value increases every time the physical drive produces
            another error. Only an unusually rapid increase in these errors
            indicates a problem. If you suspect that a problem exists,
            run diagnostics.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 19 }

     cpqFcaPhyDrvSeekErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Seek Errors (low).
            The phyDrvHSeekErrs and the phyDrvSeekErrs together shows the
            total number of times that the physical disk drive detected a
            seek error during the reference hours (phyDrvRefHours).

            The actual number of seek errors equals the phyDrvHSeekErrs times
            2^32 plus the phyDrvWriteSeekErrs.

            Over time, a disk drive usually produces these errors. If you
            notice a rapid increase in the value shown for Seek Errors,
            this physical drive may be failing.

            The value increases every time the physical drive produces
            another error.  Only an unusually rapid increase in these errors
            indicates a problem.  If you suspect that a problem exists, run
            diagnostics.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 20 }

     cpqFcaPhyDrvSpinupTime OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Spin up Time in tenths of seconds.

            This is the time it takes for a physical drive to spin up to full
            speed.

            Disks require time to gain momentum and reach operating speed. As
            cars are tested to go from 0 mph to 60 mph in x number of seconds,
            drive manufacturers have preset expectations for the time it takes
            the drive to spin to full speed. Drives that do not meet these
            expectations may have problems.

            The value may be zero (0) under one of the following conditions:

            *  If you are monitoring a physical drive that is part of the
               monitored system's internal drive array storage, and you use a
               warm boot to reset the monitored system. During a warm boot,
               the drives continue to spin.

            *  If you are monitoring a physical drive in an ProLiant Storage
               System storage and you reset the array but not the ProLiant
               Storage System.

            If the value cannot be determined, -1 is returned."
        ::= { cpqFcaPhyDrvEntry 21 }

     cpqFcaPhyDrvFunctTest1 OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "Functional Test 1.

            This provides information about a series of tests that indicate
            how well a physical drive works. These tests compare the way the
            physical drive currently operates when performing various tasks
            with the way it worked when it was new.

            A percent value is displayed that represents how the drive works
            currently when compared to how the drive worked when new.  New
            drives operate at the 100 percent level.  By default, if the
            current value is less than or equal to 80 percent, a problem may
            exist.

            If you suspect a problem, run diagnostics to verify that a
            problem exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 22 }

     cpqFcaPhyDrvFunctTest2 OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "Functional Test 2.

            This provides information about a series of tests that indicate
            how well a physical drive works. These tests compare the way the
            physical drive currently operates when performing various tasks
            with the way it worked when it was new.

            A percent value is displayed that represents how the drive works
            currently when compared to how the drive worked when new.  New
            drives operate at the 100 percent level. By default, if the
            current value is less than or equal to 80 percent, a problem may
            exist.

            If you suspect a problem, run diagnostics to verify that a
            problem exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 23 }

     cpqFcaPhyDrvFunctTest3 OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "Functional Test 3.

            This provides information about a series of tests that indicate
            how well a physical drive works. These tests compare the way the
            physical drive currently operates when performing various tasks
            with the way it worked when it was new.

            A percent value is displayed that represents how the drive works
            currently when compared to how the drive worked when new.  New
            drives operate at the 100 percent level. By default, if the
            current value is less than or equal to 80 percent, a problem may
            exist.

            If you suspect a problem, run diagnostics to verify that a
            problem exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 24 }

     cpqFcaPhyDrvOtherTimeouts OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Other Timeouts.

            The number of times that a physical drive did not respond with an
            interrupt within a controller-defined period of time after a
            command had been issued during the reference time (phyDrvRefTime).
            This does not include DRQ timeouts.

            If you suspect a problem, complete the following steps for the
            monitored system:

            1.  Check the cables connecting the drive to ensure that they
                are intact.

            2.  If the cables are properly connected, run diagnostics to
                verify that a problem exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 25 }

     cpqFcaPhyDrvBadRecvReads OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Recovery Failed (Bad) Read Error.

            The number of times a read error occurred while performing
            Automatic Data Recovery from this physical drive to another
            drive during the reference time (phyDrvRefTime).

            If a read error occurs, Automatic Data Recovery stops.  These
            errors indicate that the physical drive has failed.  If you
            suspect a problem, run diagnostics to verify that a problem
            exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 26 }

     cpqFcaPhyDrvBadRecvWrites OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Recovery Failed (Bad) Write Error.

            The number of times a write error occurred while performing
            Automatic Data Recovery from another drive to this physical
            drive during the reference time (phyDrvRefTime).

            If a write error occurs, Automatic Data Recovery stops.  These
            errors indicate that the physical drive has failed.  If you
            suspect a problem, run diagnostics to verify that a problem
            exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 27 }

     cpqFcaPhyDrvFormatErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Format Error.

            The number of times a format operation failed when the controller
            attempted to remap a bad sector during the reference time
            (phyDrvRefTime).  Zero indicates that no format errors have
            occurred.  The value increases each time a format error occurs.
            A failed format operation may cause the controller to mark a
            drive failed.

            If you suspect a problem, run diagnostics to verify a problem
            exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 28 }

     cpqFcaPhyDrvNotReadyErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Drive Not Ready Errors.

            The number of times the physical drive failed after the spin up
            command was issued during the reference time (phyDrvRefTime).
            When the spin up command was issued, the drive failed to reach
            its ready state.  If the current value is zero, the drive has
            not failed.  If the current value is greater than zero, at
            least one failure occurred.

            This error could be caused because the physical drive has failed
            to spin.

            If you suspect a problem:

            1.  Check the cables connecting the drive to ensure that they
                are intact.

            2.  If the cables are properly connected, run diagnostics to
                verify that a problem exists.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 29 }

     cpqFcaPhyDrvHasMonInfo OBJECT-TYPE
        SYNTAX  INTEGER
        {
            false(1),
            true(2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Has Monitor Information.

            All of the physical disk table fields except for the physical
            disk status (phyDrvStatus) and the bay location
            (phyDrvBayLocation) are invalid unless this field has a value
            of true(2)."
        ::= { cpqFcaPhyDrvEntry 30 }

     cpqFcaPhyDrvCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The condition of the device.
             This value represents the overall condition of this physical
             drive."
        ::= { cpqFcaPhyDrvEntry 31 }

     cpqFcaPhyDrvHotPlugs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Hot Plug Count.

             This value indicates the number of times this physical drive
             was hot-plugged (removed) from a storage system.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 32 }

     cpqFcaPhyDrvMediaErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Media Failure Count.

            This value indicates the number of times this physical drive
            was failed due to unrecoverable media errors.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 33 }

     cpqFcaPhyDrvHardwareErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Hardware Error Count.

            This value indicates the number of times this physical drive
            returned a bad hardware status. The drive may be failed if
            retries do not work.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 34 }

     cpqFcaPhyDrvAbortedCmds OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Aborted Command Failures.

            This value indicates the number of times this physical drive
            was failed due to aborted commands that could not be retried
            successfully.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 35 }

     cpqFcaPhyDrvSpinUpErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Spin-Up Failure Count.

            This value indicates the number of times this physical drive
            was failed due to a failure of a spin-up command.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 36 }

     cpqFcaPhyDrvBadTargetErrs OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Bad Target Count.

            This value indicates the number of times this physical drive
            performed some action that did not conform to the SCSI-2 bus
            protocol.  These actions will cause the SCSI bus to be reset.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 37 }

     cpqFcaPhyDrvSize OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Size in MB.

            This is the size of the physical drive in megabytes.  This value
            is calculated using the value 1,048,576 (2^20) as a megabyte.
            Drive manufacturers sometimes use the number 1,000,000 as a
            megabyte when giving drive capacities so this value may differ
            from the advertised size of a drive."
        ::= { cpqFcaPhyDrvEntry 38 }

     cpqFcaPhyDrvBusFaults OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Bus Fault Count.

            This value indicates the number of times that a bus fault was
            detected for the drive by the controller.

            If the value cannot be determined, 4,294,967,295 is
            returned."
        ::= { cpqFcaPhyDrvEntry 39 }

     cpqFcaPhyDrvHotPlug OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            hotPlug(2),
            nonHotPlug(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Hot Plug Support Status.

            The following values are defined:

            other(1)
              The Insight Agent is unable to determine if this drive
              supports hot plug replacement.

            hotPlug(2)
              The drive supports hot plug replacement.

            nonhotPlug(3)
              The drive does not support hot plug replacement."
        ::= { cpqFcaPhyDrvEntry 40 }

     cpqFcaPhyDrvPlacement OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            internal(2),
            external(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Placement.

            The following values are defined:

            other(1)
              The agent is unable to determine if the drive is internal or
              external to the system chassis.

            internal(2)
              The drive is located in the system chassis.

            external(3)
              The drive is located outside the system chassis in an
              expansion box."
        ::= { cpqFcaPhyDrvEntry 41 }

     cpqFcaPhyDrvBusNumber OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive SCSI Bus Number.

            The bus number indicates to which SCSI bus this physical
            drive is attached.  The first instance is one and increments
            for each SCSI bus on a controller."
        ::= { cpqFcaPhyDrvEntry 42 }

     cpqFcaPhyDrvSerialNum OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Serial Number.

            This is the serial number assigned to the physical drive.
            This value is based upon the serial number as returned by the
            SCSI inquiry command but may have been modified due to space
            limitations.  This can be used for identification purposes."
        ::= { cpqFcaPhyDrvEntry 43 }


    cpqFcaPhyDrvPreFailMonitoring OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           notAvailable(2),
           available(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Physical Drive Predictive Failure Monitoring.

            The following values are defined:

            other(1)
              The agent is unable to determine if the drive supports
              predictive failure monitoring.

            notAvailable(2)
              This drive does not support predictive failure monitoring.

            available(3)
              This drive supports predictive failure monitoring."
        ::= { cpqFcaPhyDrvEntry 44 }

     cpqFcaPhyDrvCurrentWidth OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            narrow(2),
            wide16(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Current Width.

            The following values are defined:

            other(1)
              The agent is unable to determine the current negotiated data
              transfer width for this drive.

            narrow(2)
              The negotiated data transfer width for this drive is narrow
              (8 data bits).

            wide16(3)
              The negotiated data transfer width for this drive is wide
              (16 data bits)."
        ::= { cpqFcaPhyDrvEntry 45 }

     cpqFcaPhyDrvCurrentSpeed OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            asynchronous(2),
            fast(3),
            ultra(4),
            ultra2(5),
            ultra3(6),
            ultra320(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Current Data Transfer Speed.

            The following values are defined:

            other(1)
              The agent is unable to determine the current negotiated data
              transfer speed for this drive.

            asynchronous(2)
              The negotiated data transfer speed for this drive is
              asynchronous.

            fast(3)
              The negotiated data transfer speed for this drive is 10 million
              transfers per second).

            ultra(4)
              The negotiated data transfer speed for this drive is 20 million
              transfers per second.

            ultra2(5)
              The negotiated data transfer speed for this drive is 40 million
              transfers per second.

            ultra3(6)
              The negotiated data transfer speed for this drive is 80 million
              transfers per second.

            ultra320(7)
              The negotiated data transfer speed for this drive is 160
              million transfers per second."
        ::= { cpqFcaPhyDrvEntry 46 }

     cpqFcaPhyDrvFailureCode OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Failure Code.

             This value is the drive failure reason code returned by the
             array firmware.  It is valid only when the drive is failed.
             If the drive is not failed, 0 is returned."
        ::= { cpqFcaPhyDrvEntry 47 }

     cpqFcaPhyDrvBlinkTime OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive LED Blink Time.

             This value is the amount of time remaining for the drive LEDs to
             blink in tenths of seconds.  A value of zero means the drive
             LEDs are not blinking.  If the value cannot be determined or the
             drive is not in a hot plug tray, 4,294,967,295 is returned.

             To blink the drive LEDs, set this value to the time to blink in
             tenths of seconds.

             To stop the drive LEDs from blinking, set this value to 0."
        ::= { cpqFcaPhyDrvEntry 48 }

     cpqFcaPhyDrvSmartStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           ok(2),
           replaceDrive(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Physical Drive S.M.A.R.T Status.

            The following values are defined:

            other(1)
              The agent is unable to determine if the status of S.M.A.R.T
              predictive failure monitoring for this drive.

            ok(2)
              Indicates the drive is functioning properly.

            replaceDrive(3)
              Indicates that the drive has a S.M.A.R.T predictive failure
              error and should be replaced."
        ::= { cpqFcaPhyDrvEntry 49 }

     cpqFcaPhyDrvRotationalSpeed OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            rpm7200(2),
            rpm10K(3),
            rpm15K(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Rotational Speed.

            The following values are defined:

            other(1)
              The agent is unable to determine the rotational speed for
              this drive.

            rpm7200(2)
              The rotational speed for this drive is 7200 rpm.

            rpm10K(3)
              The rotational speed for this drive is 10000 rpm.

            rpm15K(4)
              The rotational speed for this drive is 15000 rpm."
        ::= { cpqFcaPhyDrvEntry 50 }

     cpqFcaPhyDrvType OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            parallelScsi(2),
            sata(3),
            sas(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Type.

            The following values are defined:

            other(1)
              The agent is unable to determine the type for this drive.

            parallelScsi(2)
              The drive type is parallel SCSI.

            sata(3)
              The drive type is Serial ATA.

            sas(4)
              The drive type is Serial Attached SCSI."
        ::= { cpqFcaPhyDrvEntry 51 }

     cpqFcaPhyDrvSataVersion OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            sataOne(2),
            sataTwo(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive SATA Version.

            The following values are defined:

            other(1)
              The agent is unable to determine the SATA version for this
              drive or it is not a SATA drive.

            sataOne(2)
              The drive is SATA version one.

            sataTwo(3)
              The drive is SATA version two."
        ::= { cpqFcaPhyDrvEntry 52 }

     cpqFcaPhyDrvBoxConnector OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..4))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Physical Drive Box Connector.

            This is the box connector to which the drive is ultimately
            attached.  If the box connector cannot be determined, the agent
            will return a NULL string."
        ::= { cpqFcaPhyDrvEntry 53 }

     cpqFcaPhyDrvBoxOnConnector OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Physical Drive Box on Connector.

            The box on connector indicates to which box instance this
            physical drive belongs.  The instances start at one and increment for
            each box attached to a connector.  If the value cannot be
            determined or does not apply, -1 is returned."
        ::= { cpqFcaPhyDrvEntry 54 }

     cpqFcaPhyDrvLocationString OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Physical Drive Location String.

            This string describes the location of the drive in relation to
            the storage box.  If the location string cannot be determined,
            the agent will return a NULL string."
        ::= { cpqFcaPhyDrvEntry 55 }

     cpqFcaPhyDrvNegotiatedLinkRate OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            rate-1-5(2),
            rate-3-0(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Negotiated Link Rate.

            The following values are defined:

            other(1)
              The agent is unable to determine the negotiated link rate
              this drive.

            rate-1-5(2)
              The negotiated link rate for this drive is 1.5 Gigabits per
              second.

            rate-3-0(3)
              The negotiated link rate for this drive is 3.0 Gigabits per
              second."
        ::= { cpqFcaPhyDrvEntry 56 }

     cpqFcaPhyDrvPhyCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive PHY Count.

            This value indicates how many PHYs exist on a SAS or SATA disk
            drive.  If the value cannot be determined or does not apply,
             -1 is returned."
        ::= { cpqFcaPhyDrvEntry 57 }

     cpqFcaPhyDrvUnsupportedDrive OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            supported(2),
            unsupported-SinglePorted(3),
            unsupported-SATA(4),
            unsupported-TooSmall(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Physical Drive Unsupported Drive.

            The following values are defined:

            other(1)
              The agent is unable to determine the value for this drive.

            supported(2)
              The drive is supported.

            unsupported-SinglePorted(3)
              The drive is unsupported.  A single ported drive has been
              detected in a dual port only configuration.

            unsupported-SATA(4)
              The drive is unsupported.  A SATA drive has been detected in
              a SAS only configuration.

            unsupported-TooSmall(5)
              The drive is unsupported.  A drive that is too small has been
              detected."
        ::= { cpqFcaPhyDrvEntry 58 }


-- ****************************************************************************
--    Drive Array Physical Drive Threshold Table
--    ==========================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaPhyDrvThr Group        (1.3.6.1.4.1.232.16.2.6)
--         cpqFcaPhyDrvThrTable        (1.3.6.1.4.1.232.16.2.6.1)
--
-- ****************************************************************************

     cpqFcaPhyDrvThrTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcaPhyDrvThrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Drive Array Physical Drive Threshold Table.

            A table of physical drive threshold entries."
        ::= { cpqFcaPhyDrvThr 1 }

     cpqFcaPhyDrvThrEntry OBJECT-TYPE
        SYNTAX  CpqFcaPhyDrvThrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Drive Array Physical Drive Threshold Entry.

            A physical drive threshold entry."
        INDEX   { cpqFcaPhyDrvThrBoxIndex, cpqFcaPhyDrvThrIndex }
        ::= { cpqFcaPhyDrvThrTable 1 }

        CpqFcaPhyDrvThrEntry ::= SEQUENCE
        {
           cpqFcaPhyDrvThrBoxIndex              INTEGER,
           cpqFcaPhyDrvThrIndex                 INTEGER,
           cpqFcaPhyDrvThrUsedReallocs          INTEGER,
           cpqFcaPhyDrvThrSpinupTime            INTEGER,
           cpqFcaPhyDrvThrFunctTest1            INTEGER,
           cpqFcaPhyDrvThrFunctTest2            INTEGER,
           cpqFcaPhyDrvThrFunctTest3            INTEGER,
           cpqFcaPhyDrvThrViUsedReallocs        INTEGER,
           cpqFcaPhyDrvThrViSpinupTime          INTEGER,
           cpqFcaPhyDrvThrViFunctTest1          INTEGER,
           cpqFcaPhyDrvThrViFunctTest2          INTEGER,
           cpqFcaPhyDrvThrViFunctTest3          INTEGER
        }

     cpqFcaPhyDrvThrBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER  (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Physical Drive Threshold Storage Box Index.

            The storage box index indicates which storage box this physical
            drive is in."
        ::= { cpqFcaPhyDrvThrEntry 1 }

     cpqFcaPhyDrvThrIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Drive Array Physical Drive Threshold Index.

            This index maps the thresholds to a physical drive.  The value
            of this index is the same as the one used with the physical
            drive table."
        ::= { cpqFcaPhyDrvThrEntry 2 }

     cpqFcaPhyDrvThrUsedReallocs OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Used Reallocated Sectors Maximum Threshold.

            This shows the maximum threshold of the reallocation area that
            has been used by the physical drive.

            This threshold is associated with the cpqFcaPhyDrvUsedReallocs
            object in the Physical Drive Table.

            If the value cannot be determined, -1 is returned."
        ::= { cpqFcaPhyDrvThrEntry 3 }

     cpqFcaPhyDrvThrSpinupTime OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Spin up Time Maximum Threshold in tenths of seconds.

            This shows the maximum of time it takes for a physical drive to
            spin up to full speed.

            This threshold is associated with the cpqFcaPhyDrvSpinupTime
            object in the Physical Drive Table.

            If the value cannot be determined, -1 is returned."
        ::= { cpqFcaPhyDrvThrEntry 4 }

     cpqFcaPhyDrvThrFunctTest1 OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "Functional Test 1 Minimum Threshold.

            This provides the minimum threshold for information about a series
            of tests that indicate how well a physical drive works. These
            tests compare the way the physical drive currently operate
            when performing various tasks with the way it worked when it
            was new.

            This threshold is associated with the cpqFcaPhyDrvFunctTest1
            object in the Physical Drive Table.

            If the value cannot be determined, -1 is returned."
        ::= { cpqFcaPhyDrvThrEntry 5 }

     cpqFcaPhyDrvThrFunctTest2 OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "Functional Test 2 Minimum Threshold.

            This provides the minimum threshold for information about a
            series of tests that indicate how well a physical drive works.
            These tests compare the way the physical drive currently
            operates when performing various tasks with the way it worked
            when it was new.

            This threshold is associated with the cpqFcaPhyDrvFunctTest2
            object in the Physical Drive Table.

            If the value cannot be determined, -1 is returned."
        ::= { cpqFcaPhyDrvThrEntry 6 }

     cpqFcaPhyDrvThrFunctTest3 OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "Functional Test 3 Minimum Threshold.

            This provides the minimum threshold for information about a
            series of tests that indicate how well a physical drive works.
            These tests compare the way the physical drive currently operates
            when performing various tasks with the way it worked when it was
            new.

            This threshold is associated with the cpqFcaPhyDrvFunctTest3
            object in the Physical Drive Table.

            If the value cannot be determined, -1 is returned."
        ::= { cpqFcaPhyDrvThrEntry 7 }

     cpqFcaPhyDrvThrViUsedReallocs OBJECT-TYPE
        SYNTAX  INTEGER
        {
            false(1),
            true(2),
            unknown(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Used Reallocated Sectors Threshold Has Been Violated.

            This is used to indicate whether the number of used sectors of
            the reallocation area for a physical drive has ever exceeded
            the maximum allowable threshold.

            The valid values are:

            false (1)
              Indicates that the Used Reallocated Sectors object
              (cpqFcaPhyDrvUsedReallocs) value has not exceeded
              the maximum threshold (cpqFcaPhyDrvThrUsedReallocs).

            true (2)
              Indicates that the Used Reallocated Sectors object
              (cpqFcaPhyDrvUsedReallocs) value has exceeded
              the maximum threshold (cpqFcaPhyDrvThrUsedReallocs).

            unknown (3)
              The agent is unable to determine if the drive has a
              threshold violation."

        ::= { cpqFcaPhyDrvThrEntry 8 }

     cpqFcaPhyDrvThrViSpinupTime OBJECT-TYPE
        SYNTAX  INTEGER
        {
            false(1),
            true(2),
            unknown(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Spin up Time in tenths of seconds Threshold Has Been Violated.

            This is used to indicate whether the time it took for a physical
            drive to spin up to full speed has ever exceeded the maximum
            allowable threshold.

            The valid values are:

            false (1)
              Indicates that the Spin up Time object (cpqFcaPhyDrvSpinupTime)
              value has not exceeded the maximum threshold
              (cpqFcaPhyDrvThrSpinupTime).

            true (2)
              Indicates that the Spin up Time object (cpqFcaPhyDrvSpinupTime)
              value has exceeded the maximum threshold
              (cpqFcaPhyDrvThrSpinupTime).

            unknown (3)
              The agent is unable to determine if the drive has a
              threshold violation."
        ::= { cpqFcaPhyDrvThrEntry 9 }

     cpqFcaPhyDrvThrViFunctTest1 OBJECT-TYPE
        SYNTAX  INTEGER
        {
            false(1),
            true(2),
            unknown(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Functional Test 1 Threshold Has Been Violated.

            This is used to indicate whether the percentage value returned
            from Functional Test 1 has every dropped below the allowable
            threshold for that test.

            The valid values are:

            false (1)
              Indicates that the Functional Test 1 object
              (cpqFcaPhyDrvFunctTest1) value has not fallen below the
              minimum threshold (cpqFcaPhyDrvThrFunctTest1).

            true (2)
              Indicates that the Functional Test 1 object
              (cpqFcaPhyDrvFunctTest1) value has fallen below
              the minimum threshold (cpqFcaPhyDrvThrFunctTest1).

            unknown (3)
              The agent is unable to determine if the drive has a
              threshold violation."
        ::= { cpqFcaPhyDrvThrEntry 10 }

     cpqFcaPhyDrvThrViFunctTest2 OBJECT-TYPE
        SYNTAX  INTEGER
        {
            false(1),
            true(2),
            unknown(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Functional Test 2 Threshold Has Been Violated.

            This is used to indicate whether the percentage value returned
            from Functional Test 2 has every dropped below the allowable
            threshold for that test.

            The valid values are:

            false (1)
              Indicates that the Functional Test 2 object
              (cpqFcaPhyDrvFunctTest2) value has not fallen below
              the minimum threshold (cpqFcaPhyDrvThrFunctTest2).

            true (2)
              Indicates that the Functional Test 2 object
              (cpqFcaPhyDrvFunctTest2) value has fallen below
              the minimum threshold (cpqFcaPhyDrvThrFunctTest2).

            unknown (3)
              The agent is unable to determine if the drive has a
              threshold violation."
        ::= { cpqFcaPhyDrvThrEntry 11 }

     cpqFcaPhyDrvThrViFunctTest3 OBJECT-TYPE
        SYNTAX  INTEGER
        {
            false(1),
            true(2),
            unknown(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Functional Test 3 Threshold Has Been Violated.

            This is used to indicate whether the percentage value returned
            from Functional Test 3 has every dropped below the allowable
            threshold for that test.

            The valid values are:

            false (1)
              Indicates that the Functional Test 3 object
              (cpqFcaPhyDrvFunctTest3) value has not fallen below
              the minimum threshold (cpqFcaPhyDrvThrFunctTest3).

            true (2)
              Indicates that the Functional Test 3 object
              (cpqFcaPhyDrvFunctTest3) value has fallen below
              the minimum threshold (cpqFcaPhyDrvThrFunctTest3).

            unknown (3)
              The agent is unable to determine if the drive has a
              threshold violation."
        ::= { cpqFcaPhyDrvThrEntry 12 }


-- ****************************************************************************
--    Fibre Channel Host Controller Group
--    ===================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqFcaHostCntlr Group        (1.3.6.1.4.1.232.16.2.7)
--         cpqFcaHostCntlrTable        (1.3.6.1.4.1.232.16.2.7.1)
--
--      The Host Controller group contains the configuration and statistical
--      information of the Fibre Channel Host Controller.
--
--      Implementation of the cpqFcaHostCntlr group is mandatory for all
--      agents that support the Fibre Channel MIB.
--
-- ****************************************************************************

     cpqFcaHostCntlrTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcaHostCntlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Table."
        ::= { cpqFcaHostCntlr 1 }

     cpqFcaHostCntlrEntry OBJECT-TYPE
        SYNTAX  CpqFcaHostCntlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Array Controller Entry."
        INDEX   { cpqFcaHostCntlrIndex }
        ::= { cpqFcaHostCntlrTable 1 }

     CpqFcaHostCntlrEntry ::= SEQUENCE
     {
        cpqFcaHostCntlrIndex              INTEGER,
        cpqFcaHostCntlrSlot               INTEGER,
        cpqFcaHostCntlrModel              INTEGER,
        cpqFcaHostCntlrStatus             INTEGER,
        cpqFcaHostCntlrCondition          INTEGER,
        cpqFcaHostCntlrWorldWideName      DisplayString,
        cpqFcaHostCntlrStorBoxList        OCTET STRING,
        cpqFcaHostCntlrOverallCondition   INTEGER,
        cpqFcaHostCntlrTapeCntlrList      OCTET STRING,
        cpqFcaHostCntlrSerialNumber       DisplayString,
        cpqFcaHostCntlrHwLocation         DisplayString,
        cpqFcaHostCntlrWorldWidePortName  DisplayString,
        cpqFcaHostCntlrFirmwareVersion    DisplayString,
        cpqFcaHostCntlrOptionRomVersion   DisplayString
     }

     cpqFcaHostCntlrIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Index.

            This value is a logical number whose meaning is OS dependent.
            Each physical controller has one unique controller number
            associated with it."
        ::= { cpqFcaHostCntlrEntry 1 }

     cpqFcaHostCntlrSlot OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Slot.

            This identifies the physical slot where the Fibre Channel Host
            Controller resides in the system.  For example, if this value is
            three, the controller is located in slot three of your computer.
            If the slot cannot be determined, the value is set to 255."
        ::= { cpqFcaHostCntlrEntry 2 }

     cpqFcaHostCntlrModel OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            fchc-p(2),
            fchc-e(3),
            fchc64(4),
            sa-sam(5),
            fca-2101(6),
            sw64-33(7),
            fca-221x(8),
            dpfcmc(9),
            fca-2404(10),
            fca-2214(11),
            a7298a(12),
            fca-2214dc(13),
            a6826a(14),
            fcmcG3(15),
            fcmcG4(16),
            ab46xa(17),
            fc-generic(18),
            fca-1143(19),
            fca-1243(20),
            fca-2143(21),
            fca-2243(22),
            fca-1050(23),
            fca-lpe1105(24),
            fca-qmh2462(25),
            fca-1142sr(26),
            fca-1242sr(27),
            fca-2142sr(28),
            fca-2242sr(29),
            fcmc20pe(30),
            fca-81q(31),
            fca-82q(32),
            fca-qmh2562(33),
            fca-81e(34),
            fca-82e(35),
            fca-1205(36)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Model.

            The type of controller card.  The valid types are:

            Other  (1)
              You may need to upgrade your driver software and\or instrument
              agent(s).  You have a drive array controller in the system
              that the instrument agent does not recognize.

            fchc-p (2)
              Compaq StorageWorks Fibre Channel Host Bus Adapter/P.

            fchc-e (3)
              Compaq StorageWorks Fibre Channel Host Bus Adapter/E.

            fchc64 (4)
              Compaq StorageWorks 64-Bit/66-Mhz Fibre Host Bus Adapter.

            sa-sam(5)
              Compaq Smart Array, SAN Access Module.

            fca-2101(6)
              FCA-2101

            sw64-33(7)
              Compaq StorageWorks 64bit/33Mhz PCI to Fibre Channel HBA.

            fca-221x(8)
              FCA-221x

            dpfcmc(9)
              Dual Port Fibre Channel Mezzanine Card (2 Gb) for BL20Gp2 G2.

            fca-2404(10)
              PCI-X 2Gb FCA2404 Fibre Channel HBA

            fca-2214(11)
              PCI-X 2Gb FCA2214 Fibre Channel HBA

            a7298a(12)
              PCI-X 2Gb A7298A Fibre Channel HBA

            fca-2214dc(13)
              PCI-X 2Gb FCA2214DC Fibre Channel HBA

            a6826a(14)
              PCI-X Dual Channel 2GB A6826A Fibre Channel HBA

            fcmcG3(15)
              Fibre Channel Mezzaine Card G3, BL3x p Series

            fcmcG4(16)
              Fibre Channel Mezzaine Card G4, BL2x p Series

            ab46xa(17)
              PCI-X 2GB AB466A/AB467A Fibre Channel HBA

            fc-generic(18)
              Fibre Channel HBA

            fca-1143(19)
              HP FC1143 4Gb PCI-X 2.0 HBA

            fca-1243(20)
              HP FC1243 4Gb PCI-X 2.0 DC HBA

            fca-2143(21)
              HP FC2143 4Gb PCI-X 2.0 HBA

            fca-2243(22)
              HP FC2243 4Gb PCI-X 2.0 DC HBA

            fca-1050(23)
              HP StorageWorks 1050 HBA

            fca-lpe1105(24)
              Emulex LPe1105-HP 4Gb FC HBA for HP c-Class Blade System

            fca-qmh2462(25)
              Qlogic QMH2462 4Gb FC HBA for HP c-Class Blade System

            fca-1142sr(26)
              HP FC1142SR 4Gb PCI-e HBA

            fca-1242sr(27)
              HP FC1242SR 4Gb PCI-e DC HBA

            fca-2142sr(28)
              HP FC2142SR 4Gb PCI-e HBA

            fca-2242sr(29)
              HP FC2242SR 4Gb PCI-e DC HBA

            fcmc20pe(30)
              Emulex based BL20p Fibre Channel Mezz HBA
              
            fca-81q(31)
              HP StorageWorks 81Q 8Gb PCI-e FC HBA
              
            fca-82q(32)
              HP StorageWorks 82Q 8Gb PCI-e Dual Port FC HBA 
              
            fca-qmh2562(33)
              QLogic QMH2562 8Gb FC HBA for HP BladeSystem c-Class

            fca-81e(34)
              HP StorageWorks 81E 8Gb PCI-e FC HBA 

            fca-82e(35)
              HP StorageWorks 82E 8Gb PCI-e Dual Port FC HBA
            
            fca-1205(36)
              Emulex LPe 1205-HP 8Gb FC HBA for HP BladeSystem c-Class"
        ::= { cpqFcaHostCntlrEntry 3 }

     cpqFcaHostCntlrStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            failed(3),
            shutdown(4),
            loopDegraded(5),
            loopFailed(6),
            notConnected(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Status.

            The host controller can be in one of the following states:

            Other (1)
              The agent is unable to determine the status of the host
              controller.

            Ok (2)
              Indicates that the host controller is in normal operation mode.

            Failed (3)
              Indicates that the host controller has failed and should be
              replaced.

            Shutdown (4)
              Indicates that the host controller has been shutdown.

            LoopDegraded (5)
              Indicates that the fibre channel connection is degraded.

            LoopFailed (6)
              Indicates that the fibre channel connection is failed.

            NotConnected (7)
              Indicates that the fibre channel port is not connected or the
              device to which it is connected is powered down."
        ::= { cpqFcaHostCntlrEntry 4 }

     cpqFcaHostCntlrCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Condition.

            This value represents the condition of this controller."
        ::= { cpqFcaHostCntlrEntry 5 }

     cpqFcaHostCntlrWorldWideName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller World Wide Node Name.

            This value can be used to further identify a particular
            controller.  If the world wide node name is not supported,
            the agent will return a NULL string."
        ::= { cpqFcaHostCntlrEntry 6 }

     cpqFcaHostCntlrStorBoxList OBJECT-TYPE
        SYNTAX  OCTET STRING
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Storage Box List.

            This lists the storage boxes which are associated with this
            host controller. These are the same IDs which can be used as
            indices into the storage box table. Each 2 bytes of the
            string is an index."
        ::= { cpqFcaHostCntlrEntry 7}

     cpqFcaHostCntlrOverallCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Overall Condition.

            This value represents the overall condition of this controller,
            and any associated storage boxes."
        ::= { cpqFcaHostCntlrEntry 8 }

     cpqFcaHostCntlrTapeCntlrList OBJECT-TYPE
        SYNTAX  OCTET STRING
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Tape Controller List.

            This lists the tape controllers which are associated with this
            host controller. These are the same IDs which can be used as
            indices into the tape controller table. Each 2 bytes of the
            string is an index."
        ::= { cpqFcaHostCntlrEntry 9}

     cpqFcaHostCntlrSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..128))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Serial Number.

            This value can be used to further identify a particular
            controller.  If the serial number is not supported, the agent
            will return a NULL string."
        ::= { cpqFcaHostCntlrEntry 10 }

     cpqFcaHostCntlrHwLocation OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  optional
        DESCRIPTION
            "A text description of the hardware location, on complex
             multi SBB hardware only, for the controller.
             A NULL string indicates that the hardware location could not
             be determined or is irrelevant."
        ::= { cpqFcaHostCntlrEntry 11  }

     cpqFcaHostCntlrWorldWidePortName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller World Wide Port Name.

            This value can be used to further identify a particular
            controller.  If the world wide port name is not supported,
            the agent will return a NULL string."
        ::= { cpqFcaHostCntlrEntry 12 }

     cpqFcaHostCntlrFirmwareVersion OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Firmware Version.

            This shows the host controller firmware version number.
            If the firmware version number is not supported, the agent
            will return a NULL string."
        ::= { cpqFcaHostCntlrEntry 13 }

     cpqFcaHostCntlrOptionRomVersion OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Host Controller Option ROM Version.

            This shows the host controller option ROM version number.
            If the option ROM version number is not supported, the agent
            will return a NULL string."
        ::= { cpqFcaHostCntlrEntry 14 }


-- ****************************************************************************
--    External Array Snapshot Resource Volume Table
--    =============================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqExtArrRsrcVol Group       (1.3.6.1.4.1.232.16.2.8)
--         cpqExtArrRsrcVolTable       (1.3.6.1.4.1.232.16.2.8.1)
--
--      The cpqExtArrRsrcVol group contains configuration and statistical
--      information about the snapshot resource volumes associated with
--      external array controllers.
--
--      Implementation of the cpqExtArrRsrcVol group is mandatory for all
--      agents that support the Fibre Channel Array MIB.
--
-- ****************************************************************************


     cpqExtArrRsrcVolTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqExtArrRsrcVolEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Table.

            A table of snapshot resource volume entries."
        ::= { cpqExtArrRsrcVol 1 }

     cpqExtArrRsrcVolEntry OBJECT-TYPE
        SYNTAX  CpqExtArrRsrcVolEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Entry.

            A snapshot resource volume entry."
        INDEX   { cpqExtArrRsrcVolBoxIndex, cpqExtArrRsrcVolIndex }
        ::= { cpqExtArrRsrcVolTable 1 }

     CpqExtArrRsrcVolEntry ::= SEQUENCE
     {
        cpqExtArrRsrcVolBoxIndex          INTEGER,
        cpqExtArrRsrcVolIndex             INTEGER,
        cpqExtArrRsrcVolActiveInstances   INTEGER,
        cpqExtArrRsrcVolDisabledInstances INTEGER,
        cpqExtArrRsrcVolAllowCreation     INTEGER,
        cpqExtArrRsrcVolVolumeId          DisplayString,
        cpqExtArrRsrcVolSourceVolumeId    DisplayString,
        cpqExtArrRsrcVolTotalSpace        Counter,
        cpqExtArrRsrcVolFreeActiveSpace   Counter,
        cpqExtArrRsrcVolFreeNewSpace      Counter,
        cpqExtArrRsrcVolStatus            INTEGER
     }

     cpqExtArrRsrcVolBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Storage Box Index.

            This is the index of the storage box that contains this snapshot
            resource volume."
        ::= { cpqExtArrRsrcVolEntry 1 }

     cpqExtArrRsrcVolIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Index.

            This index maps the snapshot resource volume to its associated
            logical drive (cpqFcaLogDrvIndex)."
        ::= { cpqExtArrRsrcVolEntry 2 }

     cpqExtArrRsrcVolActiveInstances OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Active Instances.

            This is the number of active snapshot instances on this snapshot
            resource volume."
        ::= { cpqExtArrRsrcVolEntry 3 }

     cpqExtArrRsrcVolDisabledInstances OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Disabled Instances.

            This is the number of disabled snapshot instances on this
            snapshot resource volume."
        ::= { cpqExtArrRsrcVolEntry 4 }

     cpqExtArrRsrcVolAllowCreation OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            allowed(2),
            notAllowed(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Allow Snapshot Creation.

            other (1)
              The agent is unable to determine if snapshot creation is
              allowed.

            allowed (2)
              Indicates that snapshot creation is allowed for this resource
              volume.

            notAllowed (3)
              Indicates that snapshot creation is not allowed for this
              resource volume."
        ::= { cpqExtArrRsrcVolEntry 5 }

     cpqExtArrRsrcVolVolumeId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Id.

            This is the snapshot resource volume id.  It can be used for
            identification purposes."
        ::= { cpqExtArrRsrcVolEntry 6 }

     cpqExtArrRsrcVolSourceVolumeId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Source Volume Id.

            This is the snapshot resource volume source resource volume id.
            It can be used for identification purposes."
        ::= { cpqExtArrRsrcVolEntry 7 }

     cpqExtArrRsrcVolTotalSpace OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Total Space.

            This is total amount (megabytes) of resource pool space.  If the
            value cannot be determined, 4,294,967,295 is returned."
        ::= { cpqExtArrRsrcVolEntry 8 }

     cpqExtArrRsrcVolFreeActiveSpace OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Free Active Space.

            This is the amount of free space (megabytes) available for the
            current active snapshot.  If the value cannot be determined,
            4,294,967,295 is returned."
        ::= { cpqExtArrRsrcVolEntry 9 }

     cpqExtArrRsrcVolFreeNewSpace OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Free New Space.

            This is the amount of free space (megabytes) available for new
            snapshot creation.  If the value cannot be determined,
            4,294,967,295 is returned."
        ::= { cpqExtArrRsrcVolEntry 10 }

     cpqExtArrRsrcVolStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            unknownFailure(3),
            resourceVolDisconnected(4),
            sourceVolNotLocated(5),
            resourceVolNotLocated(6),
            sourceVolFailed(7),
            resourceVolFailed(8),
            sourceVolNotAvail(9),
            resourceVolNotAvail(10),
            resourceVolObsolete(11),
            resourceVolObsoleteFailed(12)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Status.

            The resource volume can be in one of the following states:

            other (1)
              The agent is unable to determine the status of the resource
              volume.

            ok (2)
              Indicates that the resource volume is in normal operation mode.

            unknownFailure (3)
              Indicates that an unknown failure has occurred.

            resourceVolDisconnected (4)
              Indicates that the resource volume has disconnected from the
              source volume.

            sourceVolNotLocated (5)
              Indicates that the resource volume could not locate the source
              volume.

            resourceVolNotLocated (6)
              Indicates that the source volume could not locate the resource
              volume.

            sourceVolFailed (7)
              Indicates that the source volume has failed.

            resourceVolFailed (8)
              Indicates that the resource volume has failed.

            sourceVolNotAvail (9)
              Indicates that the source volume is not available.

            resourceVolNotAvail (10)
              Indicates that the resource volume is not available.

            resourceVolObsolete (11)
              Indicates that the resource volume is obsolete.

            resourceVolObsoleteFailed (12)
              Indicates that the resource volume is obsolete and failed."
        ::= { cpqExtArrRsrcVolEntry 11 }


-- ****************************************************************************
--    External Array Snapshot Table
--    =============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcaComponent Group         (1.3.6.1.4.1.232.16.2)
--        cpqExtArrSnapshot Group      (1.3.6.1.4.1.232.16.2.9)
--         cpqExtArrSnapshotTable      (1.3.6.1.4.1.232.16.2.9.1)
--
--      The cpqExtArrSnapshot group contains configuration and statistical
--      information about the snapshot instances associated with external
--      array controllers.
--
--      Implementation of the cpqExtArrSnapshot group is mandatory for all
--      agents that support the Fibre Channel Array MIB.
--
-- ****************************************************************************


     cpqExtArrSnapshotTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqExtArrSnapshotEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Table.

            A table of snapshot entries."
        ::= { cpqExtArrSnapshot 1 }

     cpqExtArrSnapshotEntry OBJECT-TYPE
        SYNTAX  CpqExtArrSnapshotEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Entry.

            A snapshot entry."
        INDEX   { cpqExtArrSnapshotBoxIndex, cpqExtArrSnapshotRsrcVolIndex,
                  cpqExtArrSnapshotIndex }
        ::= { cpqExtArrSnapshotTable 1 }

     CpqExtArrSnapshotEntry ::= SEQUENCE
     {
        cpqExtArrSnapshotBoxIndex         INTEGER,
        cpqExtArrSnapshotRsrcVolIndex     INTEGER,
        cpqExtArrSnapshotIndex            INTEGER,
        cpqExtArrSnapshotInstance         INTEGER,
        cpqExtArrSnapshotUsedSpace        Counter,
        cpqExtArrSnapshotDateTime         OCTET STRING,
        cpqExtArrSnapshotType             INTEGER,
        cpqExtArrSnapshotMounted          INTEGER,
        cpqExtArrSnapshotAccess           INTEGER
     }

     cpqExtArrSnapshotBoxIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Storage Box Index.

            This is the index of the storage box that contains this snapshot."
        ::= { cpqExtArrSnapshotEntry 1 }

     cpqExtArrSnapshotRsrcVolIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Resource Volume Index.

            This is the index of the snapshot resource volume that contains
            this snapshot."
        ::= { cpqExtArrSnapshotEntry 2 }

     cpqExtArrSnapshotIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Index.

            This is a unique index for this snapshot."
        ::= { cpqExtArrSnapshotEntry 3 }

     cpqExtArrSnapshotInstance OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Instance.

            This is the snapshot instance returned from the controller."
        ::= { cpqExtArrSnapshotEntry 4 }

     cpqExtArrSnapshotUsedSpace OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Used Space.

            This is the total amount of space (megabytes) used by this
            snapshot instance.  If the value cannot be determined,
            4,294,967,295 is returned."
        ::= { cpqExtArrSnapshotEntry 5 }

    cpqExtArrSnapshotDateTime OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (7))
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "External Array Snapshot Creation Date and Time.

             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 snapshot creation date.  The year field is set with the most
            significant octet first."
        ::= { cpqExtArrSnapshotEntry 6 }

     cpqExtArrSnapshotType OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            cow(2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Type.

            other (1)
              The agent is unable to determine the snapshot type.

            cow (2)
              Indicates that the snapshot type is copy on write."
        ::= { cpqExtArrSnapshotEntry 7 }

     cpqExtArrSnapshotMounted OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            mounted(2),
            notMounted(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Mounted.

            other (1)
              The agent is unable to determine if the snapshot is mounted.

            mounted (2)
              Indicates that the snapshot is mounted and available to the
              operating system.

            notMounted (3)
              Indicates that the snapshot is not mounted."
        ::= { cpqExtArrSnapshotEntry 8 }

     cpqExtArrSnapshotAccess OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            readWrite(2),
            readOnly(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Array Snapshot Access.

            other (1)
              The agent is unable to determine if the snapshot is mounted.

            readWrite (2)
              Indicates that the snapshot is read-write.

            readOnly (3)
              Indicates that the snapshot is read-only."
        ::= { cpqExtArrSnapshotEntry 9 }


-- ****************************************************************************
--    Fibre Channel Tape Controller Group
--    ===================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcTapeComponent Group      (1.3.6.1.4.1.232.16.3)
--         cpqFcTapeCntlr Group        (1.3.6.1.4.1.232.16.3.1)
--           cpqFcTapeCntlrTable       (1.3.6.1.4.1.232.16.3.1.1)
--
--      The tape controller group contains the configuration and statistical
--      information of the Fibre Channel Tape Controller.
--
--      Implementation of the cpqFcTapeCntlr group is mandatory for all
--      agents that support the Fibre Channel MIB.
--
-- ****************************************************************************

     cpqFcTapeCntlrTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcTapeCntlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Table."
        ::= { cpqFcTapeCntlr 1 }

     cpqFcTapeCntlrEntry OBJECT-TYPE
        SYNTAX  CpqFcTapeCntlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Entry."
        INDEX   { cpqFcTapeCntlrIndex }
        ::= { cpqFcTapeCntlrTable 1 }

     CpqFcTapeCntlrEntry ::= SEQUENCE
     {
        cpqFcTapeCntlrIndex               INTEGER,
        cpqFcTapeCntlrStatus              INTEGER,
        cpqFcTapeCntlrCondition           INTEGER,
        cpqFcTapeCntlrOverallCondition    INTEGER,
        cpqFcTapeCntlrWWN                 DisplayString,
        cpqFcTapeCntlrFWRev               DisplayString,
        cpqFcTapeCntlrType                INTEGER,
        cpqFcTapeCntlrModel               DisplayString,
        cpqFcTapeCntlrSerialNumber        DisplayString
     }

     cpqFcTapeCntlrIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Index.

            This value is a logical number whose meaning is OS dependent.
            Each tape controller has one unique controller number associated
            with it."
        ::= { cpqFcTapeCntlrEntry 1 }

     cpqFcTapeCntlrStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            offline(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Status.

            The following values are defined:

            other(1)
              The agent is unable to determine the status of the tape
              controller.

            ok(2)
              The tape controller is OK.

            offline(3)
              The tape controller is offline.  The tape controller may be powered
              off or there may be a cabling problem."
        ::= { cpqFcTapeCntlrEntry 2 }

     cpqFcTapeCntlrCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Condition.

            This value represents the condition of the tape controller."
        ::= { cpqFcTapeCntlrEntry 3 }

     cpqFcTapeCntlrOverallCondition OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Index.

            This value represents the overall condition of the tape controller
            and any associated tape libraries."
        ::= { cpqFcTapeCntlrEntry 4 }

     cpqFcTapeCntlrWWN OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller World Wide Name.

            This value can be used to further identify a particular tape
            controller.  If the world wide name is not supported, the
            agent will return a NULL string."
        ::= { cpqFcTapeCntlrEntry 5 }

     cpqFcTapeCntlrFWRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..8))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Firmware Revision.

            This shows the tape controller firmware revision number.
            If the firmware revision number is not supported, the agent will
            return a NULL string."
        ::= { cpqFcTapeCntlrEntry 6 }

     cpqFcTapeCntlrType OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            fiberTape(2),
            modularDataRouter(3),
            extended(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Type.

            The following values are defined:

            other(1)
              The agent is unable to determine if the type of the tape
              controller.

            fiberTape(2)
              The original Fibre Channel Tape Controller.

            modularDataRouter(3)
              The Compaq Modular Data Router.

            extended(4)
              The tape controller is described by cpqFcTapeCntlrModel."
        ::= { cpqFcTapeCntlrEntry 7 }

     cpqFcTapeCntlrModel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..128))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Model.

            This is the model name of the tape controller.  It can be used
            for identification purposes.  If the model name can not be
            determined, the agent will return a NULL string."
        ::= { cpqFcTapeCntlrEntry 8 }

     cpqFcTapeCntlrSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Controller Serial Number.

            This is the serial number of the tape controller.  It can be
            used for identification purposes.  If the serial number can not
            be determined, the agent will return a NULL string."
        ::= { cpqFcTapeCntlrEntry 9 }



-- ****************************************************************************
--    Fibre Channel Tape Library Group
--    ================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcTapeComponent Group      (1.3.6.1.4.1.232.16.3)
--         cpqFcTapeLibrary Group      (1.3.6.1.4.1.232.16.3.2)
--           cpqFcTapelibraryTable     (1.3.6.1.4.1.232.16.3.2.1)
--
--      The tape library group contains the configuration and statistical
--      information of the Fibre Channel Tape Library.
--
--      Implementation of the cpqFcTapeLibrary group is mandatory for all
--      agents that support the Fibre Channel MIB.
--
-- ****************************************************************************

     cpqFcTapeLibraryTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcTapeLibraryEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Table."
        ::= { cpqFcTapeLibrary 1 }

     cpqFcTapeLibraryEntry OBJECT-TYPE
        SYNTAX  CpqFcTapeLibraryEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Entry."
        INDEX   { cpqFcTapeLibraryCntlrIndex, cpqFcTapeLibraryScsiBus,
                  cpqFcTapeLibraryScsiTarget, cpqFcTapeLibraryScsiLun }
        ::= { cpqFcTapeLibraryTable 1 }

     CpqFcTapeLibraryEntry ::= SEQUENCE
     {
        cpqFcTapeLibraryCntlrIndex        INTEGER,
        cpqFcTapeLibraryScsiBus           INTEGER,
        cpqFcTapeLibraryScsiTarget        INTEGER,
        cpqFcTapeLibraryScsiLun           INTEGER,
        cpqFcTapeLibrarySerialNumber      DisplayString,
        cpqFcTapeLibraryModel             DisplayString,
        cpqFcTapeLibraryFWRev             DisplayString,
        cpqFcTapeLibraryStatus            INTEGER,
        cpqFcTapeLibraryDoorStatus        INTEGER,
        cpqFcTapeLibraryCondition         INTEGER,
        cpqFcTapeLibraryOverallCondition  INTEGER,
        cpqFcTapeLibraryLastError         INTEGER,
        cpqFcTapeLibraryStatHours         Counter,
        cpqFcTapeLibraryStatMoves         Counter,
        cpqFcTapeLibraryDriveList         OCTET STRING,
        cpqFcTapeLibraryLocation          DisplayString,
        cpqFcTapeLibraryTemperature       INTEGER,
        cpqFcTapeLibraryRedundancy        INTEGER,
        cpqFcTapeLibraryHotSwap           INTEGER
     }

     cpqFcTapeLibraryCntlrIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Controller Index.

            This value is a logical number whose meaning is OS dependent.
            Each tape controller has one unique controller number associated
            with it."
        ::= { cpqFcTapeLibraryEntry 1 }

     cpqFcTapeLibraryScsiBus OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Scsi Bus.

            The bus index indicates to which SCSI bus instance on a tape
            controller this table entry belongs."
        ::= { cpqFcTapeLibraryEntry 2 }

     cpqFcTapeLibraryScsiTarget OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Scsi Target.

            The target index indicates to which SCSI ID on a tape controller
            SCSI bus this table entry belongs."
        ::= { cpqFcTapeLibraryEntry 3 }

     cpqFcTapeLibraryScsiLun OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Scsi Lun.

            The Lun index indicates to which logical unit on a SCSI ID on a
            tape controller SCSI bus this table entry belongs."
        ::= { cpqFcTapeLibraryEntry 4 }

     cpqFcTapeLibrarySerialNumber OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Serial Number.

            This is the unit serial number for the tape library.  It can be
            used for identification purposes."
        ::= { cpqFcTapeLibraryEntry 5 }

     cpqFcTapeLibraryModel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..128))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Model.

            This is the model name of the tape library.  It can be used for
            identification purposes."
        ::= { cpqFcTapeLibraryEntry 6 }

     cpqFcTapeLibraryFWRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..8))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Firmware Revision.

            This is firmware revision level of the tape library.  It can be
            used for identification purposes."
        ::= { cpqFcTapeLibraryEntry 7 }

     cpqFcTapeLibraryStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           ok(2),
           degraded(3),
           failed(4),
           offline(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Status.

            The library can be in one of the following states:

            other(1)
              The library is in a state other than one of those listed
              below.

            ok(2)
              Indicates that the library is in normal operation mode.
              No user action is necessary.

            degraded(3)
              Indicates that the library has degraded in some manner.

            failed(4)
              Indicates that the library has failed and can no longer
              return data.  The library may need to be replaced.

            offline(5)
              Indicates that the Insight Agents can no longer communicate with
              the library.  This could be caused by a cabling problem or the
              library may be powered off."
        ::= { cpqFcTapeLibraryEntry 8 }

     cpqFcTapeLibraryDoorStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           notSupported(2),
           closed(3),
           open(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Door Status.

            The door can be in one of the following states:

            other(1)
              The door is in a state other than one of those listed
              below.

            notSupported(2)
              The door status is not supported by the device.

            closed(3)
              The door is closed.

            open(4)
              The door is open."
        ::= { cpqFcTapeLibraryEntry 9 }

     cpqFcTapeLibraryCondition OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Condition.

            This value represents the overall condition of the tape
            library."

        ::= { cpqFcTapeLibraryEntry 10 }

     cpqFcTapeLibraryOverallCondition OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Overall Condition.

            This value represents the overall condition of the tape library
            and any associated tape drives."

        ::= { cpqFcTapeLibraryEntry 11 }

     cpqFcTapeLibraryLastError OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Last Error.

            This is the last error returned by the tape library."
        ::= { cpqFcTapeLibraryEntry 12 }

     cpqFcTapeLibraryStatHours OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Stat Hours.

            This is the number of hours of operation for the library."
        ::= { cpqFcTapeLibraryEntry 13 }

     cpqFcTapeLibraryStatMoves OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Stat Moves.

            This is the number of tape moves for the library loader arm."
        ::= { cpqFcTapeLibraryEntry 14 }

     cpqFcTapeLibraryDriveList OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..60))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Library Tape Drive List.

            This is a data structure containing the list of tape drive ids
            that are present in this library.  The format is:

              field  octets  contents
              =====  ======  ========
                1     1-2    Tape controller index
                2      3     Tape drive SCSI bus
                3      4     Tape drive SCSI target
                4      5     Tape drive SCSI logical unit number

            These 5 octets are repeated for each drive in the library.  For n
            tape drives in a library, the string is 5 * n octets long."
        ::= { cpqFcTapeLibraryEntry 15 }

     cpqFcTapeLibraryLocation OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..128))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Library Location.

            This is the location of the tape library."
        ::= { cpqFcTapeLibraryEntry 16 }

    cpqFcTapeLibraryTemperature OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           notSupported(2),
           ok(3),
           safeTempExceeded(4),
           maxTempExceeded(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "External Tape Library Temperature Status.

            The library temperature can be in one of the following states:

            other(1)
              The library temperature status is unknown.

            notSupported(2)
              Indicates that the library cannot detect or report temperature.

            ok(3)
              Indicates that the temperature of the library is within normal
              operating limits.

            safeTempExceeded(4)
              Indicates that the temperature of the library has exceeded the
              safe operational temperature. The library will continue to
              operate under this warning.

            maxTempExceeded(5)
              Indicates that the temperature of the library has exceeded
              normal operating limits to the extent that the library may
              no longer function."
       ::= { cpqFcTapeLibraryEntry 17 }

    cpqFcTapeLibraryRedundancy OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           notSupported(2),
           capable(3),
           notCapable(4),
           active(5)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "External Tape Library Redundancy Status.

            Redundancy status denotes the presence of internal redundant
            components such as fans, power supplies, etc. The library
            redundancy can be in one of the following states:

            other(1)
              The library redundancy status is unknown.

            notSupported(2)
              Indicates that the library cannot detect or report redundancy
              status.

            capable(3)
              Indicates that the library is capable of detecting and reporting
              redundant components but there are not enough redundant units
              installed to make redundancy active.

            notCapable(4)
              Indicates that the library is capable of detecting and reporting
              redundant components but there are no components that support
              redundancy.

            active(5)
              Indicates that the library is capable of detecting and reporting
              redundant components, there are enough redundant units installed,
              and redundancy is active."

       ::= { cpqFcTapeLibraryEntry 18 }

    cpqFcTapeLibraryHotSwap OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           notSupported(2),
           capable(3),
           notCapable(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "External Tape Library Hot Swap Status.

            Hot swap status denotes the presence of hot swappable internal
            components such as drives, fans, power supplies, etc. The library
            hot swap status can be in one of the following states:

            other(1)
              The library hot swap status is unknown.

            notSupported(2)
              Indicates that the library cannot detect or report hot swap
              status.

            capable(3)
              Indicates that the library is capable of detecting and reporting
              hot swappable internal components and has at least one hot
              swappable component.

            notCapable(4)
              Indicates that the library is capable of detecting and reporting
              hot swappable internal components but there are no hot swappable
              components installed."

       ::= { cpqFcTapeLibraryEntry 19 }



-- ****************************************************************************
--    Fibre Channel Tape Drive Group
--    ==============================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcTapeComponent Group      (1.3.6.1.4.1.232.16.3)
--         cpqFcTapeDrive Group        (1.3.6.1.4.1.232.16.3.3)
--           cpqFcTapeDriveTable       (1.3.6.1.4.1.232.16.3.3.1)
--
--      The tape drive group contains the configuration and statistical
--      information of the Fibre Channel Physical Tape Drive.
--
--      Implementation of the cpqFcTapeDrive group is mandatory for all
--      agents that support the Fibre Channel MIB.
--
-- ****************************************************************************

     cpqFcTapeDriveTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcTapeDriveEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Drive Table."
        ::= { cpqFcTapeDrive 1 }

     cpqFcTapeDriveEntry OBJECT-TYPE
        SYNTAX  CpqFcTapeDriveEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Drive Entry."
        INDEX   { cpqFcTapeDriveCntlrIndex, cpqFcTapeDriveScsiBus,
                  cpqFcTapeDriveScsiTarget, cpqFcTapeDriveScsiLun }
        ::= { cpqFcTapeDriveTable 1 }

     CpqFcTapeDriveEntry ::= SEQUENCE
     {
        cpqFcTapeDriveCntlrIndex          INTEGER,
        cpqFcTapeDriveScsiBus             INTEGER,
        cpqFcTapeDriveScsiTarget          INTEGER,
        cpqFcTapeDriveScsiLun             INTEGER,
        cpqFcTapeDriveSerialNumber        DisplayString,
        cpqFcTapeDriveModel               DisplayString,
        cpqFcTapeDriveFWRev               DisplayString,
        cpqFcTapeDriveType                INTEGER,
        cpqFcTapeDriveFWSubtype           INTEGER,
        cpqFcTapeDriveStatus              INTEGER,
        cpqFcTapeDriveCleanReq            INTEGER,
        cpqFcTapeDriveCleanTapeRepl       INTEGER,
        cpqFcTapeDriveCondition           INTEGER,
        cpqFcTapeDriveCleanTapeCount      INTEGER,
        cpqFcTapeDriveLibraryDrive        INTEGER,
        cpqFcTapeDriveLocation            DisplayString,
        cpqFcTapeDriveHotPlug             INTEGER,
        cpqFcTapeDriveBay                 INTEGER,
        cpqFcTapeDriveCurrentWidth        INTEGER,
        cpqFcTapeDriveCurrentSpeed        INTEGER
     }

     cpqFcTapeDriveCntlrIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Controller Index.

            This value is a logical number whose meaning is OS dependent.
            For tape controller has one unique controller number associated
            with it."
        ::= { cpqFcTapeDriveEntry 1 }

     cpqFcTapeDriveScsiBus OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Scsi Bus.

            The bus index indicates to which SCSI bus instance on a tape
            controller this table entry belongs."
        ::= { cpqFcTapeDriveEntry 2 }

     cpqFcTapeDriveScsiTarget OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Scsi Target.

            The target index indicates to which SCSI ID on a tape controller
            SCSI bus this table entry belongs."
        ::= { cpqFcTapeDriveEntry 3 }

     cpqFcTapeDriveScsiLun OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Scsi Lun.

            The Lun index indicates to which logical unit on a SCSI ID on a
            tape controller SCSI bus this table entry belongs."
        ::= { cpqFcTapeDriveEntry 4 }

     cpqFcTapeDriveSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Serial Number.

            This is the unit serial number for the tape drive.  It can be
            used for identification purposes."
        ::= { cpqFcTapeDriveEntry 5 }

     cpqFcTapeDriveModel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..128))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Model.

            This is the model name of the tape drive.  It can be used for
            identification purposes."
        ::= { cpqFcTapeDriveEntry 6 }

     cpqFcTapeDriveFWRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..8))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Firmware Revision.

            This is firmware revision level of the tape drive.  It can be
            used for identification purposes."
        ::= { cpqFcTapeDriveEntry 7 }

     cpqFcTapeDriveType OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           cpqDlt35-70(2)
        }
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
            "External Tape Drive Type.

           This is the drive type.  It can be used for identification
           purposes.  The following values are defined:

           other(1)       The management agent does not recognize this model.
                          You may need to upgrade your software.

           cpqDlt35-70(2) Compaq 35/70-Gigabyte DLT Tape Drive."
        ::= { cpqFcTapeDriveEntry 8 }

     cpqFcTapeDriveFWSubtype OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Firmware Subtype.

             This is used to differentiate the firmware versions
             which have the same tape drive type (as specified by
             cpqFcTapeDriveType).  Tape drives will contain a value
             of 1 for this variable when they first ship, and this value
             will be incremented if future versions are shipped which
             are not firmware compatible with the predecessor.  If the
             tape drive does not support this capability, a value of 0
             will be returned."
        ::= { cpqFcTapeDriveEntry 9 }

     cpqFcTapeDriveStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           ok(2),
           degraded(3),
           failed(4),
           offline(5),
           missingWasOk(6),
           missingWasOffline(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Status.

            The tape drive can be in one of the following states:

            other(1)
              The tape drive is in a state other than one of those listed
              below.

            ok(2)
              Indicates that the tape drive is in normal operation mode.
              No user action is necessary.

            degraded(3)
              Indicates that the tape drive has degraded in some manner.

            failed(4)
              Indicates that the tape drive has failed and can no longer
              return data.  The tape drive may need to be replaced.

            offline(5)
              Indicates that the agent can no longer communicate with the
              tape drive.  This could be caused by a cabling problem or the
              tape drive may be powered off.

            missingWasOk(6)
              Indicates that a tape drive had a status of OK and is no
              longer present.  The drive has been removed.

            missingWasOffline(7)
              Indicates that a tape drive had a status of OFFLINE and is no
              longer present.  The drive has been removed."
        ::= { cpqFcTapeDriveEntry 10 }

     cpqFcTapeDriveCleanReq OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           true(2),
           false(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Cleaning Required.

             This is an indication of whether the tape drive heads
             require a cleaning session to occur.  If this variable
             indicates a need to clean the tape heads, then a cleaning
             tape will need to be inserted and run through a cleaning
             cycle.

             This variable can be in one of the following states:

             other(1)
              The tape drive does not support monitoring of the cleaning
              required status.

             true(2)
              The tape drive requires a cleaning tape session in order
              to clean the heads.

             false(3)
              The tape drive does not require any cleaning tape session."
        ::= { cpqFcTapeDriveEntry 11 }

     cpqFcTapeDriveCleanTapeRepl OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           true(2),
           false(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Cleaning Tape Replacement.

             This variable is only applicable to autoloader tape drives.
             This variable indicates whether the cleaning tape which is
             inserted in an autoloader needs to be replaced because its
             cleaning capability is exhausted (it is at end of tape).

             This variable can be in one of the following states:

             other(1)
              The tape drive does not support monitoring of the cleaning
              tape replacement status.

             true(2)
              The autoloader tape drive requires a new cleaning tape to
              be inserted.

             false(3)
              The tape drive does not require a new cleaning tape."
        ::= { cpqFcTapeDriveEntry 12 }

     cpqFcTapeDriveCondition OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Condition.

            This value represents the overall condition of the tape drive."

        ::= { cpqFcTapeDriveEntry 13 }

     cpqFcTapeDriveCleanTapeCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Cleaning Tape Count.

             This variable is a count from a tape drive of the number of
             cleanings done by the tape cleaner last in the drive."
        ::= { cpqFcTapeDriveEntry 14 }

     cpqFcTapeDriveLibraryDrive OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           true(2),
           false(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Library Drive.

             This variable indicates whether or not the tape drive is part
             of a tape library.  It can be in one of the following states:

             other(1)
              Indicates that the storage agent cannot determine if the
              tape drive is part of a tape library.

             true(2)
              The tape drive is part of a tape library.

             false(3)
              The tape drive is not part of a tape library."
        ::= { cpqFcTapeDriveEntry 15 }


     cpqFcTapeDriveLocation OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..128))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Location.

            This is the location of the tape drive."
        ::= { cpqFcTapeDriveEntry 16 }

    cpqFcTapeDriveHotPlug OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           hotPlug(2),
           nonHotPlug(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "External Tape Drive Hot Plug Support Status.

            The following values are defined:

            other(1)
              The agent is unable to determine if this drive
              supports hot plug replacement.

            hotPlug(2)
              The drive supports hot plug replacement.

            nonhotPlug(3)
              The drive does not support hot plug replacement."
        ::= { cpqFcTapeDriveEntry 17 }

     cpqFcTapeDriveBay OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Bay.

            For drives in a hot plug storage system, this is the bay where
            the tape drive is located.  If the value cannot be determined
            or is not applicable, the value is set to -1."
        ::= { cpqFcTapeDriveEntry 18 }

     cpqFcTapeDriveCurrentWidth OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            narrow(2),
            wide16(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Current Width.

            The following values are defined:

            other(1)
              The agent is unable to determine the current negotiated data
              transfer width for this drive.

            narrow(2)
              The negotiated data transfer width for this drive is narrow
              (8 data bits).

            wide16(3)
              The negotiated data transfer width for this drive is wide
              (16 data bits)."
        ::= { cpqFcTapeDriveEntry 19 }

     cpqFcTapeDriveCurrentSpeed OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            asynchronous(2),
            fast(3),
            ultra(4),
            ultra2(5),
            ultra3(6)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "External Tape Drive Current Data Transfer Speed.

            The following values are defined:

            other(1)
              The agent is unable to determine the current negotiated data
              transfer speed for this drive.

            asynchronous(2)
              The negotiated data transfer speed for this drive is
              asynchronous.

            fast(3)
              The negotiated data transfer speed for this drive is 10 million
              transfers per second).

            ultra(4)
              The negotiated data transfer speed for this drive is 20 million
              transfers per second.

            ultra2(5)
              The negotiated data transfer speed for this drive is 40 million
              transfers per second.

            ultra3(6)
              The negotiated data transfer speed for this drive is 80 million
              transfers per second."
        ::= { cpqFcTapeDriveEntry 20 }



-- ****************************************************************************
--    Fibre Channel Tape Counters Group
--    ================================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcTapeComponent Group      (1.3.6.1.4.1.232.16.3)
--         cpqFcTapeCounters Group     (1.3.6.1.4.1.232.16.3.4)
--           cpqFcTapeCountersTable    (1.3.6.1.4.1.232.16.3.4.1)
--
--      The tape counters group contains the statistical information of
--      the Fibre Channel Tape Drives.
--
--      Implementation of the cpqFcTapeCounters group is mandatory for all
--      agents that support the Fibre Channel MIB.
--
-- ****************************************************************************

     cpqFcTapeCountersTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcTapeCountersEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Counters Table."
        ::= { cpqFcTapeCounters 1 }

     cpqFcTapeCountersEntry OBJECT-TYPE
        SYNTAX  CpqFcTapeCountersEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Counters Entry."
        INDEX   { cpqFcTapeCountersCntlrIndex, cpqFcTapeCountersScsiBus,
                  cpqFcTapeCountersScsiTarget, cpqFcTapeCountersScsiLun }
        ::= { cpqFcTapeCountersTable 1 }

     CpqFcTapeCountersEntry ::= SEQUENCE
     {
        cpqFcTapeCountersCntlrIndex          INTEGER,
        cpqFcTapeCountersScsiBus             INTEGER,
        cpqFcTapeCountersScsiTarget          INTEGER,
        cpqFcTapeCountersScsiLun             INTEGER,
        cpqFcTapeCountersReWrites            Counter,
        cpqFcTapeCountersReReads             Counter,
        cpqFcTapeCountersTotalErrors         Counter,
        cpqFcTapeCountersTotalUncorrectable  Counter,
        cpqFcTapeCountersTotalBytes          Counter
     }

     cpqFcTapeCountersCntlrIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Counters Controller Index.

            This value is a logical number whose meaning is OS dependent.
            Each tape controller has one unique controller number associated
            with it."
        ::= { cpqFcTapeCountersEntry 1 }

     cpqFcTapeCountersScsiBus OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Counters Scsi Bus.

            The bus index indicates to which SCSI bus instance on a tape
            controller this table entry belongs."
        ::= { cpqFcTapeCountersEntry 2 }

     cpqFcTapeCountersScsiTarget OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Counters Scsi Target.

            The target index indicates to which SCSI ID on a tape controller
            SCSI bus this table entry belongs."
        ::= { cpqFcTapeCountersEntry 3 }

     cpqFcTapeCountersScsiLun OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Tape Counters Scsi Lun.

            The Lun index indicates to which logical unit on a SCSI ID on a
            tape controller SCSI bus this table entry belongs."
        ::= { cpqFcTapeCountersEntry 4 }

    cpqFcTapeCountersReWrites OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Tape Device Re-write count.

            This is the number of times blocks had to be re-written to the
            device.  This value is maintained since the Tape Hardware Interface
            driver was loaded.

            Re-write errors may occasionally occur.  If this value should rise
            dramatically, you may need to clean the device.  If you continue
            to have re-writes, you may have a problem.  Some common causes
            include radio frequency interference (RFI) on the bus cables,
            bad or missing terminating resisters on the drives or having more
            than one device with the same SCSI ID.  Insure the bus cable is
            free of obstructions and that the devices on the bus are properly
            configured."
        ::= { cpqFcTapeCountersEntry 5 }

    cpqFcTapeCountersReReads OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Tape Device Re-read count.

            This is the number of times blocks had to be re-read from the
            device.  This value is maintained since the Tape Hardware Interface
            driver was loaded.

            Re-read errors may occasionally occur.  If this value should rise
            dramatically, you may need to clean the device.  If you continue
            to have re-reads, you may have a problem.  Some common causes
            include radio frequency interference (RFI) on the bus cables,
            bad or missing terminating resisters on the drives or having more
            than one device with the same SCSI ID.  Insure the bus cable is
            free of obstructions and that the devices on the bus are properly
            configured."
        ::= { cpqFcTapeCountersEntry 6 }

    cpqFcTapeCountersTotalErrors OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Tape Device Total Errors.

            This is the total number of read/write errors encountered.
            This value is maintained since the Tape Hardware Interface
            driver was loaded.

            Errors may occasionally occur.  If this value should rise
            dramatically, you may need to clean the device.  If you continue
            to have errors, you may have a problem.  Some common causes include
            radio frequency interference (RFI) on the bus cables, bad or
            missing terminating resisters on the drives or having more than
            one device with the same SCSI ID.  Insure the bus cable is free
            of obstructions and that the devices on the bus are properly
            configured."
        ::= { cpqFcTapeCountersEntry 7 }

    cpqFcTapeCountersTotalUncorrectable OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Tape Device Total Uncorrectable Errors.

            This is the total number of read and write errors which could not
            be corrected.  This value is maintained since the Tape Hardware
            Interface driver was loaded.

            Errors may occasionally occur.  If this value should rise
            dramatically, you may need to clean the device.  If you continue
            to have errors, you may have a problem.  Some common causes include
            radio frequency interference (RFI) on the bus cables, bad or
            missing terminating resisters on the drives or having more than
            one device with the same SCSI ID.  Insure the bus cable is free
            of obstructions and that the devices on the bus are properly
            configured."
        ::= { cpqFcTapeCountersEntry 8 }

    cpqFcTapeCountersTotalBytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Tape Device Total Bytes.

            This is the number total number of bytes read/written to the tape
            currently installed in the device.  This value is reset whenever
            a new tape is inserted into the device."
        ::= { cpqFcTapeCountersEntry 9 }


-- ****************************************************************************
--    Fibre Channel Switch Group
--    ==========================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqFibreArray Group            (1.3.6.1.4.1.232.16)
--       cpqFcSwitchComponent Group    (1.3.6.1.4.1.232.16.4)
--         cpqFcSwitch Group           (1.3.6.1.4.1.232.16.4.1)
--           cpqFcSwitchTable          (1.3.6.1.4.1.232.16.4.1.1)
--
--      The Fibre channel switch group contains the configuration
--      information for Fibre channel switches.
--
--      Implementation of the cpqFcSwitch group is mandatory for all agents
--      that support the Fibre Channel MIB.
--
-- ****************************************************************************

     cpqFcSwitchTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqFcSwitchEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Table."
        ::= { cpqFcSwitch 1 }

     cpqFcSwitchEntry OBJECT-TYPE
        SYNTAX  CpqFcSwitchEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Entry."
        INDEX   { cpqFcSwitchIndex }
        ::= { cpqFcSwitchTable 1 }

     CpqFcSwitchEntry ::= SEQUENCE
     {
        cpqFcSwitchIndex               INTEGER,
        cpqFcSwitchLocation            INTEGER,
        cpqFcSwitchChassisIndex        INTEGER,
        cpqFcSwitchChassisSlot         INTEGER,
        cpqFcSwitchWorldWideNodeName   DisplayString,
        cpqFcSwitchWorldWidePortName   DisplayString,
        cpqFcSwitchIpAddress           DisplayString,
        cpqFcSwitchIpGateway           DisplayString,
        cpqFcSwitchIpSubnet            DisplayString,
        cpqFcSwitchName                DisplayString,
        cpqFcSwitchNetworkLinkStatus   INTEGER,
        cpqFcSwitchFibreConnectStatus  INTEGER,
        cpqFcSwitchFWRev               DisplayString
     }

     cpqFcSwitchIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Index.

            This value is a logical number whose meaning is OS dependent.
            Each switch has one unique controller number associated with it."
        ::= { cpqFcSwitchEntry 1 }

     cpqFcSwitchLocation OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            internal(2),
            external(3)

        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Location.

            The following values are defined:

            other(1)
              The agent is unable to determine if the switch is internal or
              external to the storage system chassis.

            internal(2)
              The switch is located in the storage system chassis.

            external(3)
              The switch is located outside the storage system chassis."
        ::= { cpqFcSwitchEntry 2 }

     cpqFcSwitchChassisIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Chassis Index.

            The chassis index indicates the storage system in which this
            switch resides.  If the switch does not reside in a storage
            system chassis, then this field is invalid and a value of 65535
            will be returned."
        ::= { cpqFcSwitchEntry 3 }

     cpqFcSwitchChassisSlot OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Chassis Slot.

            The chassis slot identifies the physical slot of the storage
            system in which this switch resides.  If the switch does not
            reside in a storage system chassis, then this field is invalid
            and a value of 255 will be returned."
        ::= { cpqFcSwitchEntry 4 }

     cpqFcSwitchWorldWideNodeName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch World Wide Node Name.

            This value can be used to further identify a particular
            controller.  If the world wide node name is not supported, the
            agent will return a NULL string."
        ::= { cpqFcSwitchEntry 5 }

     cpqFcSwitchWorldWidePortName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch World Wide Port Name.

            This value can be used to further identify a particular
            controller.  If the world wide port name is not supported, the
            agent will return a NULL string."
        ::= { cpqFcSwitchEntry 6 }

     cpqFcSwitchIpAddress OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..15))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch IP Address.

            This is the IP address of the switch.  If the IP address is not
            supported, the agent will return a NULL string."
        ::= { cpqFcSwitchEntry 7 }

     cpqFcSwitchIpGateway OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..15))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch IP Gateway.

            This is the IP gateway of the switch.  If the IP gateway is not
            supported, the agent will return a NULL string."
        ::= { cpqFcSwitchEntry 8 }

     cpqFcSwitchIpSubnet OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..15))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch IP Subnet.

            This is the IP subnet of the switch.  If the IP subnet is not
            supported, the agent will return a NULL string."
        ::= { cpqFcSwitchEntry 9 }

     cpqFcSwitchName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Name.

            This is the name of the switch.  If the name is not supported,
            the agent will return a NULL string."
        ::= { cpqFcSwitchEntry 10 }

     cpqFcSwitchNetworkLinkStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            active(2),
            notActive(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Network Link Status.

            The following values are defined:

            other(1)
              The agent is unable to determine the status of the switch
              network link.

            active(2)
              The switch network link is active.

            notActive(3)
              The switch network link is not active."
        ::= { cpqFcSwitchEntry 11 }

     cpqFcSwitchFibreConnectStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            offline(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Fibre Channel Connection Status.

            The following values are defined:

            other(1)
              The agent is unable to determine the status of the switch
              fibre channel connection.

            ok(2)
              The switch Fibre Channel connection is OK.

            offline(3)
              The switch Fibre Channel connection is offline."
        ::= { cpqFcSwitchEntry 12 }

     cpqFcSwitchFWRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..8))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Fibre Channel Switch Firmware Revision.

            This is firmware revision level of the Fibre channel switch."
        ::= { cpqFcSwitchEntry 13 }


-- **************************************************************************
--  External Array Trap Definitions
--  ===============================
--
--  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.
--
-- **************************************************************************

    cpqFcaLogDrvStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaLogDrvIndex,
                     cpqFcaLogDrvStatus }
        DESCRIPTION
            "External Array Logical Drive Status Change.

            This trap signifies that the agent has detected a change in the
            status of a External Array logical drive.  The variable
            cpqFcaLogDrvStatus indicates the current logical drive status.

            User Action: If the logical drive status is failed, examine
            the array for failed drives that need replacement."

        --#TYPE "External Array Logical Drive Status Change (16001)"
        --#SUMMARY "Status is now %d."
        --#ARGUMENTS {5}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16001

    cpqFcaSpareStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaSpareBusNumber,
                     cpqFcaSpareBay, cpqFcaSpareStatus }
        DESCRIPTION
            "External Array Spare Drive Status Change.

            This trap signifies that the agent has detected a change in the
            status of a External Array spare drive.  The variable
            cpqFcaSpareStatus indicates the current spare drive status.  The
            variable cpqFcaSpareBusNumber indicates the SCSI bus number
            associated with this drive.

            User Action: If the spare drive status is failed, replace the
            drive."

        --#TYPE "External Array Spare Drive Status Change (16002)"
        --#SUMMARY "Spare Status is now %d on bus %d."
        --#ARGUMENTS {6,4}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16002

    cpqFcaPhyDrvStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaPhyDrvBusNumber,
                     cpqFcaPhyDrvBay, cpqFcaPhyDrvStatus }
        DESCRIPTION
            "External Array Physical Drive Status Change.

            This trap signifies that the agent has detected a change in the
            status of a physical drive.  The variable cpaFcaPhyDrvStatus
            indicates the current physical drive status.  The variable
            cpqFcaPhyDrvBusNumber indicates the SCSI bus number associated
            with this drive.

            User Action: If the physical drive status is threshExceeded(4),
            predictiveFailure(5) or failed(6), replace the drive."

        --#TYPE "External Array Physical Drive Status Change (16003)"
        --#SUMMARY "Status is now %d for a physical drive on bus %d."
        --#ARGUMENTS {6,4}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16003

    cpqFcaAccelStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaAccelBoxIoSlot,
                     cpqFcaAccelStatus }
        DESCRIPTION
            "External Array Accelerator Board Status Change.

            This trap signifies that the agent has detected a change in the
            cpqFcaAccelStatus of a Array Accelerator Cache Board.  The
            current status is represented by the variable cpqFcaAccelStatus.

            User Action: None."

        --#TYPE "External Array Accelerator Board Status Change (16004)"
        --#SUMMARY "Status is now %d."
        --#ARGUMENTS {5}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16004

    cpqFcaAccelBadDataTrap TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaAccelBoxIoSlot }
        DESCRIPTION
            "External Array Accelerator Board Bad Data.

            This trap signifies that the agent has detected a Array
            Accelerator Cache Board that has lost battery power.  If data
            was being stored in the accelerator memory when the system lost
            power, that data has been lost.

            User Action: Verify that no data has been lost."

        --#TYPE "External Array Accelerator Board Bad Data (16005)"
        --#SUMMARY "Accelerator lost battery power.  Data Loss possible."
        --#ARGUMENTS {}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16005

    cpqFcaAccelBatteryFailed TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaAccelBoxIoSlot }
        DESCRIPTION
            "External Array Accelerator Board Battery Failed.

            This trap signifies that the agent has detected a battery
            failure associated with the Array Accelerator Cache Board.

            User Action: Replace the Accelerator Cache Board."

        --#TYPE "External Array Accelerator Board Battery Failed (16006)"
        --#SUMMARY "Battery status is failed."
        --#ARGUMENTS {}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16006

    cpqFcaCntlrStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaCntlrBoxIoSlot,
                     cpqFcaCntlrStatus }
        DESCRIPTION
            "External Array Controller Status Change.

            This trap signifies that the agent has detected a change in the
            status of a External Array Controller.  The variable
            cpqFcaCntlrStatus indicates the current controller status.

            User Action: If the controller status is offline, access to the
            storage box has been lost.  Check the storage box and all fibre
            channel connections for problems."

        --#TYPE "External Array Controller Status Change (16007)"
        --#SUMMARY "Status is now %d."
        --#ARGUMENTS {5}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16007

    cpqFcTapeCntlrStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeCntlrWWN,
                     cpqFcTapeCntlrStatus }
        DESCRIPTION
            "Fibre Channel Tape Controller Status Change.

            This trap signifies that the agent has detected a change in the
            status of a Fiber Channel Tape Controller.  The variable
            cpqFcTapeCntlrStatus indicates the current tape controller
            status.  The variable cpqFcTapeCntlrWWN indicates the unique
            tape controller world wide name associated with this controller.

            User Action: If the tape controller status is offline, access to
            the tape library and tapes has been lost.  Check the tape library
            and all Fibre connections for problems."

        --#TYPE "Fibre Channel Tape Controller Status Change (16008)"
        --#SUMMARY "Status is now %d for tape controller %s."
        --#ARGUMENTS {3,2}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16008

    cpqFcTapeLibraryStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeCntlrWWN,
                     cpqFcTapeLibraryScsiBus, cpqFcTapeLibraryScsiTarget,
                     cpqFcTapeLibraryScsiLun, cpqFcTapeLibraryStatus}
        DESCRIPTION
            "Fibre Channel Tape Library Status Change.

            This trap signifies that the agent has detected a change in the
            status of a Fiber Channel Tape library.  The variable
            cpqFcTapeLibraryStatus indicates the current tape library
            status.  The variable cpqFcTapeLibraryScsiTarget indicates the
            SCSI ID of the tape library.

            User Action: If the tape library is failed or offline, check the tape
            library front panel and all fibre channel connections."


        --#TYPE "Fibre Channel Tape Library Status Change (16009)"
        --#SUMMARY "Status is now %d for the tape library."
        --#ARGUMENTS {6}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16009

    cpqFcTapeLibraryDoorStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeCntlrWWN,
                     cpqFcTapeLibraryScsiBus, cpqFcTapeLibraryScsiTarget,
                     cpqFcTapeLibraryScsiLun, cpqFcTapeLibraryDoorStatus}
        DESCRIPTION
            "Fibre Channel Tape Library Door Status Change.

            This trap signifies that the agent has detected a change in the
            door status of a Fiber Channel Tape library.  The variable
            cpqFcTapeLibraryDoorStatus indicates the current tape library
            door status.  The variable cpqFcTapeLibraryScsiTarget indicates
            the the SCSI ID of the tape library.

            User Action: If the tape library door is open, close the tape
            library door."


        --#TYPE "Fibre Channel Tape Library Door Status Change (16010)"
        --#SUMMARY "The door is %d for tape library."
        --#ARGUMENTS {6}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16010

    cpqFcTapeDriveStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeCntlrWWN,
                     cpqFcTapeDriveScsiBus, cpqFcTapeDriveScsiTarget,
                     cpqFcTapeDriveScsiLun, cpqFcTapeDriveStatus}
        DESCRIPTION
            "Fibre Channel Tape Drive Status Change.

            This trap signifies that the agent has detected a change in the
            status of a Fiber Channel Tape Drive.  The variable
            cpqFcTapeDriveStatus indicates the current tape status.  The
            variable cpqFcTapeDriveScsiTarget indicates the the SCSI ID of
            the tape drive.

            User Action: If the tape is failed or offline, check the tape
            and all fibre channel connections."


        --#TYPE "Fibre Channel Tape Drive Status Change (16011)"
        --#SUMMARY "Status is now %d for a tape drive."
        --#ARGUMENTS {6}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16011

    cpqFcTapeDriveCleaningRequired TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeCntlrWWN,
                     cpqFcTapeDriveScsiBus, cpqFcTapeDriveScsiTarget,
                     cpqFcTapeDriveScsiLun}
        DESCRIPTION
           "Fibre Channel Tape Drive Cleaning Required trap.

            The agent has detected a tape drive that needs to have a
            cleaning tape inserted and run.  This will cause the tape drive
            heads to be cleaned."

              --#TYPE "Fibre Channel Tape Drive Cleaning Required (16012)"
              --#SUMMARY "Cleaning is needed for tape drive."
              --#ARGUMENTS {}
              --#SEVERITY MAJOR
              --#TIMEINDEX 99

        ::= 16012

    cpqFcTapeDriveCleanTapeReplace TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeCntlrWWN,
                     cpqFcTapeDriveScsiBus, cpqFcTapeDriveScsiTarget,
                     cpqFcTapeDriveScsiLun}
        DESCRIPTION
           "Fibre Channel Tape Drive Cleaning Tape Needs Replacing.

            The agent has detected that an autoloader tape unit has a
            cleaning tape that has been fully used and therefore needs to be
            replaced with a new cleaning tape."

              --#TYPE "Fibre Channel Tape Drive Cleaning Tape Needs Replacing (16013)"
              --#SUMMARY "Cleaning tape needs replacing"
              --#ARGUMENTS {}
              --#SEVERITY MAJOR
              --#TIMEINDEX 99

        ::= 16013

    cpqFcaCntlrActive TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaCntlrBoxIoSlot }
        DESCRIPTION
            "External Array Redundant Controller Active.

            This trap signifies that the Storage Agent has detected that
            a backup array controller in a duplexed pair has switched over
            to the active role.  The variable cpqFcaCntlrBoxIoSlot indicates
            the new active controller index.

            User Action: Check the partner controller for problems.
            If this was the result of a user initiated switch over,
            no action is required."

        --#TYPE "External Array Redundant Controller Active (16014)"
        --#SUMMARY "Controller in i/o slot %d is now active on chassis %s."
        --#ARGUMENTS {4,2}
        --#SEVERITY INFORMATIONAL
        --#TIMEINDEX 99

        ::= 16014

    cpqFcaHostCntlrStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcaHostCntlrSlot,
                     cpqFcaHostCntlrStatus }
        DESCRIPTION
            "Fibre Channel Host Controller Status Change.

            This trap signifies that the Insight Agent has detected a change
            in the status of a Fibre Channel Host Controller.  The variable
            cpqFcaHostCntlrStatus indicates the current controller status.

            User Action: If the controller status is failed, replace the
            controller."

        --#TYPE "Fibre Channel Host Controller Status Change (16015)"
        --#SUMMARY "Host controller in slot %d has a new status of %d."
        --#ARGUMENTS {2,3}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16015

    cpqFca2PhyDrvStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaPhyDrvBusNumber,
                     cpqFcaPhyDrvBay, cpqFcaPhyDrvStatus,
                     cpqFcaPhyDrvModel, cpqFcaPhyDrvSerialNum,
                     cpqFcaPhyDrvFWRev, cpqFcaPhyDrvFailureCode }
        DESCRIPTION
            "External Array Physical Drive Status Change.

            This trap signifies that the agent has detected a change in the
            status of a physical drive.  The variable cpaFcaPhyDrvStatus
            indicates the current physical drive status.

            User Action: If the physical drive status is threshExceeded(4),
            predictiveFailure(5), failed(6) or unsupportedDrive(7), replace
            the drive."

        --#TYPE "External Array Physical Drive Status Change (16016)"
        --#SUMMARY "Status is now %d for a physical drive on bus %d, bay %d."
        --#ARGUMENTS {6,4,5}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16016

    cpqFca2AccelStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaAccelBoxIoSlot,
                     cpqFcaAccelStatus, cpqFcaCntlrModel,
                     cpqFcaAccelSerialNumber, cpqFcaAccelTotalMemory,
                     cpqFcaAccelErrCode }
        DESCRIPTION
            "External Array Accelerator Board Status Change.

            This trap signifies that the agent has detected a change in the
            status of a Array Accelerator Cache Board.  The current status
            is represented by the variable cpqFcaAccelStatus.

            User Action: If the accelerator board status is permDisabled(5),
            you may need to replace the accelerator board."

        --#TYPE "External Array Accelerator Board Status Change (16017)"
        --#SUMMARY "Status is now %d."
        --#ARGUMENTS {5}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16017

    cpqFca2AccelBadDataTrap TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaAccelBoxIoSlot,
                     cpqFcaCntlrModel, cpqFcaAccelSerialNumber,
                     cpqFcaAccelTotalMemory }
        DESCRIPTION
            "External Array Accelerator Board Bad Data.

            This trap signifies that the agent has detected a Array
            Accelerator Cache Board that has lost battery power.  If data
            was being stored in the accelerator memory when the system lost
            power, that data has been lost.

            User Action: Verify that no data has been lost."

        --#TYPE "External Array Accelerator Board Bad Data (16018)"
        --#SUMMARY "Accelerator lost battery power.  Data Loss possible."
        --#ARGUMENTS {}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16018

    cpqFca2AccelBatteryFailed TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaAccelBoxIoSlot,
                     cpqFcaCntlrModel, cpqFcaAccelSerialNumber,
                     cpqFcaAccelTotalMemory }
        DESCRIPTION
            "External Array Accelerator Board Battery Failed.

            This trap signifies that the agent has detected a battery
            failure associated with the Array Accelerator Cache Board.

            User Action: Replace the Accelerator Cache Board."

        --#TYPE "External Array Accelerator Board Battery Failed (16019)"
        --#SUMMARY "Battery status is failed."
        --#ARGUMENTS {}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16019

    cpqFca2CntlrStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaCntlrBoxIoSlot,
                     cpqFcaCntlrStatus, cpqFcaCntlrModel,
                     cpqFcaCntlrSerialNumber, cpqFcaAccelTotalMemory }
        DESCRIPTION
            "External Array Controller Status Change.

            This trap signifies that the agent has detected a change in the
            status of a External Array Controller.  The variable
            cpqFcaCntlrStatus indicates the current controller status.

            User Action: If the controller status is offline(4), access to
            the storage box has been lost.  Check the storage box and all
            fibre channel connections for problems."

        --#TYPE "External Array Controller Status Change (16020)"
        --#SUMMARY "Status is now %d."
        --#ARGUMENTS {5}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16020

    cpqFca2HostCntlrStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcaHostCntlrSlot,
                     cpqFcaHostCntlrStatus, cpqFcaHostCntlrModel,
                     cpqFcaHostCntlrWorldWideName }
        DESCRIPTION
            "Fibre Channel Host Controller Status Change.

            This trap signifies that the agent has detected a change in the
            status of a Fibre Channel Host Controller.  The variable
            cpqFcaHostCntlrStatus indicates the current controller status.

            User Action: If the controller status is failed, replace the
            controller."

        --#TYPE "Fibre Channel Host Controller Status Change (16021)"
        --#SUMMARY "Host controller in slot %d has a new status of %d."
        --#ARGUMENTS {2,3}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99

        ::= 16021

    cpqExtArrayLogDrvStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqSsChassisName,
                     cpqSsChassisTime, cpqFcaLogDrvBoxIndex,
                     cpqFcaLogDrvIndex, cpqFcaLogDrvStatus,
                     cpqFcaLogDrvOsName, cpqFcaLogDrvFaultTol,
                     cpqFcaLogDrvSize }
        DESCRIPTION
            "External Array Logical Drive Status Change.

            This trap signifies that the agent has detected a change in the
            status of an External Array logical drive.  The variable
            cpqFcaLogDrvStatus indicates the current logical drive status.

            User Action: If the logical drive status is failed, examine
            the array for failed drives that need replacement."

        --#TYPE "External Array Logical Drive Status Change (16022)"
        --#SUMMARY "Status is now %d."
        --#ARGUMENTS {6}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16022

    cpqExtTapeDriveStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeDriveCntlrIndex,
                     cpqFcTapeDriveScsiBus, cpqFcTapeDriveScsiTarget,
                     cpqFcTapeDriveScsiLun, cpqFcTapeDriveModel,
                     cpqFcTapeDriveFWRev, cpqFcTapeDriveSerialNumber,
                     cpqFcTapeDriveLocation, cpqFcTapeDriveStatus}
        DESCRIPTION
            "External Tape Drive Status Change.

            This trap signifies that the agent has detected a change in the
            status of an External Tape Drive.  The variable
            cpqFcTapeDriveStatus indicates the current tape status.

            User Action: If the tape is failed or offline, check the tape
            and all connections."


        --#TYPE "External Tape Drive Status Change (16023)"
        --#SUMMARY "Status is now %d for a tape drive."
        --#ARGUMENTS {10}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16023

    cpqExtTapeDriveCleaningRequired TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeDriveCntlrIndex,
                     cpqFcTapeDriveScsiBus, cpqFcTapeDriveScsiTarget,
                     cpqFcTapeDriveScsiLun, cpqFcTapeDriveModel,
                     cpqFcTapeDriveFWRev, cpqFcTapeDriveSerialNumber,
                     cpqFcTapeDriveLocation}
        DESCRIPTION
           "External Tape Drive Cleaning Required.

            The agent has detected a tape drive that needs to have a
            cleaning tape inserted and run.  This will cause the tape drive
            heads to be cleaned."

              --#TYPE "External Tape Drive Cleaning Required (16024)"
              --#SUMMARY "Cleaning is needed for tape drive."
              --#ARGUMENTS {}
              --#SEVERITY MAJOR
              --#TIMEINDEX 99

        ::= 16024

    cpqExtTapeDriveCleanTapeReplace TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeDriveCntlrIndex,
                     cpqFcTapeDriveScsiBus, cpqFcTapeDriveScsiTarget,
                     cpqFcTapeDriveScsiLun, cpqFcTapeDriveModel,
                     cpqFcTapeDriveFWRev, cpqFcTapeDriveSerialNumber,
                     cpqFcTapeDriveLocation}
        DESCRIPTION
           "External Tape Drive Cleaning Tape Needs Replacing.

            The agent has detected that an autoloader tape unit has a
            cleaning tape that has been fully used and therefore needs to be
            replaced with a new cleaning tape."

              --#TYPE "External Tape Drive Cleaning Tape Needs Replacing (16025)"
              --#SUMMARY "Cleaning tape needs replacing"
              --#ARGUMENTS {}
              --#SEVERITY MAJOR
              --#TIMEINDEX 99

        ::= 16025

    cpqExtTapeLibraryStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeLibraryCntlrIndex,
                     cpqFcTapeLibraryScsiBus, cpqFcTapeLibraryScsiTarget,
                     cpqFcTapeLibraryScsiLun, cpqFcTapeLibraryModel,
                     cpqFcTapeLibraryFWRev, cpqFcTapeLibrarySerialNumber,
                     cpqFcTapeLibraryLocation, cpqFcTapeLibraryStatus}
        DESCRIPTION
            "External Tape Library Status Change.

            This trap signifies that the agent has detected a change in
            the status of an External Tape library.  The variable
            cpqFcTapeLibraryStatus indicates the current tape library
            status.

            User Action: If the tape library is failed or offline, check
            the tape library front panel and all connections."


        --#TYPE "External Tape Library Status Change (16026)"
        --#SUMMARY "Status is now %d for the tape library."
        --#ARGUMENTS {10}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16026

    cpqExtTapeLibraryDoorStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcTapeLibraryCntlrIndex,
                     cpqFcTapeLibraryScsiBus, cpqFcTapeLibraryScsiTarget,
                     cpqFcTapeLibraryScsiLun, cpqFcTapeLibraryModel,
                     cpqFcTapeLibraryFWRev, cpqFcTapeLibrarySerialNumber,
                     cpqFcTapeLibraryLocation, cpqFcTapeLibraryDoorStatus}
        DESCRIPTION
            "External Tape Library Door Status Change.

            This trap signifies that the agent has detected a change
            in the door status of an External Tape library.  The variable
            cpqFcTapeLibraryDoorStatus indicates the current tape library
            door status.

            User Action: If the tape library door is open, close the
            tape library door."


        --#TYPE "External Tape Library Door Status Change (16027)"
        --#SUMMARY "The door is %d for tape library."
        --#ARGUMENTS {10}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16027

    cpqFca3HostCntlrStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqFcaHostCntlrHwLocation,
                     cpqFcaHostCntlrIndex, cpqFcaHostCntlrStatus,
                     cpqFcaHostCntlrModel, cpqFcaHostCntlrSerialNumber,
                     cpqFcaHostCntlrWorldWideName,
                     cpqFcaHostCntlrWorldWidePortName }
        DESCRIPTION
            "Fibre Channel Host Controller Status Change.

            This trap signifies that the agent has detected a change in the
            status of a Fibre Channel Host Controller.  The variable
            cpqFcaHostCntlrStatus indicates the current controller status.

            User Action: If the controller status is failed, replace the
            controller."

        --#TYPE "Fibre Channel Host Controller Status Change (16028)"
        --#SUMMARY "Host controller has a new status of %d."
        --#ARGUMENTS {4}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2

        ::= 16028

END
























