SCC-RAID7-MIB DEFINITIONS ::= BEGIN

--
--  Definitions of Managed Objects for Storage Computer Corporation
--                         RAID7 Objects
--
--                  Name:    sccraid7-mib-v1-0.txt
--                  Version: 1.0
--                  Date:    
--                  Company: Storage Computer Corporation
--                  Mail:    raid7@world.std.com
--  
--  
--  Inquiries about the contents and use of this MIB may be sent to 
--  raid7@world.std.com
--
--
--  The  objects  defined  in  this   MIB   are   located   under   the
--  private.enterprises subtree as shown below:
--
--                    iso(1).org(3).dod(6).internet(1)
--                                 |
--                              private(4)
--                                 |
--                              enterprises(1)
--                                 |
--                              scc(1386)
--                                 |
--                 ._______________.________________.
--                 |                                |
--              products(1)                      sccMibs(2)
--                 |                                |
--                 |                    .___________.___________.
--                 |                    |                       |
--                                    raid7(1)              raid7proxy(2)
--
--
--
--  All objects within this MIB are prefixed with the OBJECT IDENTIFIER 
--
--      iso(1).org(3).dod(6).internet(1).private(4).enterprises(1).
--          scc(1386).sccMibs(2).raid7(1)
--
--  or, 1.3.6.1.4.1.1386.2.1
--
--  The present implementation of these objects is in a proxy agent;
--  information on the status of the system/proxy communication is
--  available in the companion mib 'scc-raid7-proxy-mib-v1-0.txt'
--

IMPORTS
    Counter, Gauge, IpAddress
        FROM RFC1155-SMI
    OBJECT-TYPE
        FROM RFC-1212
    TRAP-TYPE
        FROM RFC-1215
    DisplayString
        FROM RFC1213-MIB
    raid7mib
        FROM SCC-ENTERPRISE-MIB;

--  Groups within this MIB.

raid7Sys          OBJECT IDENTIFIER   ::= { raid7mib  1 }
raid7Memory       OBJECT IDENTIFIER   ::= { raid7mib  2 }
raid7Host         OBJECT IDENTIFIER   ::= { raid7mib  3 }
raid7Drive        OBJECT IDENTIFIER   ::= { raid7mib  4 }
raid7Env          OBJECT IDENTIFIER   ::= { raid7mib  5 }

--
--  System Group
--
--  
--

raid7SysVersion OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Describes the revision level of the running RAID7 Operating
        System; this is not really an IP address - but the revision is
        expressed as 4 decimal numbers so the IpAddress type is
        convenient." 

    ::= { raid7Sys 1 }

raid7TotalMem OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of kilobytes of memory present"

    ::= { raid7Memory 1 }

raid7GoodMem OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of kilobytes of memory judged good by self-test"

    ::= { raid7Memory 2 }

raid7MemAvail OBJECT-TYPE
    SYNTAX  INTEGER 
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of kilobytes of memory currently in use."

    ::= { raid7Memory 3 }

raid7CacheHitPercent OBJECT-TYPE
        SYNTAX INTEGER (0..100)
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The system-wide percentage of operations satisfied from the
            RAID7 system cache.  This does not include any operations 
            satisfied from cache in channel adapters, or cache
            built into the physical drives." 

        ::= { raid7Memory 4 }

--
-- The Block Size table
--
--

raid7BlockTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF Raid7BlockEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
        "This table shows how the host transfer block sizes have been
        distributed - it can be used to tune system performance (see
        the RAID 7 User Guide)." 

    ::= { raid7Memory 5 }

raid7BlockEntry OBJECT-TYPE
    SYNTAX  Raid7BlockEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
        "Information specific to blocks of a given size."
    INDEX { raid7BlockSize }
    ::= { raid7BlockTable 1 }

Raid7BlockEntry ::=
    SEQUENCE {
        raid7BlockSize      INTEGER,
        raid7NumBlocks      Gauge
        }

raid7BlockSize OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Size of the blocks."

    ::= { raid7BlockEntry 1 }

raid7NumBlocks OBJECT-TYPE
    SYNTAX  Gauge
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Number of blocks of this size."

    ::= { raid7BlockEntry 2 }

--
-- The Host Channel Group
--
--    This group provides information on the Host I/O channels installed
--    in the RAID7
--

raid7NumHostChannels OBJECT-TYPE
        SYNTAX INTEGER (1..12) 
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The number of functional Host I/O Channels."

        ::= { raid7Host 1 }

raid7ChannelTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Raid7ChannelEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
           "A table describing each of the Host I/O Channels"

        ::= { raid7Host 2 }

raid7ChannelEntry OBJECT-TYPE
        SYNTAX Raid7ChannelEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
           "Information specific to a given Host I/O Channel"
        INDEX { raid7ChannelNumber }

        ::= { raid7ChannelTable 1 }

Raid7ChannelEntry ::=
    SEQUENCE {
        raid7ChannelNumber            INTEGER,
        raid7ChannelTransferRate      Gauge,
        raid7ChannelTransactionRate   Gauge,
        raid7ChannelErrorMsgs         Counter,
        raid7ChannelLastKey           INTEGER,
        raid7ChannelLastSense         INTEGER
        }

raid7ChannelNumber OBJECT-TYPE
        SYNTAX INTEGER (1..12)
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The number of this Host I/O Channel"

        ::= { raid7ChannelEntry 1 }

raid7ChannelTransferRate OBJECT-TYPE
        SYNTAX Gauge
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "A measure of the data transfer speed on this channel
           during recent transfers (does not include the idle time on
           the channel between transfers in the calculation)."

        ::= { raid7ChannelEntry 2 }

raid7ChannelTransactionRate OBJECT-TYPE
        SYNTAX Gauge
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "A measure of the number I/O operations per second on this
           channel." 

        ::= { raid7ChannelEntry 3 }

raid7ChannelErrorMsgs OBJECT-TYPE
        SYNTAX Counter
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The number of error messages on this channel;
            see the RAID7 console and the User Guide."

        ::= { raid7ChannelEntry 4 }

raid7ChannelLastKey OBJECT-TYPE
        SYNTAX INTEGER {
                       noSense(0),
                       recoveredError(1),
                       notReady(2),
                       mediumError(3),
                       hardwareError(4),
                       illegalRequest(5),
                       unitAttention(6),
                       abortedCommand(11),
                       miscompare(14)
               }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The most recently reported SCSI Key value"

        ::= { raid7ChannelEntry 5 }

raid7ChannelLastSense OBJECT-TYPE
        SYNTAX INTEGER {
                       noAddSense(0),
                       noIndexSectSignal(1),
                       noSeekComplete(2),
                       writeFault(3),
                       driveNotReady(4),
                       communicationFailure(8),
                       writeError(12),
                       readError(17),
                       retries(23),
                       retriesAndECC(24),
                       listLengthError(26),
                       syncError(27),
                       defectListNotFound(28),
                       verifyMiscompare(29),
                       invalidCommand(32),
                       invalidBlockAddress(33),
                       illegalFunction(34),
                       invalidFieldCDB(36),
                       invalidLUN(37),
                       invalidField(38),
                       resetCondition(41),
                       initClearQ(47),
                       mediaFormat(49),
                       invalidIdentify(61),
                       diagnosticFailure(64),
                       messageRejectError(67),
                       internalFailure(68),
                       selectFailure(69),
                       parityError(70),
                       initiatorDetectedError(72),
                       illegalMessage(73)
               }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The last SCSI Sense reported."

        ::= { raid7ChannelEntry 6 }

--
-- The Drive Group
--
--    This group provides information on the physical disk drives installed
--    in the RAID7
--

raid7NumDrives OBJECT-TYPE
    SYNTAX  Gauge
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of drives installed in the RAID7 system"

    ::= { raid7Drive 1 }

raid7NumDataDrives OBJECT-TYPE
    SYNTAX  Gauge
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of drives being used as data drives; this may not
        be equal to the total of the drives in the following objects."

    ::= { raid7Drive 2 }

raid7NumParityDrives OBJECT-TYPE
    SYNTAX  Gauge
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of drives being used to store parity information."

    ::= { raid7Drive 3 }

raid7NumStandbyDrives OBJECT-TYPE
    SYNTAX  Gauge
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of drives available for reconstructing data from
        a failed drive."

    ::= { raid7Drive 4 }

raid7NumFailedDrives OBJECT-TYPE
    SYNTAX  Gauge
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "The number of drives whos raid7DriveState is either
         reconstructing or failed."

    ::= { raid7Drive 5 }

raid7DriveTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF Raid7DriveEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
        "A list of drive entries, one for each physical drive; this may
         be a sparse table."

    ::= { raid7Drive 6 }

raid7DriveEntry OBJECT-TYPE
    SYNTAX  Raid7DriveEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
        "Information specific to a single drive."
    INDEX { raid7DriveNumber }
    ::= { raid7DriveTable 1 }

Raid7DriveEntry ::=
    SEQUENCE {
        raid7DriveNumber    INTEGER,
        raid7DriveState     INTEGER,
        raid7DriveActivity  DisplayString (SIZE (1)),
        raid7DriveWrites    Counter,
        raid7DriveReads     Counter,
        raid7DriveTimeOuts  Counter,
        raid7DriveErrors    Counter
        }

raid7DriveNumber OBJECT-TYPE
    SYNTAX  INTEGER (1..48)
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "Drive number of this drive."

    ::= { raid7DriveEntry 1 }

raid7DriveState OBJECT-TYPE
    SYNTAX  INTEGER {
                data(1),
                parity(2),
                standby(3),
                rebuilding(4),
                reformatting(5),
                failed(6),
                dataAndParity(7),
                unknown(8)
                }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "State of this drive."

    ::= { raid7DriveEntry 2 }

raid7DriveActivity OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1))
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "This is letter indicating the most recent operation
           reported for the drive.  See the RAID7 User Guide for
           values and thier meanings."

        ::= { raid7DriveEntry 3 }

raid7DriveWrites OBJECT-TYPE
        SYNTAX Counter
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "Number of write operations to this drive."

        ::= { raid7DriveEntry 4 }

raid7DriveReads OBJECT-TYPE
        SYNTAX Counter
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "Number of read operations to this drive; does not include
            operations satisfied from RAID7 system or channel cache, but
            does include those satisfied from any cache within the
            drive." 

        ::= { raid7DriveEntry 5 }

raid7DriveTimeOuts OBJECT-TYPE
        SYNTAX Counter
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The number of SCSI operations timed out on the drive."

        ::= { raid7DriveEntry 6 }

raid7DriveErrors OBJECT-TYPE
        SYNTAX Counter
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "Number of errors reported by the drive"

        ::= { raid7DriveEntry 7 }

raid7DriveUp TRAP-TYPE
        ENTERPRISE raid7mib
        VARIABLES { raid7DriveNumber, raid7DriveState }
        DESCRIPTION
           "This trap is sent whenever the state for a drive changes 
            to data or parity from any other value.
            An equivalent poll would be to poll raid7NumberDrives and
            raid7FailedDrives and then read the raid7DriveTable when 
            one of them changes."

        ::= 1

raid7DriveDown TRAP-TYPE
        ENTERPRISE raid7mib
        VARIABLES { raid7DriveNumber, raid7DriveState }
        DESCRIPTION
           "This trap is sent whenever the state for a drive changes 
            from data or parity to any other value.
            An equivalent poll would be to poll raid7NumberDrives and
            raid7FailedDrives and then read the raid7DriveTable when 
            one of them changes."

        ::= 2

--
-- Environment Group
-- 
--   This group provides the objects needed to monitor the power and fan 
--   status for the RAID7 system.
--

raid7EnvironmentStatus OBJECT-TYPE
        SYNTAX INTEGER {
               operational(1),
               failure(2)
               }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
           "The 'failure' indicates that one or more power supplies or
           fans in the unit have failed."

        ::= { raid7Env 1 }

raid7EnvironmentFailure TRAP-TYPE
        ENTERPRISE raid7mib
        VARIABLES  { raid7EnvironmentStatus }
        DESCRIPTION 
           "This trap is sent when the value of raid7EnvironmentStatus
           changes to failure."

       ::= 3

END