[This is preliminary documentation and subject to change.]
The SNMPv1- and SNMPv2C-defined ASN.1 macro OBJECT-TYPE describes the characteristics of a manageable unit of data. A set of OBJECT-TYPE macros can be thought of as a collection of objects that share some relationship. In SNMPv2C, you can formally specify the constituent elements of a group using the OBJECT-GROUP macro; however, there is no formal mechanism to do this in SNMPv1. For the purposes of the SNMP providers, you can invent a collection relationship and fabricate collections. This can be done for both SNMPv1 and SNMPv2C MIB definitions; that is, the SNMPv2C OBJECT-GROUP macro is ignored.
You can fabricate collections for each SNMPv1 and SNMPv2C information module. The following notation is needed to define precisely how such collections are constructed:
namedNode OBJECT IDENTIFIER ::= <object identifier value>
Using the preceding notation, the manner in which fabricated OBJECT-GROUP instances are defined in an SNMPv1 and SNMPv2C information module can be stated as follows:
Let n be a named node in an SNMP information module M, and CS(M,n) the set of OBJECT-TYPE instances in M defined by:
CS(M,n) = { s | s is a scalar and objId(s) = objId(n).x, for some integer x}
Then if CS(M,n) is not empty, it defines a scalar collection for the SNMPv1 or SNMPv2C information module M.
Let n be a named node in an SNMP information module M, and CT(M,n) the set of OBJECT-TYPE instances in M defined by:
CT(M,n) = { c | c is a column of table n and objId(c) = objId(n).x.y, for some integers x, y}
Then if CT(M,n) is not empty, it defines a table collection for the SNMPv1 or SNMPv2C information module M.
This definition provides a basis for the following mapping process: