Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)
obsoleted by
- rfc-2579 — Textual Conventions for SMIv2
obsoletes
- rfc-1443 — Textual Conventions for version 2 of the Simple Network Management Protocol (SNMPv2)
Extracted elements (29)
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.
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.
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.
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.
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.
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.
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.
The DISPLAY-HINT clause may be present if and only if the textual convention's underlying primitive type is INTEGER or OCTET STRING.
The hyphen character is not allowed in the name of any textual convention. Descriptors must not exceed 64 characters in length.
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.
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.
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.
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.
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'.
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:'.
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.
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.
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.
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.
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.
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.
TimeInterval represents a period of time measured in units of 0.01 seconds as INTEGER (0..2147483647).
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.
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.
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.
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.
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.
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).
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.