rfc-1903

Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)

J. Case, K. McCloghrie, M. Rose, S. Waldbusser
date1996-01 streamIETF areamgt wgsnmpv2 statusDRAFT STANDARD pages23 canonicalhttps://www.rfc-editor.org/rfc/rfc1903 doi10.17487/RFC1903
It is the purpose of this document to define the initial set of textual conventions available to all MIB modules. [STANDARDS-TRACK]

obsoleted by

obsoletes

Extracted elements (29)

design-rationale §2

MacAddress is defined in canonical (LSB-first) IEEE 802.1a order even though 802.5 transmits MAC addresses most-significant-bit first. This ensures a consistent representation regardless of the underlying media type.

snmp

design-rationale §2

RowStatus provides two creation modes: createAndGo (atomic single-PDU creation and activation) and createAndWait (negotiated multi-PDU creation). The createAndWait mechanism exists to accommodate management stations that need multiple interactions to supply all required column values before making the row active.

snmp

interoperability-note §2

InstancePointer is marked obsolete; its two uses—pointing to a specific MIB object instance and pointing to a conceptual row—are replaced by VariablePointer and RowPointer respectively. Implementations should migrate to the replacement types.

snmp

interoperability-note §3.2

The 'deprecated' STATUS value indicates the definition is obsolete, but implementors may wish to support it to foster interoperability with older implementations. 'Obsolete' means the definition should no longer be used.

snmp

normative-requirement §1 MUST

For all textual conventions defined in an information module, the name shall be unique and mnemonic, and shall not exceed 64 characters in length; names longer than 32 characters are not recommended. All names in 'standard' information modules shall be unique across all such modules.

snmp, yang

normative-requirement §2 REQUIRED

If the value of a StorageType object is permanent(4) or readOnly(5), it cannot be modified. Conversely, if the value is other(1), volatile(2), or nonVolatile(3), it cannot be modified to become permanent(4) or readOnly(5). Every usage of StorageType must specify which columnar objects a permanent row must minimally allow to be writable.

snmp

normative-requirement §2 MUST

The agent must detect conceptual rows that have been in notInService or notReady state for an abnormally long period and remove them. In the absence of a DESCRIPTION-specified timeout, this period is suggested to be approximately 5 minutes.

snmp

normative-requirement §3.1 MUST NOT

The DISPLAY-HINT clause may be present if and only if the textual convention's underlying primitive type is INTEGER or OCTET STRING.

snmp

normative-requirement §3 MUST NOT

The hyphen character is not allowed in the name of any textual convention. Descriptors must not exceed 64 characters in length.

snmp

normative-requirement §3.2 MUST

The STATUS clause must be present and indicates whether the definition is current, deprecated, or obsolete. The DESCRIPTION clause must also be present and contains all semantic definitions necessary for implementation.

snmp

normative-requirement §3.5 MUST

The SYNTAX clause must be present and must define an abstract data structure that is one of the alternatives in the ObjectSyntax CHOICE or the BITS construct as defined in RFC 1902 Section 7.1.

snmp

normative-requirement §2 MUST

When the network management portion of the system is re-initialized, the value of every TestAndIncr object instance must either be incremented from its pre-initialization value, or (if unknown) be set to a pseudo-randomly generated value.

snmp

normative-requirement §2 MUST

Whenever any elements of a row exist, the RowStatus column must also exist. Only three values (active, notInService, notReady) will be returned in response to a management protocol retrieval operation on a RowStatus object.

snmp

protocol-element §2

DisplayString represents NVT ASCII text as defined in RFC 854, using character codes 0–127. Any object using this syntax may not exceed 255 characters in length. SYNTAX is OCTET STRING (SIZE (0..255)) with DISPLAY-HINT '255a'.

snmp

protocol-element §2

MacAddress represents an 802 MAC address in the canonical order defined by IEEE 802.1a (least-significant-bit first), encoded as OCTET STRING (SIZE (6)) with DISPLAY-HINT '1x:'.

snmp

protocol-element §2

RowStatus manages the creation and deletion of conceptual rows via six values: active(1), notInService(2), notReady(3) [states; readable], and createAndGo(4), createAndWait(5), destroy(6) [actions; writable only]. Only three values—active, notInService, notReady—are returned in GET responses.

snmp

protocol-element §2

StorageType describes the memory realization of a conceptual row: other(1), volatile(2, lost on reboot), nonVolatile(3), permanent(4, can be changed but not deleted), readOnly(5, cannot be changed or deleted). Objects with permanent or readOnly StorageType cannot be modified.

snmp

protocol-element §2

TDomain (OBJECT IDENTIFIER) denotes a kind of transport service. TAddress (OCTET STRING SIZE 1..255) denotes a transport service address. For snmpUDPDomain, TAddress is 6 octets: 4 octets of IP address in network-byte order followed by 2 octets of UDP port in network-byte order.

snmp, udp

protocol-element §2

TestAndIncr represents an integer used for atomic compare-and-increment operations. A SET must match the current value exactly or fail with 'inconsistentValue'; on success the value is incremented by one, wrapping from 2^31-1 to zero.

snmp

protocol-element §3.1

The DISPLAY-HINT clause provides a rendering hint for INTEGER or OCTET STRING values. For INTEGER, the hint specifies display format ('x', 'd', 'o', 'b') and optional implied decimal point (e.g., 'd-2' renders 1234 as '12.34'). For OCTET STRING, it specifies one or more octet-format specifications with repeat, length, format, separator, and terminator parts.

snmp

protocol-element §2

The TEXTUAL-CONVENTION macro defines a named type with DISPLAY-HINT (optional), STATUS (required), DESCRIPTION (required), REFERENCE (optional), and SYNTAX (required) clauses. It is used to convey the syntax and semantics of a textual convention; its expansion is conceptual at implementation time, not run-time.

snmp

protocol-element §2

TimeInterval represents a period of time measured in units of 0.01 seconds as INTEGER (0..2147483647).

snmp

protocol-element §2

TimeStamp holds the value of sysUpTime at which a specific occurrence happened. The specific occurrence must be defined in the DESCRIPTION of any object using this type. SYNTAX is TimeTicks.

snmp

protocol-element §2

TruthValue represents a boolean as INTEGER { true(1), false(2) }. The SNMPv2 SMI has no native boolean type, making this textual convention necessary for boolean object semantics.

snmp

protocol-element §2

VariablePointer is an OBJECT IDENTIFIER pointing to a specific object instance (e.g., sysContact.0 or ifInOctets.3). RowPointer is an OBJECT IDENTIFIER pointing to the first accessible columnar instance in a conceptual row. InstancePointer (obsolete) has been replaced by these two types.

snmp

security-consideration §4

RFC 1903 explicitly states that security issues are not discussed in this document. The textual conventions defined here are data-representation constructs and do not themselves introduce security mechanisms or vulnerabilities.

snmp, security

state-machine §2

RowStatus defines four states: A (no row), B (notReady), C (notInService), D (active). Transitions are driven by SET operations on the status column: createAndGo moves A→D or fails; createAndWait moves A→B or A→C; active moves C or B→D; notInService moves D→C; destroy moves any state→A.

snmp

wire-format §2

DateAndTime encodes a date-time as OCTET STRING (SIZE (8 | 11)): octets 1–2 year (0..65536), 3 month (1..12), 4 day (1..31), 5 hour (0..23), 6 minutes (0..59), 7 seconds (0..60, 60 for leap second), 8 deci-seconds (0..9); optional octets 9 direction ('+'/'-'), 10 hours from UTC (0..11), 11 minutes from UTC (0..59).

snmp

wire-format §2

TAddress for snmpUDPDomain is 6 octets: octets 1–4 contain the IPv4 address in network-byte order, octets 5–6 contain the UDP port in network-byte order.

snmp, udp