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 "201311142207Z"    -- Nov 14, 2013 10:07:00 PM
        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 "201311142207Z"        -- Nov 14, 2013 10:07:00 PM
        DESCRIPTION
                "Added agentppTestIndexAllocStrategy."
        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 }


agentppTestIndexAllocStrategy OBJECT-TYPE
        SYNTAX  INTEGER {
                        noIndexAllocation(1),           -- Do not allocate any indexes at the master agent.
                        firstSubIndexOnly(2),           -- Only allocate an index value for the first sub-index of a row at the master agent.
                        anyNonAllocatedSubIndex(3),     -- Allocate for all sub-indexes of a row index as long as the sub-index value has not yet been allocated by this subagent instance.
                        alwaysFirstSubIndex(4),         -- Always allocate the first sub-index only and do not hold a local reference count for allocated sub-indexes.
                        alwaysAnySubIndex(5)            -- Always allocate any sub-index values.
                        }
        MAX-ACCESS read-write
        STATUS  current
        DESCRIPTION
                "Defines the strategy for shared table index allocation."
        -- 1.3.6.1.4.1.4976.6.3.1.6
        ::= { agentppTestObjects 6 }


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

agentppTestGroup OBJECT-GROUP
        OBJECTS {
                agentppTestTimeout,
		agentppTestIndexAllocStrategy }
        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 }
        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
