FROGFOOT-RESOURCES-MIB

-- -*- mib -*-

DEFINITIONS ::= BEGIN

-- Frogfoot Networks CC Resources MIB

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32,
	enterprises
		FROM SNMPv2-SMI
	TEXTUAL-CONVENTION, DisplayString, TruthValue
		FROM SNMPv2-TC
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF;

resources 	MODULE-IDENTITY
	LAST-UPDATED "200310040000Z"
	ORGANIZATION "Frogfoot Networks"
	CONTACT-INFO
		"	Abraham van der Merwe

			Postal: Frogfoot Networks CC
					P.O. Box 3472
					Matieland
					Stellenbosch
					7602
					South Africa

			Phone: +27 82 565 4451
			Email: abz@frogfoot.net"
	DESCRIPTION
		"The MIB module to describe system resources."
	::= { system 1 }

frogfoot		OBJECT IDENTIFIER ::= { enterprises 10002 }
servers			OBJECT IDENTIFIER ::= { frogfoot 1 }
system			OBJECT IDENTIFIER ::= { servers 1 }

memory			OBJECT IDENTIFIER ::= { resources 1 }
swap			OBJECT IDENTIFIER ::= { resources 2 }
storage			OBJECT IDENTIFIER ::= { resources 3 }

resMIB			OBJECT IDENTIFIER ::= { resources 31 }
resMIBObjects	OBJECT IDENTIFIER ::= { resMIB 1 }
resConformance	OBJECT IDENTIFIER ::= { resMIB 2 }

resGroups		OBJECT IDENTIFIER ::= { resConformance 1 }
resCompliances	OBJECT IDENTIFIER ::= { resConformance 2 }

TableIndex ::= TEXTUAL-CONVENTION
	DISPLAY-HINT	"d"
	STATUS			current
	DESCRIPTION
		"A unique value, greater than zero. It is recommended
		that values are assigned contiguously starting from 1."
	SYNTAX			Integer32 (1..2147483647)

--
-- Memory statistics
--

memTotal		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Total usable physical memory (in KB)"
	::= { memory 1 }

memFree			OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Available physical memory (in KB)"
	::= { memory 2 }

memBuffer		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Physical memory used by buffers (in KB)"
	::= { memory 3 }

memCache		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Physical memory used for caching (in KB)"
	::= { memory 4 }

--
-- Swap space statistics
--

swapTotal		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Total swap space size (in KB)"
	::= { swap 1 }

swapFree 		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Swap space still available (in KB)"
	::= { swap 2 }

--
-- Disk space statistics
--

diskNumber		OBJECT-TYPE
	SYNTAX			Integer32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The number of disks (regardless of their current
		state) present on this system."
	::= { storage 1 }

diskTable		OBJECT-TYPE
	SYNTAX			SEQUENCE OF DiskEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A table of disks on this system. The number of entries
		is given by the value of diskNumber."
	::= { storage 2 }

diskEntry		OBJECT-TYPE
	SYNTAX			DiskEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"An entry containing management information applicable
		to a particular disk."
	INDEX { diskIndex }
	::= { diskTable 1 }

DiskEntry ::=
	SEQUENCE {
		diskIndex			TableIndex,
		diskDescr			DisplayString,
		diskType			INTEGER,
		diskTotal			Gauge32,
		diskFree			Gauge32
	}

diskIndex		OBJECT-TYPE
	SYNTAX			TableIndex
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A unique value, greater than zero, for each disk in the
		system."
	::= { diskEntry 1 }

diskDescr		OBJECT-TYPE
	SYNTAX			DisplayString
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"A textual string containing information about the disk.
		This string should include the name of the manufacturer,
		the product name and the model number."
	::= { diskEntry 2 }

diskType		OBJECT-TYPE
	SYNTAX			INTEGER {
						unknown(1),
						idedisk(2),		-- IDE Permanent Storage
						idecdrom(3),	-- IDE CDROM Drive
						scsidisk(4),	-- SCSI Permanent Storage
						scsicdrom(5)	-- SCSI CDROM Drive
					}
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The type of disk. Additional types may be assigned by
		Frogfoot Networks in the future."
	::= { diskEntry 3 }

diskTotal		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Total disk space (in MB)"
	::= { diskEntry 4 }

diskFree		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Disk space still available (in MB)"
	::= { diskEntry 5 }

partTable		OBJECT-TYPE
	SYNTAX			SEQUENCE OF PartEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A table of partitions on each disk in this system."
	::= { storage 3 }

partEntry		OBJECT-TYPE
	SYNTAX			PartEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"An entry containing management information applicable
		to a particular partition on the disk."
	INDEX { diskIndex, partIndex }
	::= { partTable 1 }

PartEntry ::=
	SEQUENCE {
		partIndex		TableIndex,
		partDescr		DisplayString,
		partType		INTEGER,
		partFSType		INTEGER,
		partReadWrite	TruthValue,
		partTotal		Gauge32,
		partFree		Gauge32
	}

partIndex		OBJECT-TYPE
	SYNTAX			TableIndex
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A unique value, greater than zero, for each partition on the
		disk. It is recommended that values are assigned contiguously
		starting from 1."
	::= { partEntry 1 }

partDescr		OBJECT-TYPE
	SYNTAX			DisplayString
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"A textual string containing information about the partition."
	::= { partEntry 2 }

partType		OBJECT-TYPE
	SYNTAX			INTEGER {
						empty(0),
						unknown(1),
						linux(2),
						bsd(3),
						swap(4)
					}
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The type of partition. Additional types may be assigned by
		Frogfoot Networks in the future."
	::= { partEntry 3 }

partFSType		OBJECT-TYPE
	SYNTAX			INTEGER {
						none(0),
						unknown(1),
						ext2(2),
						ufs(3),
						procfslinux(4),
						procfsbsd(5),
						kernfsbsd(6),
						iso9660(7),
						nfs(8),
						swap(9)
					}
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The type of file system present on the partition. Additional
		types may be assigned by Frogfoot Networks in the future."
	::= { partEntry 4 }

partReadWrite	OBJECT-TYPE
	SYNTAX			TruthValue
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"This object has a value of false(2) if this partition is
		mounted read-only and true(1) when it is mounted read-write
		access."
	::= { partEntry 5 }

partTotal		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Total space on partition (in MB)"
	::= { partEntry 6 }

partFree		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Partition space still available (in MB)"
	::= { partEntry 7 }

--
-- Compliance Statements
--

resCompliance	MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION
		"The compliance statement for SNMP entities which have
		system resources such as volatile and non-volatile
		storage."
	MODULE
		MANDATORY-GROUPS { resMemGroup, resSwapGroup, resDiskGroup }
		GROUP resMemGroup
		DESCRIPTION
			"This group is mandatory for those systems which have
			any form of volatile storage."
		GROUP resSwapGroup
		DESCRIPTION
			"This group is mandatory for those systems which have
			the ability to temporarily swap unused pages to disk."
		GROUP resDiskGroup
		DESCRIPTION
			"This group is mandatory for those systems which have
			any form of non-volatile storage."
	::= { resCompliances 1 }

resMemGroup		OBJECT-GROUP
	OBJECTS { memTotal, memFree, memBuffer, memCache }
	STATUS			current
	DESCRIPTION
		"A collection of objects providing information specific to
		volatile system storage."
	::= { resGroups 1 }

resSwapGroup	OBJECT-GROUP
	OBJECTS { swapTotal, swapFree }
	STATUS			current
	DESCRIPTION
		"A collection of objects providing information specific to
		storage used for swapping pages to disk."
	::= { resGroups 2 }

resDiskGroup	OBJECT-GROUP
	OBJECTS { diskNumber, diskDescr, diskType, diskTotal,
			  diskFree, partDescr, partType, partFSType,
			  partReadWrite, partTotal, partFree }
	STATUS			current
	DESCRIPTION
		"A collection of objects providing information specific to
		non-volatile system storage."
	::= { resGroups 3 }

END
