OSPF Traffic Engineering (TE) Metric Extensions
Extracted elements (27)
Link loss encoding uses a basic unit of 0.000003% (rather than a coarser unit) because precision is considered more important on high-speed links than the ability to express loss rates above 50%; high-speed links with over 50% loss are deemed unusable.
Residual Bandwidth is defined differently from RFC 3630's Unreserved Bandwidth: Residual Bandwidth subtracts RSVP-TE tunnel reservations from Maximum Bandwidth (link capacity) and provides an aggregated remainder across all priorities, whereas Unreserved Bandwidth subtracts from Maximum Reservable Bandwidth per priority. Both can be used concurrently for different use cases (e.g., Weighted ECMP vs. call admission control).
The A bit was intentionally omitted from the Unidirectional Delay Variation and bandwidth sub-TLVs to help mitigate oscillations. Including the A bit in sub-TLVs whose values fluctuate frequently could cause excessive re-advertisements and instability in the network.
As per RFC 3630, an unrecognized sub-TLV MUST be silently ignored by the receiving router — it should not be processed but should be forwarded in LSAs sent to OSPF neighbors, preserving backward compatibility with routers that do not implement these extensions.
All values except residual bandwidth MUST be calculated as rolling averages where the averaging period MUST be a configurable period of time. The measurement interval, filter coefficients, and advertisement intervals MUST be configurable for each sub-TLV.
Any measurement of link propagation delay SHOULD NOT vary significantly based upon offered traffic load and SHOULD NOT include queuing delays. For forwarding adjacencies, measurement must avoid significant queuing delay.
Implementations MUST make it possible to individually enable or disable the advertisement of each sub-TLV, allowing operators to control which performance metrics are distributed.
Implementations SHOULD permit static configuration and/or manual override of dynamic measurements for each sub-TLV to simplify migration and to handle scenarios where dynamic measurements are not possible.
Implementations SHOULD provide configurable accelerated advertisement thresholds per sub-TLV so that if a measured parameter falls outside configured bounds or the difference from the last advertised value exceeds a configured threshold, the advertisement is made immediately.
Link delay, delay variation, and link loss MUST be encoded as integers; residual, available, and utilized bandwidth MUST be encoded in IEEE single-precision floating point. Delay and delay variation MUST be in microseconds, link loss MUST be a percentage, and bandwidth MUST be in bytes per second.
Link loss values exceeding the maximum encodable value of 50.331642% SHOULD be encoded as the maximum value (2^24 - 2), since high-speed links with over 50% loss are considered unusable and precision matters more at high speeds.
Reserved fields in all sub-TLVs MUST be set to 0 when sent and MUST be ignored when received, consistent with standard OSPF TLV processing conventions.
The default measurement interval for all sub-TLVs should be 30 seconds, the minimum announcement periodicity is 1 announcement per second, and the default inter-update throttle timer should be set to 120 seconds. Implementations should not permit the inter-update timer to be lower than the measurement interval.
The delay advertised by Unidirectional Link Delay and Min/Max Unidirectional Link Delay sub-TLVs MUST be the delay from the advertising node to its neighbor (the forward path delay). Similarly, link loss MUST be the packet loss from the advertising node to its neighbor.
When link performance values change by small amounts below advertisement thresholds, implementations SHOULD suppress sub-TLV re-advertisement and/or lengthen the refresh period to reduce unnecessary flooding.
RFC 7471 defines seven new sub-TLVs for the OSPF TE Link TLV: Unidirectional Link Delay (type 27), Min/Max Unidirectional Link Delay (type 28), Unidirectional Delay Variation (type 29), Unidirectional Link Loss (type 30), Unidirectional Residual Bandwidth (type 31), Unidirectional Available Bandwidth (type 32), and Unidirectional Utilized Bandwidth (type 33). These sub-TLVs distribute network performance information within OSPFv2 and OSPFv3 TE LSAs. All metrics are unidirectional, representing the forward path from the advertising node to its neighbor.
The Anomalous (A) bit appears in the Unidirectional Link Delay, Min/Max Unidirectional Link Delay, and Unidirectional Link Loss sub-TLVs. It is set when a measured value exceeds a configured maximum threshold and cleared when the value falls below a configured reuse threshold, enabling receivers to trigger traffic re-routing or failover actions.
IANA registered seven new type codes in the OSPF TE Link TLV sub-TLV registry: 27 (Unidirectional Link Delay), 28 (Min/Max Unidirectional Link Delay), 29 (Unidirectional Delay Variation), 30 (Unidirectional Link Loss), 31 (Unidirectional Residual Bandwidth), 32 (Unidirectional Available Bandwidth), 33 (Unidirectional Utilized Bandwidth).
RFC 7471 does not introduce security issues beyond those in RFC 3630. For OSPFv2, additional protection is provided by HMAC-SHA (RFC 5709) and security extensions. For OSPFv3, IPsec (RFC 4552) and Authentication Trailer (RFC 7166) provide protection. OSPF KARP (RFC 6863) analyzes OSPFv2/v3 routing security gaps.
The Anomalous bit state machine has two states: steady-state (A=0) and anomalous (A=1). Transition to anomalous occurs when a measured value exceeds the configured maximum threshold; transition back to steady-state occurs when the value falls below the configured reuse threshold and has remained there for at least one advertisement interval. Only one threshold direction (high or low) may trigger any given sub-TLV at a time to prevent oscillations.
The Min/Max Unidirectional Link Delay sub-TLV (type 28, length 8) contains a 1-bit Anomalous (A) flag, 7 reserved bits, a 24-bit Min Delay field, 8 reserved bits, and a 24-bit Max Delay field, all in microseconds encoded as integers. Min and max may be equal; both fields saturate at 16,777,215.
The Unidirectional Available Bandwidth sub-TLV (type 32, length 4) carries a 32-bit IEEE 754 single-precision floating-point value in bytes per second. Available bandwidth is residual bandwidth minus bandwidth used for actual forwarding of non-RSVP-TE LSP packets.
The Unidirectional Delay Variation sub-TLV (type 29, length 4) contains 8 reserved bits and a 24-bit Delay Variation field in microseconds encoded as an integer. A value of 0 indicates the metric has not been measured; maximum encodable value is 16,777,215.
The Unidirectional Link Delay sub-TLV (type 27, length 4) contains a 1-bit Anomalous (A) flag, 7 reserved bits, and a 24-bit Delay field encoding average link delay in microseconds as an integer. Maximum encodable value is 16,777,215 microseconds (≈16.78 sec), which also serves as a saturation sentinel.
The Unidirectional Link Loss sub-TLV (type 30, length 4) contains a 1-bit Anomalous (A) flag, 7 reserved bits, and a 24-bit Link Loss field representing packet loss as a percentage with a basic unit of 0.000003%. The maximum expressible loss is 50.331642% (2^24 - 2); values exceeding this SHOULD be encoded as the maximum.
The Unidirectional Residual Bandwidth sub-TLV (type 31, length 4) carries a 32-bit IEEE 754 single-precision floating-point value representing residual bandwidth in bytes per second. Residual bandwidth is defined as Maximum Bandwidth minus bandwidth currently allocated to RSVP-TE LSPs.
The Unidirectional Utilized Bandwidth sub-TLV (type 33, length 4) carries a 32-bit IEEE 754 single-precision floating-point value in bytes per second representing actual link utilization as measured by the advertising node. For bundled links, it is the sum of component link utilizations.