AGENTPP-TEST-MIB DEFINITIONS ::= BEGIN

IMPORTS
	DateAndTime,
	RowStatus
		FROM SNMPv2-TC
	agentppExpr
		FROM AGENTPP-GLOBAL-REG
	SnmpAdminString
		FROM SNMP-FRAMEWORK-MIB
	MODULE-IDENTITY,
	OBJECT-TYPE,
	Gauge32,
	Integer32,
	Unsigned32
		FROM SNMPv2-SMI
	OBJECT-GROUP
		FROM SNMPv2-CONF;

agentppTestMIB MODULE-IDENTITY
	LAST-UPDATED "201203041146Z"	-- Mar 4, 2012 11:46:00 AM
	ORGANIZATION "AGENT++"
	CONTACT-INFO
		"Frank Fock
		http://www.agentpp.com
		Email: fock@agentpp.com"
	DESCRIPTION
		"This MIB module defines objects for testing
		the request processing of SNMP agents."
	REVISION "201203041146Z"	-- Mar 4, 2012 11:46:00 AM
	DESCRIPTION
		"Added shared dependent table and session
		table attributes extension table."
	REVISION "200312071238Z"	-- Dec 7, 2003 12:38:00 PM
	DESCRIPTION
		"Added sparse table test table."
	REVISION "200302202209Z"	-- Feb 20, 2003 10:09:00 PM
	DESCRIPTION
		"Added shared table test table definition."
	REVISION "200107141313Z"	-- Jul 14, 2001 1:13:00 PM
	DESCRIPTION
		"Initial version."
	-- 1.3.6.1.4.1.4976.6.3
	::= { agentppExpr 3 }


agentppTestObjects OBJECT IDENTIFIER 
	-- 1.3.6.1.4.1.4976.6.3.1
	::= { agentppTestMIB 1 }

agentppTestTimeout OBJECT-TYPE
	SYNTAX  Unsigned32 (0..1000000)
	UNITS
		"1/1000 seconds."
	MAX-ACCESS read-write
	STATUS  current
	DESCRIPTION
		"Setting this object will be delayed by the given
		amount of milliseconds. That is, by setting this
		object to 1000 the corresponding response to
		that SET request will be delayed by one second."
	-- 1.3.6.1.4.1.4976.6.3.1.1
	::= { agentppTestObjects 1 }


agentppTestSharedTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF AgentppTestSharedEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"This table is implemented by AgentX subagents
		to test behavior of index allocation for shared tables.

		"
	-- 1.3.6.1.4.1.4976.6.3.1.3
	::= { agentppTestObjects 3 }


agentppTestSharedEntry OBJECT-TYPE
	SYNTAX  AgentppTestSharedEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A row of a shared table. Each row is allocated and
		registered in random intervals."
	INDEX {
		agentppTestSharedTableIndex }
	-- 1.3.6.1.4.1.4976.6.3.1.3.1
	::= { agentppTestSharedTable 1 }


AgentppTestSharedEntry ::= SEQUENCE {

	agentppTestSharedTableIndex        Unsigned32,
	agentppTestSharedTableCreationTime DateAndTime,
	agentppTestSharedTableDelay        Integer32,
	agentppTestSharedTableSession      Unsigned32,
	agentppTestSharedTableRowStatus    RowStatus }


agentppTestSharedTableIndex OBJECT-TYPE
	SYNTAX  Unsigned32
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A simple shared index."
	-- 1.3.6.1.4.1.4976.6.3.1.3.1.1
	::= { agentppTestSharedEntry 1 }


agentppTestSharedTableCreationTime OBJECT-TYPE
	SYNTAX  DateAndTime
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The date and time when this row has been created."
	-- 1.3.6.1.4.1.4976.6.3.1.3.1.2
	::= { agentppTestSharedEntry 2 }


agentppTestSharedTableDelay OBJECT-TYPE
	SYNTAX  Integer32 (0..6000)
	UNITS
		"1/100 seconds."
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"The number of 1/100 seconds that a request to this
		row will be delayed before it is processed."
	DEFVAL { 0 }
	-- 1.3.6.1.4.1.4976.6.3.1.3.1.3
	::= { agentppTestSharedEntry 3 }


agentppTestSharedTableSession OBJECT-TYPE
	SYNTAX  Unsigned32
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"This object denotes the AgentX session ID of the
		session on whose behalf this row has been created."
	-- 1.3.6.1.4.1.4976.6.3.1.3.1.4
	::= { agentppTestSharedEntry 4 }


agentppTestSharedTableRowStatus OBJECT-TYPE
	SYNTAX  RowStatus
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"The row status of the row."
	-- 1.3.6.1.4.1.4976.6.3.1.3.1.5
	::= { agentppTestSharedEntry 5 }


agentppTestSessionsTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF AgentppTestSessionsEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"Each session of a subagent registers one
		row in this table, which itself does then allow
		to create rows in the agentppTestSharedTable
		on behalf of the respective session."
	-- 1.3.6.1.4.1.4976.6.3.1.4
	::= { agentppTestObjects 4 }


agentppTestSessionsEntry OBJECT-TYPE
	SYNTAX  AgentppTestSessionsEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A row of this table is created by each subagent
		session that implements the AGENTPP-TEST-MIB."
	INDEX {
		agentppTestSessionIndex }
	-- 1.3.6.1.4.1.4976.6.3.1.4.1
	::= { agentppTestSessionsTable 1 }


AgentppTestSessionsEntry ::= SEQUENCE {

	agentppTestSessionIndex Unsigned32,
	agentppTestRowCreation  Unsigned32 }


agentppTestSessionIndex OBJECT-TYPE
	SYNTAX  Unsigned32
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The session ID of the AgentX subagent session
		that registered this row."
	-- 1.3.6.1.4.1.4976.6.3.1.4.1.1
	::= { agentppTestSessionsEntry 1 }


agentppTestRowCreation OBJECT-TYPE
	SYNTAX  Unsigned32
	MAX-ACCESS read-write
	STATUS  current
	DESCRIPTION
		"This object can be set to the index of a new row
		in the agentppTestSharedTable. If a row with the
		set index already exists, this object will return zero,
		otherwise it will return the last value set."
	DEFVAL { 0 }
	-- 1.3.6.1.4.1.4976.6.3.1.4.1.2
	::= { agentppTestSessionsEntry 2 }


agentppTestSparseTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF AgentppTestSparseEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"This table implements a dynamically sparsed
		table. Each column except the row status column
		can be set notAccessible. This is done by just
		setting the same value to the object that it already
		has."
	-- 1.3.6.1.4.1.4976.6.3.1.5
	::= { agentppTestObjects 5 }


agentppTestSparseEntry OBJECT-TYPE
	SYNTAX  AgentppTestSparseEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A row of a sparse table can be created and
		deleted via its row status column."
	INDEX {
		agentppTestSparseIndex }
	-- 1.3.6.1.4.1.4976.6.3.1.5.1
	::= { agentppTestSparseTable 1 }


AgentppTestSparseEntry ::= SEQUENCE {

	agentppTestSparseIndex     SnmpAdminString,
	agentppTestSparseCol1      Integer32,
	agentppTestSparseCol2      Gauge32,
	agentppTestSparseCol3      SnmpAdminString,
	agentppTestSparseRowStatus RowStatus }


agentppTestSparseIndex OBJECT-TYPE
	SYNTAX  SnmpAdminString
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"An arbitrary admin string."
	-- 1.3.6.1.4.1.4976.6.3.1.5.1.1
	::= { agentppTestSparseEntry 1 }


agentppTestSparseCol1 OBJECT-TYPE
	SYNTAX  Integer32
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"By setting this object to its current value the object
		becomes notAccessible allowing testing of
		sparse table implementation."
	DEFVAL { 1 }
	-- 1.3.6.1.4.1.4976.6.3.1.5.1.2
	::= { agentppTestSparseEntry 2 }


agentppTestSparseCol2 OBJECT-TYPE
	SYNTAX  Gauge32
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"By setting this object to its current value the object
		becomes notAccessible allowing testing of
		sparse table implementation."
	DEFVAL { 2 }
	-- 1.3.6.1.4.1.4976.6.3.1.5.1.3
	::= { agentppTestSparseEntry 3 }


agentppTestSparseCol3 OBJECT-TYPE
	SYNTAX  SnmpAdminString
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"By setting this object to its current value the object
		becomes notAccessible allowing testing of
		sparse table implementation."
	DEFVAL { "3" }
	-- 1.3.6.1.4.1.4976.6.3.1.5.1.4
	::= { agentppTestSparseEntry 4 }


agentppTestSparseRowStatus OBJECT-TYPE
	SYNTAX  RowStatus
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"Use this column to create a row in the test table."
	-- 1.3.6.1.4.1.4976.6.3.1.5.1.5
	::= { agentppTestSparseEntry 5 }


agentppTestSharedExtTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF AgentppTestSharedExtEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A shared table which is dependent on table
		agentppTestSharedTable. "
	-- 1.3.6.1.4.1.4976.6.3.1.6
	::= { agentppTestObjects 6 }


agentppTestSharedExtEntry OBJECT-TYPE
	SYNTAX  AgentppTestSharedExtEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A dependent shared table row with two sub-index
		values. Use agentppTestSharedTableIndexStrategy
		to change the index allocation strategy at the master
		agent."
	INDEX {
		agentppTestSharedTableIndex,
		agentppTestSharedExtTableIndex }
	-- 1.3.6.1.4.1.4976.6.3.1.6.1
	::= { agentppTestSharedExtTable 1 }


AgentppTestSharedExtEntry ::= SEQUENCE {

	agentppTestSharedExtTableIndex     SnmpAdminString,
	agentppTestSharedExtValueInt       Integer32,
	agentppTestSharedExtValueString    SnmpAdminString,
	agentppTestSharedExtTableRowStatus RowStatus }


agentppTestSharedExtTableIndex OBJECT-TYPE
	SYNTAX  SnmpAdminString
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"An shared table string index for this extension
		table."
	-- 1.3.6.1.4.1.4976.6.3.1.6.1.1
	::= { agentppTestSharedExtEntry 1 }


agentppTestSharedExtValueInt OBJECT-TYPE
	SYNTAX  Integer32 (-1024..1023)
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"An integer value in the extension table."
	DEFVAL { 0 }
	-- 1.3.6.1.4.1.4976.6.3.1.6.1.2
	::= { agentppTestSharedExtEntry 2 }


agentppTestSharedExtValueString OBJECT-TYPE
	SYNTAX  SnmpAdminString
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"A string value of the shared extension table."
	-- 1.3.6.1.4.1.4976.6.3.1.6.1.3
	::= { agentppTestSharedExtEntry 3 }


agentppTestSharedExtTableRowStatus OBJECT-TYPE
	SYNTAX  RowStatus
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"The RowStatus column of this table which controls
		the row lifecycle."
	-- 1.3.6.1.4.1.4976.6.3.1.6.1.4
	::= { agentppTestSharedExtEntry 4 }


agentppTestSessionAttrTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF AgentppTestSessionAttrEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"Additional attributes for a test session."
	-- 1.3.6.1.4.1.4976.6.3.1.7
	::= { agentppTestObjects 7 }


agentppTestSessionAttrEntry OBJECT-TYPE
	SYNTAX  AgentppTestSessionAttrEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A session attributes row."
	AUGMENTS {
		agentppTestSessionsEntry }
	-- 1.3.6.1.4.1.4976.6.3.1.7.1
	::= { agentppTestSessionAttrTable 1 }


AgentppTestSessionAttrEntry ::= SEQUENCE {

	agentppTestSessionIndexStrategy INTEGER }


agentppTestSessionIndexStrategy OBJECT-TYPE
	SYNTAX  INTEGER {
			noIndexAllocation(0),
			firstSubIndexOnly(1),
			firstNonAllocatedSubIndex(2),
			alwaysFirstSubIndex(3),
			alwaysAnySubIndex(4) }
	MAX-ACCESS read-create
	STATUS  current
	DESCRIPTION
		"The index allocation strategy for this session."
	DEFVAL { firstSubIndexOnly }
	-- 1.3.6.1.4.1.4976.6.3.1.7.1.1
	::= { agentppTestSessionAttrEntry 1 }


agentppTestConformance OBJECT IDENTIFIER 
	-- 1.3.6.1.4.1.4976.6.3.2
	::= { agentppTestMIB 2 }

agentppTestGroup OBJECT-GROUP
	OBJECTS {
		agentppTestTimeout }
	STATUS  current
	DESCRIPTION
		"Basic test objects."
	-- 1.3.6.1.4.1.4976.6.3.2.1
	::= { agentppTestConformance 1 }

agentppTestAgentXSubagentGroup OBJECT-GROUP
	OBJECTS {
		agentppTestSharedTableCreationTime,
		agentppTestSharedTableDelay,
		agentppTestSharedTableRowStatus,
		agentppTestSharedTableSession,
		agentppTestRowCreation,
		agentppTestSharedExtValueInt,
		agentppTestSharedExtValueString,
		agentppTestSharedExtTableRowStatus,
		agentppTestSessionIndexStrategy }
	STATUS  current
	DESCRIPTION
		"This group contains test objects for AgentX subagents.
		Non-AgentX agents should not implement these
		objects."
	-- 1.3.6.1.4.1.4976.6.3.2.2
	::= { agentppTestConformance 2 }

agentppTestGroupSparseTable OBJECT-GROUP
	OBJECTS {
		agentppTestSparseCol1,
		agentppTestSparseCol2,
		agentppTestSparseCol3,
		agentppTestSparseRowStatus }
	STATUS  current
	DESCRIPTION
		"This group contains required objects for sparse
		table testing."
	-- 1.3.6.1.4.1.4976.6.3.2.3
	::= { agentppTestConformance 3 }

END
