SUN-T300-MIB

    -- The definitions in this module apply to the Sun StorEdge T300

    -- History:

        -- 19990819 TMM
           -- Changed volDiskDisabled and volDiskSubstituted to
           -- volDisabledDisk and volSubstitutedDisk in order
           -- to match corresponding tokens.
           -- Added fruCtlrRole, fruCtlrPartnerId, fruCtlrCtState; and removed
           -- fruCtlrBaudRate

        -- 19991020 TMM
           -- Added fruDiskTemp, fruPowerBatLife, fruPowerBatUsed

        -- 20001125 ckahn
           -- put MODULE-IDENTITY after IMPORTS to make mib compiler happy.

        -- 20001214 ckahn  Copied changes from P1 1.17  
	   -- BUGID: 4374059 Desc. out of date
           -- BUGID: 4373801 MIB out of date

           -- Added DESCs for all existing objects.

           -- Changed sysSpinDelay, sysRootSession, sysGuestSession,
           -- sysAutoDisable, sysIdleDiskTimeout to STATUS obsolete

           -- Added "reconOnly" state to sysAutoDisable
           -- Added "mpxio" "std" states to sysMpSupport 
           -- Added "offline" "booting" states to fruStatus
           -- Added "refreshing" state fo fruPowerBatState
           -- Added "bypass" "unknown" states to fruDiskPort1State
           -- and fruDiskPort2State

           -- Added sysRarpEnabled, sysLoop1Split, sysLastRestart,
           -- sysCtime, sysHasVolumes

           -- Added fruErrors, fruCtlrMdate, fruCtlrConsoleBaud,
           -- fruLoopMdate, fruMidplaneCount, fruMidplaneMdate,
           -- fruMidplaneTable, fruMidplaneEntry, fruPowerPowMdate,
           -- fruPowerBatMdate

           -- Added volOper, volOperProgress, volInitRate, volVerifyRate

           -- Added portWWN, portStatus, portErrors

           -- Added attachVolOwner 

           -- Added logStatus, logTo, logFile, logLevel, logPort

           -- Added ondgOper, ondgOperPending, ondgProgress,
           -- ondgError, ondgId

           -- Added "off" "on" states to sysReadAhead
           -- Added "low" "medium" "high" states to sysReconRate

        -- 20001215 ckahn BUGID 4396005
           -- fruState new state "missing"
           -- fruPowerPowSource new state "none"
           -- fruPowerPowTemp new state "none"
           -- fruPowerFan1State and fruPowerFan2State new state "missing"

    -- We start with special comments intended for the MIB compiler.

    --FORCE-INCLUDE <pna.h>
    --FORCE-INCLUDE <pna_mib.h>
    --FORCE-INCLUDE "snmpdefs.h"
    --FORCE-INCLUDE "snmpvars.h"
    --FORCE-INCLUDE "pnamib.h"

    -- Set up MIB-wide defaults for generating snmpd in C.
    -- All functions can use %n for object name and
    -- %t for object type, %p for parent name,
    -- %d for name of default-bearing node and %% for %
    --DEFAULT    test-function    it_exists
    --DEFAULT    next-function    std_next
    --DEFAULT    cookie           "%n"

    DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-IDENTITY, enterprises
                        FROM SNMPv2-SMI
        IpAddress, Counter
                        FROM RFC1155-SMI
        DisplayString   FROM RFC1213-MIB
        TRAP-TYPE       FROM RFC-1215
        OBJECT-TYPE     FROM RFC-1212;

    t300 MODULE-IDENTITY
        LAST-UPDATED    "0012140000Z"
        ORGANIZATION    "SUN MICROSYSTEMS INCORPORATED"
        CONTACT-INFO    "        Storage Management
                                 Sun Microsystems, Inc.
                                 901 San Antonio Road
                                 Palo Alto, CA 94303"
        DESCRIPTION     "The MIB module for Sun StorEdge T300"
        ::= { storage-subsystem 2 }

    sun                 OBJECT IDENTIFIER ::= { enterprises 42 }
    products            OBJECT IDENTIFIER ::= { sun 2 }
    storage-subsystem   OBJECT IDENTIFIER ::= { products 28 }

    -- sub-tree for registrations
    t300Reg             OBJECT IDENTIFIER ::= { t300 1 }

    -- the registrations for the actual hardware
    t300Purple1         OBJECT-IDENTITY
        STATUS          current
        DESCRIPTION     "Purple 1 Storage Array"
        ::= { t300Reg 1 }

    t300Objs            OBJECT IDENTIFIER ::= { t300 2 }
    t300SystemObjs      OBJECT IDENTIFIER ::= { t300Objs 1 }
    t300UnitObjs        OBJECT IDENTIFIER ::= { t300Objs 2 }
    t300FruObjs         OBJECT IDENTIFIER ::= { t300Objs 3 }
    t300VolumeObjs      OBJECT IDENTIFIER ::= { t300Objs 4 }
    t300PortObjs        OBJECT IDENTIFIER ::= { t300Objs 5 }
    t300AttachObjs      OBJECT IDENTIFIER ::= { t300Objs 6 }
    t300LoopObjs	OBJECT IDENTIFIER ::= { t300Objs 7 }
    t300LogObjs		OBJECT IDENTIFIER ::= { t300Objs 8 }
    t300OndgObjs 	OBJECT IDENTIFIER ::= { t300Objs 9 }

    -- sub-tree for events
    t300Events          OBJECT IDENTIFIER ::= { t300 3 }
    t300EventsV2        OBJECT IDENTIFIER ::= { t300Events 0 }

    -- the system objects

    sysId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The system name."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 1 }

    sysVendor OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The system vendor."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 2 }
                  
    sysModel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The system model."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 3 }
                  
    sysRevision OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The system firmware revision."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 4 }

    sysStripeUnitSize OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current system stripe unit size."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 5 }

    sysCacheMode OBJECT-TYPE
        SYNTAX  INTEGER { disabled(1), writeThrough(2),
                          writeBehind(3), auto(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current system buffer cache mode."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 6 }
            
    sysCacheMirror OBJECT-TYPE
        SYNTAX  INTEGER { off(1), auto(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current system buffer cache mirror
		      mode."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 7 }
            
    sysAutoDisable OBJECT-TYPE
        SYNTAX  INTEGER { none(1), disableOnly(2), disableRecon(3),
			  reconOnly(4) }
        ACCESS  read-only
        STATUS  obsolete
        DESCRIPTION  "The current system auto-disable/reconstruct
		      policy."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 8 }
            
    sysMpSupport OBJECT-TYPE
        SYNTAX  INTEGER { none(1), readWrite(2), mpxio(3), std(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current multi-pathing support mode."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 9 }
            
    sysReadAhead OBJECT-TYPE
        SYNTAX  INTEGER { off(1), on(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of consecutive contiguous read
		      commands received before triggering
		      read-ahead."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 10 }

    sysReconRate OBJECT-TYPE
        SYNTAX  INTEGER { low(1), medium(2), high(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A value controlling the amount of bandwidth
		      allocated to disk reconstruction."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 11 }

    sysOndgMode OBJECT-TYPE
        SYNTAX  INTEGER { off(1), passive(2), active(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current on-line loop diagnostic mode."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 12 }
            
    sysOndgTimeslice OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The time-slice in seconds devoted to normal
		      I/O between loop diagnostic data pattern 
		      I/O."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 13 }

    sysIdleDiskTimeout OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  obsolete
        DESCRIPTION  "The number of hours (1-24) that a disk is 
		      permitted to be idle before the system 
		      automatically performs a seek on that disk."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 14 }

    sysFruRemovalShutdown OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of seconds remaining before the
		      system automatically shuts down due to a
		      FRU being removed and not replaced."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 15 }

    sysBootMode OBJECT-TYPE
        SYNTAX  INTEGER { none(1), auto(2), tftp(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current system boot mode."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 16 }
            
    sysBootDelay OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A time delay in seconds during which time
		      a user could strike a key at the system
		      console to interrupt EPROM boot process."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 17 }

    sysSpinDelay OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  obsolete
        DESCRIPTION  "Not in use."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 18 }

    sysTftpHost OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "When boot mode is 'tftp', specifies the
		      IP address of the tftp server."
        --DEFAULT get-function get_NobleIpAddr
        ::= { t300SystemObjs 19 }
                  
    sysTftpFile OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "When boot mode is 'tftp', specifies the
		      file name to read from the tftp server."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 20 }
                  
    sysIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The IP address of the system."
        --DEFAULT get-function get_NobleIpAddr
        ::= { t300SystemObjs 21 }

    sysSubNet OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The subnet mask of the system."
        --DEFAULT get-function get_NobleIpAddr
        ::= { t300SystemObjs 22 }

    sysGateway OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The default gateway IP address."
        --DEFAULT get-function get_NobleIpAddr
        ::= { t300SystemObjs 23 }

    sysWriteRequests OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of write 
		      requests received from all host
		      ports."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 24 }

    sysReadRequests OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of read 
		      requests received from all host
		      ports."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 25 }

    sysBlocksWritten OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks written
		      (received from) all host ports."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 26 }

    sysBlocksRead OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read
		      (transmitted to) all host ports."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 27 }

    sysCacheWriteHits OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks in the
		      cache re-written before the previous
		      contents have been written to disk."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 28 }

    sysCacheWriteMisses OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of new blocks 
		      written to the cache."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 29 }

    sysCacheReadHits OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read
		      from cache."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 30 }

    sysCacheReadMisses OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read
		      from disk into the cache."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 31 }

    sysCacheRmwFlushes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of 
		      read-modify-write stripe operations
		      executed by cache flush."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 32 }

    sysCacheReconFlushes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of 
		      reconstruct-write stripe operations
		      executed by cache flush."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 33 }

    sysCacheStripeFlushes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of strip-write
		      stripe operations executed by
		      cache flush."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 34 }

    sysTimezone OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Specifies the timezone offset, the 
		      difference between local time and 
		      universal time (UTC)."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 35 }
                  
    sysDate OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A string of the form 'YYYYMMDD'."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 36 }
                  
    sysTime OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A string of the form 'HHMMSS'."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 37 }
                  
    -- No longer in code.
    sysRootSession OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  obsolete
        DESCRIPTION  "Not in use."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 38 }

    -- No longer in code.
    sysGuestSession OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  obsolete 
        DESCRIPTION  "Not in use."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 39 }

    sysLastMessage OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Last syslog message. Used for Trap only."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 40 }

    sysRarpEnabled OBJECT-TYPE
        SYNTAX  INTEGER { no(1), yes(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A flag indicating whether RARP protocol
		      is used to obtain the system IP address."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 41 }

    sysLoop1Split OBJECT-TYPE
        SYNTAX  INTEGER { off(1), auto(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A flag indicating whether Loop 1 can be
		      split into two segments." 
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 42 }

    sysLastRestart OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The date and time of the last system
		      restart."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 43 }

    sysCtime OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current date and time."
        --DEFAULT get-function get_NobleString
        ::= { t300SystemObjs 44 }

    sysHasVolumes OBJECT-TYPE
        SYNTAX  INTEGER { no(1), yes(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A flag indicating whether or not there
		      are any currently created volumes."
        --DEFAULT get-function get_NobleInt32
        ::= { t300SystemObjs 45 }


    -- the unit objects

    unitCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of units in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300UnitObjs 1 }

    unitTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF UnitEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of unitEntrys"
        ::= { t300UnitObjs 2 } 

    unitEntry OBJECT-TYPE
        SYNTAX  UnitEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the unitTable."
        INDEX   { unitIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { unitTable 1 }
                                
    UnitEntry ::= 
        SEQUENCE {
            unitIndex                   INTEGER,
            unitId                      DisplayString,
            unitType                    INTEGER,
            unitStandby                 INTEGER
            }

    unitIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A number referring to a specific
		      unit in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { unitEntry 1 }
                  
    unitId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The unit id string."
        --DEFAULT get-function get_NobleString
        ::= { unitEntry 2 }
                  
    unitType OBJECT-TYPE
        SYNTAX  INTEGER { controller(1), expansion(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The unit type."
        --DEFAULT get-function get_NobleInt32
        ::= { unitEntry 3 }

    unitStandby OBJECT-TYPE
        SYNTAX  INTEGER { no(1), yes(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A flag indicating whether drive 9 in
		      the unit is a standby."
        --DEFAULT get-function get_NobleInt32
        ::= { unitEntry 4 }


    -- the fru objects

    fruCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The total number of FRU's in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300FruObjs 1 }

    fruTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FruEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of fruEntry."
        ::= { t300FruObjs 2 } 

    fruEntry OBJECT-TYPE
        SYNTAX  FruEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the fruTable."
        INDEX   { unitIndex, fruIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { fruTable 1 }

    FruEntry ::=
        SEQUENCE {
            fruIndex                    INTEGER,
            fruId                       DisplayString,
            fruType                     INTEGER,
            fruStatus                   INTEGER,
            fruState                    INTEGER,
            fruVendor                   DisplayString,
            fruModel                    DisplayString,
            fruRevision                 DisplayString,
            fruSerialNo                 DisplayString,
	    fruErrors			INTEGER
            }

    fruIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A number referring to a specific
		      FRU in the unit."
        --DEFAULT get-function get_NobleInt32
        ::= { fruEntry 1 }
                  
    fruId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU id string."
        --DEFAULT get-function get_NobleString
        ::= { fruEntry 2 }
                  
    fruType OBJECT-TYPE
        SYNTAX  INTEGER { diskDrive(1), controllerCard(2),
                          loopCard(3), powerUnit(4), midplane(5) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU type."
        --DEFAULT get-function get_NobleInt32
        ::= { fruEntry 3 }
                  
    fruStatus OBJECT-TYPE
        SYNTAX  INTEGER { notInstalled(1), fault(2), ready(3),
			  offline(4), booting(5) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU status."
        --DEFAULT get-function get_NobleInt32
        ::= { fruEntry 4 }
                  
    fruState OBJECT-TYPE
        SYNTAX  INTEGER { enabled(1), disabled(2), substituted(3), missing(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU state."
        --DEFAULT get-function get_NobleInt32
        ::= { fruEntry 5 }
                  
    fruVendor OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU vendor id string."
        --DEFAULT get-function get_NobleString
        ::= { fruEntry 6 }
                  
    fruModel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU model id string."
        --DEFAULT get-function get_NobleString
        ::= { fruEntry 7 }
                  
    fruRevision OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU revision string."
        --DEFAULT get-function get_NobleString
        ::= { fruEntry 8 }
                  
    fruSerialNo OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU serial number string."
        --DEFAULT get-function get_NobleString
        ::= { fruEntry 9 }

    fruErrors OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Not currently used."
        --DEFAULT get-function get_NobleInt32
        ::= { fruEntry 10 }

    fruDiskCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of disk FRUs in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300FruObjs 3 }

    fruDiskTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FruDiskEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of fruDiskEntry."
        ::= { t300FruObjs 4 } 

    fruDiskEntry OBJECT-TYPE
        SYNTAX  FruDiskEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry on the fruDiskTable."
        INDEX   { unitIndex, fruIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { fruDiskTable 1 }

    FruDiskEntry ::=
        SEQUENCE {
            fruDiskRole                 INTEGER,
            fruDiskPort1State           INTEGER,
            fruDiskPort2State           INTEGER,
            fruDiskCapacity             INTEGER,
            fruDiskStatusCode           DisplayString,
            fruDiskVolName              DisplayString,
	    fruDiskTemp			INTEGER
            }

    fruDiskRole OBJECT-TYPE
        SYNTAX  INTEGER { unassigned(1), dataDisk(2),
                          standbyDisk(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The operational role of the disk FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruDiskEntry 1 }
                  
    fruDiskPort1State OBJECT-TYPE
        SYNTAX  INTEGER { ready(1), notReady(2), bypass(3), unknown(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The status of the disk FRU via the disk's
		      interface port 1."
        --DEFAULT get-function get_NobleInt32
        ::= { fruDiskEntry 2 }
                  
    fruDiskPort2State OBJECT-TYPE
        SYNTAX  INTEGER { ready(1), notReady(2), bypass(3), unknown(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The status of the disk FRU via the disk's
		      interface port 2."
        --DEFAULT get-function get_NobleInt32
        ::= { fruDiskEntry 3 }
                  
    fruDiskCapacity OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of bytes/1,000,000 of storage
		      on the disk FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruDiskEntry 4 }

    fruDiskStatusCode OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "An ascii status code indicating the 
		      current state of the disk drive.
			0 - Good drive, good sys area.
		 	2 - Unable to open the drive.
			3 - Indicates good drive, but not in
			    any volume.
			4 - Temp state of drive before disable 
		            occurs.
			7 - Drive is good bug has bad sys area.
			9 - Drive is bypassed or does not exist."
        --DEFAULT get-function get_NobleString
        ::= { fruDiskEntry 5 }

    fruDiskVolName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The name string of the volume containing
		      this disk FRU."
        --DEFAULT get-function get_NobleString
        ::= { fruDiskEntry 6 }
                  
    fruDiskTemp OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The temperature of the disk FRU (reported
		      by the disk."
        --DEFAULT get-function get_NobleInt32
        ::= { fruDiskEntry 7 }

    fruCtlrCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of controllers in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300FruObjs 5 }

    fruCtlrTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FruCtlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of fruCtlrEntry."
        ::= { t300FruObjs 6 } 

    fruCtlrEntry OBJECT-TYPE
        SYNTAX  FruCtlrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the fruCtlrTable."
        INDEX   { unitIndex, fruIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { fruCtlrTable 1 }
                                
    FruCtlrEntry ::=
        SEQUENCE {
            fruCtlrCpuDesc              DisplayString,
            fruCtlrRole                 INTEGER,
	    fruCtlrPartnerId            DisplayString,
	    fruCtlrCtState              INTEGER,
            fruCtlrCacheSize            INTEGER,
            fruCtlrTemp                 INTEGER,
	    fruCtlrMdate		DisplayString,
	    fruCtlrConsoleBaud		INTEGER
            }

    fruCtlrCpuDesc OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A description of the controller
		      CPU type."
        --DEFAULT get-function get_NobleString
        ::= { fruCtlrEntry 1 }
                  
    fruCtlrRole OBJECT-TYPE
        SYNTAX  INTEGER { master(1), alternateMaster(2), slave(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current operational role of this 
		      controller FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruCtlrEntry 2 }
                  
    fruCtlrPartnerId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "In a dual controller system, the partner
		      controller's FRU id."
        --DEFAULT get-function get_NobleString
        ::= { fruCtlrEntry 3 }
                  
    fruCtlrCtState OBJECT-TYPE
        SYNTAX  INTEGER { expansionUnit(1), booting(2), online(3),
		          disabled(4), disabling(5), reset(6),
			  resetting(7), reconfig(8), hotPlug(9),
			  virtual(10) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current state of the controller FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruCtlrEntry 4 }
                  
    fruCtlrCacheSize OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The cache size in bytes/1,000,000."
        --DEFAULT get-function get_NobleInt32
        ::= { fruCtlrEntry 5 }

    fruCtlrTemp OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The temperature of the controller card FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruCtlrEntry 6 }

    fruCtlrMdate OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The date of the controller card's 
		      manufacture week."
        --DEFAULT get-function get_NobleString
        ::= { fruCtlrEntry 7 }

    fruCtlrConsoleBaud OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The controller FRU's console baud."
        --DEFAULT get-function get_NobleInt32
        ::= { fruCtlrEntry 8 }

    fruLoopCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of loop card FRUs in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300FruObjs 7 }

    fruLoopTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FruLoopEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of fruLoopEntry."
        ::= { t300FruObjs 8 } 

    fruLoopEntry OBJECT-TYPE
        SYNTAX  FruLoopEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the fruLoopTable."
        INDEX   { unitIndex, fruIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { fruLoopTable 1 }
                                
    FruLoopEntry ::=
        SEQUENCE {
            fruLoopMode                 INTEGER,
            fruLoopTemp                 INTEGER,
            fruLoopCable1State		INTEGER,
	    fruLoopCable2State		INTEGER,
	    fruLoopMdate		DisplayString
            }

    fruLoopMode OBJECT-TYPE
        SYNTAX  INTEGER { master(1), slave(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current operational mode of
		      the loop card FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruLoopEntry 1 }

    fruLoopTemp OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The temperature of the loop card FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruLoopEntry 2 }

    fruLoopCable1State OBJECT-TYPE
        SYNTAX  INTEGER { notInstalled(1), installed(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Indicates the presence of cable 1 on 
		      the loop card FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruLoopEntry 3 }

    fruLoopCable2State OBJECT-TYPE
        SYNTAX  INTEGER { notInstalled(1), installed(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Indicates the presence of cable 2 on
		      the loop card FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruLoopEntry 4 }

    fruLoopMdate OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The date of the loop card's manufacture 
		      week."
        --DEFAULT get-function get_NobleString
        ::= { fruLoopEntry 5 }

    fruPowerCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of power/cooling FRUs in the
		      system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300FruObjs 9 }

    fruPowerTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FruPowerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of fruPowerEntry."
        ::= { t300FruObjs 10 } 

    fruPowerEntry OBJECT-TYPE
        SYNTAX  FruPowerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the fruPowerTable."
        INDEX   { unitIndex, fruIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { fruPowerTable 1 }
                                
    FruPowerEntry ::=
        SEQUENCE {
            fruPowerPowOutput           INTEGER,
            fruPowerPowSource           INTEGER,
            fruPowerPowTemp             INTEGER,
            fruPowerFan1State           INTEGER,
            fruPowerFan2State           INTEGER,
            fruPowerBatState            INTEGER,
	    fruPowerBatLife		INTEGER,
	    fruPowerBatUsed		INTEGER,
	    fruPowerPowMdate		DisplayString,
	    fruPowerBatMdate		DisplayString
	}                 

    fruPowerPowOutput OBJECT-TYPE
        SYNTAX  INTEGER { off(1), normal(2), fault(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current power output state of the
		      power/cooling FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 1 }
                  
    fruPowerPowSource OBJECT-TYPE
        SYNTAX  INTEGER { line(1), battery(2), unknown(3), none(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current power input source of the 
		      power/cooling FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 2 }
                  
    fruPowerPowTemp OBJECT-TYPE
        SYNTAX  INTEGER { normal(1), overTemp(2), unknown(3), none(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current power temperature state of 
		      the power/cooling FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 3 }
                  
    fruPowerFan1State OBJECT-TYPE
        SYNTAX  INTEGER { normal(1), fault(2), missing(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current state of fan 1 in the
	              power/cooling FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 4 }
                  
    fruPowerFan2State OBJECT-TYPE
        SYNTAX  INTEGER { normal(1), fault(2), missing(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current state of fan 2 in the
		      power/cooling FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 5 }
                  
    fruPowerBatState OBJECT-TYPE
        SYNTAX  INTEGER { notInstalled(1), normal(2),
                          fault(3), refreshing(4), 
			  unknown(5) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current charge state of the battery
		      in the power/cooling FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 6 }
                  
    fruPowerBatLife OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The expected life of the battery within
		      the power/cooling FRU (in hours)."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 7 }

    fruPowerBatUsed OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of hours of life used by
		      the battery within the power/cooling FRU."
        --DEFAULT get-function get_NobleInt32
        ::= { fruPowerEntry 8 }

    fruPowerPowMdate OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The date of the power/cooling unit's 
		      manufacture week."
        --DEFAULT get-function get_NobleString
        ::= { fruPowerEntry 9 }

    fruPowerBatMdate OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The date of the battery's manufacture
		      week."
        --DEFAULT get-function get_NobleString
        ::= { fruPowerEntry 10 }

    fruMidplaneCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of midplane FRUs in the
                      system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300FruObjs 11 }

    fruMidplaneTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF FruMidplaneEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of fruMidplaneEntry."
        ::= { t300FruObjs 12 }

    fruMidplaneEntry OBJECT-TYPE
        SYNTAX  FruMidplaneEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the fruMidplaneTable."
        INDEX   { unitIndex, fruIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { fruMidplaneTable 1 }

    FruMidplaneEntry ::=
        SEQUENCE {
            fruMidplaneMdate            DisplayString
        }

    fruMidplaneMdate OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The date of the midplane's manufacture
                      week."
        --DEFAULT get-function get_NobleString
        ::= { fruMidplaneEntry 1 }


    -- the volume objects

    volCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of volumes created in
		      the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300VolumeObjs 1 }

    volTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF VolEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of volEntry."
        ::= { t300VolumeObjs 2 } 

    volEntry OBJECT-TYPE
        SYNTAX  VolEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in volTable."
        INDEX   { unitIndex, volIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { volTable 1 }
                                
    VolEntry ::=
        SEQUENCE {
            volIndex                    INTEGER,
            volId                       DisplayString,
            volName                     DisplayString,
            volWWN                      DisplayString,
            volStatus                   INTEGER,
            volCacheMode                INTEGER,
            volCacheMirror              INTEGER,
            volCapacity                 INTEGER,
            volArrayWidth               INTEGER,
            volRaidLevel                INTEGER,
            volWriteRequests            Counter,
            volReadRequests             Counter,
            volBlocksWritten            Counter,
            volBlocksRead               Counter,
            volSoftErrors               Counter,
            volFirmErrors               Counter,
            volHardErrors               Counter,
            volCacheWriteHits           Counter,
            volCacheWriteMisses         Counter,
            volCacheReadHits            Counter,
            volCacheReadMisses          Counter,
            volCacheRmwFlushes          Counter,
            volCacheReconFlushes        Counter,
            volCacheStripeFlushes       Counter,
            volDisabledDisk             DisplayString,
            volSubstitutedDisk          DisplayString,
	    volOper                     INTEGER,
            volOperProgress             INTEGER,
            volInitRate                 INTEGER,
            volVerifyRate               INTEGER
	}
                    
    volIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A number referring to a specific
		      volume in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 1 }
                  
    volId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The volume id string."
        --DEFAULT get-function get_NobleString
        ::= { volEntry 2 }
                  
    volName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A user-writable volume name string."
        --DEFAULT get-function get_NobleString
        ::= { volEntry 3 }
                  
    volWWN OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The volume World Wide Name."
        --DEFAULT get-function get_NobleString
        ::= { volEntry 4 }
                  
    volStatus OBJECT-TYPE
        SYNTAX  INTEGER { deleted(1), uninitialized(2),
                          unmounted(3), mounted(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current volume status."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 5 }
                  
    volCacheMode OBJECT-TYPE
        SYNTAX  INTEGER { disabled(1), writeThrough(2),
                          writeBehind(3), auto(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current buffer cache mode in
		      effect for this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 6 }
            
    volCacheMirror OBJECT-TYPE
        SYNTAX  INTEGER { off(1), on(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current buffer cache mirror mode
		      in effect for this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 7 }
            
    volCapacity OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of bytes/1,000,000 of user
		      storage in the volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 8 }

    volArrayWidth OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of drives in the volume (not
		      including the standby drive)."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 9 }

    volRaidLevel OBJECT-TYPE
        SYNTAX  INTEGER { raid0(1), raid1(2), raid5(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The RAID organization of the volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 10 }
                  
    volWriteRequests OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of write requests
		      received for this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 11 }

    volReadRequests OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of read requests
		      received for this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 12 }

    volBlocksWritten OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks written
		      (received for) this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 13 }

    volBlocksRead OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read
		      (transmitted for) this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 14 }

    volSoftErrors OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of soft errors on this 
		      volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 15 }

    volFirmErrors OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of firm errors on this
		      volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 16 }

    volHardErrors OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of hard errors on this
		      volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 17 }

    volCacheWriteHits OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks in the
		      cache re-written to this volume 
		      before the previous contents have been
		      written to."	      
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 18 }

    volCacheWriteMisses OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read 
		      from the cache."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 19 }

    volCacheReadHits OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read
		      from cache by this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 20 }

    volCacheReadMisses OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read
		      from this volume to the cache."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 21 }

    volCacheRmwFlushes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of
		      read-modify-write stripe operations
		      executed by cache flush to this
		      volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 22 }

    volCacheReconFlushes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of reconstruct-write
		      stripe operations executed by cache
		      flush to this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 23 }

    volCacheStripeFlushes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of stripe-write
		      operations executed by cache flush
		      to this volume."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 24 }

    volDisabledDisk OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU id string of the disabled disk
		      in the volume. No value if there is none."
        --DEFAULT get-function get_NobleString
        ::= { volEntry 25 }
                  
    volSubstitutedDisk OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The FRU id string of the substituted disk
		      in the volume. No value if there is none."
        --DEFAULT get-function get_NobleString
        ::= { volEntry 26 }

    volOper OBJECT-TYPE
        SYNTAX  INTEGER { none(1), reconstructing(2), reconstructingToStandby(3),
                          copyingFromStandby(4), copyingToStandby(5),
                          initializing(6), verifying(7) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current volume operation in progress."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 27 }

    volOperProgress OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current volume operation progress expressed
                      as a percentage of completion."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 28 }

    volInitRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current volume initialize rate."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 29 }

    volVerifyRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current volume verify rate."
        --DEFAULT get-function get_NobleInt32
        ::= { volEntry 30 }


    -- the port objects

    portCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of ports in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300PortObjs 1 }

    portTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF PortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of portEntry."
        ::= { t300PortObjs 2 } 

    portEntry OBJECT-TYPE
        SYNTAX  PortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in portTable"
        INDEX   { unitIndex, portIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { portTable 1 }
                                
    PortEntry ::=
        SEQUENCE {
            portIndex                   INTEGER,
            portId                      DisplayString,
            portType                    INTEGER,
            portFruId                   DisplayString,
            portWriteRequests           Counter,
            portReadRequests            Counter,
            portBlocksWritten           Counter,
            portBlocksRead              Counter,
            portSunHost                 INTEGER,
	    portWWN			DisplayString,
	    portStatus			INTEGER,
	    portErrors			INTEGER
            }
                
    portIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A number referring to a specific
		      port in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 1 }
                  
    portId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The port id string."
        --DEFAULT get-function get_NobleString
        ::= { portEntry 2 }
                  
    portType OBJECT-TYPE
        SYNTAX  INTEGER { ultraScsi(1), fibreChannel(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current port type."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 3 }
                  
    portFruId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The controller FRU id string which
		      contains this port."
        --DEFAULT get-function get_NobleString
        ::= { portEntry 4 }
                  
    portWriteRequests OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of write requests
		      received from this port."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 5 }

    portReadRequests OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of read requests
		      received from this port."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 6 }

    portBlocksWritten OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks written
		      (received from) this host port."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 7 }

    portBlocksRead OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current number of blocks read
		      (transmitted to) this host port."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 8 }

    portSunHost OBJECT-TYPE
        SYNTAX  INTEGER { no(1), yes(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A flag indicating whether this port
		      is connected to a Sun host."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 9 }

    portWWN OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..136))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The port World Wide Name."
        --DEFAULT get-function get_NobleString
        ::= { portEntry 10 }

    portStatus OBJECT-TYPE
        SYNTAX  INTEGER { offline(1), online(2) } 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current port status."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 11 } 

    portErrors OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Not currently used."
        --DEFAULT get-function get_NobleInt32
        ::= { portEntry 12 }
                  
    portFibreCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of Fibre Channel ports in this
		      unit."
        --DEFAULT get-function get_NobleInt32
        ::= { t300PortObjs 3 }

    portFibreTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF PortFibreEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of portEntrys."
        ::= { t300PortObjs 4 } 

    portFibreEntry OBJECT-TYPE
        SYNTAX  PortFibreEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the portFibreTable."
        INDEX   { unitIndex, portIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { portFibreTable 1 }
                                
    PortFibreEntry ::=
        SEQUENCE {
            portFibreAlpaMode           INTEGER,
            portFibreAlpa               INTEGER
            }

    portFibreAlpaMode OBJECT-TYPE
        SYNTAX  INTEGER { hard(1), soft(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The ALPA mode of the port."
        --DEFAULT get-function get_NobleInt32
        ::= { portFibreEntry 1 }
                  
    portFibreAlpa OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The ALPA of the port when the ALPA
		      mode is 'hard'."
        --DEFAULT get-function get_NobleInt32
        ::= { portFibreEntry 2 }


    -- the attachment objects

    attachCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of active lun attachments
		      in the system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300AttachObjs 1 }

    attachTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AttachEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of attachEntry."
        ::= { t300AttachObjs 2 } 

    attachEntry OBJECT-TYPE
        SYNTAX  AttachEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in the attachTable."
        INDEX   { unitIndex, portIndex, attachIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { attachTable 1 }
                                
    AttachEntry ::=
        SEQUENCE {
            attachIndex                 INTEGER,
            attachLun                   INTEGER,
            attachMode                  INTEGER,
            attachVolId                 DisplayString,
            attachVolName               DisplayString,
	    attachVolOwner		DisplayString
            }

    attachIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A number referring to a specific
		      active lun attachment."
        --DEFAULT get-function get_NobleInt32
        ::= { attachEntry 1 }
                  
    attachLun OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The lun number assigned to this 
		      attachment."
        --DEFAULT get-function get_NobleInt32
        ::= { attachEntry 2 }

    attachMode OBJECT-TYPE
        SYNTAX  INTEGER { primary(1), secondary(2), failover(3) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The mode of this attachment."
        --DEFAULT get-function get_NobleInt32
        ::= { attachEntry 3 }
                  
    attachVolId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The volume id string of the volume
		      associated with this attachment."
        --DEFAULT get-function get_NobleString
        ::= { attachEntry 4 }
                  
    attachVolName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The volume name string of the volume
		      associated with this attachment."
        --DEFAULT get-function get_NobleString
        ::= { attachEntry 5 }

    attachVolOwner OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The unit id of the owner of the volume
		      associated with this attachment."
        --DEFAULT get-function get_NobleString
        ::= { attachEntry 6 }


    -- the loop objects

    loopCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The number of back-end loops in the
		      system."
        --DEFAULT get-function get_NobleInt32
        ::= { t300LoopObjs 1 }

    loopTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF LoopEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "A table of loopEntry."
        ::= { t300LoopObjs 2 } 

    loopEntry OBJECT-TYPE
        SYNTAX  LoopEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION  "An entry in loopTable."
        INDEX   { unitIndex, loopIndex }
        --DEFAULT test-function testproc_Noble
        --DEFAULT next-function nextproc_Noble
        ::= { loopTable 1 }
                                
    LoopEntry ::=
        SEQUENCE {
            loopIndex                   INTEGER,
            loopId                      DisplayString,
            loopStatus                  INTEGER,
            loopMux                     INTEGER
            }
                    
    loopIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A number referring to a specific
		      back-end loop."
        --DEFAULT get-function get_NobleInt32
        ::= { loopEntry 1 }
                  
    loopId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The loop id string."
        --DEFAULT get-function get_NobleString
        ::= { loopEntry 2 }
                  
    loopStatus OBJECT-TYPE
        SYNTAX  INTEGER { available(1), reserved(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current loop status."
        --DEFAULT get-function get_NobleInt32
        ::= { loopEntry 3 }
                  
    loopMux OBJECT-TYPE
        SYNTAX  INTEGER { isolated(1), top(2), bottom(3), middle(4) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current loop configuration."
        --DEFAULT get-function get_NobleInt32
        ::= { loopEntry 4 }


    -- the logging objects

    logStatus OBJECT-TYPE
        SYNTAX  INTEGER { disabled(1), enabled(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A flag indicating whether syslogd is enabled."
	--DEFAULT get-function get_NobleInt32
        ::= { t300LogObjs 1 }

    logTo OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..80))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Indicates system log messaging routing."
	--DEFAULT get-function get_NobleString
        ::= { t300LogObjs 2 }

    logFile OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..80))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The name of the log file."
        --DEFAULT get-function get_NobleString
        ::= { t300LogObjs 3 }

    logLevel OBJECT-TYPE
        SYNTAX  INTEGER { none-0(1), error-1(2), warning-2(3),
			  notice-3(4), all-4(5) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Filters generation of system messages."
	--DEFAULT get-function get_NobleInt32
        ::= { t300LogObjs 4 }

    logPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The UDP port to use when forwarding syslogd
		      messages to other hosts."
        --DEFAULT get-function get_NobleInt32
        ::= { t300LogObjs 5 }


    -- the ondg objects

    ondgOper OBJECT-TYPE
        SYNTAX  INTEGER { test(1), fastTest(2), find(3), fastFind(4),
			  healthCheck(5) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current back-end loop diagnostic operation
		      in progress."
        --DEFAULT get-function get_NobleInt32
        ::= { t300OndgObjs 1 }

    ondgOperPending OBJECT-TYPE
        SYNTAX  INTEGER { no(1), yes(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "Specifies whether an ONDG operation is 
		      in progress."
        --DEFAULT get-function get_NobleInt32
        ::= { t300OndgObjs 2 }

    ondgOperProgress OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The current back-end loop diagnostic operation
		      progress expressed as a percentage of completion."
        --DEFAULT get-function get_NobleInt32
        ::= { t300OndgObjs 3 }

    ondgError OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..40))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "A string representing the completion status of
		      the last ondg method invoked."
        --DEFAULT get-function get_NobleString
        ::= { t300OndgObjs 4 }

    ondgId OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION  "The unique sequence number for each OFDG 
		      test run."
        --DEFAULT get-function get_NobleInt32
        ::= { t300OndgObjs 5 }
               
 
    -- trap definitions

    sysMessage TRAP-TYPE
        ENTERPRISE  t300Events
        VARIABLES   { sysLastMessage }
        DESCRIPTION  "Trap for sysLastMessage (last syslog
	              message)."
        ::= 1


    END
