rfc-3289

Management Information Base for the Differentiated Services Architecture

F. Baker, K. Chan, A. Smith
date2002-06 streamIETF areatsv wgdiffserv statusPROPOSED STANDARD pages116 canonicalhttps://www.rfc-editor.org/rfc/rfc3289 doi10.17487/RFC3289 errataview
This memo describes an SMIv2 (Structure of Management Information version 2) MIB for a device implementing the Differentiated Services Architecture. It may be used both for monitoring and configuration of a router or switch capable of Differentiated Services functionality. [STANDARDS-TRACK]

Extracted elements (27)

design-rationale §3.4.3

diffServDscpMarkActTable uses the DSCP value as both the sole index and the sole data column; the OID of any instance fully conveys the action. This unusual design avoids a separate value column and allows the table to serve as an array of OBJECT-IDENTIFIER conventions.

diffserv, snmp

design-rationale §4.1

RowPointer is used as the universal connector between functional data path elements rather than typed foreign keys, so that new element types defined in other MIB modules (proprietary or standards-track) can be integrated into a DiffServ data path without modifying this MIB. This provides open-ended extensibility analogous to class inheritance.

diffserv, snmp

design-rationale §3.3.1

The Meter Table uses three RowPointers (succeedNext, failNext, specific) rather than a richer N-rate structure because of SNMP modeling constraints. Multi-rate meters such as trTCM are expressed by chaining multiple meter entries through the failNext link, with diffServTBParamType in the first entry indicating the overall algorithm.

diffserv, snmp, qos

design-rationale §2.2

The MIB separates structural elements (data path linkage tables) from parameter elements (parameterization tables) so that a single parameter block such as a token bucket specification can be configured once and reused across many interfaces. Reuse of structural elements is explicitly discouraged because it would share counters, losing per-path monitoring information.

diffserv, snmp

interoperability-note §1

The MIB is specified as SMIv2-compliant. An SMIv1-conformant translation is possible but objects using Counter64 syntax must be omitted as there is no SMIv1 equivalent, and some machine-readable SMIv2 information is converted to textual descriptions.

diffserv, snmp

normative-requirement §3.4.4 REQUIRED

For algorithmic drop entries using Active Queue Management (randomDrop and similar), additional parameters via diffServRandomDropTable are REQUIRED; tail-drop and head-drop algorithms do not require the extra parameter table.

diffserv, snmp, congestion

normative-requirement §3.3.2 MUST

For multi-rate token bucket meters, rates in chained diffServMeterTable entries MUST be specified in monotonically increasing order (most-committed to most-excess), passing through diffServMeterFailNext from lower to higher rates.

diffserv, snmp, qos

normative-requirement §3.2.1 MUST

If diffServClfrElementSpecific is zeroDotZero, the device is misconfigured and the classifier element MUST be operationally treated as if it were not present.

diffserv, snmp

normative-requirement §4.3 MUST

When a RowPointer is written and the row it points to does not exist, the SNMP SET MUST return an inconsistentValue error. When a RowStatus is set to 'destroy' but the usage counter is non-zero, the SET returns no error and the row is left intact; the agent removes the row only when the usage counter reaches zero.

diffserv, snmp

protocol-element §3.4.1

diffServActionTable chains sequences of actions via diffServActionNext, terminating in zeroDotZero, a pointer to a queue, or another functional data path element. Successive actions such as count, mark, and drop are linked through this table.

diffserv, snmp

protocol-element §3.4.4

diffServAlgDropTable identifies a packet-dropping algorithm (alwaysDrop, headDrop, tailDrop, or Active Queue Management) and counts drops. It references a diffServQEntry via diffServAlgDropQMeasure to determine current queue depth, and for AQM algorithms requires a diffServRandomDropEntry via diffServAlgDropSpecific.

diffserv, snmp, qos, congestion

protocol-element §3.2.1

diffServClfrElementTable defines classifier elements, each with a precedence value, a 'specific' RowPointer to the matching rule, and a 'next' RowPointer directing matched traffic to the next functional data path element. Multiple elements within a classifier are evaluated at each precedence level as if in parallel.

diffserv, snmp

protocol-element §3.4.2

diffServCountActTable accumulates per-path packet and byte counters along with a discontinuity timestamp. It is intended for usage-based billing, statistical analysis, and policy behavior monitoring.

diffserv, snmp, measurement

protocol-element §3.1.1

diffServDataPathTable provides a starting point for DiffServ processing, indexed by interface and direction (ingress/egress). Each entry contains a single RowPointer (diffServDataPathStart) pointing to the first functional data path element to apply.

diffserv, snmp, yang

protocol-element §3.4.3

diffServDscpMarkActTable is an unusual table where the index (the DSCP value to mark packets with) is both the sole column and is read-only; the OID of a diffServDscpMarkActDscp instance fully encodes the action.

diffserv, snmp

protocol-element §3.5.4

diffServMaxRateTable caps the output rate of a queue or scheduler input. A multi-rate shaper requires multiple diffServMaxRateEntries, shaping traffic to the lowest specified rate that exceeds the arrival rate at any given time.

diffserv, snmp, qos

protocol-element §3.3.1

diffServMeterTable is a structural table with three RowPointers: 'succeedNext' for conforming traffic, 'failNext' for non-conforming traffic, and 'specific' pointing to the meter parameters. Multiple meter entries chained via failNext implement multi-rate meters such as trTCM.

diffserv, snmp, qos

protocol-element §3.5.3

diffServMinRateTable assigns a minimum service rate or priority to a queue or scheduler input. Rates may be expressed as absolute (diffServMinRateAbsolute) or relative as a fraction of ifSpeed (diffServMinRateRelative); the two are inter-related and changes to one may update the other.

diffserv, snmp, qos

protocol-element §3.2.2

diffServMultiFieldClfrTable defines the Multi-field Classifier parameter, matching on IP source/destination address prefix, IPv6 Flow ID, IP protocol, TCP/UDP/SCTP source and destination port ranges, and DSCP. A Behavior Aggregate classifier is a degenerate case specifying only the DSCP field.

diffserv, snmp, ip

protocol-element §3.5.1

diffServQTable models simple FIFO queues. Multiple upstream elements (e.g., diffServAlgDropNext pointers for AF11, AF12, AF13) may direct traffic to the same queue entry. Minimum and maximum service rates are associated with the queue via diffServMinRateTable and diffServMaxRateTable.

diffserv, snmp, qos

protocol-element §3.4.5

diffServRandomDropTable provides AQM parameters: minimum threshold (Qmin), maximum threshold (Qmax), maximum drop probability inverse (Pmax), exponentially weighted moving average coefficient (weight as numerator over 65536 denominator), and sampling rate. These correspond to the classic RED parameter set.

diffserv, snmp, congestion, qos

protocol-element §3.5.2

diffServSchedulerTable models scheduling elements that accept inputs from queues or preceding schedulers. The scheduling method is identified by an OBJECT-IDENTITY OID (diffServSchedulerMethod), allowing new scheduling algorithms to be defined in other MIBs.

diffserv, snmp, qos

protocol-element §3.3.2

diffServTBParamTable defines Token Bucket meter parameters including diffServTBParamType (algorithm OID), diffServTBParamRate, diffServTBParamBurstSize, and diffServTBParamInterval. Multi-rate meters list rates in monotonically increasing order from most-committed to most-excess.

diffserv, snmp, qos

registry §6

The DIFFSERV-DSCP-TC module is assigned OID mib-2 96 (diffServDSCPTC). The DIFFSERV-MIB module is assigned OID mib-2 97 (diffServMib). Both are defined under the mib-2 subtree registered with IANA.

diffserv, snmp, registry

security-consideration §8

The DIFFSERV-MIB provides read-write access to objects that control traffic classification, metering, marking, dropping, and queuing. Unauthorized write access could allow an adversary to alter QoS policies, disrupt service guarantees, or redirect traffic, making SNMPv3 with authentication and privacy strongly advisable for any write-capable access.

diffserv, snmp, security

wire-format §6

The Dscp textual convention encodes a Differentiated Services Code Point as Integer32 in the range 0..63, displayed as a decimal integer. Used wherever a DSCP marks a traffic stream.

diffserv, snmp

wire-format §6

The DscpOrAny textual convention extends Dscp with the sentinel value -1 to indicate a wildcard ('any DSCP'). Encoded as Integer32 (-1 | 0..63) and used in classifier filter fields.

diffserv, snmp