UCD-SNMP-MIB DEFINITIONS ::= BEGIN

-- Design notes:
--
-- The design of this mib may seem unusual in parts, as it was
-- designed for ease of numerical management routines.
-- 
-- In that light, most sub-sections of this mib have four common
-- numerical oid consistencies:
--
-- 2021.ID.1   : an integer index value.  In scalers, this is always
--               of value 1.  In tables it is a row index.
-- 2021.ID.2   : a name of the script, process, etc. that this row represents.
-- 2021.ID.100 : An error flag indicating if an error is present on
--               that row (a threshold value was crossed, etc).
-- 2021.ID.101 : An error string describing why the error flag is non-0.
--
-- These conventions enable managers to easy examine portions of the
-- mib by setting the ID to the sub-section they are interested in
-- monitoring, and then scanning the .100 value to check for an
-- error(s), and get a more specific error message from .101 for the
-- named check found in .2.
--
-- Row numbers between 2 and 100 are sub-section specific.
--
-- Mib sections utilizing the above conventions:
--   Tables:  	procTable, execTable, diskTable, loadTable
--   Scalers: 	memory, snmperrs


IMPORTS
    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
    Integer32, Opaque, enterprises, Counter32
        FROM SNMPv2-SMI

    TEXTUAL-CONVENTION, DisplayString, TruthValue
	FROM SNMPv2-TC;

ucdavis MODULE-IDENTITY
    LAST-UPDATED "200101170000Z"
    ORGANIZATION "University of California, Davis"
    CONTACT-INFO    
	 "The ucd-snmp-coders mailing list is the best place
	 to write for public questions about the ucd-snmp
	 project: ucd-snmp-coders@ucd-snmp.ucdavis.edu

         Primary Author: Wes Hardaker

         postal:    IT-DCAS
                    UCDavis
                    Davis CA  95616
         phone:     +1 530 754-7571
         email:     wjhardaker@ucdavis.edu"
    DESCRIPTION
	"This file defines the private UCD SNMP MIB extensions."
    REVISION	 "200101170000Z"
    DESCRIPTION
	"Added raw CPU and IO counters."
    REVISION	 "9912090000Z"
    DESCRIPTION
	"SMIv2 version converted from older MIB definitions."
    ::= { enterprises 2021 }

-- Current UCD core mib table entries:
--   prTable          OBJECT IDENTIFIER ::= { ucdavis   2 }
--   memory           OBJECT IDENTIFIER ::= { ucdavis   4 }
--   extTable         OBJECT IDENTIFIER ::= { ucdavis   8 }
--   diskTable        OBJECT IDENTIFIER ::= { ucdavis   9 }
--   loadTable        OBJECT IDENTIFIER ::= { ucdavis  10 }
--   systemStats      OBJECT IDENTIFIER ::= { ucdavis  11 }
--   ucdDemoMIB       OBJECT IDENTIFIER ::= { ucdavis  14 } - UCD-DEMO-MIB
--   fileTable        OBJECT IDENTIFIER ::= { ucdavis  15 }
--   version          OBJECT IDENTIFIER ::= { ucdavis 100 }
--   snmperrs         OBJECT IDENTIFIER ::= { ucdavis 101 }
--   mibRegistryTable OBJECT IDENTIFIER ::= { ucdavis 102 }

-- Older mib table entries that were changed to new locations above:
--   processes        OBJECT IDENTIFIER ::= { ucdavis   1 }
--   exec             OBJECT IDENTIFIER ::= { ucdavis   3 }
--   disk             OBJECT IDENTIFIER ::= { ucdavis   6 }
--   load             OBJECT IDENTIFIER ::= { ucdavis   7 }

-- Never implemented and removed from the mib:
--   lockd            OBJECT IDENTIFIER ::= { ucdavis   5 }

-- Branches for registering other UCD MIB modules:
ucdInternal           OBJECT IDENTIFIER ::= { ucdavis 12 }
ucdExperimental       OBJECT IDENTIFIER ::= { ucdavis 13 }

-- OID values assigned in the ucdExperimental branch:
--   ucdIpFwAccMIB    OBJECT IDENTIFIER ::= { ucdExperimental  1 } - UCD-IPFWACC-MIB
--   ucdIpFilter      OBJECT IDENTIFIER ::= { ucdExperimental  2 } - UCD-IPFILTER-MIB
--   wavelan          OBJECT IDENTIFIER ::= { ucdExperimental  3 } - WL-MIB
--   ucdDlmodMIB      OBJECT IDENTIFIER ::= { ucdExperimental 14 } - UCD-DLMOD-MIB
--   ucdDiskIOMIB     OBJECT IDENTIFIER ::= { ucdExperimental 15 } - UCD-DISKIO-MIB


-- These are the returned values of the agent type.
-- returned to:  .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0 

ucdSnmpAgent      OBJECT IDENTIFIER ::= { ucdavis 250 }
hpux9             OBJECT IDENTIFIER ::= { ucdSnmpAgent 1 }
hpux10            OBJECT IDENTIFIER ::= { ucdSnmpAgent 6 }
sunos4            OBJECT IDENTIFIER ::= { ucdSnmpAgent 2 }
solaris           OBJECT IDENTIFIER ::= { ucdSnmpAgent 3 }
osf               OBJECT IDENTIFIER ::= { ucdSnmpAgent 4 }
ultrix            OBJECT IDENTIFIER ::= { ucdSnmpAgent 5 }
netbsd1           OBJECT IDENTIFIER ::= { ucdSnmpAgent 7 }
freebsd           OBJECT IDENTIFIER ::= { ucdSnmpAgent 8 }
irix              OBJECT IDENTIFIER ::= { ucdSnmpAgent 9 }
linux             OBJECT IDENTIFIER ::= { ucdSnmpAgent 10 }
bsdi              OBJECT IDENTIFIER ::= { ucdSnmpAgent 11 }
openbsd           OBJECT IDENTIFIER ::= { ucdSnmpAgent 12 }
unknown           OBJECT IDENTIFIER ::= { ucdSnmpAgent 255 }

--
-- Define the Float Textual Convention
--   This definition was written by David Perkins.
--

Float ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "A single precision floating-point number.  The semantics
         and encoding are identical for type 'single' defined in
         IEEE Standard for Binary Floating-Point,
         ANSI/IEEE Std 754-1985.
         The value is restricted to the BER serialization of
         the following ASN.1 type:
             FLOATTYPE ::= [120] IMPLICIT FloatType
         (note: the value 120 is the sum of '30'h and '48'h)
         The BER serialization of the length for values of
         this type must use the definite length, short
         encoding form.

         For example, the BER serialization of value 123
         of type FLOATTYPE is '9f780442f60000'h.  (The tag
         is '9f78'h; the length is '04'h; and the value is
         '42f60000'h.) The BER serialization of value
         '9f780442f60000'h of data type Opaque is
         '44079f780442f60000'h. (The tag is '44'h; the length
         is '07'h; and the value is '9f780442f60000'h."
    SYNTAX Opaque (SIZE (7))

--
-- Process table checks
--

prTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF PrEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"A table containing information on running
	 programs/daemons configured for monitoring in the
	 snmpd.conf file of the agent.  Processes violating the
	 number of running processes required by the agent's
	 configuration file are flagged with numerical and
	 textual errors."
    ::= { ucdavis 2 }

prEntry OBJECT-TYPE
    SYNTAX	PrEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
        "An entry containing a process and its statistics."
    INDEX	{ prIndex }
    ::= { prTable  1 }

PrEntry ::= SEQUENCE {
    prIndex		Integer32,
    prNames		DisplayString,
    prMin		Integer32,
    prMax		Integer32,
    prCount		Integer32,
    prErrorFlag		Integer32,
    prErrMessage	DisplayString,
    prErrFix		Integer32,
    prErrFixCmd		DisplayString
}

prIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..65535)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Reference Index for each observed process."
    ::= { prEntry 1 }

prNames OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The process name we're counting/checking on."
    ::= { prEntry 2 }

prMin OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The minimum number of processes that should be
	 running.  An error flag is generated if the number of
	 running processes is < the minimum."
    ::= { prEntry 3 }

prMax OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The maximum number of processes that should be
	 running.  An error flag is generated if the number of
	 running processes is > the maximum."
    ::= { prEntry 4 }

prCount OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of current processes running with the name
	 in question."
    ::= { prEntry 5 }

prErrorFlag OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"A Error flag to indicate trouble with a process.  It
	 goes to 1 if there is an error, 0 if no error."
    ::= { prEntry 100 }

prErrMessage OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"An error message describing the problem (if one exists)."
    ::= { prEntry 101 }

prErrFix OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION
	"Setting this to one will try to fix the problem if
	 the agent has been configured with a script to call
	 to attempt to fix problems automatically using remote
	 snmp operations."
    ::= { prEntry 102 }

prErrFixCmd OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The command that gets run when the prErrFix column is 
	 set to 1."
    ::= { prEntry 103 }



extTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF ExtEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"A table of extensible commands returning output and
	 result codes.  These commands are configured via the
	 agent's snmpd.conf file."
    ::= { ucdavis 8 }

extEntry OBJECT-TYPE
    SYNTAX     ExtEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing an extensible script/program and its output."
    INDEX      { extIndex }
    ::= { extTable  1 }

ExtEntry ::= SEQUENCE {
    extIndex		Integer32,
    extNames		DisplayString,
    extCommand		DisplayString,
    extResult		Integer32,
    extOutput		DisplayString,
    extErrFix		Integer32,
    extErrFixCmd	DisplayString
}

extIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..65535)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Reference Index for extensible scripts.  Simply an
	 integer row number."
    ::= { extEntry 1 }

extNames OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"A Short, one name description of the extensible command."
    ::= { extEntry 2 }

extCommand OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The command line to be executed."
    ::= { extEntry 3 }

extResult OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The result code (exit status) from the executed command."
    ::= { extEntry 100 }

extOutput OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The first line of output of the executed command."
    ::= { extEntry 101 }

extErrFix OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION
	"Setting this to one will try to fix the problem if
	 the agent has been configured with a script to call
	 to attempt to fix problems automatically using remote
	 snmp operations."
    ::= { extEntry 102 }
	
extErrFixCmd OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The command that gets run when the extErrFix column is 
	 set to 1."
    ::= { extEntry 103 }

--
-- Memory usage/watch reporting.
-- Not supported on all systems!
-- See agent/mibgroup/ucd_snmp.h to see if its loaded for your architecture.
--
memory OBJECT IDENTIFIER ::= { ucdavis 4 }

memIndex OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Bogus Index.  This should always return the integer 0."
    ::= { memory 1 } 

memErrorName OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Bogus Name. This should always return the string 'swap'."
    ::= { memory 2 } 

memTotalSwap OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total Swap Size configured for the host."
    ::= { memory 3 }

memAvailSwap OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Available Swap Space on the host."
    ::= { memory 4 }

memTotalReal OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total Real/Physical Memory Size on the host."
    ::= { memory 5 }

memAvailReal OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Available Real/Physical Memory Space on the host."
    ::= { memory 6 }

memTotalSwapTXT OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total virtual memory used by text."
    ::= { memory 7 }

memAvailSwapTXT OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"Active virtual memory used by text."
    ::= { memory 8 }

memTotalRealTXT OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total Real/Physical Memory Size used by text."
    ::= { memory 9 }

memAvailRealTXT OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Active Real/Physical Memory Space used by text."
    ::= { memory 10 }

memTotalFree OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total Available Memory on the host"
    ::= { memory 11 }

memMinimumSwap OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Minimum amount of free swap required to be free
	 or else memErrorSwap is set to 1 and an error string is
	 returned memSwapErrorMsg."
    ::= { memory 12 }

memShared OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total Shared Memory"
    ::= { memory 13 }

memBuffer OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total Buffered Memory"
    ::= { memory 14 }

memCached OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Total Cached Memory"
    ::= { memory 15 }

memSwapError OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Error flag.  1 indicates very little swap space left"
    ::= { memory 100 }
	
memSwapErrorMsg OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Error message describing the Error Flag condition"
    ::= { memory 101 } 


dskTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF DskEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"Disk watching information.  Partions to be watched
	 are configured by the snmpd.conf file of the agent."
    ::= { ucdavis 9 }

dskEntry OBJECT-TYPE
    SYNTAX     DskEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing a disk and its statistics."
    INDEX      { dskIndex }
    ::= { dskTable  1 }

DskEntry ::= SEQUENCE {
    dskIndex		Integer32,
    dskPath		DisplayString,
    dskDevice		DisplayString,
    dskMinimum		Integer32,
    dskMinPercent	Integer32,
    dskTotal		Integer32,
    dskAvail		Integer32,
    dskUsed		Integer32,
    dskPercent		Integer32,
    dskPercentNode	Integer32,
    dskErrorFlag	Integer32,
    dskErrorMsg		DisplayString
}

dskIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..65535)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Integer reference number (row number) for the disk mib."
    ::= { dskEntry 1 }
	
dskPath OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Path where the disk is mounted."
    ::= { dskEntry 2 } 

dskDevice OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Path of the device for the partition"
    ::= { dskEntry 3 } 

dskMinimum OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Minimum space required on the disk (in kBytes) before the
         errors are triggered.  Either this or dskMinPercent is
         configured via the agent's snmpd.conf file."
    ::= { dskEntry 4 } 

dskMinPercent OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Percentage of minimum space required on the disk before the
         errors are triggered.  Either this or dskMinimum is
         configured via the agent's snmpd.conf file."
    ::= { dskEntry 5 } 

dskTotal OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Total size of the disk/partion (kBytes)"
    ::= { dskEntry 6 } 

dskAvail OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Available space on the disk"
    ::= { dskEntry 7 } 

dskUsed OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Used space on the disk"
    ::= { dskEntry 8 } 

dskPercent OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Percentage of space used on disk"
    ::= { dskEntry 9 } 

dskPercentNode OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Percentage of inodes used on disk"
    ::= { dskEntry 10 } 

dskErrorFlag OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Error flag signaling that the disk or partition is under
	 the minimum required space configured for it."
    ::= { dskEntry 100 } 
     
dskErrorMsg OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"A text description providing a warning and the space left
	 on the disk."
    ::= { dskEntry 101 } 
     
laTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF LaEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"Load average information."
    ::= { ucdavis 10 }

laEntry OBJECT-TYPE
    SYNTAX	LaEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"An entry containing a load average and its values."
    INDEX	{ laIndex }
    ::= { laTable  1 }

LaEntry ::= SEQUENCE {
    laIndex		Integer32,
    laNames		DisplayString,
    laLoad		DisplayString,
    laConfig		DisplayString,
    laLoadInt		Integer32,
    laLoadFloat		Float,
    laErrorFlag		Integer32,
    laErrMessage	DisplayString
}

laIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..3)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"reference index/row number for each observed loadave."
    ::= { laEntry 1 }

laNames OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The list of loadave names we're watching."
    ::= { laEntry 2 }

laLoad OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The 1,5 and 10 minute load averages (one per row)."
    ::= { laEntry 3 }

laConfig OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The watch point for load-averages to signal an
	 error.  If the load averages rises above this value,
	 the laErrorFlag below is set."
    ::= { laEntry 4 }

laLoadInt OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The 1,5 and 10 minute load averages as an integer.
	 This is computed by taking the floating point
	 loadaverage value and multiplying by 100, then
	 converting the value to an integer."
    ::= { laEntry 5 }

laLoadFloat OBJECT-TYPE
    SYNTAX	Float
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The 1,5 and 10 minute load averages as an opaquely
	 wrapped floating point number."
    ::= { laEntry 6 }

laErrorFlag OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"A Error flag to indicate the load-average has crossed
	 its threshold value defined in the snmpd.conf file.
	 It is set to 1 if the threshold is crossed, 0 otherwise."
    ::= { laEntry 100 }

laErrMessage OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"An error message describing the load-average and its
	 surpased watch-point value."
    ::= { laEntry 101 }


version	OBJECT IDENTIFIER ::= { ucdavis 100 }

versionIndex OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Index to mib (always 0)"
    ::= { version 1 } 

versionTag OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"CVS tag keyword"
    ::= { version 2 } 
     
versionDate OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Date string from RCS keyword"
    ::= { version 3 } 

versionCDate OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Date string from ctime() "
    ::= { version 4 } 

versionIdent OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Id string from RCS keyword"
    ::= { version 5 } 

versionConfigureOptions OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION  
	"Options passed to the configure script when this agent was built."
    ::= { version 6 } 

versionClearCache OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION  
	"Set to 1 to clear the exec cache, if enabled"
    ::= { version 10 } 

versionUpdateConfig OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION  
	"Set to 1 to read-read the config file(s)."
    ::= { version 11 } 

versionRestartAgent OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION  
	"Set to 1 to restart the agent."
    ::= { version 12 } 

versionDoDebugging OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-write
    STATUS	current
    DESCRIPTION  
	"Set to 1 to turn debugging statements on in the agent or 0
	 to turn it off."
    ::= { version 20 } 


snmperrs OBJECT IDENTIFIER ::= { ucdavis 101 }

snmperrIndex OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Bogus Index for snmperrs (always 0)."
    ::= { snmperrs 1 }

snmperrNames OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"snmp"
    ::= { snmperrs 2 }

snmperrErrorFlag OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"A Error flag to indicate trouble with the agent.  It
	 goes to 1 if there is an error, 0 if no error."
    ::= { snmperrs 100 }

snmperrErrMessage OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"An error message describing the problem (if one exists)."
    ::= { snmperrs 101 }


mrTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF MrEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"A table displaying all the oid's registered by mib modules in
	 the agent.  Since the agent is modular in nature, this lists
	 each module's OID it is responsible for and the name of the module"
    ::= { ucdavis 102 }

mrEntry OBJECT-TYPE
    SYNTAX	MrEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"An entry containing a registered mib oid."
    INDEX	{ IMPLIED mrIndex }
    ::= { mrTable 1 }

MrEntry ::= SEQUENCE {
    mrIndex		OBJECT IDENTIFIER,
    mrModuleName	DisplayString
}

mrIndex OBJECT-TYPE
    SYNTAX	OBJECT IDENTIFIER
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The registry slot of a mibmodule."
    ::= { mrEntry  1 }

mrModuleName OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The module name that registered this OID."
    ::= { mrEntry  2 }

systemStats OBJECT IDENTIFIER ::= { ucdavis 11 }

ssIndex OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Reference Index for each observed systemStat (1)."
    ::= { systemStats 1 }

ssErrorName OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The list of systemStats names (vmstat) we're Counting."
    ::= { systemStats 2 }

ssSwapIn OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Amount of memory swapped in from disk (kB/s)."
    ::= { systemStats 3 }

ssSwapOut OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Amount of memory swapped to disk (kB/s)."
    ::= { systemStats 4 }

ssIOSent OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Blocks sent to a block device (blocks/s)."
    ::= { systemStats 5 }

ssIOReceive OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Blocks received from a block device (blocks/s)."
    ::= { systemStats 6 }

ssSysInterrupts OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of interrupts per second, including the clock."
    ::= { systemStats 7 }

ssSysContext OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of context switches per second."
    ::= { systemStats 8 }

ssCpuUser OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"percentages of user CPU time."
    ::= { systemStats 9 }

ssCpuSystem OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"percentages of system CPU time."
    ::= { systemStats 10 }

ssCpuIdle OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"percentages of idle CPU time."
    ::= { systemStats 11 }

-- The agent only implements those of the following counters that the
-- kernel supports! Don't expect all to be present.

ssCpuRawUser OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "user CPU time."
    ::= { systemStats 50 }

ssCpuRawNice OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "nice CPU time."
    ::= { systemStats 51 }

ssCpuRawSystem OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "system CPU time."
    ::= { systemStats 52 }

ssCpuRawIdle OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "idle CPU time."
    ::= { systemStats 53 }

ssCpuRawWait OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "iowait CPU time. This is primarily a SysV thingie"
    ::= { systemStats 54 }

ssCpuRawKernel OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "kernel CPU time."
    ::= { systemStats 55 }

ssCpuRawInterrupt OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "interruptlevel CPU time. This is primarily a BSD thingie"
    ::= { systemStats 56 }

ssIORawSent OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of requests sent to a block device"
    ::= { systemStats 57 }

ssIORawReceived OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of interrupts processed"
    ::= { systemStats 58 }

ssRawInterrupts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of requests received from a block device"
    ::= { systemStats 59 }

ssRawContexts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of context switches"
    ::= { systemStats 60 }

-- possibly used in the future:
--
-- ssErrorFlag OBJECT-TYPE
--     SYNTAX	   Integer32
--     MAX-ACCESS  read-only
--     STATUS      current
--     DESCRIPTION
--         "Error flag."
--     ::= { systemStats 100 }
-- 
-- ssErrMessage OBJECT-TYPE
--     SYNTAX      DisplayString
--     MAX-ACCESS  read-only
--     STATUS      current
--     DESCRIPTION  
--         "Error message describing the errorflag condition."
--     ::= { systemStats 101 } 


ucdTraps OBJECT IDENTIFIER ::= { ucdavis 251 }

ucdStart NOTIFICATION-TYPE
    STATUS	current
    DESCRIPTION
	""
    ::= { ucdTraps 1 }
    
ucdShutdown	NOTIFICATION-TYPE
    STATUS current
    DESCRIPTION
	"This trap is sent when the agent terminates"
    ::= { ucdTraps 2 }

--
-- File Table:  monitor a list of files to check for a maximum size.
-- 

fileTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF FileEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"Table of monitored files."
    ::= { ucdavis 15 }
    
fileEntry OBJECT-TYPE
    SYNTAX	FileEntry
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"Entry of file"
    INDEX	{ fileIndex }
    ::= { fileTable 1 }

FileEntry ::= SEQUENCE {
    fileIndex		Integer32,
    fileName		DisplayString,
    fileSize		Integer32,
    fileMax		Integer32,
    fileErrorFlag	TruthValue,
    fileErrorMsg	DisplayString
}

fileIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Index of file"
    ::= { fileEntry 1 }

fileName OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Filename"
    ::= { fileEntry 2 }

fileSize OBJECT-TYPE
    SYNTAX	Integer32
    UNITS       "kB"
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Size of file (kB)"
    ::= { fileEntry 3 }

fileMax	OBJECT-TYPE
    SYNTAX	Integer32
    UNITS       "kB"
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Limit of filesize (kB)"
    ::= { fileEntry 4 }

fileErrorFlag OBJECT-TYPE
    SYNTAX	TruthValue
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Limit exceeded flag"
    ::= { fileEntry 100 }

fileErrorMsg OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Filesize error message"
    ::= { fileEntry 101 }

END
