Integrated Services Management Information Base using SMIv2
Extracted elements (25)
SessionNumber was introduced as a simple integer identifier instead of a complex instance or instance object for indexing sessions. The alternative (a very complex instance or instance object) became unwieldy, motivating this simpler approach.
intSrvFlowIfAddr is present primarily to support interfaces that layer multiple IP addresses on a single interface, providing unambiguous identification of which IP address on the interface the reservation applies to.
Key flow identity objects (intSrvFlowDestAddr, intSrvFlowSenderAddr, intSrvFlowDestAddrLength, intSrvFlowSenderAddrLength, intSrvFlowProtocol, intSrvFlowDestPort, intSrvFlowPort) MUST NOT be changed when RowStatus is 'active'.
Most intSrvFlowEntry objects that are read-create in the base MIB may be reduced to read-only in a compliant implementation; the compliance statement grants MIN-ACCESS read-only for intSrvFlowType, intSrvFlowOwner, intSrvFlowDestAddr, intSrvFlowSenderAddr, intSrvFlowDestAddrLength, intSrvFlowSenderAddrLength, intSrvFlowProtocol, intSrvFlowDestPort, intSrvFlowPort, intSrvFlowInterface, intSrvFlowRate, intSrvFlowBurst, intSrvFlowWeight, intSrvFlowQueue, intSrvFlowMinTU, intSrvFlowMaxTU, and intSrvFlowStatus.
The compliance statement (intSrvCompliance) mandates both intSrvIfAttribGroup and intSrvFlowsGroup as MANDATORY-GROUPS for systems supporting the Integrated Services Architecture.
intSrvFlowBestEffort (Counter32, read-only) counts packets remanded to best-effort service; intSrvFlowPoliced (Counter32, read-only) counts packets policed since flow inception. Both start counting at flow installation.
intSrvFlowBurst (BurstSize, bytes) represents the largest burst expected from the sender. If set below the sender's advertised burst, the receiver requests network pacing beyond normal; such pacing is at the network's option.
intSrvFlowDiscard (TruthValue, default false) governs policing behavior: if true, policed traffic is discarded; if false, policed traffic is demoted to best-effort service. The default is best-effort treatment.
intSrvFlowFlowId (0..16777215, read-only) carries the IPv6 flow ID used by a sender, and is only meaningful for IPv6 sessions. The compliance statement marks it not-accessible for non-IPv6 systems.
intSrvFlowMinTU and intSrvFlowMaxTU (MessageSize) set the policing window: packets smaller than MinTU are treated as MinTU-sized; MaxTU is the largest datagram conforming to the traffic specification and cannot exceed the interface MTU.
intSrvFlowNewIndex (TestAndIncr) under intSrvGenObjects is used to allocate new intSrvFlowNumber values safely. The manager reads, then writes back the same value in the SET that creates the new row; if the SET fails with 'inconsistentValue', the process repeats.
intSrvFlowOrder (0..65535) specifies classifier comparison order for ambiguous flows. The row with intSrvFlowOrder=0 is tried first; comparisons proceed in increasing order. Non-serial classifier implementations must emulate this behavior.
intSrvFlowOwner distinguishes the entity that installed a flow: other(1), rsvp(2), or management(3). This allows SNMP-managed static flows to coexist with RSVP-signaled flows.
intSrvFlowRate (BitRate, bits/second) is derived from the Tspec rate parameter (r) for Controlled Load flows, or from the Rspec clearing rate (R) for Guaranteed service flows.
intSrvFlowTable is indexed by intSrvFlowNumber (SessionNumber) and lists all flows active on outgoing interfaces. Each entry captures flow identity, QoS parameters, policing state, and administrative status.
intSrvFlowWeight (Integer32) and intSrvFlowQueue (Integer32) carry implementation-specific scheduler parameters for prioritization and queue assignment respectively. Their interpretation varies across implementations.
intSrvIfAttribTable contains reservable interface attributes indexed by ifIndex, including intSrvIfAttribAllocatedBits (read-only BitRate), intSrvIfAttribMaxAllocatedBits (read-create BitRate), intSrvIfAttribAllocatedBuffer (BurstSize), intSrvIfAttribFlows (Gauge32), intSrvIfAttribPropagationDelay (Integer32, microseconds, default 0), and intSrvIfAttribStatus (RowStatus).
Protocol is a textual convention representing the IP Protocol field value (1..255), identifying the protocol layer above IP (e.g., 6 for TCP, 17 for UDP) as defined in the Assigned Numbers RFC.
QosService is a textual convention enumerating three classes of service: bestEffort(1), guaranteedDelay(2), and controlledLoad(5). This encodes the Integrated Services service class in use by a flow.
SessionNumber is a textual convention for numbers identifying sessions or saved PATH/RESV information, with range 0..2147483647. It is used as a SNMP index with no protocol meaning.
SessionType is a textual convention for the C-Type field of a Session object as defined in the RSVP specification (1..255). It determines the lengths of octet strings and interpretation of address and port objects (e.g., IPv4 vs IPv6).
The INTEGRATED-SERVICES-MIB module is rooted at mib-2 52 (OID { mib-2 52 }) and is subdivided into intSrvObjects (1), intSrvGenObjects (2), intSrvNotifications (3), and intSrvConformance (4). It defines managed objects for the Integrated Services interface model.
Using an SNMP SET to create Integrated Services reservations operates under different rules than negotiating a reservation via RSVP signaling. No additional security considerations beyond those imposed by SNMP itself are identified.
intSrvFlowDestAddr and intSrvFlowSenderAddr are OCTET STRING (SIZE 4..16), encoding IPv4 (4 bytes) or IPv6 (16 bytes) addresses. intSrvFlowDestAddrLength and intSrvFlowSenderAddrLength encode the CIDR prefix length in bits (0..128); for IPv4 hosts and multicast, this is 32.
Port is a textual convention encoded as OCTET STRING (SIZE 2..4) representing a UDP/TCP port, virtual destination port, or generalized port identifier (GPI) used with IPsec AH/ESP. A length of 0 indicates the field is not used.