DPT-SCSI-MIB  DEFINITIONS ::= BEGIN

--*****************************************************************************
--
-- Copyright(c) 1992-2000, All Rights Reserved.
--      Distributed Processing Technology, Inc.
--      140 Candace Dr.
--      Maitland, FL 32751, USA
--      Phone: (321) 207-1000  Fax: (407) 260-5366
--
-- Title:
--      DPT-SCSI-MIB
--
-- Abstract:
--      This is the DPT SCSI system MIB. This MIB supports
--      DPT's SmartRAID V and SmartRAID VI product lines.
--
-- Current Status:
--      MIB is modified to support the latest Gen VI Hardware
--      The Trap definition has been modified to reflect NetWare standards
--
-- Notes:
--
--      Several textual conventions (enumeration types) in this MIB use common
--      value names.  The value 'invalid' means that for some reason the agent
--      is unable to return a proper value for an Object Identifier, for
--      example due to an operating system error.  The value 'notSupported'
--      indicates that either the agent or the object (controller, device,
--      etc.) does not support the Object Identifier.  For example, the
--      deprecated Object Identifier dptScsiDevErrorsAboveThreshold will return
--      'notSupported.'  The value 'notApplicable' indicates that a particular
--      Object Identifier is not applicable for the object instance.  For
--      example, not all controllers have temperature probes; on such
--      controllers the dptScsiHbaTemperature Object Identifier will return
--      'notApplicable.'
--
-- $Revision: 27 $
--
--
--*****************************************************************************


    IMPORTS
       enterprises, Counter, Gauge, TimeTicks
                    FROM RFC1155-SMI
       OBJECT-TYPE
                    FROM RFC-1212
       TRAP-TYPE
                    FROM RFC-1215;


    --
    -- Textual conventions
    --
    DisplayString ::= OCTET STRING

    --
    -- A DptSignature is a string in the form
    -- "<description>; Version: <version>; Created: <month>-<day>-<year>"
    -- where <xxx> indicates a field as listed below:
    --
    -- <description> is a string describing the Object Identifer instance.
    -- <version> is a string describing the version of the object instance
    -- <month> is the numeric month the object instance was created/compiled
    --     (1-12).
    -- <day> is the numeric day the object instance was created/compiled
    --     (1-31).
    -- <year> is the four-digit numeric year the object instance was created/
    --     compiled.
    --
    -- If either the version or  creation date is unavailable, then instead
    -- of <version> or <month>-<day>-<year>, the field will contain the string
    -- "Unavailable".
    --
    -- <description> and <version> will not contain semicolons (';').
    --
    -- If the agent is unable to retrieve any signature information, the
    -- entire DptSignature will be the string "Signature Unavailable".
    --
    DptSignature ::= DisplayString

    HostBusType ::= INTEGER {
                        invalid(1),
                        isa(2),
                        eisa(3),
                        pci-32(4),
                        pci-64(5)
                        }

    ScsiBusType ::= INTEGER {
                        invalid(1),
                        singleEnded(2),
                        differential(3),
                        lvd(4),
                        fibreChannel(5),
                        ide(6)
                        }

    IrqType ::= INTEGER {
                        invalid(1),
                        level(2),
                        edge(3)
                        }

    DrqNumber ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        zero(3),
                        five(4),
                        six(5),
                        seven(6)
                        }

    MemoryBankType ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        empty(3),
                        standard-SIMM(4),
                        standard-DIMM(5),
                        sm4000DPT-ECC-SIMM(6),
                        sm4041DPT-ECC-DIMM(7),
                        sm4050DPT-ECC-EDO-SIMM(8),
                        dm4050DPT-ECC-EDO-SO-DIMM(9),
                        dm4070DPT-ECC-SD-DIMM(10)
                        }

    MemoryBankSize ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        empty(3),
                        oneMB(4),
                        fourMB(5),
                        sixteenMB(6),
                        thirtytwoMB(7),
                        sixtyfourMB(8),
                        hundredtwentyeightMB(9),
                        twohundredfiftysixMB(10),
                        fivehundredtwelveMB(11),
                        thousandtwentyfourMB(12)
                        }

    CachingModule ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        none(3),
                        cm4000(4),
                        rc4040(5),
                        rc4041(6),
                        embedded(7),
                        ra4050(8),
                        ra4060(9)
                        }

    RaidModule ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        none(3),
                        dm4000(4),
                        rc4040(5),
                        rc4041(6),
                        embedded(7),
                        ra4050(8),
                        ra4060(9)
                        }

    BatteryBackupModule ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        none(3),
                        embedded(4),
                        bb4050(5),
                        bb4060(6)
                        }

    RaidType ::= INTEGER {
                        invalid(1),
                        notAssigned(2),
                        raid-0(3),
                        raid-1(4),
                        raid-5(5),
                        redirected(6),
                        hotSpare(7),
                        jbod(8)
                        }

    SoftwareType ::= INTEGER {
                        firmware(1),
                        driver(2),
                        operatingSystem(3),
                        application(4)
                        }

    BusWidth ::= INTEGER {
                        invalid(1),
                        serial(2),
                        narrow(3),
                        wide(4),
                        wide32(5),
                        notApplicable(6)
                        }

    BusTerminationType ::= INTEGER {
                        invalid(1),
                        on(2),
                        off(3),
                        highOnly(4),
                        auto(5)
                        }

    ScsiVersion ::= INTEGER {
                        invalid(1),
                        scsi-I(2),
                        scsi-II(3),
                        scsi-III(4)
                        }

    DeviceType ::= INTEGER {
                        disk(1),
                        tape(2),
                        printer(3),
                        processor(4),
                        writeOnce(5),
                        cdRom(6),
                        scanner(7),
                        optical(8),
                        jukebox(9),
                        commDev(10),
                        graphicsType10(11),
                        graphicsType11(12),
                        scc(13),
                        ses(14),
                        saf-te(97),
                        host(98),
                        unknown(99)
                        }

    DeviceStatus ::= INTEGER {
                        invalid(1),
                        optimal(2),
                        verifying(3),
                        failed(4),
                        warning(5),
                        formatting(6),
                        formatCertifying(7),
                        missing(8),
                        notCreated(9),
                        degraded(10),
                        building(11),
                        rebuilding(12),
                        verifyFixing(13),
                        abortActivity(14)
                        }

    DeviceWriteMode ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        writeBack(3),
                        writeThrough(4),
                        noCache(5)
                        }

    YesNoStatus ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        notSupported(3),
                        yes(4),
                        no(5)
                        }

    LowHighStatus ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        notSupported(3),
                        low(4),
                        normal(5),
                        high(6),
                        veryHigh(7)
                        }

    BatteryStatus ::= INTEGER {
                        invalid(1),
                        notApplicable(2),
                        none(3),
                        trickleCharge(4),
                        fastCharge(5),
                        discharge(6),
                        bad(7),
                        full(8),
                        initCharge(9),
                        initDischarge(10),
                        initRecharge(11),
                        maintenanceDischarge(12),
                        maintenanceCharge(13)
                        }

    HbaGenStatus ::= INTEGER {
                        invalid(1),
                        notSupported(2),
                        ok(3),
                        fail(4),
                        error(5)
                        }

    CommandType ::= INTEGER {
                        hostCmd(1),
                        scsiCmd(2)
                        }

    ArrayRowStatus ::= INTEGER {
                        invalid(1),
                        active(2),
                        notInService(3),
                        notReady(4),
                        createAndGo(5),
                        createAndWait(6),
                        destroy(7)
                        }



    --
    -- DPT's enterprise number,
    -- and dptScsi hierarchy.
    --
    dpt OBJECT IDENTIFIER ::= { enterprises 1597 }
    dptScsi OBJECT IDENTIFIER ::= { dpt 1 }

    --
    -- DPT SCSI System MIB Groups
    --
    dptScsiSys          OBJECT IDENTIFIER ::= { dptScsi 1 }
    dptScsiHba          OBJECT IDENTIFIER ::= { dptScsi 2 }
    dptScsiBus          OBJECT IDENTIFIER ::= { dptScsi 3 }
    dptScsiDev          OBJECT IDENTIFIER ::= { dptScsi 4 }
    dptScsiArr          OBJECT IDENTIFIER ::= { dptScsi 5 }
    dptScsiStats        OBJECT IDENTIFIER ::= { dptScsi 6 }
    dptScsiEvent        OBJECT IDENTIFIER ::= { dptScsi 7 }
    dptScsiDummy        OBJECT IDENTIFIER ::= { dptScsi 8 }


    --
    -- dptScsiSys Group
    --
    -- Implementation of this group is mandatory.
    --
    -- These objects identify the capabilities and versions of DPT SCSI
    -- System modules.
    --
    dptScsiSysRevLevel OBJECT-TYPE
       SYNTAX           DptSignature
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "DPT SCSI system SNMP agent revision information."
       ::= { dptScsiSys 1 }

    dptScsiSysEngineSignature OBJECT-TYPE
       SYNTAX           DptSignature
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "DPT signature for the DPT engine. This contains information
           on engine version and creation date/time."
       ::= { dptScsiSys 2 }

    dptScsiSysDriverSignature OBJECT-TYPE
       SYNTAX           DptSignature
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "DPT signature for the driver currently in use by the SNMP
           agent. This contains information on driver version and
           creation date/time."
       ::= { dptScsiSys 3 }

    dptScsiSysEventLoggerSignature OBJECT-TYPE
       SYNTAX           DptSignature
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "DPT signature for the event logger/broadcaster currently in
           use by the SNMP agent. This contains information
           on event logger/broadcaster version and creation date/time."
       ::= { dptScsiSys 4 }

--   SCSI MIB Revision
--   =================
--     A Management Agent conforming to this document will return a mibRevMajor
--     of one (1) and a mibRevMinor of one (1).
--
--

    dptScsiSysMibRevMajor 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."
       ::= { dptScsiSys 5 }

       dptScsiSysMibRevMinor 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."
       ::= { dptScsiSys 6 }



    --
    -- dptScsiHba group
    --
    -- Implementation of this group is mandatory.
    --
    dptScsiHbaTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiHbaEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of RAID controllers managed by the DPT SCSI system."
       ::= { dptScsiHba 1 }

    dptScsiHbaEntry OBJECT-TYPE
       SYNTAX           DptScsiHbaEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A set of parameters that describe/control a DPT RAID controller.
           See 'SmartRAID User's Manual' for detailed explanation of
           the parameters."
       INDEX { dptScsiHbaNumber }
       ::= { dptScsiHbaTable 1 }

    DptScsiHbaEntry ::= SEQUENCE {
       dptScsiHbaNumber                  INTEGER,
       dptScsiHbaVendor                  DisplayString,
       dptScsiHbaModel                   DisplayString,
       dptScsiHbaFirmware                DisplayString,
       dptScsiHbaSerialNumber            DisplayString,
       dptScsiHbaAddress                 INTEGER,
       dptScsiHbaHostBusType             HostBusType,
       dptScsiHbaHostBusMaxTransferRate  INTEGER,
       dptScsiHbaIrq                     INTEGER,
       dptScsiHbaIrqType                 IrqType,
       dptScsiHbaDrq                     DrqNumber,
       dptScsiHbaRaidModule              RaidModule,
       dptScsiHbaCachingModule           CachingModule,
       dptScsiHbaAudibleAlarmOn          YesNoStatus,
       dptScsiHbaUpTime                  TimeTicks,
       dptScsiHbaEccEnabled              YesNoStatus,
       dptScsiHbaBackgroundTaskPriority  INTEGER,
       dptScsiHbaExclusionPeriodEnabled  YesNoStatus,
       dptScsiHbaExclusionPeriodStart    INTEGER,
       dptScsiHbaExclusionPeriodEnd      INTEGER,
       dptScsiHbaMaxReadAheadPercentage  INTEGER,
       dptScsiHbaMaxDirtyPagesPercentage INTEGER,
       dptScsiHbaWriteBackDelay          INTEGER,
       dptScsiHbaTemperature             LowHighStatus,
       dptScsiHbaVoltage                 LowHighStatus,
       dptScsiHbaBadMemoryAddress        INTEGER,
       dptScsiHbaBatteryModule           BatteryBackupModule,
       dptScsiHbaBatteryStatus           BatteryStatus,
       dptScsiHbaHighestBusWithDevices   INTEGER,
       dptScsiHbaGeneralStatus           HbaGenStatus,
       dptScsiHbaSmorSignature           DptSignature,
       dptScsiHbaBiosSignature           DptSignature,
       dptScsiHbaNvramLayout             DisplayString
       }

    dptScsiHbaNumber OBJECT-TYPE
       SYNTAX           INTEGER (0..255)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
            "An index that uniquely identifies a row in dptHbaTable
            that pertains to a particular controller. The value of
            this object is the logical device identifier for a DPT
            controller. As controllers are detected, they are
            assigned numbers incrementally, starting with 0."
       ::= { dptScsiHbaEntry 1 }

    dptScsiHbaVendor OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..8))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The name of the vendor of the controller."
       ::= { dptScsiHbaEntry 2 }

    dptScsiHbaModel OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..16))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller model identifier."
       ::= { dptScsiHbaEntry 3 }

    dptScsiHbaFirmware OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..8))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller firmware version."
       ::= { dptScsiHbaEntry 4 }

    dptScsiHbaSerialNumber OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..255))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller serial number."
       ::= { dptScsiHbaEntry 5 }

    dptScsiHbaAddress OBJECT-TYPE
       SYNTAX           INTEGER (0..'FFFFFFFF'h)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller Address (normally displayed in hex.)
            It is a 32-bit value representing the memory address
            used by the controller"
       ::= { dptScsiHbaEntry 6 }

    dptScsiHbaHostBusType OBJECT-TYPE
       SYNTAX           HostBusType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The type of host computer system bus this controller is
           attached to."
       ::= { dptScsiHbaEntry 7 }

    dptScsiHbaHostBusMaxTransferRate OBJECT-TYPE
       SYNTAX           INTEGER
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The maximum possible transfer rate on the host bus in MB/s."
       ::= { dptScsiHbaEntry 8 }

    dptScsiHbaIrq OBJECT-TYPE
       SYNTAX           INTEGER (0..255)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller interrupt level."
       ::= { dptScsiHbaEntry 9 }

    dptScsiHbaIrqType OBJECT-TYPE
       SYNTAX           IrqType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller interrupt type (Edge or Level)."
       ::= { dptScsiHbaEntry 10 }

    dptScsiHbaDrq OBJECT-TYPE
       SYNTAX           DrqNumber
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
           "The controller DMA channel. This object is only applicable for
            ISA controllers. Its value is 'notApplicable' for the other
            types of controllers."
       ::= { dptScsiHbaEntry 11 }

    dptScsiHbaRaidModule OBJECT-TYPE
       SYNTAX           RaidModule
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "Controller RAID module type: SmartRAID Millennium controllers
            support all RAID levels without the addition of a RAID Module.
            These controllers will show 'Embedded' for this object.
            SmartRAID Decade and Century controllers support RAID 0 and
            RAID 1 by default. RAID 5 support is added by attaching an
            RA40x0 RAID Accelerator module to the controller. If one is
            attached it will be indicated in this object."
       ::= { dptScsiHbaEntry 12 }

    dptScsiHbaCachingModule OBJECT-TYPE
       SYNTAX           CachingModule
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
           "The controller caching module. 'Embedded' means
            that the disk array function is built inside the controller
            (SmartRAID products.)"

       ::= { dptScsiHbaEntry 13 }

    dptScsiHbaAudibleAlarmOn OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "This returns the current status of the controller alarm."
       ::= { dptScsiHbaEntry 14 }

    dptScsiHbaUpTime OBJECT-TYPE
       SYNTAX           TimeTicks
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Time elapsed (in hundredths of a second) since the
           controller was last booted."
       ::= { dptScsiHbaEntry 15 }

    dptScsiHbaEccEnabled OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "This indicates whether or not the controller is using
           DPT ECC memory. 'Yes' means that the installed memory
           is DPT ECC memory and full ECC protection is active."
       ::= { dptScsiHbaEntry 16 }

    dptScsiHbaBackgroundTaskPriority OBJECT-TYPE
       SYNTAX           INTEGER (1..10)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "This object controls the priority of array background tasks
           such as Build, Rebuild and Verify for this controller.
           The values range from 1 to 10. A value of 1 is the slowest but
           uses the least amount of the controller's bandwidth. While a
           value of 10 is the fastest but it uses the most bandwidth.

           If operations take too long then increase the value for this
           object. If the system runs too slow when these tasks are active,
           then decrease the value for this object."
       ::= { dptScsiHbaEntry 17 }

    dptScsiHbaExclusionPeriodEnabled OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Controller exclution period is the time span during which it
           devotes 100% of its time fulfilling requests for data
           reads/writes and zero percent on background activities like
           build/rebuild of arrays.

           Setting this object to true sets the exclusion period as
           defined by dptScsiHbaExclusionPeriodStart and
           dptScsiHbaExclusionPeriodEnd objects. Otherwise, if it is set
           to false, the exclusion period no effect."
       ::= { dptScsiHbaEntry 18 }

    dptScsiHbaExclusionPeriodStart OBJECT-TYPE
       SYNTAX           INTEGER (0..23)
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Hour of beginning of the exclusion period. For example, a
           value of 0 means that the exclusion starts at 12 a.m.

           The maximum duration of an exclusion period can be 24 hours.

           Contoller exclution period is the time span during which it
           devotes 100% of its time fulfilling requests for data
           reads/writes and zero percent on background activities like
           build/rebuild of arrays."
       ::= { dptScsiHbaEntry 19 }

    dptScsiHbaExclusionPeriodEnd OBJECT-TYPE
       SYNTAX           INTEGER (0..23)
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Hour when exclusion period ends. For example, a value of
           23 means that the exclusion ends at 11 p.m.

           The maximum duration of an exclusion period can be 24 hours.

           If dptScsiHbaExclusionPeriodStart is greater than
           dptScsiHbaExclusionPeriodEnd, it means that the exclusions
           period extends over the next day.

           Contoller exclution period is the time span during which it
           devotes 100% of its time fulfilling requests for data
           reads/writes and zero percent on background activities like
           build/rebuild of arrays."
       ::= { dptScsiHbaEntry 20 }

    dptScsiHbaMaxReadAheadPercentage OBJECT-TYPE
       SYNTAX           INTEGER (0..80)
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Max percentage of contoller cache RAM devoted to read-ahead
          pages.  This value is not applicable to SmartRAID V and later
          controllers.  For these controllers, this value will be set
          to 30."
       ::= { dptScsiHbaEntry 21 }

    dptScsiHbaMaxDirtyPagesPercentage OBJECT-TYPE
       SYNTAX           INTEGER (0..100)
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Max percentage of controller cache RAM that may contain dirty
          pages.  This value is not applicable to SmartRAID V and later
          controllers.  For these controllers, this value will be set to
          80."
       ::= { dptScsiHbaEntry 22 }

    dptScsiHbaWriteBackDelay OBJECT-TYPE
       SYNTAX           INTEGER
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Write-back delay in milliseconds.  This value is not applicable
          to SmartRAID V and later controllers.  For these controllers,
          this value will be set to 250."
       ::= { dptScsiHbaEntry 23 }

    dptScsiHbaTemperature OBJECT-TYPE
       SYNTAX           LowHighStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Temperature status reported by the controller."
       ::= { dptScsiHbaEntry 24 }

    dptScsiHbaVoltage OBJECT-TYPE
       SYNTAX           LowHighStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "5V voltage status reported by the controller."
       ::= { dptScsiHbaEntry 25 }

    dptScsiHbaBadMemoryAddress OBJECT-TYPE
       SYNTAX           INTEGER (0..'FFFFFFFF'h)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
         "If the controller detects a cache RAM error, the address of
          the most recent error is stored here. Otherwise it indicates
          that no errors have been detected.
          Valid RAM addresses are from 1 to 0xffffffff."
       ::= { dptScsiHbaEntry 26 }

    dptScsiHbaBatteryModule OBJECT-TYPE
       SYNTAX           BatteryBackupModule
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
         "The Battery Backup Module preserves all controller cache and local
          memory contents in the event of power loss to the system"
       ::= { dptScsiHbaEntry 27 }

    dptScsiHbaBatteryStatus OBJECT-TYPE
       SYNTAX           BatteryStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
         "Battery status reported by the controller."
       ::= { dptScsiHbaEntry 28 }

    dptScsiHbaHighestBusWithDevices OBJECT-TYPE
       SYNTAX           INTEGER
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The bus number of the highest numbered bus on this controller
          which has devices currently attached to it."
       ::= { dptScsiHbaEntry 29 }

    dptScsiHbaGeneralStatus OBJECT-TYPE
            SYNTAX      HbaGenStatus
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION "General controller status.   The following are
            the possible values:
            ok            - the controller and all components attached to
                            it, such as disks and arrays, are OK.
            fail          - a component attached to the controller is not OK.
            error         - the agent cannot get status from the controller."
            ::= { dptScsiHbaEntry 30 }

    dptScsiHbaSmorSignature OBJECT-TYPE
       SYNTAX           DptSignature
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller S.M.O.R. revision information.  Not available for
           SmartRAID IV and earlier controllers."
       ::= { dptScsiHbaEntry 31 }

    dptScsiHbaBiosSignature OBJECT-TYPE
       SYNTAX           DptSignature
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller B.I.O.S. revision information.  Not available for
           SmartRAID IV and earlier controllers."
       ::= { dptScsiHbaEntry 32 }

    dptScsiHbaNvramLayout OBJECT-TYPE
       SYNTAX           DisplayString
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
           "The controller NVRAM layout revision."
       ::= { dptScsiHbaEntry 33 }





    dptScsiHbaCacheSocketTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiHbaCacheSocketEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of the cache memory module sockets on the controller."
       ::= { dptScsiHba 2 }

    dptScsiHbaCacheSocketEntry OBJECT-TYPE
       SYNTAX           DptScsiHbaCacheSocketEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe the cache memory module sockets
           on a controller."
       INDEX {
             dptScsiHbaNumber,
             dptScsiHbaCacheSocketNumber
             }
       ::= { dptScsiHbaCacheSocketTable 1 }

    DptScsiHbaCacheSocketEntry ::= SEQUENCE {
       dptScsiHbaCacheSocketNumber      INTEGER,
       dptScsiHbaCacheModuleType        MemoryBankType,
       dptScsiHbaCacheModuleSize        MemoryBankSize
       }

    dptScsiHbaCacheSocketNumber OBJECT-TYPE
       SYNTAX           INTEGER (0..3)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "A controller can have up to 4 cache sockets. This is the
           index in the table of cache memory module sockets."
       ::= { dptScsiHbaCacheSocketEntry 1 }

    dptScsiHbaCacheModuleType OBJECT-TYPE
       SYNTAX           MemoryBankType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Type of a cache memory module."
       ::= { dptScsiHbaCacheSocketEntry 2 }

    dptScsiHbaCacheModuleSize OBJECT-TYPE
       SYNTAX           MemoryBankSize
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Size of a cache memory module."
       ::= { dptScsiHbaCacheSocketEntry 3 }



    --
    -- dptScsiBus group
    --
    -- Implementation of this group is mandatory.
    --
    dptScsiBusTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiBusEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of the SCSI buses on a system."
       ::= { dptScsiBus 1 }

    dptScsiBusEntry OBJECT-TYPE
       SYNTAX           DptScsiBusEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe/control a SCSI Bus. The entry
           is indexed by dptScsiHbaNumber and dptScsiBusNumber.
           dptScsiHbaNumber determines to which controller the SCSI bus
           belongs and dptScsiBusNumber to which SCSI bus."
       INDEX {
            dptScsiHbaNumber,
            dptScsiBusNumber
            }
       ::= { dptScsiBusTable 1 }

    DptScsiBusEntry ::= SEQUENCE {
       dptScsiBusNumber            INTEGER,
       dptScsiBusWidth             BusWidth,
       dptScsiBusType              ScsiBusType,
       dptScsiBusMaxTransferRate   INTEGER,
       dptScsiBusHbaScsiId         INTEGER,
       dptScsiBusHbaTermPower      YesNoStatus,
       dptScsiBusHbaTermination    BusTerminationType
       }

    dptScsiBusNumber OBJECT-TYPE
       SYNTAX           INTEGER (0..255)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "An index that, along with dptScsHbaNumber uniquely,
           identifies an entry in the dptScsiBusTable for a
           particular SCSI Bus."
       ::= { dptScsiBusEntry 1 }

    dptScsiBusWidth OBJECT-TYPE
       SYNTAX           BusWidth
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The SCSI Bus width."
       ::= { dptScsiBusEntry 2 }

    dptScsiBusType OBJECT-TYPE
       SYNTAX           ScsiBusType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The SCSI Bus transceiver type."
       ::= { dptScsiBusEntry 3 }

    dptScsiBusMaxTransferRate OBJECT-TYPE
       SYNTAX           INTEGER
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The SCSI Bus maximum transfer rate in MB/s.
           Valid values are 4, 5, 8, 10, 20, 40, 80, 100, 160, etc.,
           depending on the SCSI technology used."
       ::= { dptScsiBusEntry 4 }

    dptScsiBusHbaScsiId OBJECT-TYPE
       SYNTAX           INTEGER (0..15)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The SCSI ID of the controller on this SCSI Bus."
       ::= { dptScsiBusEntry 5 }

    dptScsiBusHbaTermPower OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the SCSI term-power setting (on/off) for this bus."
       ::= { dptScsiBusEntry 6 }

    dptScsiBusHbaTermination OBJECT-TYPE
       SYNTAX           BusTerminationType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the SCSI termination setting for this bus."
       ::= { dptScsiBusEntry 7 }


    --
    -- dptScsiDev group
    --
    -- A SCSI device can either be a physical devices or a logical
    -- device. The former is a physical SCSI device that is directly
    -- connected through a SCSI bus to a particular contoller. The latter
    -- is a logical entity is presented by the controller to the
    -- operating system. RAID-0, RAID-1 and RAID-5 arrays as well as
    -- Redirected drives are examples of logical devices.
    --
    -- This group models all the physical devices. It also models
    -- RAID-0, RAID-1, RAID-5 and redirect types of logical devices.
    --
    -- Implementation of this group is mandatory.
    --
    dptScsiDevTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiDevEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of SCSI devices managed by the SNMP agent."
       ::= { dptScsiDev 1 }

    dptScsiDevEntry OBJECT-TYPE
       SYNTAX           DptScsiDevEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe/control a particular SCSI Device.
           The index for this entry is the logical device address of
           the SCSI device. The logical device address consists of five
           components: contoller number, SCSI bus number, Device ID,
           LUN and level."
       INDEX {
            dptScsiHbaNumber,
            dptScsiBusNumber,
            dptScsiDevId,
            dptScsiDevLun,
            dptScsiDevLevel
            }
       ::= { dptScsiDevTable 1 }

    DptScsiDevEntry ::= SEQUENCE {
       dptScsiDevId                    INTEGER,
       dptScsiDevLun                   INTEGER,
       dptScsiDevLevel                 INTEGER,
       dptScsiDevVendor                DisplayString,
       dptScsiDevModel                 DisplayString,
       dptScsiDevRevision              DisplayString,
       dptScsiDevSerialNumber          DisplayString,
       dptScsiDevStatus                DeviceStatus,
       dptScsiDevBusWidth              BusWidth,
       dptScsiDevCapacity              INTEGER,
       dptScsiDevLogicalBlockSize      INTEGER,
       dptScsiDevPhysicalBlockSize     INTEGER,
       dptScsiDevNegTransferRate       INTEGER,
       dptScsiDevRemovable             YesNoStatus,
       dptScsiDevEccEnabled            YesNoStatus,
       dptScsiDevScsiVersion           ScsiVersion,
       dptScsiDevSoftReset             YesNoStatus,
       dptScsiDevCmdQueuing            YesNoStatus,
       dptScsiDevLinkedCmds            YesNoStatus,
       dptScsiDevSynchronous           YesNoStatus,
       dptScsiDevRelAddr               YesNoStatus,
       dptScsiDevSMART                 YesNoStatus,
       dptScsiDevSCAM                  YesNoStatus,
       dptScsiDevBadBlockNumber        INTEGER,
       dptScsiDevBadBlockCount         INTEGER,
       dptScsiDevErrorsAboveThreshold  YesNoStatus,
       dptScsiDevDriveLockingOn        YesNoStatus,
       dptScsiDevLastReqSenseInfo      DisplayString,
       dptScsiDevReadCachingOn         YesNoStatus,
       dptScsiDevReadCacheMaxRecord    INTEGER,
       dptScsiDevWriteCachingOn        YesNoStatus,
       dptScsiDevWriteCacheMaxRecord   INTEGER,
       dptScsiDevWriteMode             DeviceWriteMode,
       dptScsiDevSmartStatusOk         YesNoStatus,
       dptScsiDevType                  DeviceType
       }

    dptScsiDevId OBJECT-TYPE
       SYNTAX           INTEGER (0..15)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The SCSI ID of the device."
       ::= { dptScsiDevEntry 1 }

    dptScsiDevLun OBJECT-TYPE
       SYNTAX           INTEGER (0..7)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The SCSI LUN (logical unit number) of the device."
       ::= { dptScsiDevEntry 2 }

    dptScsiDevLevel OBJECT-TYPE
       SYNTAX           INTEGER (0..2)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the Level of the device.
           Level 0 indicates physical devices, while level 1 and 2
           indicate logical devices. It also gives its level in the
           containment hierarchy of devices.

           A device is a logical device if it contains other
           SCSI devices, otherwise it is a physical device.

           A level 1 array contains only physical devices as its
           members; a level 2 device has at least one
           level 1 array as a member.  A level 2 device would be
           a RAID-10 or RAID-50 logical drive."
       ::= { dptScsiDevEntry 3 }

    dptScsiDevVendor OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..8))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The name of the vendor of the device."
       ::= { dptScsiDevEntry 4 }

    dptScsiDevModel OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..16))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The model name of the device."
       ::= { dptScsiDevEntry 5 }

    dptScsiDevRevision OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..4))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The revision level of the device."
       ::= { dptScsiDevEntry 6 }

    dptScsiDevSerialNumber OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..255))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The serial number of the device."
       ::= { dptScsiDevEntry 7 }

    dptScsiDevStatus OBJECT-TYPE
       SYNTAX           DeviceStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The administrative state of the device. The following are
           all the possible values:
           invalid       - current value is invalid.
           optimal       - device is fully functional and is not
                           running diagnostics that may impact
                           performance.
           verifying     - diagnostics are being run on the device.
                           Performance of the device may be affected.
           failed        - catastrophic failure has occurred.
           warning       - user-specified error threshold has been
                           crossed. Device failure may be imminent.
           formatting    - device is being formatted.
           formatCertifying
                         - a SCSI format with certify command in
                           progress.
           missing       - device is physically missing or does
                           not respond to commands on the SCSI bus.
           notCreated    - array has been defined by the user but the
                           changes are have not been committed to the
                           hardware.
           degraded      - redundant array has a failed component
                           which results in degraded performance and
                           loss of fault-tolerance.
           building      - array is in the process of building.
           verifyFixing  - device is processing an SCSI verify fix
                           command.
           abortActivity - this value allows the user to abort any
                           background tasks on the controller, such
                           as Build, Rebuild and Verify."
       ::= { dptScsiDevEntry 8 }

    dptScsiDevBusWidth OBJECT-TYPE
       SYNTAX           BusWidth
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The data width of the SCSI device (not applicable to
          logical devices)."
       ::= { dptScsiDevEntry 9 }

    dptScsiDevCapacity OBJECT-TYPE
       SYNTAX           INTEGER (0..'FFFFFFFF'h)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The storage capacity of the device in MB."
       ::= { dptScsiDevEntry 10 }

    dptScsiDevLogicalBlockSize OBJECT-TYPE
       SYNTAX           INTEGER (0..65535)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Logical block size of the device in bytes."
       ::= { dptScsiDevEntry 11 }

    dptScsiDevPhysicalBlockSize OBJECT-TYPE
       SYNTAX           INTEGER (0..65535)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Physical block size of the device in bytes.  Not
          applicable for logical devices and will be the logical
          block size."
       ::= { dptScsiDevEntry 12 }

    dptScsiDevNegTransferRate OBJECT-TYPE
       SYNTAX           INTEGER
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The negotiated transfer rate of the device in MB/s.  For
          logical devices, this value is not applicable and will
          return 0."
       ::= { dptScsiDevEntry 13 }

    dptScsiDevRemovable OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether or not the device is removable."
       ::= { dptScsiDevEntry 14 }

    dptScsiDevEccEnabled OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Indicates whether the device has ECC enabled or
           disabled."
       ::= { dptScsiDevEntry 15 }

    dptScsiDevScsiVersion OBJECT-TYPE
       SYNTAX           ScsiVersion
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the SCSI specification version of the device."
       ::= { dptScsiDevEntry 16 }

    dptScsiDevSoftReset OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device supports soft reset."
       ::= { dptScsiDevEntry 17 }

    dptScsiDevCmdQueuing OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device is supports command queuing."
       ::= { dptScsiDevEntry 18 }

    dptScsiDevLinkedCmds OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device support linked commands (not
          applicable to logical devices)."
       ::= { dptScsiDevEntry 19 }

    dptScsiDevSynchronous OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device supports synchronous
           data transfers."
       ::= { dptScsiDevEntry 20 }

    dptScsiDevRelAddr OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device supports relative addressing
          (not applicable to logical devices)."
       ::= { dptScsiDevEntry 21 }

    dptScsiDevSMART OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device supports SMART specifications
          (not applicable to logical devices)."
       ::= { dptScsiDevEntry 22 }

    dptScsiDevSCAM OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Indicates whether the device supports SCAM."
       ::= { dptScsiDevEntry 23 }

    dptScsiDevBadBlockNumber OBJECT-TYPE
       SYNTAX           INTEGER (0..'FFFFFFFF'h)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "If bad blocks have been detected on the device, this
           is the address of the most recent one. Otherwise it
           will contain 0 (no error). The first valid block starts
           at 1. This object is used in the definition of one or
           more traps."
       ::= { dptScsiDevEntry 24 }

    dptScsiDevBadBlockCount OBJECT-TYPE
       SYNTAX           INTEGER (0..'FFFFFFFF'h)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "This represents the total number of the bad blocks
           encountered most recently on the device starting at
           the block number dptScsiDevBadBlockNumber. This object
           is needed in the definition of one or more traps."
       ::= { dptScsiDevEntry 25 }

    dptScsiDevErrorsAboveThreshold OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Indicates whether or not the error count of the device
           has reached the threshold.  This value is no longer
                   supported."
       ::= { dptScsiDevEntry 26 }

    dptScsiDevDriveLockingOn OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Indicates whether or not the drive is locked.  This value
                  is no longer supported."
       ::= { dptScsiDevEntry 27 }

    dptScsiDevLastReqSenseInfo OBJECT-TYPE
       SYNTAX           DisplayString
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Device Request Sense information.
           It is used in the definition of one or more traps."
       ::= { dptScsiDevEntry 28 }

    dptScsiDevReadCachingOn OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Indicates whether or not read caching is on.  This value
          is not applicable to SmartRAID V and later controllers."
       ::= { dptScsiDevEntry 29 }

    dptScsiDevReadCacheMaxRecord OBJECT-TYPE
       SYNTAX           INTEGER
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Maximum record size for read caching.  This value is not
          applicable to SmartRAID V and later controllers.  For these
          controllers, this value will be 0."
       ::= { dptScsiDevEntry 30 }

    dptScsiDevWriteCachingOn OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Indicates whether or not write caching is on.  This value
          is not applicable to SmartRAID V and later controllers."
       ::= { dptScsiDevEntry 31 }

    dptScsiDevWriteCacheMaxRecord OBJECT-TYPE
       SYNTAX           INTEGER
       ACCESS           read-only
       STATUS           deprecated
       DESCRIPTION
          "Maximum record size for write caching.  This value is not
          applicable to SmartRAID V and later controllers.  For these
          controllers, this value will be 0."
       ::= { dptScsiDevEntry 32 }

    dptScsiDevWriteMode OBJECT-TYPE
       SYNTAX           DeviceWriteMode
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The write modes are Write-back and Write-through, with
           write-back being the default.

           In write-back mode the controller will cache the data
           and return completion to the host before the data is
           written to disk. This is the highest performance mode.

           In write-through mode the controller will always write
           the data to disk before posting complete to the host.
           The data may or may not be placed into the controller's
           cache."
       ::= { dptScsiDevEntry 33 }

    dptScsiDevSmartStatusOk OBJECT-TYPE
       SYNTAX           YesNoStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device has reported a SMART
           error not (not applicable to logical devices)."
       ::= { dptScsiDevEntry 34 }

    dptScsiDevType OBJECT-TYPE
       SYNTAX           DeviceType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION "Type of device reported."
       ::= { dptScsiDevEntry 35  }




    --
    -- dptScsiArr group
    --
    -- This group contains information about the RAID devices.
    --
    -- In case of RAID-0, RAID-1, RAID-5 and redirect, for every
    -- row in this table, there exists a corresponding row in
    -- dptScsiDevTable.
    --
    -- Implementation of this group is optional. This group is
    -- required if the controller is RAID capable.
    --
    dptScsiArrTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiArrEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of RAID array groups."
       ::= { dptScsiArr 1 }

    dptScsiArrEntry OBJECT-TYPE
       SYNTAX           DptScsiArrEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe/control a RAID array group."
       INDEX {
            dptScsiHbaNumber,
            dptScsiBusNumber,
            dptScsiDevId,
            dptScsiDevLun,
            dptScsiDevLevel
            }
       ::= { dptScsiArrTable 1 }

    DptScsiArrEntry ::= SEQUENCE {
       dptScsiArrType                 RaidType,
       dptScsiArrOwner                SoftwareType,
       dptScsiArrName                 DisplayString,
       dptScsiArrBackgroundProgress   INTEGER,
       dptScsiArrEntryStatus          ArrayRowStatus
       }

    dptScsiArrType OBJECT-TYPE
       SYNTAX           RaidType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The RAID type for the Logical Drive.

           ------------------------------
           RAID   Disk-fault No.of
           Level  Tolerant   Drives
           ------------------------------
           RAID-0     No     2 or more

           RAID-1     Yes    Even number

           RAID-5     Yes    3 or more

           Hot Spare  -      one
           Redirected -      one
           JBOD       -      one"

       ::= { dptScsiArrEntry 1 }

    dptScsiArrOwner OBJECT-TYPE
       SYNTAX           SoftwareType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "software entity that created this logical device."
       ::= { dptScsiArrEntry 2 }

    dptScsiArrName OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..17))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Name of the RAID array group."
       ::= { dptScsiArrEntry 3 }

    dptScsiArrBackgroundProgress OBJECT-TYPE
       SYNTAX           INTEGER (0..100)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Percentage of completion of an outstanding background
           operation, e.g., array Build, Rebuild or Verify.

           If there is no current background process, the value is 100
           by default."
       ::= { dptScsiArrEntry 4 }

    dptScsiArrEntryStatus OBJECT-TYPE
       SYNTAX           ArrayRowStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "- 'active': indicates that the table row is available for
             use by the managed device;
           - 'notInService': indicates that the table row
             exists in the agent, but is unavailable for use by the
             managed device (see NOTE below);
           - 'notReady': indicates that the table row exists
             in the agent, but is missing information necessary in
             order to be available for use by the managed device;
           - 'createAndGo': supplied by a management station
             wishing to create a new instance of a table row and
             to have it available for use by the managed device;
             (cannot be returned in a get response)
           - 'createAndWait': supplied by a management station
             wishing to create a new instance of a table row but
             not to have it available for use by the managed device;
             and,
             (cannot be returned in a get response)
           - 'destroy': supplied by a management station wishing
             to delete all of the objects associated with an
             existing table row.
             (cannot be returned in a get response)

           To create new row, a manager sets this object to
           createAndWait.  Agent creates a new row and sets row
           status to notInService.  After the manager creates
           all the corresponding rows in dptScsiArrMemberTable
           and has set all the relevant columnar objects, it
           finally sets dptScsiArrEntryStatus to active which
           saves all the information to the hardware and performs
           an array build.

           If the manager sets dptScsiArrEntryStatus to active or
           notInService and the required number of drives are
           not members of this array group (for example, a RAID-5
           needs at least 3 drives), then 'inconsistentValue' is
           returned.

           To delete an array group, the manager sets this object to
           destroy. When a row with a particular row index is
           destroyed, all corresponding rows in dptScsiArrMemberTable
           are destroyed as well.

           +---------------+    +--------------+    +--------+
           | doesn't exist | -> | notInService | -> | active |
           +---------------+    +--------------+    +--------+
           Array group is       Array group is      Array group is
           not created          created in the      saved to hardware
                                agent               and a build is
                                                    performed"
       ::= { dptScsiArrEntry 5 }


    dptScsiHbaNumberMember OBJECT-TYPE
       SYNTAX           INTEGER (0..255)
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
            "An index that uniquely identifies a row in the
            dptHbaTable table that pertain to a particular HBA.
            The value of this object is the logical device identifier
            for a DPT adapter. In EISA systems, EISA bus slots are
            scanned, starting from the lowest slot, looking for DPT
            adapters.
            In ISA system, DPT adapters are scanned in order of I/O
            address. As DPT adapters are found, they are assigned
            numbers incrementally, starting with 0."
       ::= { dptScsiDummy 1 }

    dptScsiBusNumberMember OBJECT-TYPE
       SYNTAX           INTEGER (0..255)
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "An index that, along with dptScsHbaNumber uniquely,
           identifies an entry in the dptScsiBusTable for a
           particular SCSI Bus."
       ::= { dptScsiDummy 2 }

    dptScsiDevIdMember OBJECT-TYPE
       SYNTAX           INTEGER (0..15)
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "The SCSI Id of the device."
       ::= { dptScsiDummy 3 }

    dptScsiDevLunMember OBJECT-TYPE
       SYNTAX           INTEGER (0..7)
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "The SCSI logical unit number of the device."
       ::= { dptScsiDummy 4 }

    dptScsiDevLevelMember OBJECT-TYPE
       SYNTAX           INTEGER (0..2)
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether the device is a physical device
           (level 0) or a logical device (level 1, level 2, etc).
           It also gives its level in the containment hierarchy of
           devices.

           A device is a logical device if it contains other
           SCSI devices, otherwise it is a physical device.

           A level 1 array contains only physical devices as its
           members; a level 2 device has at least one
           level 1 array as a member; and so on.

           In the case of HBA with no RAID capabilities, the only
           applicable device level is 0."
       ::= { dptScsiDummy 5 }

    --
    -- This table determines the members of an RAID array.
    --
    dptScsiArrMemberTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiArrMemberEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of mappings between an array device and its
           components."
       ::= { dptScsiArr 2 }

    dptScsiArrMemberEntry OBJECT-TYPE
       SYNTAX           DptScsiArrMemberEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe/control the mappings
           between an array and its components. In the index
           clause, the first set of indices from dptScsiHbaNumber
           to dptScsiDevLevel describes the array (parent)
           and the second set represents the member (child)."
       INDEX {
            dptScsiHbaNumber,
            dptScsiBusNumber,
            dptScsiDevId,
            dptScsiDevLun,
            dptScsiDevLevel,
            dptScsiHbaNumberMember,
            dptScsiBusNumberMember,
            dptScsiDevIdMember,
            dptScsiDevLunMember,
            dptScsiDevLevelMember
            }
       ::= { dptScsiArrMemberTable 1 }

    DptScsiArrMemberEntry ::= SEQUENCE {
       dptScsiArrMemberStripeSize       INTEGER,
       dptScsiArrMemberEntryStatus      ArrayRowStatus
       }

    dptScsiArrMemberStripeSize OBJECT-TYPE
       SYNTAX           INTEGER (0..65535)
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The stripe size used by the array (in KB). A stripe is
           a contiguous region for data storage on a disk. Data is
           distributed evenly across component drives in an array
           by concatenating interleaved stripes from each drive.
           If stripe size is not applicable to a particular type
           of RAID (e.g., hot spare), the value is 0."
       ::= { dptScsiArrMemberEntry 1 }

    dptScsiArrMemberEntryStatus OBJECT-TYPE
       SYNTAX           ArrayRowStatus
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "To create a new row, manager sets this object to
           createAndWait. After successful creation of a row
           in the agent, it is set to notInService until the
           parent array is made active and at that time it
           is set to active as well.

           Setting it to createAndGo has the same effect as
           that of createAndWait.

           +---------------+    +--------------+    +--------+
           | doesn't exist | -> | notInService | -> | active |
           +---------------+    +--------------+    +--------+
                                A new row is        Array group is
                                created in the      saved to hardware
                                agent               and a build is
                                                    performed"
       ::= { dptScsiArrMemberEntry 2 }




    --
    -- dptScsiStats group
    --
    -- This group contains statistical information about the controllers,
    -- SCSI devices and arrays.
    --
    -- Implementation of this group is optional.
    --

    --
    -- The Host Bus Adapter statistics table. This table holds statistics
    -- for all controllers.
    --
    dptScsiStatsHbaTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiStatsHbaEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of controller statistics."
       ::= { dptScsiStats 1 }

    dptScsiStatsHbaEntry OBJECT-TYPE
       SYNTAX           DptScsiStatsHbaEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe the statistics of an controller."
       INDEX {
            dptScsiHbaNumber
            }
       ::= { dptScsiStatsHbaTable 1 }

    DptScsiStatsHbaEntry ::= SEQUENCE {
       dptScsiStatsHbaCacheTotalPages            Gauge,
       dptScsiStatsHbaCacheUsedPages             Gauge,
       dptScsiStatsHbaCacheDirtyPages            Gauge,
       dptScsiStatsHbaCacheReadAheadPages        Gauge,
       dptScsiStatsHbaCacheLockedPages           Gauge,
       dptScsiStatsHbaCacheEccFaultPages         Gauge,
       dptScsiStatsHbaCommands                   Counter,
       dptScsiStatsHbaMisAlignedTransfers        Counter,
       dptScsiStatsHbaScsiResets                 Counter
       }

    dptScsiStatsHbaCacheTotalPages OBJECT-TYPE
       SYNTAX           Gauge
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the maximum number of data pages that
          can be cached on the controller. A page is the smallest
          region of cache that can be allocated to store data.
          Each page holds one 512-byte disk sector. The value
          of this object depends on the memory configuration
          of the controller."
       ::= { dptScsiStatsHbaEntry 1 }

    dptScsiStatsHbaCacheUsedPages OBJECT-TYPE
       SYNTAX           Gauge
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the number of data pages residing in the
           cache memory. This has the same value as
           dptHbaCacheTotalPages when the cache is full."
       ::= { dptScsiStatsHbaEntry 2 }

    dptScsiStatsHbaCacheDirtyPages OBJECT-TYPE
       SYNTAX           Gauge
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the number of cache pages that contain dirty
           data. Dirty data is the data which has been written to
           the adapter by the computer but has not yet been copied
           to the disk. This object has a value of 0 after the
           cache is flushed or allowed to write-back during a
           period of no disk activity."
       ::= { dptScsiStatsHbaEntry 3 }

    dptScsiStatsHbaCacheReadAheadPages OBJECT-TYPE
       SYNTAX           Gauge
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the number of cache pages that contain
           read-ahead data. Read-ahead data is read from the
           drives in anticipation of a future access."
       ::= { dptScsiStatsHbaEntry 4 }

    dptScsiStatsHbaCacheLockedPages OBJECT-TYPE
       SYNTAX           Gauge
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates the number of data pages residing in the cache
           memory that are presently locked. These data pages do
           not get paged out until the locks are released."
       ::= { dptScsiStatsHbaEntry 5 }

    dptScsiStatsHbaCacheEccFaultPages OBJECT-TYPE
       SYNTAX           Gauge
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of cache pages that have had Error
           Correcting Code (ECC) fault and had been reassigned
           since power up.
           ECC is a method of generating redundant information
           that can be used to detect and correct errors in
           stored or transmitted data. "
       ::= { dptScsiStatsHbaEntry 6 }

    dptScsiStatsHbaCommands OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of commands received by the controller since
           power up."
       ::= { dptScsiStatsHbaEntry 7 }

    dptScsiStatsHbaMisAlignedTransfers OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
         "The number of misaligned data transfers handled by
          the controller since power up. In a misaligned data transfer,
          data is accessed on odd byte boundary. These transfers
          normally take longer to complete than aligned transfers."
       ::= { dptScsiStatsHbaEntry 8 }

    dptScsiStatsHbaScsiResets OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
         "The number of SCSI reset commands received by the adapter
          since power up."
       ::= { dptScsiStatsHbaEntry 9 }



    --
    -- dptScsiStatsDevTable contains statistical information about SCSI
    -- devices and RAID devices.
    --
    dptScsiStatsDevTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiStatsDevEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A list of Device statistics."
       ::= { dptScsiStats 2 }

    dptScsiStatsDevEntry OBJECT-TYPE
       SYNTAX           DptScsiStatsDevEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe the statistics of a device.
           The index of this entry is the logical device address of
           the device. The logical device address consists of four
           fields: controller number, bus number, device ID, logical unit
           number and level."
       INDEX {
            dptScsiHbaNumber,
            dptScsiBusNumber,
            dptScsiDevId,
            dptScsiDevLun,
            dptScsiDevLevel
            }
       ::= { dptScsiStatsDevTable 1 }

    DptScsiStatsDevEntry ::= SEQUENCE {
       dptScsiStatsDevReadTotalSectors        Counter,
       dptScsiStatsDevReadCacheHits           Counter,
       dptScsiStatsDevReadAheadHits           Counter,
       dptScsiStatsDevWriteTotalSectors       Counter,
       dptScsiStatsDevWriteCacheHits          Counter,
       dptScsiStatsDevWriteBacks              Counter,
       dptScsiStatsDevStripesCrosseds         Counter
       }

    dptScsiStatsDevReadTotalSectors OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of sectors read from the device since power up."
       ::= { dptScsiStatsDevEntry 1 }

    dptScsiStatsDevReadCacheHits OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of data accesses since power up in which the
           requested data was found in the cache."
       ::= { dptScsiStatsDevEntry 2 }

    dptScsiStatsDevReadAheadHits OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of data accesses since power up in which the
           requested data was found in the read ahead buffer."
       ::= { dptScsiStatsDevEntry 3 }

    dptScsiStatsDevWriteTotalSectors OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of sectors written to the device since power up."
       ::= { dptScsiStatsDevEntry 4 }

    dptScsiStatsDevWriteCacheHits OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of data writes, since power up, targeted to
           the device in which the data was  written to the cache
           and not to the disk."
       ::= { dptScsiStatsDevEntry 5 }

    dptScsiStatsDevWriteBacks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of data writes to the device since power up
           in which the data was written from the cache to the
           disk at a time when the device would otherwise be idle."
       ::= { dptScsiStatsDevEntry 6 }

    dptScsiStatsDevStripesCrosseds OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of array group accesses that cross stripe
           boundaries since power up. Only applicable in case
           of array devices; in other cases, it contains zero."
       ::= { dptScsiStatsDevEntry 7 }



    --
    -- dptScsiStatsDevRWCmdsTable: this table contains statistics
    -- related to both "host" read and write commands (i.e.,
    -- commands sent by the host computer targeted to a
    -- device) as well as "physical" commands (i.e., the actual
    -- commands sent over the bus and reach the targeted device).
    -- The following cases explain which statistics are applicable
    -- in each case.
    --
    -- Controller has cache: (may or may not have a RAID module)
    -- ---------------------
    -- If a row in this table represents
    -- 1. a stand alone physical device (i.e., it is neither an
    --    RAID array nor a component of an array) then both physical
    --    and host statistics apply.
    --
    -- 2. an RAID array then only the host statistics apply and there
    --    are no physical statistics.
    --    A hot spare is an exception. It has no host statistics
    --    either, for it is not visible to the host.
    --
    -- 3. a component of an array then only physical statistics apply
    --    and there are no host statistics.
    --    A hot spare is an exception. It has no physical statistics
    --    either, for it is used as a stand by and does not directly
    --    participate in any RAID array.
    --
    -- Controller has no cache: (and hence cannot have RAID arrays)
    -- ------------------------
    -- 1. The host statistics and the physical statistics are the same.
    --
    dptScsiStatsDevRWCmdsTable OBJECT-TYPE
       SYNTAX           SEQUENCE OF DptScsiStatsDevRWCmdsEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "A statistical breakdown of read and write commands."
       ::= { dptScsiStats 3 }

    dptScsiStatsDevRWCmdsEntry OBJECT-TYPE
       SYNTAX           DptScsiStatsDevRWCmdsEntry
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "These parameters describe the statistics of a device.
           The index is the logical device address of the device.
           The logical device address consists of: contoller number, bus
           number, device ID and logical unit number and device level."
       INDEX {
            dptScsiHbaNumber,
            dptScsiBusNumber,
            dptScsiDevId,
            dptScsiDevLun,
            dptScsiDevLevel,
            dptScsiStatsDevRWCmdsType
            }
       ::= { dptScsiStatsDevRWCmdsTable 1 }

    DptScsiStatsDevRWCmdsEntry ::= SEQUENCE {
       dptScsiStatsDevRWCmdsType       CommandType,
       dptScsiStatsDevRead1Ks          Counter,
       dptScsiStatsDevRead2Ks          Counter,
       dptScsiStatsDevRead4Ks          Counter,
       dptScsiStatsDevRead8Ks          Counter,
       dptScsiStatsDevRead16Ks         Counter,
       dptScsiStatsDevRead32Ks         Counter,
       dptScsiStatsDevRead64Ks         Counter,
       dptScsiStatsDevRead128Ks        Counter,
       dptScsiStatsDevRead256Ks        Counter,
       dptScsiStatsDevRead512Ks        Counter,
       dptScsiStatsDevRead1MBs         Counter,
       dptScsiStatsDevReadGreater1MBs  Counter,
       dptScsiStatsDevWrite1Ks         Counter,
       dptScsiStatsDevWrite2Ks         Counter,
       dptScsiStatsDevWrite4Ks         Counter,
       dptScsiStatsDevWrite8Ks         Counter,
       dptScsiStatsDevWrite16Ks        Counter,
       dptScsiStatsDevWrite32Ks        Counter,
       dptScsiStatsDevWrite64Ks        Counter,
       dptScsiStatsDevWrite128Ks       Counter,
       dptScsiStatsDevWrite256Ks       Counter,
       dptScsiStatsDevWrite512Ks       Counter,
       dptScsiStatsDevWrite1MBs        Counter,
       dptScsiStatsDevWriteGreater1MBs Counter
       }

    dptScsiStatsDevRWCmdsType OBJECT-TYPE
       SYNTAX           CommandType
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "Indicates whether this row represents statistics related to
           the commands sent by the O/S of the host computer or the
           SCSI commands sent by the controller to the device to do a
           physical read or write."
       ::= { dptScsiStatsDevRWCmdsEntry 1 }

    dptScsiStatsDevRead1Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length <= 1K."
       ::= { dptScsiStatsDevRWCmdsEntry 2 }

    dptScsiStatsDevRead2Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length > 1K & <= 2K."
       ::= { dptScsiStatsDevRWCmdsEntry 3 }

    dptScsiStatsDevRead4Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length > 2K & <= 4K."
       ::= { dptScsiStatsDevRWCmdsEntry 4 }

    dptScsiStatsDevRead8Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length > 4K & <= 8K."
       ::= { dptScsiStatsDevRWCmdsEntry 5 }

    dptScsiStatsDevRead16Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length > 8K <= 16K."
       ::= { dptScsiStatsDevRWCmdsEntry 6 }

    dptScsiStatsDevRead32Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of
           length > 16K & <= 32K."
       ::= { dptScsiStatsDevRWCmdsEntry 7 }

    dptScsiStatsDevRead64Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of
           length > 32K & <= 64k."
       ::= { dptScsiStatsDevRWCmdsEntry 8 }

    dptScsiStatsDevRead128Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of
           length > 64K & <= 128K."
       ::= { dptScsiStatsDevRWCmdsEntry 9 }

    dptScsiStatsDevRead256Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length
           > 128K & <= 256K."
       ::= { dptScsiStatsDevRWCmdsEntry 10 }

    dptScsiStatsDevRead512Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length
           > 256K & <= 512K."
       ::= { dptScsiStatsDevRWCmdsEntry 11 }

    dptScsiStatsDevRead1MBs OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length
           > 512K & <= 1M."
       ::= { dptScsiStatsDevRWCmdsEntry 12 }

    dptScsiStatsDevReadGreater1MBs OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group read operations of length > 1M."
       ::= { dptScsiStatsDevRWCmdsEntry 13 }

    dptScsiStatsDevWrite1Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of length <= 1K."
       ::= { dptScsiStatsDevRWCmdsEntry 14 }

    dptScsiStatsDevWrite2Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of length
           > 1K & <= 2K."
       ::= { dptScsiStatsDevRWCmdsEntry 15 }

    dptScsiStatsDevWrite4Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of length
           > 2K & <= 4K."
       ::= { dptScsiStatsDevRWCmdsEntry 16 }

    dptScsiStatsDevWrite8Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of length
           > 4k & <= 8K."
       ::= { dptScsiStatsDevRWCmdsEntry 17 }

    dptScsiStatsDevWrite16Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of
           length > 8K & <= 16K."
       ::= { dptScsiStatsDevRWCmdsEntry 18 }

    dptScsiStatsDevWrite32Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of
           length > 16K & <= 32K."
       ::= { dptScsiStatsDevRWCmdsEntry 19 }

    dptScsiStatsDevWrite64Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of
           length > 32K & <= 64K."
       ::= { dptScsiStatsDevRWCmdsEntry 20 }

    dptScsiStatsDevWrite128Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of
           length > 64K & <= 128K."
       ::= { dptScsiStatsDevRWCmdsEntry 21 }

    dptScsiStatsDevWrite256Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of
           length > 128K & <= 256K."
       ::= { dptScsiStatsDevRWCmdsEntry 22 }

    dptScsiStatsDevWrite512Ks OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of
           length > 256K & <= 512K."
       ::= { dptScsiStatsDevRWCmdsEntry 23 }

    dptScsiStatsDevWrite1MBs OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of
           length > 512K & <= 1M."
       ::= { dptScsiStatsDevRWCmdsEntry 24 }

    dptScsiStatsDevWriteGreater1MBs OBJECT-TYPE
       SYNTAX           Counter
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
          "The number of ScsiDev Group write operations of length > 1M."
       ::= { dptScsiStatsDevRWCmdsEntry 25 }






    --
    -- Event Group
    --
    -- This group contains objects that are specifically for the
    -- purpose of defining one or more traps.
    --
    -- Implementation of this group is optional.
    --
    dptScsiEventInfo OBJECT-TYPE
       SYNTAX           DisplayString (SIZE (0..256))
       ACCESS           read-only
       STATUS           mandatory
       DESCRIPTION
         "Represents information in a human readable form
          (English string) for generic DPT SCSI system traps."
       ::= { dptScsiEvent 1 }

    dptScsiEventAuxVoltage OBJECT-TYPE
       SYNTAX           LowHighStatus
       ACCESS           not-accessible
       STATUS           mandatory
       DESCRIPTION
          "Auxiliary voltage status reported by the controller."
       ::= { dptScsiEvent 2 }




    --
    -- DPT enterprise trap definitions
    -- The trap notation uses the Novell description standard
    --
    -- Traps are grouped into the following severity levels:
    -- Severity         trap range
    -- Unknown          0..99
    -- Informational    100..199
    -- Minor            200..299
    -- Major            300..399
    -- Critical         400..499
    --

    dptHbaTemperatureVeryHighTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaTemperature,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "Very high temperature detected on controller."
    --Internal events: 0x18
    --#TYPE "Very high temperature on controller"
    --#SUMMARY "Very high temperature on controller %d"
    --#ARGUMENTS {1}
    --#SEVERITY CRITICAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 400

    dptArrayStatusChangeFailedTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevStatus,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "Array Failed due to multiple drive failures."
    --Internal events: 0x0B w/ sub-codes in event.
    --#TYPE "Array failed"
    --#SUMMARY "Array failed on Controller %d Bus %d ID %d LUN %d."
    --#ARGUMENTS {1,2,3,4}
    --#SEVERITY CRITICAL
    --#TIMEINDEX 99
    --#STATE NONOPERATIONAL
       ::= 401

    dptHbaVoltageChangeTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaVoltage,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "Controller detected 5V voltage is outside of the normal range."
    --Internal events: 0x13, 0x15
    --#TYPE "5V Voltage outside range on controller"
    --#SUMMARY "5V Voltage status is now %d on controller %d"
    --#ARGUMENTS {0,1}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 300

    dptHbaTemperatureHighTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaTemperature,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "High temperature detected on controller."
    --Internal events: 0x17
    --#TYPE "High temperature on controller"
    --#SUMMARY "High temperature on controller %d"
    --#ARGUMENTS {1}
    --#SEVERITY MINOR
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 301

    dptHbaEccRAMErrorUncorrectableTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaBadMemoryAddress,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "The controller detected and uncorrectable ECC RAM error.
           dptScsiHbaBadMemoryAddress contains the RAM address."
    --Internal events: 0x3007
    --#TYPE "Controller detected an ECC RAM error that could not be corrected"
    --#SUMMARY "Uncorrectable ECC error found on controller %d"
    --#ARGUMENTS {1}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE NONOPERATIONAL
       ::= 302

    dptArrayStatusChangeDegradedTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevStatus,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "Array Degraded due to drive failure."
    --Internal events: 0x0B w/ sub-codes in event.
    --#TYPE "Array degraded"
    --#SUMMARY "Array on Controller %d Bus %d ID %d LUN %d running degraded."
    --#ARGUMENTS {1,2,3,4}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 303

    dptDevReqSenseSeriousErrorTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevLastReqSenseInfo,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "Serious: request sense information from controller."
    --Internal events: 0x3004
    --#TYPE "Serious: Request sense data received."
    --#SUMMARY "Serious: Request sense data for controller %d Bus %d ID %d LUN %d."
    --#ARGUMENTS {1,2,3,4}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE NONOPERATIONAL
       ::= 304

    dptDevArrayDataInconsistencyTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevBadBlockNumber,
                 dptScsiDevBadBlockCount,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "Array Data consistency error detected on controller."
    --Internal events: 0x300C
    --#TYPE "Array data inconsistency found."
    --#SUMMARY "Array Data Inconsistency: Controller %d Bus %d ID %d LUN %d."
    --#ARGUMENTS {2,3,4,5}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE DEGRADED
       ::= 305

    dptHbaErrorTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "The controller has detected a non-SCSI related error, as defined in the I2O spec."
    --Internal events: 0x3005
    --#TYPE "controller error found."
    --#SUMMARY "controller %d reported a non-SCSI related error."
    --#ARGUMENTS {0}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE DEGRADED
       ::= 306

    dptDevFailedTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "An unprotected drive has failed (visible to the OS)."
    --Internal events: 0x4012
    --#TYPE "Unprotected drive has failed."
    --#SUMMARY "Drive failure on controller %d Bus %d ID %d LUN %d."
    --#ARGUMENTS {0,1,2,3}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE DEGRADED
       ::= 307

    dptDevSmartFailedTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "A drive has reported a SMART failure."
    --Internal events: 0x401B
    --#TYPE "SMART failure reported."
    --#SUMMARY "SMART failure on controller %d Bus %d ID %d LUN %d reported."
    --#ARGUMENTS {0,1,2,3}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE DEGRADED
       ::= 308

    dptHbaAuxVoltageChangeTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiEventAuxVoltage,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "Controller detected an auxiliary voltage is outside of the
                  normal range."
    --Internal events: 0x33, 0x35, 0x36, 0x38, 0x39, 0x3B, 0x46, 0x48,
    --                 0x49, 0x4B, 0x4C, 0x4E
    --#TYPE "Auxiliary voltage outside range on controller"
    --#SUMMARY "An auxiliary voltage status is now %d on controller %d"
    --#ARGUMENTS {0,1}
    --#SEVERITY MAJOR
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 309

    dptHbaEccRAMErrorCorrectedTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaBadMemoryAddress,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "The controller detected and corrected an ECC RAM error.
           dptScsiHbaBadMemoryAddress contains the RAM address."
    --Internal events: 0x2007
    --#TYPE "ECC RAM Error detected and corrected."
    --#SUMMARY "Correctable ECC RAM Error detected on controller %d"
    --#ARGUMENTS {1}
    --#SEVERITY MINOR
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 200

    dptDevBlockReassignedTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevBadBlockNumber,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "Controller reassigned a block. dptScsiDevBadBlockNumber
           contains the reassigned block number."
    --Internal events: 0x0006
    --#TYPE "Disk block was reassigned"
    --#SUMMARY "Block %d reassigned: Controller %d Bus %d ID %d LUN %d"
    --#ARGUMENTS {0,1,2,3,4}
    --#SEVERITY MINOR
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 201

    dptDevReqSenseErrorTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevLastReqSenseInfo,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "Warning: request sense information from controller."
    --Internal events: 0x2004
    --#TYPE "Warning: request sense data received."
    --#SUMMARY "Warning: Request sense data for controller %d Bus %d ID %d LUN %d."
    --#ARGUMENTS {1,2,3,4}
    --#SEVERITY MINOR
    --#TIMEINDEX 99
    --#STATE DEGRADED
       ::= 202

    dptHbaVoltageNormalTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaVoltage,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "5V Voltage has returned to the normal range."
    --Internal events: 0x14
    --#TYPE "Normal 5V voltage on controller"
    --#SUMMARY "Normal 5V voltage restored on controller %d"
    --#ARGUMENTS {1}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 100

    dptHbaTemperatureNormalTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaTemperature,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "Temperature on controller has returned to normal range."
    --Internal events: 0x16
    --#TYPE "Normal temperature on controller "
    --#SUMMARY "Normal temperature restored on controller %d"
    --#ARGUMENTS {1}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 101

    dptHbaEccRAMErrorNotFoundTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaBadMemoryAddress,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "Controller detected an ECC RAM Error but an ECC error was not
           found when correction was attempted."
    --Internal events: 0x1007

    --#TYPE "ECC RAM Error detected but not found on correction."
    --#SUMMARY "ECC RAM Error detected at %d on controller %d, but not found."
    --#ARGUMENTS {0,1}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 102

    dptDevStatusChangedTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevStatus,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "Status of the device changed."
    --Internal events: 0x0B w/ sub-codes in event.
    --#TYPE "Device status change"
    --#SUMMARY "Device status on Controller %d Bus %d ID %d LUN %d : %d."
    --#ARGUMENTS {1,2,3,4,0}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 103

    dptDevReqSenseTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiDevLastReqSenseInfo,
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
           "Request sense information received from controller."
    --Internal events: 0x0004
    --#TYPE "Request sense received from controller."
    --#SUMMARY "Request sense data for controller %d Bus %d ID %d LUN %d."
    --#ARGUMENTS {1,2,3,4}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 104

   dptArrayChangeTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaNumber,
                 dptScsiBusNumber,
                 dptScsiDevId,
                 dptScsiDevLun,
                 dptScsiDevLevel
                 }
       DESCRIPTION
          "The software has asked the FW to do an array change."
    --Internal events: 0x0009
    --#TYPE "Array change."
    --#SUMMARY "Array change on controller %d Bus %d ID %d LUN %d."
    --#ARGUMENTS {0,1,2,3}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OERATIONAL
       ::= 105

   dptBatteryChangeTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaNumber,
                 dptScsiHbaBatteryStatus
                 }
       DESCRIPTION
          "The status of the recharchable battery has changed."
    --Internal events: 0x4043
    --#TYPE "Battery status change."
    --#SUMMARY "Battery status is now %d on controller %d."
    --#ARGUMENTS {1,0}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OERATIONAL
       ::= 106

    dptHbaAuxVoltageNormalTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiEventAuxVoltage,
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "An auxiliary voltage has returned to the normal range."
    --Internal events: 0x34, 0x37, 0x3A, 0x47, 0x4A, 0x4D
    --#TYPE "Normal auxiliary voltage on controller"
    --#SUMMARY "Normal auxiliary voltage restored on controller %d"
    --#ARGUMENTS {1}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 107

    dptHbaNoSparesTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiHbaNumber
                 }
       DESCRIPTION
          "No available hot spares detected during a scan."
    --Internal events: 0x56
    --#TYPE "No hot spares detected on controller"
    --#SUMMARY "No available hot spares were detected during a scan on controller %d"
    --#ARGUMENTS {0}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 108


    dptOtherTrap TRAP-TYPE
       ENTERPRISE       dpt
       VARIABLES {
                 dptScsiEventInfo
                 }
       DESCRIPTION
          "Controller event generated with a value dptScsiEventInfo."
    --Internal events: all remaining codes
    --#TYPE "Controller generated an event"
    --#SUMMARY "Controller generated event: %s"
    --#ARGUMENTS {0}
    --#SEVERITY INFORMATIONAL
    --#TIMEINDEX 99
    --#STATE OPERATIONAL
       ::= 14


END
