rfc-1442

Structure of Management Information for version 2 of the Simple Network Management Protocol (SNMPv2)

J. Case, K. McCloghrie, M. Rose, S. Waldbusser
date1993-04 streamIETF areamgt wgsnmpv2 statusPROPOSED STANDARD pages56 canonicalhttps://www.rfc-editor.org/rfc/rfc1442 doi10.17487/RFC1442
Management information is viewed as a collection of managed objects, residing in a virtual information store, termed the Management Information Base (MIB). Collections of related objects are defined in MIB modules. These modules are written using a subset of OSI's Abstract Syntax Notation One (ASN.1) [1]. It is the purpose of this document, the Structure of Management Information (SMI), to define that subset. [STANDARDS-TRACK]

obsoleted by

Extracted elements (30)

design-rationale §11

Conceptual rows should contain no more than approximately 20 columnar objects, and should be organized along functional or usage lines (e.g., one row for statistics, another for parameters). This reflects the constraint that a single PDU must be able to carry a full row fetch, and avoids over-fragmentation that mimics OSI-style optional attributes.

snmp

design-rationale §7.1.11

Counter64 was introduced because high-speed interfaces can cause a Counter32 to wrap in under one hour, making it impossible to reliably track change rates. The SMI restricts Counter64 use to only these high-rate cases to avoid gratuitous 64-bit counters.

snmp

design-rationale §7.1.5

IpAddress and NsapAddress are tagged APPLICATION types 'for historical reasons'. The document notes that new MIB designs should represent network addresses using the TEXTUAL-CONVENTION macro rather than these tagged types, implying the tagging predates the cleaner textual convention mechanism.

snmp

design-rationale §11.3

When de-OSIfying MIB modules from other organizations, events should be mapped to NOTIFICATION-TYPE sparingly because SNMPv2 emphasizes trap-directed polling; few or no notifications typically need to be defined for any MIB module.

snmp

interoperability-note §7.1.2

Although the SMI imposes no size limit on OCTET STRING, MIB designers should be aware that there may be implementation and interoperability limitations for sizes in excess of 255 octets.

snmp

interoperability-note §7.4

The 'deprecated' STATUS value signals that an object or notification is obsolete but that implementors may wish to support it to foster interoperability with older implementations. It differs from 'obsolete', which carries no such recommendation.

snmp

normative-requirement §3 MUST

All information modules must start with exactly one invocation of the MODULE-IDENTITY macro, which must appear immediately after any IMPORTS or EXPORTS statements.

snmp

normative-requirement §7.1.3 MUST

An OBJECT IDENTIFIER instance may have at most 128 sub-identifiers, and each sub-identifier must not exceed 2^32-1 (4294967295). The final sub-identifier of any administratively assigned object name shall be positive; zero is reserved for future use.

snmp

normative-requirement §3.1 MUST

For all descriptors in an information module, the descriptor shall be unique and mnemonic, and shall not exceed 64 characters in length. The set of descriptors defined in all 'standard' information modules shall be unique, and the hyphen is not allowed as a character in any descriptor within a standard module.

snmp

normative-requirement §7.7.1 SHOULD

For newly-defined conceptual rows that allow creation and deletion of object instances, there should be exactly one columnar object with SYNTAX of RowStatus and MAX-ACCESS of read-create, termed the status column.

snmp

normative-requirement §10.3 MUST

For notification definitions, only the REFERENCE clause may be added or updated without requiring a new OBJECT IDENTIFIER. Any other semantic change to a notification definition requires changing both its OID value and descriptor.

snmp

normative-requirement §7.3 MUST NOT

If any columnar object in a conceptual row has 'read-create' as its maximal access level, then no other columnar object in the same conceptual row may have 'read-write' as its maximal access. The ordering is: not-accessible < read-only < read-write < read-create.

snmp

normative-requirement §7.1.11 MAY

The Counter64 type may be used only if the information being modeled would wrap in less than one hour if the Counter32 type were used instead. This applies specifically to 'standard' MIB modules.

snmp

normative-requirement §7.1.6 MUST

The MAX-ACCESS clause for objects with a SYNTAX of Counter32 or Counter64 is always 'read-only'. Similarly, no DEFVAL clause is allowed for Counter32 or Counter64 objects because counters have no defined initial value.

snmp

normative-requirement §7.1.9 MUST NOT

The Opaque type shall not be used for newly-defined object types; it is provided solely for backward compatibility. Standard MIB modules must not define any object with a SYNTAX clause value of Opaque.

snmp

normative-requirement §10.2 MUST

When extending an information module, if any non-editorial change is made to an object assignment or object definition beyond the explicitly permitted revisions (adding enumerations, deprecating status, adding DEFVAL/REFERENCE/UNITS, augmenting rows), then the OBJECT IDENTIFIER value and descriptor must also be changed.

snmp

protocol-element §7.8

The AUGMENTS clause is an alternative to the INDEX clause for conceptual row extensions. A row using AUGMENTS inherits the INDEX of the base conceptual row, and creation of a base row implies creation of all its augmentations.

snmp

protocol-element §7.7

The INDEX clause specifies how instance-identifiers for columnar objects are formed: integer-valued (1 sub-identifier), fixed/IMPLIED string (n sub-identifiers), variable-length string (n+1), OID-valued (n+1), IpAddress (4), and NsapAddress (n). The IMPLIED keyword may appear at most once, on the rightmost variable-length object.

snmp

protocol-element §5

The MODULE-IDENTITY macro provides contact and revision history for an information module, requiring LAST-UPDATED, ORGANIZATION, CONTACT-INFO, and DESCRIPTION clauses. Its value is an OBJECT IDENTIFIER that can be used to authoritatively reference the information module.

snmp

protocol-element §6

The OBJECT-IDENTITY macro defines information about an OBJECT IDENTIFIER assignment, requiring STATUS (current or obsolete) and DESCRIPTION clauses. Its expansion happens conceptually during implementation, not at run-time.

snmp, registry

protocol-element §4

The OID naming hierarchy under the Internet root (1.3.6.1) allocates: mgmt(2) for standard objects, experimental(3) for IETF working group objects, private(4)/enterprises(1) for unilateral definitions, security(5), and snmpV2(6) containing snmpDomains, snmpProxys, and snmpModules.

snmp, registry

protocol-element §1

The SMI is divided into three parts: module definitions (MODULE-IDENTITY macro), object definitions (OBJECT-TYPE macro), and notification definitions (NOTIFICATION-TYPE macro). These three macros form the complete vocabulary for writing SNMPv2 MIB modules in a subset of ASN.1.

snmp, yang

security-consideration §14

Section 14 is titled 'Security Considerations' and appears on page 54 of the RFC. The SNMPv2 SMI document defers detailed security treatment to the SNMPv2 administrative framework; the SMI itself defines structure but does not specify authentication or authorization mechanisms.

snmp, security

wire-format §7.1.6

Counter32 is APPLICATION 1, an IMPLICIT INTEGER ranging 0..4294967295, which monotonically increases until it wraps at 2^32-1 back to zero. It has no defined initial value; MAX-ACCESS must be read-only and no DEFVAL clause is permitted.

snmp

wire-format §7.1.11

Counter64 is APPLICATION 6, an IMPLICIT INTEGER ranging 0..18446744073709551615, with the same wrap-and-restart semantics as Counter32 but for a 64-bit range. MAX-ACCESS must be read-only and no DEFVAL clause is permitted.

snmp

wire-format §7.1.7

Gauge32 is APPLICATION 2, an IMPLICIT INTEGER ranging 0..4294967295, representing a value that may increase or decrease but is clamped at the maximum. Unlike Counter32, it does not wrap.

snmp

wire-format §7.1.5

IpAddress is encoded as APPLICATION 0, an IMPLICIT OCTET STRING of SIZE 4, in network byte-order. It is a tagged type for historical reasons; new MIB designs should use TEXTUAL-CONVENTION instead.

snmp, ip

wire-format §7.1.10

NsapAddress is APPLICATION 5, an IMPLICIT OCTET STRING of SIZE (1 | 4..21). The first octet contains the NSAP length (0..20); a single zero-valued octet encodes the 'default NSAP'. It is a tagged type for historical reasons.

snmp

wire-format §7.1.9

Opaque is APPLICATION 4, an IMPLICIT OCTET STRING encoding arbitrary ASN.1 values via BER double-wrapping. A conforming implementation need only accept and recognize opaquely-encoded data; it need not unwrap or interpret the contents.

snmp

wire-format §7.1.8

TimeTicks is APPLICATION 3, an IMPLICIT INTEGER ranging 0..4294967295, representing hundredths of seconds modulo 2^32 between two epochs whose definitions must be provided in the object's DESCRIPTION clause.

snmp