-- ****************************************************************************
--
--                         Manageable IDE Drive
--         Management Information Base for SNMP Network Management
--
--
--      Copyright 1992,2015 Hewlett Packard Enterprise Development LP.
--      Hewlett Packard Enterprise Development LP 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
--
-- ****************************************************************************

CPQIDE-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;

--  compaq              OBJECT IDENTIFIER ::= { enterprises 232 }
    cpqIde              OBJECT IDENTIFIER ::= { compaq 14 }
    cpqIdeMibRev        OBJECT IDENTIFIER ::= { cpqIde 1 }
    cpqIdeComponent     OBJECT IDENTIFIER ::= { cpqIde 2 }

    cpqIdeInterface     OBJECT IDENTIFIER ::= { cpqIdeComponent 1 }
    cpqIdeIdent         OBJECT IDENTIFIER ::= { cpqIdeComponent 2 }
    cpqIdeController    OBJECT IDENTIFIER ::= { cpqIdeComponent 3 }
    cpqIdeAtaDisk       OBJECT IDENTIFIER ::= { cpqIdeComponent 4 }
    cpqIdeAtapiDevice   OBJECT IDENTIFIER ::= { cpqIdeComponent 5 }
    cpqIdeLogicalDrive  OBJECT IDENTIFIER ::= { cpqIdeComponent 6 }

    cpqIdeOsCommon      OBJECT IDENTIFIER ::= { cpqIdeInterface 4 }

-- ****************************************************************************
-- Ide MIB Revision
-- ================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeMibRev Group            (1.3.6.1.4.1.232.14.1)
--
--
--     An Insight Agent conforming to this document will return a mibRevMajor
--     of one (1) and a mibRevMinor of twelve (12).
--
--
--    Implementation of the MibRev group is mandatory for all agents
--    supporting the Ide MIB.
--
-- ****************************************************************************

    cpqIdeMibRevMajor 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."
       ::= { cpqIdeMibRev 1 }

       cpqIdeMibRevMinor 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."
       ::= { cpqIdeMibRev 2 }

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

                This object represents the overall status of the Ide system
                represented by this MIB."
           ::= { cpqIdeMibRev 3 }

-- ****************************************************************************
--    Ide OS Common
--    ==============
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeComponent Group         (1.3.6.1.4.1.232.14.2)
--        cpqIdeInterface Group        (1.3.6.1.4.1.232.14.2.1)
--         cpqIdeOsCommon Group        (1.3.6.1.4.1.232.14.2.1.4)
--
--
--  The cpqIdeOsCommon group describes the Ide common OS interface.
--  This information describes the interface modules general OS interface
--  architectural information.
--
--  Implementation of the cpqIdeOsCommon group is mandatory for all
--  agents that support the Ide MIB.
--
-- ****************************************************************************

    cpqIdeOsCommonPollFreq 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
             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 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."
           ::= { cpqIdeOsCommon 1 }

-- ****************************************************************************
--    Ide OS Common Module
--    =====================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeComponent Group         (1.3.6.1.4.1.232.14.2)
--        cpqIdeInterface Group        (1.3.6.1.4.1.232.14.2.1)
--         cpqIdeOsCommon Group        (1.3.6.1.4.1.232.14.2.1.4)
--          cpqIdeOsCommonModuleTable  (1.3.6.1.4.1.232.14.2.1.4.2) deprecated
--
-- ****************************************************************************

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

    cpqIdeOsCommonModuleEntry OBJECT-TYPE
        SYNTAX  CpqIdeOsCommonModuleEntry
        ACCESS  not-accessible
        STATUS  deprecated
        DESCRIPTION
            "A description of a software modules that provide an interface
             to the device this MIB describes."
        INDEX   { cpqIdeOsCommonModuleIndex }
        ::= { cpqIdeOsCommonModuleTable 1 }

        CpqIdeOsCommonModuleEntry ::= SEQUENCE {
            cpqIdeOsCommonModuleIndex       INTEGER,
            cpqIdeOsCommonModuleName        DisplayString,
            cpqIdeOsCommonModuleVersion     DisplayString,
            cpqIdeOsCommonModuleDate        OCTET STRING,
            cpqIdeOsCommonModulePurpose     DisplayString
        }

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

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

    cpqIdeOsCommonModuleVersion 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."
        ::= { cpqIdeOsCommonModuleEntry 3 }

    cpqIdeOsCommonModuleDate 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."
        ::= { cpqIdeOsCommonModuleEntry 4 }

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

-- ****************************************************************************
--    IDE Ident Group
--    ===============
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeComponent Group         (1.3.6.1.4.1.232.14.2)
--        cpqIdeIdent Group            (1.3.6.1.4.1.232.14.2.2)
--         cpqIdeIdentTable            (1.3.6.1.4.1.232.14.2.2.1)
--
--
--  The Ident group contains basic indentification information about the
--  IDE drives in the system.
--
--  Implementation of the Ident group is mandatory for all agents that
--  support the IDE MIB.
--
-- ****************************************************************************

    cpqIdeIdentTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqIdeIdentEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE Drive Identification Table."
        ::= { cpqIdeIdent 1 }

    cpqIdeIdentEntry OBJECT-TYPE
        SYNTAX  CpqIdeIdentEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE Identification Table Entry."
        INDEX   { cpqIdeIdentIndex }
        ::= { cpqIdeIdentTable 1 }

        CpqIdeIdentEntry ::= SEQUENCE
        {
              cpqIdeIdentIndex                INTEGER,
              cpqIdeIdentModel                DisplayString,
              cpqIdeIdentSerNum               DisplayString,
              cpqIdeIdentFWVers               DisplayString,
              cpqIdeIdentCondition            INTEGER,
              cpqIdeIdentErrorNumber          DisplayString,
              cpqIdeIdentType                 INTEGER,
              cpqIdeIdentTypeExtended         INTEGER,
              cpqIdeIdentCondition2           INTEGER,
              cpqIdeIdentStatus               INTEGER,
              cpqIdeIdentUltraAtaAvailability INTEGER
        }

    cpqIdeIdentIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely specifies each device.  For disks,
             this index value will match the value of the cpqSeFixedDiskIndex
             in the Standard Equipment MIB (CPQSTDEQ.MIB) when the same
             disk is being described.

             Each possible index value indicates a specific drive as shown in
             the table below:

                Drive Index   IDE Controller   Drive Unit
                ===========   ==============   ==========
                     0            Primary           1
                     1            Primary           2
                     2            Secondary         1
                     3            Secondary         2

             Any other index value would be implementation specific."
        ::= { cpqIdeIdentEntry 1 }

    cpqIdeIdentModel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..41))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Drive Model.

            The is the drive model name and can be used for identification
            purposes."
        ::= { cpqIdeIdentEntry 2 }

    cpqIdeIdentSerNum OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..21))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Drive Serial Number.

            The is the drive serial number and can be used for identification
            purposes."
        ::= { cpqIdeIdentEntry 3 }

    cpqIdeIdentFWVers OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..9))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Firmware Version.

            This is the version of the firmware on the IDE drive.
            If the IDE drive firmware version is unavailable, then this
            string will be of length zero (0)."
        ::= { cpqIdeIdentEntry 4 }

    cpqIdeIdentCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  deprecated
        DESCRIPTION
           "IDE Drive Condition.

            This is the overall condition of the IDE drive.
            The following values are defined:

            other(1)
              The drive does not support drive condition monitoring.

            ok(2)
              The drive is operating normally.  No user action is required.

            degraded(3)
              The drive is degraded.  The drive may need to be replaced.

            failed(4)
              The drive has failed.  The drive should be replaced."
        ::= { cpqIdeIdentEntry 5 }

    cpqIdeIdentErrorNumber OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Error Number.

            This value represents the error code associated with a failing
            IDE drive."

        ::= { cpqIdeIdentEntry 6 }

    cpqIdeIdentType OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           disk(2),
           tape(3),
           printer(4),
           processor(5),
           wormDrive(6),
           cd-rom(7),
           scanner(8),
           optical(9),
           jukeBox(10),
           commDev(11)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Device Type.

            This is the type of ATAPI device.  The following types are defined:

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

            disk(2)
              This is a direct-access device like a disk drive.

            tape(3)
              This is a sequential-access device like a tape drive.

            printer(4)
              This is a printer device.

            processor(5)
              This is a processor device.

            worm(6)
              This is a write-once, read-many times device.

            cd-rom(7)
              This is a CD or DVD device.

            scanner(8)
              This is a scanner device.

            optical(9)
              This is an optical memory device.

            jukeBox(10)
              This is a media changer device like a jukebox.

            commDev(11)
              This is a communications device like a LAN bridge."
        ::= { cpqIdeIdentEntry 7 }

    cpqIdeIdentTypeExtended OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           pdcd(2),
           removableDisk(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Extended Device Type.

            This is additional information about the type of IDE device.
            The following types are defined:

            other(1)
              This target does not have any extended type information.

            pdcd(2)
              This is a power-drive CD-ROM.

            removableDisk(3)
              This is a removable media disk device like a floppy drive."
        ::= { cpqIdeIdentEntry 8 }

     cpqIdeIdentCondition2 OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Drive Condition.

            This is the overall condition of the IDE drive.
            The following values are defined:

            other(1)
              The drive does not support drive condition monitoring.

            ok(2)
              The drive is operating normally.
              No user action is required.

            degraded(3)
              The drive is degraded.
              See cpqIdeIdentStatus for the appropriate action.

            failed(4)
              The drive has failed.
              See cpqIdeIdentStatus for the appropriate action."
        ::= { cpqIdeIdentEntry 9 }

     cpqIdeIdentStatus OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            preFailureDegraded(3),
            ultraAtaDegraded(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Drive Satus.

            This indicates the status of the IDE drive.

            The following values are defined:

            other(1)
              The drive does not support drive status monitoring.

            ok(2)
              The drive is operating normally.  No user action is required.

            preFailureDegraded(3)
              The drive has detected that at least one pre-failure SMART
              attribute has gone out of range.  The drive may need to be
              replaced.

            ultraAtaDegraded(4)
              The Ultra ATA Integrity Monitor has detected data transmission
              errors between the hard drive and processor.  For best
              performance, move Ultra ATA devices to the primary
              controller and non Ultra ATA devices to the secondary
              controller.  If errors still persist, consider replacing the
              standard 40-conductor cable with and 80-conductor cable."
        ::= { cpqIdeIdentEntry 10 }

     cpqIdeIdentUltraAtaAvailability OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            noNotSupportedByDeviceAndController(2),
            noNotSupportedByDevice(3),
            noNotSupportedByController(4),
            noDisabledInSetup(5),
            yesEnabledInSetup(6)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "This describes the availability of Ultra ATA
            transfers between this device and the controller.

            The following values are defined:

            other(1)
               The agents do not support reporting this variable or the
               agent need to be upgraded.

            noNotSupportedByDeviceAndController(2),
               The device and the controller do not support Ultra ATA.

            noNotSupportedByDevice(3),
               The device does not support Ultra ATA but the controller
               does support Ultra ATA.

            noNotSupportedByController(4),
               The controller does not support Ultra ATA but the device
               does support Ultra ATA.

            NoDisabledInSetup(5),
               The device and the controller do support Ultra ATA but it
               has been disabled in F10 Setup.

            yesEnabledInSetup(6),
               The device and the controller do support Ultra ATA and it
               is enabled in F10 Setup."
        ::= { cpqIdeIdentEntry 11 }


-- ****************************************************************************
--    IDE Controller Group
--    ====================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeComponent Group         (1.3.6.1.4.1.232.14.2)
--        cpqIdeController Group       (1.3.6.1.4.1.232.14.2.3)
--         cpqIdeControllerTable       (1.3.6.1.4.1.232.14.2.3.1)
--
--
--  The controller group contains information about the IDE controllers
--  in a system.
--
--  Implementation of the controller group is mandatory for all agents that
--  support the IDE MIB.
--
-- ****************************************************************************

    cpqIdeControllerTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqIdeControllerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE Controller Table."
        ::= { cpqIdeController 1 }

    cpqIdeControllerEntry OBJECT-TYPE
        SYNTAX  CpqIdeControllerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE Controller Table Entry."
        INDEX   { cpqIdeControllerIndex }
        ::= { cpqIdeControllerTable 1 }

        CpqIdeControllerEntry ::= SEQUENCE
        {
              cpqIdeControllerIndex             INTEGER,
              cpqIdeControllerOverallCondition  INTEGER,
              cpqIdeControllerModel             DisplayString,
              cpqIdeControllerFwRev             DisplayString,
              cpqIdeControllerSlot              INTEGER,
              cpqIdeControllerStatus            INTEGER,
              cpqIdeControllerCondition         INTEGER,
              cpqIdeControllerSerialNumber      DisplayString,
              cpqIdeControllerHwLocation        DisplayString,
              cpqIdeControllerPciLocation       DisplayString

        }

    cpqIdeControllerIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely identifies each controller."
        ::= { cpqIdeControllerEntry 1 }

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

            This is the overall condition of the IDE controller and any
            associated devices."
        ::= { cpqIdeControllerEntry 2 }

    cpqIdeControllerModel OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Controller Model.

            The is the IDE controller model name."
        ::= { cpqIdeControllerEntry 3 }

    cpqIdeControllerFwRev OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Controller Firmware Revision.

            The is the IDE controller firmware revision."
        ::= { cpqIdeControllerEntry 4 }

    cpqIdeControllerSlot OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "IDE Controller Slot.

            This identifies the physical slot where the IDE controller
            resides in the system.  For example, if this value is three,
            the controller is located in slot three of your computer.
            If the value cannot be determined or is not applicable, the
            value is set to -1."
        ::= { cpqIdeControllerEntry 5 }

     cpqIdeControllerStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            failed(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "IDE 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 controller.

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

            Failed (3)
              Indicates that the host controller has failed and should be
              replaced."
        ::= { cpqIdeControllerEntry 6 }

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

            This is the condition of the IDE controller."
        ::= { cpqIdeControllerEntry 7 }

    cpqIdeControllerSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Controller Serial Number.

            The is the IDE controller serial number.  A NULL string
            indicates that the serial number could not be determined or is
            irrelevant."
        ::= { cpqIdeControllerEntry 8 }

    cpqIdeControllerHwLocation OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  optional
        DESCRIPTION
           "IDE Controller Hardware Location.

            A text description of the hardware location of the controller.
            A NULL string indicates that the hardware location could not
            be determined or is irrelevant."
        ::= { cpqIdeControllerEntry 9 }

    cpqIdeControllerPciLocation OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  optional
        DESCRIPTION
           "IDE Controller PCI Location.

            A string designating the PCI device location for the controller,
            following the format DDDD:BB:DD.F, where DDDD is the PCI domain number,
            BB is the PCI bus number, DD is the PCI device number, and F is 
            the PCI function number.
            A NULL string indicates that the location could not
            be determined or is irrelevant."
        ::= { cpqIdeControllerEntry 10 }



-- ****************************************************************************
--    IDE ATA Disk Group
--    ==================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeComponent Group         (1.3.6.1.4.1.232.14.2)
--        cpqIdeAtaDisk Group          (1.3.6.1.4.1.232.14.2.4)
--         cpqIdeAtaDiskTable          (1.3.6.1.4.1.232.14.2.4.1)
--
--
--  The ATA disk group contains information about the disks attached to a
--  controller.
--
--  Implementation of the ATA disk group is mandatory for all agents that
--  support the IDE MIB.
--
-- ****************************************************************************

    cpqIdeAtaDiskTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqIdeAtaDiskEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE ATA Disk Table."
        ::= { cpqIdeAtaDisk 1 }

    cpqIdeAtaDiskEntry OBJECT-TYPE
        SYNTAX  CpqIdeAtaDiskEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE ATA Disk Table Entry."
        INDEX   { cpqIdeAtaDiskControllerIndex, cpqIdeAtaDiskIndex }
        ::= { cpqIdeAtaDiskTable 1 }

        CpqIdeAtaDiskEntry ::= SEQUENCE
        {
              cpqIdeAtaDiskControllerIndex            INTEGER,
              cpqIdeAtaDiskIndex                      INTEGER,
              cpqIdeAtaDiskModel                      DisplayString,
              cpqIdeAtaDiskFwRev                      DisplayString,
              cpqIdeAtaDiskSerialNumber               DisplayString,
              cpqIdeAtaDiskStatus                     INTEGER,
              cpqIdeAtaDiskCondition                  INTEGER,
              cpqIdeAtaDiskCapacity                   INTEGER,
              cpqIdeAtaDiskSmartEnabled               INTEGER,
              cpqIdeAtaDiskTransferMode               INTEGER,
              cpqIdeAtaDiskChannel                    INTEGER,
              cpqIdeAtaDiskNumber                     INTEGER,
              cpqIdeAtaDiskLogicalDriveMember         INTEGER,
              cpqIdeAtaDiskIsSpare                    INTEGER,
              cpqIdeAtaDiskOsName                     DisplayString,
              cpqIdeAtaDiskType                       INTEGER,
              cpqIdeAtaDiskSataVersion                INTEGER,
              cpqIdeAtaDiskMediaType                  INTEGER,
              cpqIdeAtaDiskSSDWearStatus              INTEGER,
              cpqIdeAtaDiskPowerOnHours               Counter,
              cpqIdeAtaDiskSSDPercntEndrnceUsed       Gauge,
              cpqIdeAtaDiskSSDEstTimeRemainingHours   Counter,
              cpqIdeAtaDiskCurrTemperature            Gauge,
              cpqIdeAtaDiskTemperatureThreshold       Gauge,
              cpqIdeAtaDiskMaximumOperatingTemp       Gauge,
              cpqIdeAtaDiskDestructiveOperatingTemp   Gauge,
              cpqIdeAtaDiskLocation                   DisplayString,
              cpqIdeAtaDiskCapacityHighBytes          Counter,
              cpqIdeAtaDiskCapacityLowBytes           Counter
        }

    cpqIdeAtaDiskControllerIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely identifies each controller."
        ::= { cpqIdeAtaDiskEntry 1 }

    cpqIdeAtaDiskIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely identifies each disk."
        ::= { cpqIdeAtaDiskEntry 2 }

    cpqIdeAtaDiskModel OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Model.

            The is the model name of the ATA disk."
        ::= { cpqIdeAtaDiskEntry 3 }

    cpqIdeAtaDiskFwRev OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Firmware Revision.

            The is the firmware revision of the ATA disk."
        ::= { cpqIdeAtaDiskEntry 4 }

    cpqIdeAtaDiskSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Serial Number.

            The is the serial number of the ATA disk."
        ::= { cpqIdeAtaDiskEntry 5 }

    cpqIdeAtaDiskStatus OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            smartError(3),
            failed(4),
            ssdWearOut(5),
            removed(6),
            inserted(7)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Status.

            This is the status of the ATA disk."
        ::= { cpqIdeAtaDiskEntry 6 }

    cpqIdeAtaDiskCondition OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            failed(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Condition.

            This is the condition of the ATA disk."
        ::= { cpqIdeAtaDiskEntry 7 }

    cpqIdeAtaDiskCapacity OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Capacity.

            This is the capacity of the ATA disk in megabytes."
        ::= { cpqIdeAtaDiskEntry 8 }

    cpqIdeAtaDiskSmartEnabled OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            true(2),
            false(3)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk S.M.A.R.T Enabled?

             other(1)
              The agent cannot determine the state of S.M.A.R.T. monitoring
              on this ATA disk.

             true(2)
              The ATA disk has S.M.A.R.T motitoring enabled.

             false(3)
              The ATA disk does not have S.M.A.R.T motitoring enabled."
        ::= { cpqIdeAtaDiskEntry 9 }

    cpqIdeAtaDiskTransferMode OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            pioMode0(2),
            pioMode1(3),
            pioMode2(4),
            pioMode3(5),
            pioMode4(6),
            dmaMode0(7),
            dmaMode1(8),
            dmaMode2(9),
            ultraDmaMode0(10),
            ultraDmaMode1(11),
            ultraDmaMode2(12),
            ultraDmaMode3(13),
            ultraDmaMode4(14),
            ultraDmaMode5(15)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Transfer Mode.

             other(1)
              The agent cannot determine the transfer mode on this ATA disk.

             pioMode0(2)
              The ATA disk is using PIO mode 0.

             pioMode1(3)
              The ATA disk is using PIO mode 1.

             pioMode2(4)
              The ATA disk is using PIO mode 2.

             pioMode3(5)
              The ATA disk is using PIO mode 3.

             pioMode4(6)
              The ATA disk is using PIO mode 4.

             dmaMode0(7)
              The ATA disk is using DMA mode 0.

             dmaMode1(8)
              The ATA disk is using DMA mode 1.

             dmaMode2(9)
              The ATA disk is using DMA mode 2.

             ultraDmaMode0(10)
              The ATA disk is using Ultra DMA mode 0.

             ultraDmaMode1(11)
              The ATA disk is using Ultra DMA mode 1.

             ultraDmaMode2(12)
              The ATA disk is using Ultra DMA mode 2.

             ultraDmaMode3(13)
              The ATA disk is using Ultra DMA mode 3.

             ultraDmaMode4(14)
              The ATA disk is using Ultra DMA mode 4.

             ultraDmaMode5(15)
              The ATA disk is using Ultra DMA mode 5."
        ::= { cpqIdeAtaDiskEntry 10 }

    cpqIdeAtaDiskChannel OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            channel0(2),
            channel1(3),
            serial(4)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Channel.

             other(1)
              The agent cannot determine the channel to which the ATA disk
              is attached.

             channel0(2)
              The ATA disk is attached to the primary channel.

             channel1(3)
              The ATA disk is attached to the secondary channel.

             serial(4)
              The disk is attached to the serial interface and channel no
              longer applies."
        ::= { cpqIdeAtaDiskEntry 11 }

    cpqIdeAtaDiskNumber OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            device0(2),
            device1(3),
            sataDevice0(4),
            sataDevice1(5),
            sataDevice2(6),
            sataDevice3(7),
            sataDevice4(8),
            sataDevice5(9),
            sataDevice6(10),
            sataDevice7(11),
            sataDevice8(12),
            sataDevice9(13),
            sataDevice10(14),
            sataDevice11(15),
            sataDevice12(16),
            sataDevice13(17),
            sataDevice14(18),
            sataDevice15(19),
            sataDevice16(20),
            bay1(21),
            bay2(22),
            bay3(23),
            bay4(24),
            bay5(25),
            bay6(26),
            bay7(27),
            bay8(28),
            bay9(29),
            bay10(30),
            bay11(31),
            bay12(32),
            bay13(33),
            bay14(34),
            bay15(35),
            bay16(36),
            bay17(37),
            bay18(38),
            bay19(39),
            bay20(40),
            bay21(41),
            bay22(42),
            bay23(43),
            bay24(44)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Number.

             other(1)
              The agent cannot determine the number of the ATA disk.

             device0(2)
              The ATA disk is device 0 (master).

             device1(3)
              The ATA disk is device 1 (slave).

             sataDevice0(4)
              The SATA disk is device 0.

             sataDevice1(5)
              The SATA disk is device 1.

             sataDevice2(6)
              The SATA disk is device 2.

             sataDevice3(7)
              The SATA disk is device 3.

             sataDevice4(8)
              The SATA disk is device 4.

             sataDevice5(9)
              The SATA disk is device 5.

             sataDevice6(10)
              The SATA disk is device 6.

             sataDevice7(11)
              The SATA disk is device 7.

             sataDevice8(12)
              The SATA disk is device 8.

             sataDevice9(13)
              The SATA disk is device 9.

             sataDevice10(14)
              The SATA disk is device 10.

             sataDevice11(15)
              The SATA disk is device 11.

             sataDevice12(16)
              The SATA disk is device 12.

             sataDevice13(17)
              The SATA disk is device 13.

             sataDevice14(18)
              The SATA disk is device 14.

             sataDevice15(19)
              The SATA disk is device 15.

             sataDevice16(20)
              The SATA disk is device 16.

             bay1(21)
              The disk is in bay 1.

             bay2(22)
              The disk is in bay 2.

             bay3(23)
              The disk is in bay 3.

             bay4(24)
              The disk is in bay 4.

             bay5(25)
              The disk is in bay 5.

             bay6(26)
              The disk is in bay 6.

             bay7(27)
              The disk is in bay 7.

             bay8(28)
              The disk is in bay 8.

             bay9(29)
              The disk is in bay 9.

             bay10(30)
              The disk is in bay 10.

             bay11(31)
              The disk is in bay 11.

             bay12(32)
              The disk is in bay 12.

             bay13(33)
              The disk is in bay 13.

             bay14(34)
              The disk is in bay 14.

             bay15(35)
              The disk is in bay 15.

             bay16(36)
              The disk is in bay 16.

             bay17(37)
              The disk is in bay 17.

             bay18(38)
              The disk is in bay 18.

             bay19(39)
              The disk is in bay 19.

             bay20(40)
              The disk is in bay 20.

             bay21(41)
              The disk is in bay 21.
 
             bay22(42)
              The disk is in bay 22.

             bay23(43)
              The disk is in bay 23.

             bay24(44)
              The disk is in bay 24."
        ::= { cpqIdeAtaDiskEntry 12 }

    cpqIdeAtaDiskLogicalDriveMember OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            true(2),
            false(3)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "Logical Drive Membership?

             other(1)
              The agent cannot determine if the ATA disk is part of a
              logical drive.

             true(2)
              The ATA disk is part of a logical drive.

             false(3)
              The ATA disk is not part of a logical drive."
        ::= { cpqIdeAtaDiskEntry 13 }

    cpqIdeAtaDiskIsSpare OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            true(2),
            false(3)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Spare?

             other(1)
              The agent cannot determine if the ATA disk is a spare.

             true(2)
              The ATA disk is a spare disk.

             false(3)
              The ATA disk is not a spare disk."
        ::= { cpqIdeAtaDiskEntry 14 }

    cpqIdeAtaDiskOsName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "ATA Disk OS Name.

            The OS name for this ATA disk.  This field will be a null
            (size 0) string if the agent does not support OS name or if the
            ATA disk is part of a logical drive."
        ::= { cpqIdeAtaDiskEntry 15 }

    cpqIdeAtaDiskType OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ata(2),
            sata(3)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Type

             other(1)
              The agent cannot determine the disk type.

             ata(2)
              The disk type is parallel ATA.

             sata(3)
              The disk type is Serial ATA."
        ::= { cpqIdeAtaDiskEntry 16 }

    cpqIdeAtaDiskSataVersion 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
              disk or it is not a SATA disk.

            sataOne(2)
              The disk is SATA version one.

            sataTwo(3)
              The disk is SATA version two."
        ::= { cpqIdeAtaDiskEntry 17 }
        
    cpqIdeAtaDiskMediaType OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            rotatingPlatters(2),
            solidState(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Media Type.

            The following values are defined:

            other(1)
              The instrument agent is unable to determine the physical drives 
              media type.

            rotatingPlatters(2)
              The physical drive media is composed of rotating platters.

            solidState(3)
              The physical drive media is composed of solid state electronics."
        ::= { cpqIdeAtaDiskEntry 18 }
        
    cpqIdeAtaDiskSSDWearStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
            other(1),
            ok(2),
            fiftySixDayThreshold(3),
            fivePercentThreshold(4),
            twoPercentThreshold(5),
            ssdWearOut(6)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Solid State Disk Wear Status.

            This shows the wear status of the solid state physical drive.

            The following values are valid for the physical drive solid state
            wear status:


            Other (1)
              The instrument agent is unable to determine the physical drives 
              solid state disk wear status. This value would be used for non
              SSD drives or SSD drives that do not support wear reporting.

            Ok (2)
              Indicates the solid state disk is not in any imminent danger 
              of wear out.

            Fifty Six Day Threshold Passed (3)
              Indicates that based upon the current workload, the solid state
              disk will reach the maximum usage limit for writes (wear out)
              within fifty-six days. You should modify your write workload or
              begin preparing to replace your SSD drive. 

            Five Percent Threshold Passed (4)
              Indicates that the solid state disk has passed the five percent
              threshold and is at or below five percent of reaching the maximum
              usage limit for writes (wear out). You should begin to prepare
              to replace your SSD drive.

            Two Percent Threshold Passed (5)
              Indicates that the solid state disk has passed the two percent
              threshold and is at or below two percent of reaching the maximum
              usage limit for writes (wear out). You should begin to prepare
              to replace your SSD drive.
                  
            SSD Wear Out(6)
              Indicates that a solid state drive is approaching the maximum
              usage limit for writes (wear out) and should be replaced as soon
              as possible."
        ::= { cpqIdeAtaDiskEntry 19 }
                
    cpqIdeAtaDiskPowerOnHours OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Power On Hours.

            This is the total number of hours that the physical disk 
            has been powered on. This value will be 4,294,967,295 if the disk 
            power on hours cannot be determined or is not supported."
        ::= { cpqIdeAtaDiskEntry 20 } 
        
    cpqIdeAtaDiskSSDPercntEndrnceUsed OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Solid State Percent Endurance Used.

            This value specifies the hundredths of the percentage  of solid state
            disk life used. The value of this field is allowed to exceed 100%. 

            As an example, if the value reported is 50, this would indicate .50 
            percent endurance used.            
            
            This value will be 4,294,967,295 if the percent endurance used cannot
             be determined or is not supported."
        ::= { cpqIdeAtaDiskEntry 21 } 

    cpqIdeAtaDiskSSDEstTimeRemainingHours OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Solid State Estimated Time Remaining In
             Hours.

            This is the estimated total number of hours that the solid state
            physical disk has remaining. This value will be 4,294,967,295 if the
            solid state disk estimated time remaining in hours cannot be 
            determined or is not supported."
        ::= { cpqIdeAtaDiskEntry 22 }       


     cpqIdeAtaDiskCurrTemperature OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Current Operating Temperature degrees Celsius. A zero (0) indicates that
             the temperature information is not available."
        ::= { cpqIdeAtaDiskEntry 23 }

     cpqIdeAtaDiskTemperatureThreshold OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Maximum Operating Temperature in degrees Celsius. A zero (0) indicates that
             the threshold information is not available."
        ::= { cpqIdeAtaDiskEntry 24 }

     cpqIdeAtaDiskMaximumOperatingTemp OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Maximum Operating Temperature, as specified by the manufacturer, in
             degrees Celsius. A zero (0) indicates that the information is not available."
        ::= { cpqIdeAtaDiskEntry 25 }

     cpqIdeAtaDiskDestructiveOperatingTemp OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "SATA Physical Drive Destructive Operating Temperature, as specified by the manufacturer, in
             degrees Celsius, which if exceeded can cause damage to the drive. A zero (0) indicates that
             the information is not available."
        ::= { cpqIdeAtaDiskEntry 26 }

      cpqIdeAtaDiskLocation OBJECT-TYPE
         SYNTAX DisplayString (SIZE (0..255))
         ACCESS read-only
         STATUS mandatory
         DESCRIPTION
            "Location of Disk Drive.

              The Location is the value of the SMBIOS type 242 Location String, if it is present. 
              This field will be a null(size 0) string if the SMBIOS type 242 record does not support 
              the location string."
      ::= { cpqIdeAtaDiskEntry 27 }

    cpqIdeAtaDiskCapacityHighBytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Capacity in Bytes (high).

            The cpqIdeAtaDiskCapacityHighBytes and the cpqIdeAtaDiskCapacityLowBytes together
            show the total number of bytes read from the ATA disk.

            The actual number of bytes read equals the cpqIdeAtaDiskCapacityHighBytes
            times 2^32 plus the cpqIdeAtaDiskCapacityLowBytes."
        ::= { cpqIdeAtaDiskEntry 28 }

    cpqIdeAtaDiskCapacityLowBytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATA Disk Capacity in Bytes (low).

            The cpqIdeAtaDiskCapacityHighBytes and the cpqIdeAtaDiskCapacityLowBytes together
            show the total number of bytes read from the ATA disk.

            The actual number of bytes read equals the cpqIdeAtaDiskCapacityHighBytes
            times 2^32 plus the cpqIdeAtaDiskCapacityLowBytes."
        ::= { cpqIdeAtaDiskEntry 29 }

     cpqIdeAtaEraseFailureType OBJECT-TYPE
        SYNTAX INTEGER {
           secureEraseFailed(1),
           secureEraseNotSupported(2),
           noEraseSupported(3)
           }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "The value specifies the secure erase status of SATA drive.
        secureEraseNotSupported(2)
        Secure erase is not supported so proceeding with Basic Erase"
        ::= { cpqIdeAtaDisk 2 }

-- ****************************************************************************
--    IDE ATA Device Group
--    ====================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeComponent Group         (1.3.6.1.4.1.232.14.2)
--        cpqIdeAtapiDevice Group      (1.3.6.1.4.1.232.14.2.5)
--         cpqIdeAtapiDeviceTable      (1.3.6.1.4.1.232.14.2.5.1)
--
--
--  The ATAPI device group contains information about ATAPI devices
--  attached to a controller.
--
--  Implementation of the ATAPI device group is mandatory for all agents
--  that support the IDE MIB.
--
-- ****************************************************************************

    cpqIdeAtapiDeviceTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqIdeAtapiDeviceEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE ATAPI Device Table."
        ::= { cpqIdeAtapiDevice 1 }

    cpqIdeAtapiDeviceEntry OBJECT-TYPE
        SYNTAX  CpqIdeAtapiDeviceEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE ATAPI Device Table Entry."
        INDEX   { cpqIdeAtapiDeviceControllerIndex, cpqIdeAtapiDeviceIndex }
        ::= { cpqIdeAtapiDeviceTable 1 }

        CpqIdeAtapiDeviceEntry ::= SEQUENCE
        {
              cpqIdeAtapiDeviceControllerIndex  INTEGER,
              cpqIdeAtapiDeviceIndex            INTEGER,
              cpqIdeAtapiDeviceModel            DisplayString,
              cpqIdeAtapiDeviceFwRev            DisplayString,
              cpqIdeAtapiDeviceType             INTEGER,
              cpqIdeAtapiDeviceTypeExtended     INTEGER,
              cpqIdeAtapiDeviceChannel          INTEGER,
              cpqIdeAtapiDeviceNumber           INTEGER
        }

    cpqIdeAtapiDeviceControllerIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely identifies each controller."
        ::= { cpqIdeAtapiDeviceEntry 1 }

    cpqIdeAtapiDeviceIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely identifies each ATAPI device."
        ::= { cpqIdeAtapiDeviceEntry 2 }

    cpqIdeAtapiDeviceModel OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATAPI Device Model.

            The is the model name of the ATAPI device."
        ::= { cpqIdeAtapiDeviceEntry 3 }

    cpqIdeAtapiDeviceFwRev OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATAPI Device Firmware Revision.

            The is the firmware revision of the ATAPI device."
        ::= { cpqIdeAtapiDeviceEntry 4 }

    cpqIdeAtapiDeviceType OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           disk(2),
           tape(3),
           printer(4),
           processor(5),
           wormDrive(6),
           cd-rom(7),
           scanner(8),
           optical(9),
           jukeBox(10),
           commDev(11)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATAPI Device Type.

            This is the type of ATAPI device.  The following types are defined:

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

            disk(2)
              This is a direct-access device like a disk drive.

            tape(3)
              This is a sequential-access device like a tape drive.

            printer(4)
              This is a printer device.

            processor(5)
              This is a processor device.

            worm(6)
              This is a write-once, read-many times device.

            cd-rom(7)
              This is a CD or DVD device.

            scanner(8)
              This is a scanner device.

            optical(9)
              This is an optical memory device.

            jukeBox(10)
              This is a media changer device like a jukebox.

            commDev(11)
              This is a communications device like a LAN bridge."
        ::= { cpqIdeAtapiDeviceEntry 5 }

    cpqIdeAtapiDeviceTypeExtended OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           pdcd(2),
           removableDisk(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATAPI Extended Device Type.

            This is additional information about the type of ATAPI device.
            The following types are defined:

            other(1)
              This target does not have any extended type information.

            pdcd(2)
              This is a power-drive CD-ROM.

            removableDisk(3)
              This is a removable media disk device like a floppy drive."
        ::= { cpqIdeAtapiDeviceEntry 6 }

    cpqIdeAtapiDeviceChannel OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            channel0(2),
            channel1(3)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATAPI Device Channel.

             other(1)
              The agent cannot determine the channel to which the ATAPI
              device is attached.

             channel0(2)
              The ATAPI device is attached to the primary channel.

             channel1(3)
              The ATAPI device is attached to the secondary channel."
        ::= { cpqIdeAtapiDeviceEntry 7 }

    cpqIdeAtapiDeviceNumber OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            device0(2),
            device1(3)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "ATAPI Device Number.

             other(1)
              The agent cannot determine the number of the ATAPI device.

             device0(2)
              The ATAPI device is device 0 (master).

             device1(3)
              The ATAPI device is device 1 (slave)."
        ::= { cpqIdeAtapiDeviceEntry 8 }


-- ****************************************************************************
--    IDE Logical Drive Group
--    =======================
--
-- The compaq enterprise               (1.3.6.1.4.1.232)
--      cpqIde Group                   (1.3.6.1.4.1.232.14)
--       cpqIdeComponent Group         (1.3.6.1.4.1.232.14.2)
--        cpqIdeLogicalDrive Group     (1.3.6.1.4.1.232.14.2.6)
--         cpqIdeLogicalDriveTable     (1.3.6.1.4.1.232.14.2.6.1)
--
--
--  The logical drive device group contains information about logical drives
--  configured on a controller.
--
--  Implementation of the logical drive group is mandatory for all agents
--  that support the IDE MIB.
--
-- ****************************************************************************

    cpqIdeLogicalDriveTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CpqIdeLogicalDriveEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE Logical Drive Table."
        ::= { cpqIdeLogicalDrive 1 }

    cpqIdeLogicalDriveEntry OBJECT-TYPE
        SYNTAX  CpqIdeLogicalDriveEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
           "IDE Logical Drive Table Entry."
        INDEX   { cpqIdeLogicalDriveControllerIndex, cpqIdeLogicalDriveIndex }
        ::= { cpqIdeLogicalDriveTable 1 }

        CpqIdeLogicalDriveEntry ::= SEQUENCE
        {
              cpqIdeLogicalDriveControllerIndex INTEGER,
              cpqIdeLogicalDriveIndex           INTEGER,
              cpqIdeLogicalDriveRaidLevel       INTEGER,
              cpqIdeLogicalDriveCapacity        INTEGER,
              cpqIdeLogicalDriveStatus          INTEGER,
              cpqIdeLogicalDriveCondition       INTEGER,
              cpqIdeLogicalDriveDiskIds         OCTET STRING,
              cpqIdeLogicalDriveStripeSize      INTEGER,
              cpqIdeLogicalDriveSpareIds        OCTET STRING,
              cpqIdeLogicalDriveRebuildingDisk  INTEGER,
              cpqIdeLogicalDriveOsName          DisplayString
        }

    cpqIdeLogicalDriveControllerIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely identifies each controller."
        ::= { cpqIdeLogicalDriveEntry 1 }

    cpqIdeLogicalDriveIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An index that uniquely identifies each logical drive."
        ::= { cpqIdeLogicalDriveEntry 2 }

    cpqIdeLogicalDriveRaidLevel OBJECT-TYPE
        SYNTAX  INTEGER
        {
           other(1),
           raid0(2),
           raid1(3),
           raid0plus1(4),
           raid5(5),
           raid15(6),
           volume(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Logical Drive RAID Level.

            The following RAID levels are defined:

            other(1)
             The agent cannot determine the RAID level of this logical drive.

            raid0(2)
             The logical drive is configured with RAID level 0.

            raid1(3)
             The logical drive is configured with RAID level 1.

            raid0plus1(4)
             The logical drive is configured with RAID level 0 plus 1.

            raid5(5)
             The logical drive is configured with RAID level 5.

            raid15(6)
             The logical drive is configured with RAID level 1 plus 5.

            volume(7)
             The logical drive is configured as a volume set."
        ::= { cpqIdeLogicalDriveEntry 3 }

    cpqIdeLogicalDriveCapacity OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "IDE Logical Drive Capacity.

            This is the capacity of the logical drive in megabytes."
        ::= { cpqIdeLogicalDriveEntry 4 }

    cpqIdeLogicalDriveStatus OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            ok(2),
            degraded(3),
            rebuilding(4),
            failed(5)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
           "IDE Logical Drive Status.

            This is the status of the logical drive.

            other(1)
             The agent cannot determine the logical drive status.

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

            degraded(3)
             Indicates that at least one physical drive has failed, but the
             logical drive`s RAID level lets the drive continue to operate
             with no data loss.

            rebuilding(4)
             Indicates that the logical drive is rebuilding a physical drive.
             When complete, the logical drive will return to normal
             operation.

            failed(5)
             Indicates that more physical drives have failed than the RAID
             level of the logical drive can handle without data loss."
        ::= { cpqIdeLogicalDriveEntry 5 }


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

            This is the condition of the logical drive."
        ::= { cpqIdeLogicalDriveEntry 6 }

     cpqIdeLogicalDriveDiskIds OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "IDE Logical Drive Disk ID list.

            This lists the ATA disks drive IDs which are associated with this
            logical drive. These are the same IDs which can be used as
            indices into the ATA disk table (cpqIdeAtaDiskIndex). Each byte
            of the string is an index."
        ::= { cpqIdeLogicalDriveEntry 7 }

    cpqIdeLogicalDriveStripeSize OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "IDE Logical Drive Stripe Size.

            This is the stripe size in kilobytes."
        ::= { cpqIdeLogicalDriveEntry 8 }

     cpqIdeLogicalDriveSpareIds OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "IDE Logical Drive Spare ID list.

            This lists the ATA disks drive IDs which are possible spares for
            this logical drive. These are the same IDs which can be used as
            indices into the ATA disk table (cpqIdeAtaDiskIndex). Each byte
            of the string is an index."
        ::= { cpqIdeLogicalDriveEntry 9 }

    cpqIdeLogicalDriveRebuildingDisk OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "IDE Logical Drive Rebuilding Disk.

            This is the ATA disk that is in the process of rebuilding.  If no
            drive is currently rebuilding, a value of -1 will be returned."
        ::= { cpqIdeLogicalDriveEntry 10 }

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

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


-- ****************************************************************************
--  IDE Trap Definitions
--  ======================
--
--  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.
--
-- **************************************************************************

    cpqIdeDriveDegraded TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqIdeIdentIndex }
        DESCRIPTION
            "An IDE drive status has been set to degraded.

             User Action: The drive should be scheduled for replacement.

             Refer to the appropriate Maintenance and Service Guide for
             detailed information on a component replacement."

        --#TYPE "IDE Drive Degraded (14001)"
        --#SUMMARY "IDE drive %d has become degraded."
        --#ARGUMENTS {2}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#STATE   DEGRADED
        --#SIMPLE_SEVERITY CRITICAL
        --#HWSTATUS_CATEGORY STORAGE
        --#ACTION "Replace the failing drive."
        ::= 14001

    cpqIdeDriveOk TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqIdeIdentIndex }
        DESCRIPTION
            "An IDE drive status has been set to ok.

            User Action: None."

        --#TYPE "IDE Drive OK (14002)"
        --#SUMMARY "IDE drive %d has returned to normal operating condition."
        --#ARGUMENTS {2}
        --#SEVERITY INFORMATIONAL
        --#TIMEINDEX 99
        --#STATE OPERATIONAL
        --#SIMPLE_SEVERITY OK
        --#HWSTATUS_CATEGORY STORAGE           
        ::= 14002

     cpqIdeDriveUltraAtaDegraded TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqIdeIdentIndex }
        DESCRIPTION
            "An IDE drive detects an excessive number of Ultra ATA
             data transmission errors between the hard drive and the
             processor.

             User Action: For best performance move Ultra ATA devices to the
             primary controller and non Ultra ATA devices to the secondary
             controller.  If errors still persist, consider replacing the
             standard 40-conductor IDE cable with an 80-conductor Ultra ATA
             cable."

        --#TYPE "IDE Drive Ultra ATA Degraded (14003)"
        --#SUMMARY "IDE drive %d has detected Ultra ATA errors."
        --#ARGUMENTS {2}
        --#SEVERITY INFORMATIONAL
        --#TIMEINDEX 99
        --#STATE   DEGRADED
        --#SIMPLE_SEVERITY OK
        --#HWSTATUS_CATEGORY STORAGE        
        ::= 14003

    cpqIdeAtaDiskStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqIdeAtaDiskControllerIndex,
                     cpqIdeAtaDiskIndex, cpqIdeAtaDiskModel,
                     cpqIdeAtaDiskFwRev, cpqIdeAtaDiskSerialNumber,
                     cpqIdeAtaDiskStatus, cpqIdeAtaDiskChannel,
                     cpqIdeAtaDiskNumber }
        DESCRIPTION
            "ATA Disk Status Change.

             This trap signifies that the agent has detected a change in the
             status of an ATA disk drive.  The variable cpqIdeAtaDiskStatus
             indicates the current disk drive status.

             User Action: If cpqIdeAtaDiskStatus is `smartError(3)`, 
             `failed(4)` or `ssdWearOut(5)` replace the drive."

        --#TYPE "ATA Disk Drive Status Change (14004)"
        --#SUMMARY "ATA disk drive status is now %d for drive %d."
        --#ARGUMENTS {7, 9}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2
        --#SIMPLE_SEVERITY CRITICAL
        --#HWSTATUS_CATEGORY STORAGE
        --#ACTION "If the disk drive status is 'smartError(3)', 'failed(4)' or 'ssdWearOut(5)', replace the drive."
        ::= 14004

    cpqIdeLogicalDriveStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqIdeControllerModel,
                     cpqIdeControllerSlot, cpqIdeLogicalDriveControllerIndex,
                     cpqIdeLogicalDriveIndex, cpqIdeLogicalDriveStatus }
        DESCRIPTION
            "IDE Logical Drive Status Change.

             This trap signifies that the agent has detected a change in the
             status of an IDE logical drive.  The variable
             cpqIdeLogicalDriveStatus indicates the current logical drive
             status.

             User Action: If the logical drive status is failed(5), examine
             the array for failed drives that need replacement."

        --#TYPE "IDE Logical Drive Status Change (14005)"
        --#SUMMARY "IDE logical drive status is now %d for drive %d on controller in slot %d."
        --#ARGUMENTS {6, 5, 3}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2
        --#SIMPLE_SEVERITY CRITICAL
        --#HWSTATUS_CATEGORY STORAGE
        ::= 14005
        
    cpqIdeAtaDiskSSDWearStatusChange TRAP-TYPE
        ENTERPRISE compaq
        VARIABLES  { sysName, cpqHoTrapFlags, cpqIdeAtaDiskControllerIndex,
                     cpqIdeAtaDiskIndex, cpqIdeAtaDiskModel,
                     cpqIdeAtaDiskFwRev, cpqIdeAtaDiskSerialNumber,
                     cpqIdeAtaDiskSSDWearStatus, cpqIdeAtaDiskChannel,
                     cpqIdeAtaDiskNumber}
        DESCRIPTION
            "Solid State Disk Wear Status Change.
 
             This trap signifies that the agent has detected a change in the
             SSD wear status of a SATA physical drive.  The variable
             cpqIdeAtaDiskSSDWearStatus indicates the current SSD wear status.
 
             User Action: If cpqIdeAtaDiskSSDWearStatus is `ssdWearOut(6)`, 
             replace the drive."
 
        --#TYPE "Solid State Disk Wear Status Change (14006)"
        --#SUMMARY "Solid state disk wear status is now %d for drive %d."
        --#ARGUMENTS {7, 9}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2
        --#SIMPLE_SEVERITY CRITICAL
        --#HWSTATUS_CATEGORY STORAGE
        --#ACTION "If the SSD wear status is 'ssdWearOut(6)', replace the drive." 
        ::= 14006
    
  cpqIdeAtaSecureEraseFailed TRAP-TYPE
      ENTERPRISE compaq
    VARIABLES  { sysName, cpqHoTrapFlags,  cpqIdeAtaDiskControllerIndex,
                 cpqIdeAtaDiskIndex,  cpqIdeAtaDiskSerialNumber,
           cpqIdeAtaEraseFailureType}
    DESCRIPTION
        "Secure Erase of SATA drive has failed."
      
    --#TYPE "Secure Erase of SATA drive failed (14007)"
        --#SUMMARY "Secure Erase of SATA drive has failed: ( Controller %d, Disk %d, Serial Number %s, Failure Type %d )"
    --#ARGUMENTS { 2, 3, 4, 5 }
    --#SEVERITY CRITICAL
    --#TIMEINDEX 99
    --#STATE DEGRADED
    --#SIMPLE_SEVERIRY CRITICAL
    --#HWSTATUS_CATEGORY STORAGE
    --#ACTION "Please refer the IML Troubleshooting guide or click on Learn More link for additional information and any necessary action to be taken."
    ::= 14007

    cpqIdeAtaDiskStatusChange2 TRAP-TYPE
       ENTERPRISE compaq
       VARIABLES { sysName, cpqHoTrapFlags, cpqIdeAtaDiskControllerIndex,
                   cpqIdeAtaDiskIndex, cpqIdeAtaDiskModel,
                   cpqIdeAtaDiskFwRev, cpqIdeAtaDiskSerialNumber,
                   cpqIdeAtaDiskStatus, cpqIdeAtaDiskChannel,
                   cpqIdeAtaDiskLocation }
       DESCRIPTION
            "ATA Disk Status Change (with Location).

             This trap signifies that the agent has detected a change in the
             status of an ATA disk drive.  The variable cpqIdeAtaDiskStatus
             indicates the current disk drive status.

             User Action: If cpqIdeAtaDiskStatus is `smartError(3)`, 
             `failed(4)` or `ssdWearOut(5)` replace the drive."

        --#TYPE "ATA Disk Drive Status Change (14008)"
        --#SUMMARY "ATA disk drive status is now %d for drive %s."
        --#ARGUMENTS {7, 9}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2
        --#SIMPLE_SEVERITY CRITICAL
        --#HWSTATUS_CATEGORY STORAGE
        --#ACTION "If the disk drive status is 'smartError(3)', 'failed(4)' or 'ssdWearOut(5)', replace the drive."
    ::= 14008

   cpqIdeAtaDiskSSDWearStatusChange2 TRAP-TYPE
      ENTERPRISE compaq
      VARIABLES { sysName, cpqHoTrapFlags, cpqIdeAtaDiskControllerIndex,
                  cpqIdeAtaDiskIndex, cpqIdeAtaDiskModel,
                  cpqIdeAtaDiskFwRev, cpqIdeAtaDiskSerialNumber,
                  cpqIdeAtaDiskSSDWearStatus, cpqIdeAtaDiskChannel,
                  cpqIdeAtaDiskLocation }
        DESCRIPTION
            "Solid State Disk Wear Status Change (with Location).
 
             This trap signifies that the agent has detected a change in the
             SSD wear status of a SATA physical drive.  The variable
             cpqIdeAtaDiskSSDWearStatus indicates the current SSD wear status.
 
             User Action: If cpqIdeAtaDiskSSDWearStatus is `ssdWearOut(6)`, 
             replace the drive."
 
        --#TYPE "Solid State Disk Wear Status Change (14009)"
        --#SUMMARY "Solid state disk wear status is now %d for drive %s."
        --#ARGUMENTS {7, 9}
        --#SEVERITY CRITICAL
        --#TIMEINDEX 99
        --#VARBINDSEVERITY 2
        --#SIMPLE_SEVERITY CRITICAL
        --#HWSTATUS_CATEGORY STORAGE
        --#ACTION "If the SSD wear status is 'ssdWearOut(6)', replace the drive." 
    ::= 14009



END
