UCD-SNMP-MIB DEFINITIONS ::= BEGIN

--
--  Change as necessary
--

IMPORTS
        enterprises, OBJECT-TYPE 				
	    FROM SNMPv2-SMI
	DisplayString 				
	    FROM SNMPv2-TC;

-- private	  OBJECT IDENTIFIER ::= { internet 4 }
-- enterprises    OBJECT IDENTIFIER ::= { private 1 }
ucdavis          OBJECT IDENTIFIER ::= { enterprises 2021 }
-- processes      OBJECT IDENTIFIER ::= { ucdavis 1 }
-- exec           OBJECT IDENTIFIER ::= { ucdavis 3 }
-- memory         OBJECT IDENTIFIER ::= { ucdavis 4 }
-- lockd          OBJECT IDENTIFIER ::= { ucdavis 5 }
-- disk           OBJECT IDENTIFIER ::= { ucdavis 6 }
-- load           OBJECT IDENTIFIER ::= { ucdavis 7 }
-- version        OBJECT IDENTIFIER ::= { ucdavis 100 }

-- 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 }
unknown           OBJECT IDENTIFIER ::= { ucdSnmpAgent 255 }


processes OBJECT-TYPE
	SYNTAX Processes
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"A set of information on running programs/daemons."
	INDEX { processIndex }
	::= { ucdavis 1 }


Processes ::= SEQUENCE {
   processIndex  INTEGER,
   processNames  DisplayString,
   processMin    INTEGER,
   processMax    INTEGER,
   processCount  INTEGER,
   processErrorFlag  INTEGER,
   processErrMessage  DisplayString,
   processErrFix  INTEGER
}

processIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Reference Index for each observed process."
	::= { processes 1 }

processNames OBJECT-TYPE
	SYNTAX DisplayString  (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The table of process names we're Counting."
	::= { processes 2 }

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

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

processCount OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The number of current processes running with the name
		in question."
	::= { processes 5 }

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

processErrMessage OBJECT-TYPE
	SYNTAX DisplayString  (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"An error message describing the problem (if one exists)."
	::= { processes 101 }

processErrFix OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-write
	STATUS mandatory
	DESCRIPTION
		"Setting this to one will try to fix the problem if possible."
	::= { processes 102 }

extensible OBJECT-TYPE
	SYNTAX Extensible
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"Extensible commands returning output and result codes."
	INDEX { extensibleIndex }
	::= { ucdavis 3 }

Extensible ::= SEQUENCE {
   extensibleIndex   INTEGER,
   extensibleNames   DisplayString,
   extensibleCommand DisplayString,
   extensibleResult  INTEGER,
   extensibleOutput  DisplayString,
   extensibleErrFix  INTEGER
}

extensibleIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Reference Index for extensible calls."
	::= { extensible 1 }

extensibleNames OBJECT-TYPE
	SYNTAX DisplayString  (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Short, one name descriptions of the extensible commands."
	::= { extensible 2 }

extensibleCommand OBJECT-TYPE
	SYNTAX DisplayString  (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The command line to be executed."
	::= { extensible 3 }

extensibleResult OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The result code from the executed command."
	::= { extensible 100 }

extensibleOutput OBJECT-TYPE
	SYNTAX DisplayString (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The output of the extensible command (top line only)."
	::= { extensible 101 }

extensibleErrFix OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-write
	STATUS mandatory
	DESCRIPTION
		"Set to 1 to fix the problem, if possible."
	::= { extensible 102 }
	
memory OBJECT-TYPE
	SYNTAX Memory
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"Miscellanous stuff -- memory related."
	::= { ucdavis 4 }

Memory ::= SEQUENCE {
   memIndex        INTEGER,
   memErrorName    DisplayString,
   memTotalSwap     INTEGER,
   memAvailSwap     INTEGER,
   memTotalReal     INTEGER,
   memAvailReal     INTEGER,
   memTotalSwapTXT     INTEGER,
   memAvailSwapTXT     INTEGER,
   memTotalRealTXT     INTEGER,
   memAvailRealTXT     INTEGER,
   memTotalFree       INTEGER,
   memMinimumSwap       INTEGER,
   memSwapError       DisplayString
}
memIndex OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Generic Index."
     ::= { memory 1 } 

memErrorName OBJECT-TYPE
     SYNTAX  DisplayString
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Bogus Name (swap) for consistancy with the rest of the mibs."
     ::= { memory 2 } 

memTotalSwap OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Total Swap Size."
	::= { memory 3 }

memAvailSwap OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Available Swap Space."
	::= { memory 4 }

memTotalReal OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Total Real/Physical Memory Size."
	::= { memory 5 }

memAvailReal OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Available Real/Physical Memory Space."
	::= { memory 6 }

memTotalSwapTXT OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Total VM used by text."
	::= { memory 7 }

memAvailSwapTXT OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Active VM used by text."
	::= { memory 8 }

memTotalRealTXT OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Total Real/Physical Memory Size used by txt."
	::= { memory 9 }

memAvailRealTXT OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Active Real/Physical Memory Space used by txt."
	::= { memory 10 }

memTotalFree OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Total Available Memory"
	::= { memory 11 }

memMinimumSwap OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Minimum amount of free swap.  Otherwise memErrorSwap
		is set to 1 "
	::= { memory 12 }

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

lockd OBJECT-TYPE
	SYNTAX Lockd
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"Tests the functionality of the rpc.lockd/rpc.statd pair."
	INDEX { lockdIndex }
	::= { ucdavis 5 }

Lockd ::= SEQUENCE {
   lockdIndex   INTEGER,
   lockdError  INTEGER,
   lockdErrorMsg  DisplayString
}

lockdIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Reference Index for lockd calls."
	::= { lockd 1 }

lockdError OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Error Flag.  > 0 indicates error"
	::= { lockd 100 }

lockdErrorMsg OBJECT-TYPE
	SYNTAX DisplayString (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Error message if something is wrong"
	::= { lockd 101 }

disk 	OBJECT-TYPE
	SYNTAX Disk
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"Disk watching information."
	INDEX { diskIndex }
	::= { ucdavis 6 }

Disk ::= SEQUENCE {
   diskIndex   INTEGER,
   diskPath  DisplayString,
   diskDevice  DisplayString,
   diskMinimum  INTEGER,
   diskTotal  INTEGER,
   diskAvail  INTEGER,
   diskUsed  INTEGER,
   diskPercent  INTEGER,
   diskErrorFlag  INTEGER,
   diskErrorMsg  DisplayString
}

diskIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Reference number for the Disk Mib."
	::= { disk 1 }
	
diskPath OBJECT-TYPE
     SYNTAX  DisplayString
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Path where disk is mounted."
     ::= { disk 2 } 

diskDevice OBJECT-TYPE
     SYNTAX  DisplayString
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Device path"
     ::= { disk 3 } 

diskMinimum OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Minimum space required for the disk."
     ::= { disk 4 } 

diskTotal OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Total Disk Size (kbytes)"
     ::= { disk 5 } 

diskAvail OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Available disk Space"
     ::= { disk 6 } 

diskUsed OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Used Space on Disk"
     ::= { disk 7 } 

diskPercent OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Percentage of space used on disk"
     ::= { disk 8 } 

diskErrorFlag OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Error flag signaling disk is over minimum required space"
     ::= { disk 100 } 
     
diskErrorMsg OBJECT-TYPE
     SYNTAX  DisplayString
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "A text description of what caused the error flag to be set."
     ::= { disk 101 } 
     
loadaves OBJECT-TYPE
	SYNTAX Loadaves
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"Load average information."
	INDEX { loadaveIndex }
	::= { ucdavis 7 }


Loadaves ::= SEQUENCE {
   loadaveIndex  INTEGER,
   loadaveNames  DisplayString,
   loadaveLoad   DisplayString,
   loadaveConfig DisplayString,
   loadaveErrorFlag  INTEGER,
   loadaveErrMessage  DisplayString
}

loadaveIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Reference Index for each observed loadave."
	::= { loadaves 1 }

loadaveNames OBJECT-TYPE
	SYNTAX DisplayString (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The list of loadave names we're Counting."
	::= { loadaves 2 }

loadaveLoad OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The 1,5 and 10 minute load averages."
	::= { loadaves 3 }

loadaveConfig OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"The watch point for loadaverages to signal an error."
	::= { loadaves 4 }

loadaveErrorFlag OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"A Error flag to indicate trouble with a loadave.  It
		goes to 1 if there is an error, 0 if no error."
	::= { loadaves 100 }

loadaveErrMessage OBJECT-TYPE
	SYNTAX DisplayString (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"An error message describing the problem (if one exists)."
	::= { loadaves 101 }

version	OBJECT-TYPE
	SYNTAX Version
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"ece-snmpd version info."
	INDEX { versionIndex }
	::= { ucdavis 100 }

Version ::= SEQUENCE {
   versionIndex   INTEGER,
   versionTag  DisplayString,
   versionDate  DisplayString,
   versionCDate  DisplayString,
   versionIdent  DisplayString,
   versionClearCache  INTEGER,
   versionUpdateConfig  INTEGER
}
   
versionIndex OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION  
          "Index to mib (always 1)"
     ::= { version 1 } 

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

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

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

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

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

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

snmperrs OBJECT-TYPE
	SYNTAX Snmperrs
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION
		"A place for the agent to report problems."
	INDEX { snmperrIndex }
	::= { ucdavis 101 }


Snmperrs ::= SEQUENCE {
   snmperrIndex  INTEGER,
   snmperrNames  DisplayString,
   snmperrErrorFlag  INTEGER,
   snmperrErrMessage  DisplayString
}

snmperrIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"Reference Index for each observed snmperr."
	::= { snmperrs 1 }

snmperrNames OBJECT-TYPE
	SYNTAX DisplayString (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"snmp"
	::= { snmperrs 2 }

snmperrErrorFlag OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	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 (SIZE (0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION
		"An error message describing the problem (if one exists)."
	::= { snmperrs 101 }

END

