-- *****************************************************************
-- CISCO-MEMORY-POOL-MIB
--
-- February 1996, Jeffrey T. Johnson
--
-- Copyright (c) 1996 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-MEMORY-POOL-MIB DEFINITIONS ::= BEGIN

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

ciscoMemoryPoolMIB MODULE-IDENTITY
	LAST-UPDATED	"9602120000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"       Cisco Systems
			Customer Service

		Postal: 170 W Tasman Drive
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"MIB module for monitoring memory pools"
	::= { ciscoMgmt 48 }

CiscoMemoryPoolTypes ::= TEXTUAL-CONVENTION
	STATUS		current
	DESCRIPTION
		"Represents the different types of memory pools that
		may be present in a managed device.  Memory pools can
		be roughly categorized into two groups, predefined
		pools and dynamic pools.  The following pool types
		are currently predefined:
			1:  processor memory
			2:  i/o memory
			3:  pci memory
			4:  fast memory
			5:  multibus memory

		Dynamic pools will have a pool type value greater than
		any of the predefined types listed above.

		Note that only the processor pool is required to be
		supported by all devices.  Support for other pool types
		is dependent on the device being managed."
	SYNTAX		Integer32 (1..65535)

ciscoMemoryPoolObjects OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 1 }

ciscoMemoryPoolTable OBJECT-TYPE
	SYNTAX	    SEQUENCE OF CiscoMemoryPoolEntry
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"A table of memory pool monitoring entries."
	::= { ciscoMemoryPoolObjects 1 }

ciscoMemoryPoolEntry OBJECT-TYPE
	SYNTAX	    CiscoMemoryPoolEntry
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"An entry in the memory pool monitoring table."
	INDEX	    { ciscoMemoryPoolType }
	::= { ciscoMemoryPoolTable 1 }

CiscoMemoryPoolEntry ::=
	SEQUENCE {
		ciscoMemoryPoolType		CiscoMemoryPoolTypes,
		ciscoMemoryPoolName		DisplayString,
		ciscoMemoryPoolAlternate	Integer32,
		ciscoMemoryPoolValid		TruthValue,
		ciscoMemoryPoolUsed		Gauge32,
		ciscoMemoryPoolFree		Gauge32,
		ciscoMemoryPoolLargestFree	Gauge32
	}

ciscoMemoryPoolType OBJECT-TYPE
	SYNTAX	    CiscoMemoryPoolTypes
	MAX-ACCESS  not-accessible
	STATUS	    current
	DESCRIPTION
		"The type of memory pool for which this entry
		contains information."
	::= { ciscoMemoryPoolEntry 1 }

ciscoMemoryPoolName OBJECT-TYPE
	SYNTAX	    DisplayString
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"A textual name assigned to the memory pool.  This
		object is suitable for output to a human operator,
		and may also be used to distinguish among the various
		pool types, especially among dynamic pools."
	::= { ciscoMemoryPoolEntry 2 }

ciscoMemoryPoolAlternate OBJECT-TYPE
	SYNTAX	    Integer32 (0..65535)
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates whether or not this memory pool has an
		alternate pool configured.  Alternate pools are
		used for fallback when the current pool runs out
		of memory.

		If an instance of this object has a value of zero,
		then this pool does not have an alternate.  Otherwise
		the value of this object is the same as the value of
		ciscoMemoryPoolType of the alternate pool."
	::= { ciscoMemoryPoolEntry 3 }

ciscoMemoryPoolValid OBJECT-TYPE
	SYNTAX	    TruthValue
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates whether or not the remaining objects in
		this entry contain accurate data.  If an instance
		of this object has the value false (which in and of
		itself indicates an internal error condition), the
		values of the remaining objects in the conceptual row
		may contain inaccurate information (specifically, the
		reported values may be less than the actual values)."
	::= { ciscoMemoryPoolEntry 4 }

ciscoMemoryPoolUsed OBJECT-TYPE
	SYNTAX	    Gauge32
	UNITS	    "bytes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates the number of bytes from the memory pool
		that are currently in use by applications on the
		managed device."
	::= { ciscoMemoryPoolEntry 5 }

ciscoMemoryPoolFree OBJECT-TYPE
	SYNTAX	    Gauge32
	UNITS	    "bytes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates the number of bytes from the memory pool
		that are currently unused on the managed device.

		Note that the sum of ciscoMemoryPoolUsed and
		ciscoMemoryPoolFree is the total amount of memory
		in the pool"
	::= { ciscoMemoryPoolEntry 6 }

ciscoMemoryPoolLargestFree OBJECT-TYPE
	SYNTAX	    Gauge32
	UNITS	    "bytes"
	MAX-ACCESS  read-only
	STATUS	    current
	DESCRIPTION
		"Indicates the largest number of contiguous bytes
		from the memory pool that are currently unused on
		the managed device."
	::= { ciscoMemoryPoolEntry 7 }

-- notifications

ciscoMemoryPoolNotifications OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 2 }

-- (no notifications are currently defined)


-- conformance information

ciscoMemoryPoolConformance OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 3 }
ciscoMemoryPoolCompliances OBJECT IDENTIFIER ::= { ciscoMemoryPoolConformance 1 }
ciscoMemoryPoolGroups OBJECT IDENTIFIER ::= { ciscoMemoryPoolConformance 2 }


-- compliance statements

ciscoMemoryPoolCompliance MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities which implement
		the Cisco Memory Pool MIB"
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoMemoryPoolGroup }
	::= { ciscoMemoryPoolCompliances 1 }


-- units of conformance

ciscoMemoryPoolGroup OBJECT-GROUP
	OBJECTS {
		ciscoMemoryPoolName,
		ciscoMemoryPoolAlternate,
		ciscoMemoryPoolValid,
		ciscoMemoryPoolUsed,
		ciscoMemoryPoolFree,
		ciscoMemoryPoolLargestFree
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing memory pool monitoring."
	::= { ciscoMemoryPoolGroups 1 }


END
