rfc-3287

Remote Monitoring MIB Extensions for Differentiated Services

A. Bierman
date2002-07 streamIETF areaops wgrmonmib statusPROPOSED STANDARD pages120 canonicalhttps://www.rfc-editor.org/rfc/rfc3287 doi10.17487/RFC3287
This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects used for monitoring Differentiated Services (DS) Codepoint usage in packets which contain a DS field, utilizing the monitoring framework defined in the RMON-2 (Remote Network Monitoring Management Version 2) MIB. [STANDARDS-TRACK]

Extracted elements (26)

design-rationale §3.1

Counter aggregation is provided to reduce the number of counters an agent must maintain, accommodate hardware implementations with limited high-speed counters, reduce management polling overhead, and align monitoring with DS forwarding device configurations where multiple DSCPs receive the same treatment.

snmp, diffserv, qos

design-rationale §3.1.1

Counter aggregation profiles are configured globally rather than per-data-source to allow sharing across collections. Per-collection assignment is used (instead of per-datasource) to reduce MIB complexity by avoiding an extra layer of tables, though agents MAY restrict all collections on a datasource to use the same profile.

snmp, diffserv

design-rationale §3.2.4

dsmonHostCtlTable supports IPv4/IPv6 prefix aggregation (configurable rightmost-bits masking) to dramatically reduce the number of host entries the agent must maintain, lowering CPU, memory, and polling overhead, though only one mask per address type is supported per collection.

snmp, diffserv, ip

design-rationale §3.2.3

dsmonPdistStatsTable is hardwired to monitor only application-layer ('terminal') protocols rather than making protocol selection configurable, because DSCP usage statistics are most interesting at the application layer and this simplifies the configuration mechanism.

snmp, diffserv

design-rationale §2.3

The DSMON MIB adopts the SNMPv1 coexistence strategy: wherever a 64-bit Counter64 is provided, a 32-bit ZeroBasedCounter32 and a 32-bit overflow counter are also provided, ensuring compatibility with SNMPv1 managers that cannot handle Counter64.

snmp, diffserv

interoperability-note §3.3

DSMON data tables are indexed as closely as possible to comparable RMON-2 and HC-RMON tables, with an additional dsmonAggGroupIndex component for DSCP-based classification. This preserves RMON look-and-feel and allows MIB re-use by implementers familiar with RMON-2.

snmp, diffserv

interoperability-note §2.3

The DSMON MIB requires that the RMON-2 MIB [RFC2021] be present; it reuses DataSource, protocolDirLocalIndex, TimeFilter, ZeroBasedCounter32, and LastCreateTime from RMON-2, and ZeroBasedCounter64 from the HCNUM-TC MIB [RFC2856].

snmp, diffserv

normative-requirement §4 MUST NOT

An entry MUST NOT exist in the active state in dsmonAggControlTable unless all objects have appropriate values. Activating a dsmonAggControlEntry causes the agent to create exactly 64 associated dsmonAggProfileEntries; deactivating it deletes them.

snmp, diffserv

normative-requirement §4 MUST

Every DSCP value (0–63) MUST be configured into exactly one counter aggregation group within a given profile. The dsmonAggProfileTable MUST contain exactly 64 rows per profile, indexed 0 to 63.

snmp, diffserv, qos

normative-requirement §3.2.4 MUST

In dsmonHostCtlTable, the protocolDirLocalIndex in the INDEX clause MUST identify a network protocol encapsulation that contains a DS field (e.g., IPv4 or IPv6). For multi-layer encapsulations, the innermost network protocol layer is used.

snmp, diffserv, ip

normative-requirement §4 MUST NOT

The dsmonAggControlDescr and dsmonAggGroupDescr objects MUST NOT be modified if the associated RowStatus is 'active' or dsmonAggControlLocked is 'true'. Agents SHOULD initialize these to the empty string on first creation.

snmp

normative-requirement §4 MUST NOT

The dsmonAggControlTable, dsmonAggProfileTable, and dsmonAggGroupTable MUST NOT be modified while dsmonAggControlLocked is 'true'. When locked, data collection is active; when unlocked ('false'), all DSMON data table entries are deleted and collection is suspended.

snmp, diffserv

normative-requirement §4 MUST NOT

The dsmonMaxAggGroups object MUST NOT be lowered during system operation. The agent SHOULD set this object to an appropriate value during system initialization and SHOULD support at least one profile with at least two counter aggregation groups.

snmp, diffserv

normative-requirement §4 REQUIRED

When dsmonAggControlLocked transitions from 'false' to 'true', the agent is required to reactivate any previously suspended data collections, validating each against the new counter aggregation configuration. If validation fails, the collection's RowStatus MUST be set to 'notReady'.

snmp, diffserv

protocol-element §4

dsmonAggControlChanges (Counter32) and dsmonAggControlLastChangeTime (TimeStamp) allow management stations to detect when counter aggregation configuration has changed between polls, indicating that collected data may have been deleted and recreated.

snmp, diffserv

protocol-element §4

dsmonAggControlLocked is a read-write TruthValue scalar that acts as a top-level switch: 'true' locks aggregation configuration tables and enables data collection; 'false' unlocks those tables but deletes all collected data and suspends collection.

snmp, diffserv

protocol-element §4

dsmonCapabilities is a read-only BITS object (14 bits) indicating which DSMON MIB groups the agent supports. Bit n set means the agent implements all objects in DSMON group { dsmonGroups n+1 }.

snmp, diffserv

protocol-element §4

DsmonCounterAggGroupIndex is a textual convention defined as Integer32 (0..2147483647), starting at zero to allow direct mapping to DSCP values (0–63). DsmonCounterAggProfileIndex starts at 1 and identifies complete sets of 64 DSCP-to-group mappings.

snmp, diffserv

protocol-element §3.2.4

dsmonHostTable provides per-host per-counter-aggregation-group inbound and outbound packet/octet statistics. The dsmonHostCtlTable supports configurable IPv4/IPv6 prefix aggregation by zeroing rightmost address bits to reduce table size.

snmp, diffserv, ip, measurement

protocol-element §3.2.6

dsmonMatrixSDTable and dsmonMatrixDSTable track host-pair distribution statistics per counter aggregation group, mirroring RMON-2's alMatrixSDTable/alMatrixDSTable but with an additional dsmonAggGroupIndex in the index.

snmp, diffserv, measurement

protocol-element §3.2.3

dsmonPdistStatsTable provides per-protocol per-counter-aggregation-group statistics indexed by (dsmonPdistCtlIndex, dsmonPdistTimeMark, dsmonAggGroupIndex, protocolDirLocalIndex). Only application-layer ('terminal') protocols are included.

snmp, diffserv, qos, measurement

protocol-element §3.2.2

dsmonStatsTable provides per-datasource, per-counter-aggregation-group packet and octet counters with both 32-bit (ZeroBasedCounter32) and 64-bit (ZeroBasedCounter64) variants for inbound and outbound traffic. Overflow companion objects are deprecated.

snmp, diffserv, qos, measurement

protocol-element §3.2.1

The Counter Aggregation Profile is a three-table structure: dsmonAggControlTable (one row per profile), dsmonAggProfileTable (64 rows per profile mapping each DSCP 0–63 to a group index), and dsmonAggGroupTable (optional descriptive labels per group).

snmp, diffserv, qos

registry §4

The DSMON MIB module is assigned the OID { rmon 26 } under the RMON MIB arc. This allocates a new branch in the RMON object identifier tree for all DSMON objects, notifications, and conformance information.

snmp, registry, diffserv

security-consideration §9

The DSMON MIB contains read-write and read-create objects that could be used to configure monitoring and aggregation profiles. Unauthorized access to these objects could disrupt data collection or falsify traffic statistics, so SNMP access control (e.g., SNMPv3 VACM) should be applied.

snmp, security, diffserv

wire-format §4

Each dsmonAggProfileEntry maps one DSCP value (Dscp TC, 0–63, encoded as integer) to a DsmonCounterAggGroupIndex (Integer32, 0-based). The profile table always has exactly 64 such entries per profile, indexed by (dsmonAggControlIndex, dsmonAggProfileDSCP).

snmp, diffserv