-- ***************************************************************************
--    FILE_HEADER_BEGIN
--    NAME
--      $Source: W:/SW/SNMP/RCS/icpctrl.mib $
--    REVISION
--      $Revision: 1.1.1.3 $
--    DATE
--      $Date: 1998/07/17 16:29:29 $
--    PROGRAMMER
--      $Author: wos $
--    HISTORY
--      $Log: icpctrl.mib $
--      Revision 1.1.1.3  1998/07/17 16:29:29  wos
--      Fixed more entries for the ManageWise MIB-compiler. Especially
--        the trap-section was enhanced.
--
--      Revision 1.1.1.2  1998/04/17 21:43:34  wos
--      Fixed some entries for the ManageWise MIB-compiler.
--
--      Revision 1.1.1.1  1998/04/17 21:35:37  wos
--      Naming revised.
--
--      Revision 1.1  1996/07/04 11:40:11  WOS
--      Initial revision
--
--    FILE_HEADER_END
-- ***************************************************************************
--      Copyright 1996-98 by vortex Computersysteme GmbH, D-74223 Flein
--                          All rights reserved!
-- ***************************************************************************


-- Version 1.3
-- Please discard former releases.

ICP-CONTROLLER-MIB DEFINITIONS ::= BEGIN

IMPORTS
        enterprises, Counter, Gauge, TimeTicks
            FROM RFC1155-SMI
        DisplayString
            FROM RFC1213-MIB
        OBJECT-TYPE
            FROM RFC-1212;

--  This MIB module uses the extended OBJECT-TYPE macro as
--  defined in [14];


icp-vortex      OBJECT IDENTIFIER ::= { enterprises 1483 }
raidSystems     OBJECT IDENTIFIER ::= { icp-vortex 1 }


--  IMPORTANT NOTE
--  ==============
--  This MIB describes data which can be retrieved from GDT Cache/RAID
--  controllers.

raidController  OBJECT IDENTIFIER ::= { raidSystems 1 }


        --      The Controller-Group

        --      begin the description of the tabular object
        --      describing the installed controllers

        controllerTable OBJECT-TYPE
                SYNTAX  SEQUENCE OF ControllerEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "A list of controller-entries."
            ::= { raidController 1 }

        controllerEntry OBJECT-TYPE
                SYNTAX  ControllerEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "An entry in the controller-table."
                INDEX   { ctrlIdx }
            ::= { controllerTable 1 }

        ControllerEntry ::= SEQUENCE {
                ctrlIdx                 INTEGER,
                ctrlName                DisplayString,
                ctrlAddr                DisplayString,
                ctrlFirmware            DisplayString,
                ctrlFeatures            DisplayString,
                ctrlSerial              DisplayString,
                ctrlCPU                 DisplayString,
                ctrlChanCnt             INTEGER,
                ctrlCacheSize           INTEGER,
                ctrlCacheState          INTEGER,
                ctrlUpdateRate          INTEGER,
                ctrlPercentDirty        Gauge,
                ctrlPercentRdHit        Gauge,
                ctrlPercentWrHit        Gauge,
                ctrlAPercentRdHit       Gauge,
                ctrlAPercentWrHit       Gauge,
                ctrlReplacements        Counter,
                ctrlCacheWrites         Counter,
                ctrlFlushWrite          Counter
                }


        ctrlIdx OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Used to refer to a specific controller."
            ::= { controllerEntry 1 }

        ctrlName OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The name of this controller."
            ::= { controllerEntry 2 }

        ctrlAddr OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The address of this controller (slot,...)."
            ::= { controllerEntry 3 }

        ctrlFirmware OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The firmware version running here."
            ::= { controllerEntry 4 }

        ctrlFeatures OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "A list of shortcuts describing firmware features:
                        C : Chaining
                        S : Striping
                        M : Mirroring
                        R : RAIDYNE"
            ::= { controllerEntry 5 }

        ctrlSerial OBJECT-TYPE
                SYNTAX  DisplayString
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The serial number of this controller."
            ::= { controllerEntry 6 }

        ctrlCPU OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The main processor of this controller."
            ::= { controllerEntry 7 }

        ctrlChanCnt OBJECT-TYPE
                SYNTAX  INTEGER         (1..5)
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "How many SCSI channels are installed."
            ::= { controllerEntry 8 }

        ctrlCacheSize OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Size of controller-cache in kB."
            ::= { controllerEntry 9 }

        ctrlCacheState OBJECT-TYPE
                SYNTAX  INTEGER { off(0),
                                  writeThrough(1),
                                  writeBack(2)
                                }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Lists/controls the cache-behaviour."
            ::= { controllerEntry 10 }

        ctrlUpdateRate OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Sample rate for variable data in seconds.
                        Setting this value will start data to be
                        collected, 0 disables sampling."
            ::= { controllerEntry 11 }

        ctrlPercentDirty OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Dirty cache-buffers in percent."
            ::= { controllerEntry 12 }

        ctrlPercentRdHit OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read request cache hits in percent."
            ::= { controllerEntry 13 }

        ctrlPercentWrHit OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write request cache hits in percent."
            ::= { controllerEntry 14 }

        ctrlAPercentRdHit OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Average hit rate on reads. Set to clear."
            ::= { controllerEntry 15 }

        ctrlAPercentWrHit OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Average hit rate on writes. Set to clear."
            ::= { controllerEntry 16 }

        ctrlReplacements OBJECT-TYPE
                SYNTAX  Counter
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Total count of cache block replacements.
                        Set to clear"
            ::= { controllerEntry 17 }

        ctrlCacheWrites OBJECT-TYPE
                SYNTAX  Counter
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "How often the cache had to write cache blocks
                        before accepting new data.
                        Set to clear."
            ::= { controllerEntry 18 }

        ctrlFlushWrites OBJECT-TYPE
                SYNTAX  Counter
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "How often the flush process wrote to disk.
                        Set to clear."
            ::= { controllerEntry 19 }



        --      The Array-Drive-Group

        --      begin the description of the tabular object
        --      describing the installed array drives on
        --      all controllers

        adriveTable OBJECT-TYPE
                SYNTAX  SEQUENCE OF ADriveEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "A list of Array-Drive entries."
            ::= { raidController 2 }

        adriveEntry OBJECT-TYPE
                SYNTAX  ADriveEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "An entry in the Array-Drive table."
                INDEX   { adrvCtrlIdx, adrvIdx }
            ::= { adriveTable 1 }

        ADriveEntry ::= SEQUENCE {
                adrvIdx         INTEGER,
                adrvName        DisplayString,
                adrvType        INTEGER,
                adrvNo          INTEGER,
                adrvCtrlIdx     INTEGER,
                adrvCtrlID      OBJECT IDENTIFIER,
                adrvSize        INTEGER,
                adrvState       INTEGER,
                adrvReadIORate  Gauge,
                adrvWriteIORate Gauge,
                adrvReadKBRate  Gauge,
                adrvWriteKBRate Gauge
                }

        adrvIdx OBJECT-TYPE
                SYNTAX INTEGER          (1..35)
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "As indexes may not be zero, this value
                        (which contains adrvNo+1) is used instead of adrvNo."
            ::= { adriveEntry 1 }

        adrvName OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "The name of this Array-Drive."
            ::= { adriveEntry 2 }

        adrvType OBJECT-TYPE
                SYNTAX  INTEGER { single(0),
                                  raid0(1),
                                  raid1(2),
                                  raid4(3),
                                  raid5(4),
                                  raid10(5),
                                  raid53(6)
                                }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The RAID type of this Array-Drive (RAIDx)."
            ::= { adriveEntry 3 }

        adrvNo OBJECT-TYPE
                SYNTAX INTEGER          (0..34)
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "The local handle of this Array-Drive."
            ::= { adriveEntry 4 }


        adrvCtrlIdx OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The index of the controller
                        where this Array-Drive is located."
            ::= { adriveEntry 5 }

        adrvCtrlID OBJECT-TYPE
                SYNTAX  OBJECT IDENTIFIER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the controller
                        where this Array-Drive is located."
            ::= { adriveEntry 6 }

        adrvSize OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The Array-Drive size in KB."
            ::= { adriveEntry 7 }

        adrvState OBJECT-TYPE
                SYNTAX  INTEGER { ready(0),
                                  build(1),
                                  fail(2),
                                  error(3)
                                }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The status of the Array-Drive."
            ::= { adriveEntry 8 }

        adrvReadIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read I/O-requests per seconds in last intervall.
                        Set to clear."
            ::= { adriveEntry 9 }

        adrvReadKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read rate in last intervall. Set to clear."
            ::= { adriveEntry 10 }

        adrvWriteIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write I/O-requests per second in last intervall.
                        Set to clear."
            ::= { adriveEntry 11 }

        adrvWriteKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write rate in last intervall. Set to clear."
            ::= { adriveEntry 12 }



        --      The Mirror-Part-Group

        --      begin the description of the tabular object
        --      describing the installed Mirror-Drives on
        --      all controllers

        mirrorTable OBJECT-TYPE
                SYNTAX  SEQUENCE OF MPartEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "A list of Mirror-Drive entries."
            ::= { raidController 3 }

        mpartEntry OBJECT-TYPE
                SYNTAX  MPartEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "An entry in the Mirror-Drive table."
                INDEX   { mpCtrlIdx, mpIdx }
            ::= { mirrorTable 1 }

        MPartEntry ::= SEQUENCE {
                mpIdx           INTEGER,
                mpName          DisplayString,
                mpType          INTEGER,
                mpNo            INTEGER,
                mpCtrlIdx       INTEGER,
                mpCtrlID        OBJECT IDENTIFIER,
                mpAdrvIdx       INTEGER,
                mpAdrvID        OBJECT IDENTIFIER,
                mpSize          INTEGER,
                mpState         INTEGER,
                mpReadIORate    Gauge,
                mpWriteIORate   Gauge,
                mpReadKBRate    Gauge,
                mpWriteKBRate   Gauge
                }

        mpIdx OBJECT-TYPE
                SYNTAX INTEGER          (1..35)
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "As indexes may not be zero, this value
                        (which contains mpNo+1) is used instead of mpNo."
            ::= { mpartEntry 1 }

        mpName OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "The name of this Mirror-Drive."
            ::= { mpartEntry 2 }

        mpType OBJECT-TYPE
                SYNTAX  INTEGER { noMirror(0),
                                  mirrorDrive(1)
                                }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Type of this Mirror-Drive."
            ::= { mpartEntry 3 }

        mpNo OBJECT-TYPE
                SYNTAX INTEGER          (0..34)
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "The local handle of this Mirror-Drive."
            ::= { mpartEntry 4 }


        mpCtrlIdx OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The index of the controller
                        where this Mirror-Drive is located."
            ::= { mpartEntry 5 }

        mpCtrlID OBJECT-TYPE
                SYNTAX  OBJECT IDENTIFIER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the controller
                        where this Mirror-Drive is located."
            ::= { mpartEntry 6 }

        mpAdrvIdx OBJECT-TYPE
                SYNTAX  INTEGER         (1..34)
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The index of the Array-Drive
                        which this Mirror-Drive is part of."
            ::= { mpartEntry 7 }

        mpAdrvID OBJECT-TYPE
                SYNTAX  OBJECT IDENTIFIER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the Array-Drive
                        which this Mirror-Drive is part of."
            ::= { mpartEntry 8 }

        mpSize OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The Mirror-Drive size in KB."
            ::= { mpartEntry 9 }

        mpState OBJECT-TYPE
                SYNTAX  INTEGER { ok(0),
                                  fail(1),
                                  error(2),
                                  build(3)
                                }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The status of the Mirror-Drive."
            ::= { mpartEntry 10 }

        mpReadIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read I/O-requests per seconds in last intervall.
                        Set to clear."
            ::= { mpartEntry 11 }

        mpReadKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read rate in last intervall. Set to clear."
            ::= { mpartEntry 12 }

        mpWriteIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write I/O-requests per second in last intervall.
                        Set to clear."
            ::= { mpartEntry 13 }

        mpWriteKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write rate in last intervall. Set to clear."
            ::= { mpartEntry 14 }



        --      The Chain-Drive-Group

        --      begin the description of the tabular object
        --      describing the installed chained/striped drives on
        --      all controllers

        chainTable OBJECT-TYPE
                SYNTAX  SEQUENCE OF CPartEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "A list of Chain-Drive entries"
            ::= { raidController 4 }

        cpartEntry OBJECT-TYPE
                SYNTAX  CPartEntry
                ACCESS  not-accessible
                STATUS  mandatory
                DESCRIPTION
                        "An entry in the Chain-Drive table."
                INDEX   { cpCtrlIdx, cpIdx }
            ::= { chainTable 1 }

        CPartEntry ::= SEQUENCE {
                cpIdx           INTEGER,
                cpName          DisplayString,
                cpType          INTEGER,
                cpNo            INTEGER,
                cpCtrlIdx       INTEGER,
                cpCtrlID        OBJECT IDENTIFIER,
                cpMPartIdx      INTEGER,
                cpMPartID       OBJECT IDENTIFIER,
                cpSize          INTEGER,
                cpState         INTEGER,
                cpReadIORate    Gauge,
                cpWriteIORate   Gauge,
                cpReadKBRate    Gauge,
                cpWriteKBRate   Gauge
                }

        cpIdx OBJECT-TYPE
                SYNTAX INTEGER          (1..35)
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "As indexes may not be zero, this value
                        (which contains cpNo+1) is used instead of cpNo."
            ::= { cpartEntry 1 }

        cpName OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "The name of the Chain-Drive."
            ::= { cpartEntry 2 }

        cpType OBJECT-TYPE
                SYNTAX  INTEGER { single(0),
                                  chain(1),
                                  stripe(2)
                                }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The type of the Chain-Drive."
            ::= { cpartEntry 3 }

        cpNo OBJECT-TYPE
                SYNTAX INTEGER          (0..34)
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "The local handle of the Chain-Drive."
            ::= { cpartEntry 4 }

        cpCtrlIdx OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The index of the controller
                        where this Chain-Drive is located."
            ::= { cpartEntry 5 }

        cpCtrlID OBJECT-TYPE
                SYNTAX  OBJECT IDENTIFIER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the controller
                        where this Chain-Drive is located."
            ::= { cpartEntry 6 }

        cpMPartIdx OBJECT-TYPE
                SYNTAX  INTEGER         (0..34)
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The local handle of the Mirror-Drive
                        of which this Chain-Drive is part of."
            ::= { cpartEntry 7 }

        cpMPartID OBJECT-TYPE
                SYNTAX  OBJECT IDENTIFIER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the Mirror-Drive
                        of which this Chain-Drive is part of."
            ::= { cpartEntry 8 }

        cpSize OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Chain-Drive size in KB."
            ::= { cpartEntry 9 }

        cpState OBJECT-TYPE
                SYNTAX  INTEGER { ok(0),
                                  error(1)
                                }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Status of the Chain-Drive."
            ::= { cpartEntry 10 }

        cpReadIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read I/O-requests per seconds in last intervall.
                        Set to clear."
            ::= { cpartEntry 11 }

        cpReadKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read rate in last intervall. Set to clear."
            ::= { cpartEntry 12 }

        cpWriteIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write I/O-requests per second in last intervall.
                        Set to clear."
            ::= { cpartEntry 13 }

        cpWriteKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write rate in last intervall. Set to clear."
            ::= { cpartEntry 14 }



        --      The Physical Device Group

        --      begin the description of the tabular object
        --      describing the installed Physical-Devices on
        --      all controllers

        pdevTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF PDevEntry
            ACCESS  not-accessible
            STATUS  optional
            DESCRIPTION
                    "A list of Physical-Device entries."
            ::= { raidController 5 }

        pdevEntry OBJECT-TYPE
            SYNTAX  PDevEntry
            ACCESS  not-accessible
            STATUS  mandatory
            DESCRIPTION
                    "An entry in the Physical-Device table."
            INDEX   { pdevCoord }
            ::= { pdevTable 1 }

        PDevEntry ::= SEQUENCE {
                pdevCoord       OCTET STRING,
                pdevName        DisplayString,
                pdevType        INTEGER,
                pdevChannel     INTEGER,
                pdevTarget      INTEGER,
                pdevLUN         INTEGER,
                pdevCtrlIdx     INTEGER,
                pdevCtrlID      OBJECT IDENTIFIER,
                pdevCPartIdx    INTEGER,
                pdevCPartID     OBJECT IDENTIFIER,
                pdevSize        INTEGER,
                pdevSyncRate    INTEGER,
                pdevDisconnect  INTEGER,
                pdevProtocol    INTEGER,
                pdevDiskCache   INTEGER,
                pdevTaggedQ     INTEGER,
                pdevLastError   INTEGER,
                pdevRetries     Counter,
                pdevReassigns   Counter,
                pdevReadIORate  Gauge,
                pdevWriteIORate Gauge,
                pdevReadKBRate  Gauge,
                pdevWriteKBRate Gauge
                }

        pdevCoord OBJECT-TYPE
                SYNTAX  OCTET STRING    (SIZE (4))
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The coordinate of a certain device.
                        Coordinates are made of
                        'pdevCtrlIdx pdevChannel pdevTarget pdevLUN'."
            ::= { pdevEntry 1 }

        pdevName OBJECT-TYPE
                SYNTAX  DisplayString   (SIZE (1..16))
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The name of device and vendor."
            ::= { pdevEntry 2 }

        pdevType OBJECT-TYPE
                SYNTAX  INTEGER { directAccess(0),
                                  sequentialAccess(1),
                                  printer(2),
                                  processor(3),
                                  worm(4),
                                  cdrom(5),
                                  scanner(6),
                                  optical(7),
                                  changer(8),
                                  communicator(9),
                                  other(10)
                                }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The SCSI-device-type."
            ::= { pdevEntry 3 }

        pdevChannel OBJECT-TYPE
                SYNTAX INTEGER { channelA(0),
                                 channelB(1),
                                 channelC(2),
                                 channelD(3),
                                 channelE(4)
                               }
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The SCSI-channel."
            ::= { pdevEntry 4 }

        pdevTarget OBJECT-TYPE
                SYNTAX  INTEGER         (0..7)
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The SCSI-target-ID."
            ::= { pdevEntry 5 }

        pdevLUN OBJECT-TYPE
                SYNTAX  INTEGER         (0..7)
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The SCSI-logical-unit-number (LUN)."
            ::= { pdevEntry 6 }

        pdevCtrlIdx OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The index of the controller
                        where this device is located."
            ::= { pdevEntry 7 }

        pdevCtrlID OBJECT-TYPE
                SYNTAX  OBJECT IDENTIFIER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the controller
                        where this device is located."
            ::= { pdevEntry 8 }

        pdevCPartIdx OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the Chain-Drive
                        where this device belongs to."
            ::= { pdevEntry 9 }

        pdevCPartID OBJECT-TYPE
                SYNTAX  OBJECT IDENTIFIER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The identification of the Cache-Drive
                        where this device is belongs to."
            ::= { pdevEntry 10 }

        pdevSize OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "The size of the device in KB, if available."
            ::= { pdevEntry 11 }

        pdevSyncRate OBJECT-TYPE
                SYNTAX  INTEGER { async(0),
                                  sync3M6(1),
                                  sync4M0(2),
                                  sync4M4(3),
                                  sync5M0(4),
                                  sync5M7(5),
                                  sync6M7(6),
                                  sync8M0(7),
                                  sync10M0(8),
                                  syncOTHER(9)
                                }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Transfer speed on SCSI channel in MBytes/s."
            ::= { pdevEntry 12 }

        pdevDisconnect OBJECT-TYPE
                SYNTAX  INTEGER { disabled(0),
                                  enabled(1)
                                }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Disconnection-permission."
            ::= { pdevEntry 13 }

        pdevProtocol OBJECT-TYPE
                SYNTAX  INTEGER { unknown(0),
                                  scsiI(1),
                                  scsiII(2),
                                  scsiIII(3)
                                }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "SCSI protocol beeing used."
            ::= { pdevEntry 14 }

        pdevDiskCache OBJECT-TYPE
                SYNTAX  INTEGER { disabled(0),
                                  enabled(1),
                                  notAvailable(2)
                                }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Switch cache state of device,
                        only supported if scsiII/III protocol is selected."
            ::= { pdevEntry 15 }

        pdevTaggedQ OBJECT-TYPE
                SYNTAX  INTEGER { disabled(0),
                                  enabled(1),
                                  notAvailable(2)
                                }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "Allow tagged command queueing,
                        only supported if scsiII/III protocol is selected."
            ::= { pdevEntry 16 }

        pdevLastError OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Last error on this device (displayed in hex)."
            ::= { pdevEntry 17 }

        pdevRetries OBJECT-TYPE
                SYNTAX Counter
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "Documents SCSI protocol errors and
                        should never happen!"
            ::= { pdevEntry 18 }

        pdevReassigns OBJECT-TYPE
                SYNTAX Counter
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                        "Documents medium flaws. They may
                        lead to data errors if occuring during read."
            ::= { pdevEntry 19 }

        pdevReadIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read I/O-requests per seconds in last intervall.
                        Set to clear."
            ::= { pdevEntry 20 }

        pdevReadKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Read rate in last intervall. Set to clear."
            ::= { pdevEntry 21 }

        pdevWriteIORate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write I/O-requests per second in last intervall.
                        Set to clear."
            ::= { pdevEntry 22 }

        pdevWriteKBRate OBJECT-TYPE
                SYNTAX  Gauge
                ACCESS  read-only
                STATUS  mandatory
                DESCRIPTION
                        "Write rate in last intervall. Set to clear."
            ::= { pdevEntry 23 }




--  Define traps that may be generated by the ICP-drivers.
--
--  The VARIABLES clause may only contain objects defined in
--  any MIB.

        driverEvent TRAP-TYPE
                ENTERPRISE      raidController
                DESCRIPTION     "A driver detected an internal error.
                                 A controller/machine may be no longer
                                 functional."
               --#TYPE "ICP: DriverEvent"
               --#SUMMARY "A driver detected an internal error."
               --#ARGUMENTS {}
               --#SEVERITY MAJOR
               --#TIMEINDEX 1
               --#STATE UNKNOWN
                ::= 1

        controllerEvent TRAP-TYPE
                ENTERPRISE      raidController
                VARIABLES       { ctrlIdx }
                DESCRIPTION     "An event was generated by this controller.
                                 Check all drives/devices for state changes."
               --#TYPE "ICP: ControllerEvent"
               --#SUMMARY "An event was generated by this controller.."
               --#ARGUMENTS {}
               --#SEVERITY MAJOR
               --#TIMEINDEX 1
               --#STATE UNKNOWN
                ::= 2

        testEvent TRAP-TYPE
                ENTERPRISE      raidController
                DESCRIPTION     "Somebody generated a test event. Probably
                                 to test this or the mailing interface."
               --#TYPE "ICP: TestEvent"
               --#SUMMARY "Somebody generated a test event."
               --#ARGUMENTS {}
               --#SEVERITY INFORMATIONAL
               --#TIMEINDEX 1
               --#STATE  OPERATIONAL
                ::= 3
        END
