Entity MIB (Version 3)
Extracted elements (26)
The entityLogical group and entLPMappingTable/entAliasMappingTable are optional for agents that represent all MIB objects within a single naming scope. This conscious scoping decision limits the MIB's complexity; most objects have read-only MAX-ACCESS to keep the scope narrow.
The entLPMappingTable is designed to include only meaningful, non-redundant mappings. Agents should identify only the most appropriate physical component closest to the root of a containment tree, avoiding redundant child-level mappings that are already derivable from the entPhysicalContainedIn hierarchy.
The entPhysicalUris object was added in version 3 to support Common Language Equipment Identifier (CLEI) URNs and other persistent resource identifiers. URNs (RFC 3406) are preferred because they provide location-independent, long-lived identification; the URI format must conform to RFC 3986 section 2.
Multiple instances of the Entity MIB from different agents in the same managed system are not required to be equivalent or consistent. Index values and vendor-specific identifiers are likely to differ between agents, and each agent may manage different subsets of the chassis.
The entLogicalCommunity object is deprecated in version 2 and beyond. SNMPv3 agents may return a zero-length string or may continue to return a community string for tri-lingual agent support. Agents SHOULD use entLogicalContextEngineID and entLogicalContextName for SNMPv3 contexts.
The syntax of entPhysicalDescr, entPhysicalName, and entLogicalDescr was changed from DisplayString to SnmpAdminString in version 2. The working group chose to update the existing objects rather than deprecate and replace them, despite this not being strictly supported by SMIv2, to minimize adverse impact on backward compatibility.
An agent MUST NOT return a community string in entLogicalCommunity that allows more privileges than the community string used to access the object. Agents implementing SNMPv3 access SHOULD use entLogicalContextEngineID and entLogicalContextName instead; entLogicalCommunity is deprecated.
An agent SHOULD NOT generate more than one entConfigChange notification-event in a given five-second throttling interval. If additional changes occur within the throttling period, those notification-events should be suppressed until the period expires, after which one event is sent if any changes occurred.
If write access is implemented for entPhysicalSerialNum or entPhysicalAlias, the agent MUST retain the supplied value for as long as that physical entity remains instantiated, including across all re-initializations and reboots, even if the entity's entPhysicalIndex value changes.
Only entPhysicalIndex values that represent physical ports (entPhysicalClass = 'port(10)') are permitted to exist in the entAliasMappingTable.
The entPhysicalTable must always contain at least one row for an 'overall' physical entity. For an agent representing a fully-modular device, the top-level entry should have entPhysicalClass 'chassis(3)'; for a module-only agent, it should be 'module(9)'.
entPhysicalMfgDate (DateAndTime syntax, read-only) records the manufacturing date of a physical entity. If unknown or unsupported, the object is not instantiated or the special value '0000000000000000'H is returned. Added in version 3.
entPhysicalUris (OCTET STRING, read-write) carries one or more URIs conforming to RFC 3986 section 2, separated by whitespace, providing additional identification information such as CLEI URNs. If not supported or unknown, the object is not instantiated or a zero-length string is returned. Added in version 3.
The entAliasMappingTable maps (entPhysicalIndex, entAliasLogicalIndexOrZero) pairs to external MIB identifiers (RowPointer). Only physical port entries (entPhysicalClass = 'port(10)') are permitted. A zero value for entAliasLogicalIndexOrZero acts as a wildcard for all unspecified logical entities; non-zero entries take precedence.
The entConfigChange notification is generated when entLastChangeTime changes, allowing an NMS to trigger table maintenance polls. The agent SHOULD NOT generate more than one notification-event per five-second throttling period; changes within the throttling period are suppressed until the period expires.
The entLastChangeTime scalar holds the sysUpTime value at the last time any conceptual row was created, modified, or deleted in entPhysicalTable, entLogicalTable, entLPMappingTable, entAliasMappingTable, or entPhysicalContainsTable.
The entLogicalTable contains one row per logical entity. It must be implemented when the agent represents multiple logical entities; agents with a single naming scope may omit it. Each row includes entLogicalContextEngineID and entLogicalContextName for SNMPv3 context identification.
The entPhysicalContainedIn object holds the entPhysicalIndex of the containing physical entity, or zero if not contained. The containment relationships define a strict hierarchy with no recursion allowed; for double-wide modules, the containing entity with the lowest entPhysicalIndex value is used.
The entPhysicalContainsTable exposes container/containee relationships directly by indexing on (entPhysicalIndex, entPhysicalChildIndex), allowing an NMS to quickly discover all children of a given physical entity. It also captures additional containment mappings (e.g., double-wide modules) that cannot be represented in the virtual containment tree.
The entPhysicalTable contains one row per physical entity and must always contain at least one row for an 'overall' physical entity with entPhysicalClass value of 'stack(11)', 'chassis(3)', or 'module(9)'. Each row is indexed by an arbitrary small integer (PhysicalIndex, range 1..2147483647).
The PhysicalClass textual convention enumerates 12 hardware types: other(1), unknown(2), chassis(3), backplane(4), container(5), powerSupply(6), fan(7), sensor(8), module(9), port(10), stack(11), and cpu(12). The cpu(12) enumeration was added in version 3.
The PhysicalIndexOrZero textual convention extends PhysicalIndex (Integer32 1..2147483647) to allow the value zero, whose semantics are object-specific. It was introduced in version 3 and is also used by entPhysicalContainedIn to indicate no containment.
The SnmpEngineIdOrNone textual convention is an OCTET STRING (SIZE 0..32): a non-zero-length value encodes an SnmpEngineID per RFC 3411, while a zero-length string indicates that SNMPv3 is not supported for the logical entity.
This document updates the IANA-managed MIB-2 subtree by assigning entityMIB to { mib-2 47 }. The Entity MIB module OID is registered under the IETF-managed mib-2 branch as defined by IANA.
Several objects have read-write MAX-ACCESS (entPhysicalSerialNum, entPhysicalAlias, entPhysicalAssetID, entPhysicalUris). Unauthorized write access could disrupt network management by corrupting physical entity identification. Implementations should use SNMPv3 with appropriate access controls (USM/VACM) to restrict write access.
The entLogicalCommunity object exposes community strings, which are effectively cleartext passwords. An agent must not return a community string with greater privileges than those of the requesting community. SNMPv3 implementations should use entLogicalContextEngineID/entLogicalContextName and may return a zero-length string for entLogicalCommunity.