RFC 8570
IS-IS Traffic Engineering (TE) Metric Extensions
Part 1 of 4: RFC 8570 π IS-IS TE Metric Extensions π¦
okay bestie, let's get into it! π This one is Standards Track (so it's an actual official protocol spec, not just a vibe π ), published March 2019 by the IETF, with ISSN 2070-1721. The authors are L. Ginsberg (editor, Cisco Systems, Inc.), S. Previdi (editor, Huawei), S. Giacalone (Microsoft), D. Ward (Cisco Systems, Inc.), J. Drake (Juniper Networks), and Q. Wu (Huawei). π
It obsoletes RFC 7810 π, so this is the new and improved version. It doesn't update anything else. Iconic glow-up energy β¨
The whole vibe is IS-IS routing π, the protocol routers use to share who-connects-to-who info, and it's getting a metrics upgrade so routers can share how the links are performing too π§
Status of This Memo π
This is an Internet Standards Track document β¨. It's a product of the IETF, it reflects consensus from the IETF community, got public review, and was approved for publication by the IESG. For more on Internet Standards, check Section 2 of RFC 7841 π.
Updates and errata for this one live at https://www.rfc-editor.org/info/rfc8570 πΈ.
Copyright Notice π¦
Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved π .
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as in effect on the date of publication. Please actually read these, they cover your rights and restrictions π. Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and come without warranty as described in that license π«Ά.
1. Introduction β¨
okay so picture this π : in certain networks, like financial information networks (think stock market data providers π), network-performance info (like latency) is becoming just as critical to picking a data path as the usual metrics π. Those networks have SO much money riding on getting market data "real time" and making trades faster than everyone else πΈ. So hop count or cost? Kinda tangentially important now π. What they actually want is to pick paths based on performance data (latency, etc.) in a way that's cost-effective and scalable π₯.
This doc describes extensions (we call them "IS-IS TE Metric Extensions" π§) to the Extended IS Reachability TLV defined in [RFC5305]. These extensions let you distribute network-performance info, like link delay, delay variation, packet loss, residual bandwidth, and available bandwidth π.
The data these extensions distribute is meant to be used as part of routing itself (like swapping cost for latency, or looking at bandwidth as well as cost π). It can also enhance Constrained Shortest Path First (CSPF) π¦, or supplement the data an Application-Layer Traffic Optimization (ALTO) server uses [RFC7285] π. For CSPF, the data can help set up, fail over, and fail back data paths using protocols like RSVP-TE [RFC3209] π.
Now, the important bit π: these mechanisms only spread performance info around. How you originally gather that info (like the methods in [RFC6375]) and what you do with it once it's distributed are outside the scope of this doc π . For example measurement mechanisms for latency, delay variation, and loss in an MPLS network are in [RFC6374] π§.
Here's the spicy part πΆοΈ: this document doesn't say how to get the performance info, but measured delay SHOULD NOT vary much based on the offered traffic load πΈ. So queuing delays SHOULD NOT be included in the delay measurement π. For links like forwarding adjacencies [RFC4206], you've gotta be careful that the measured delay avoids big queuing delays π. You can do that a couple of ways: (1) measure with a traffic class that barely queues, or (2) add up the measured link delays of the components along the link's path β¨.
This document obsoletes [RFC7810] π.
1.1. Requirements Language π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here π. Lowercase versions are just regular words, bestie π.
2. TE Metric Extensions to IS-IS π¦
Alright, so this section registers new IS-IS TE sub-TLVs in the "Sub-TLVs for TLVs 22, 23, 141, 222, and 223" registry π. These new sub-TLVs are how you distribute network-performance info π . They build on IS-IS TE [RFC5305] and GMPLS [RFC4203] β¨.
The Extended IS Reachability TLV (type 22, from [RFC5305]), the Inter-AS Reachability TLV (also called "inter-AS reachability information TLV", type 141, from [RFC5316]), and the MT-ISN TLV (type 222, from [RFC5120]) all have nested sub-TLVs, so they're super easy to extend π§. This doc registers these sub-TLVs:
Type Description
----------------------------------------------------
33 Unidirectional Link Delay
34 Min/Max Unidirectional Link Delay
35 Unidirectional Delay Variation
36 Unidirectional Link Loss
37 Unidirectional Residual Bandwidth
38 Unidirectional Available Bandwidth
39 Unidirectional Utilized Bandwidth
As you can see π, each sub-TLV carries a different kind of performance info πΈ. The new sub-TLVs have a bit called the Anomalous (or "A") bit π¦. When the A bit is clear (or the sub-TLV doesn't have an A bit at all), the sub-TLV describes steady-state link performance π. That info could be used to build a steady-state performance topology for initial tunnel-path computation, or to check alternative failover paths π.
When network performance breaks configurable link-local thresholds, a sub-TLV with the A bit set gets advertised π¨. The receiving node could use that to decide whether to (1) fail traffic over to a backup path, or (2) calculate a whole new path π . From the MPLS angle, the A bit lets LSP ingress nodes figure out whether the link in the sub-TLV affects any of the label switched paths they're the ingress for π§. If it does, they can check whether those LSPs still meet their end-to-end performance goals π. If not, the node could move affected traffic onto a pre-established protection LSP, or set up a brand new LSP and put the traffic there β¨.
If link performance then improves past a configurable minimum (the reuse threshold) π, that sub-TLV can be re-advertised with the A bit cleared π«Ά. Then the receiving node can do whatever re-optimization (or failback) it wants, including nothing at all π .
Heads up π: if a sub-TLV doesn't include the A bit, it can't be used for failover purposes. The A bit was left out of some sub-TLVs on purpose to help reduce oscillations π. See Section 5 for more π¦.
Consistent with the existing IS-IS TE spec [RFC5305], the bandwidth advertisements here MUST be encoded as IEEE floating-point values [IEEE754] π. Delay and delay-variation advertisements MUST be encoded as integer values π. Delay values MUST be quantified in microseconds, packet loss MUST be quantified as a percentage of packets sent, and bandwidth MUST be sent as bytes per second π§. All values (except residual bandwidth) MUST be calculated as rolling averages, and the averaging period MUST be a configurable period of time π. See Section 5 for more β¨.
Part 2 coming up next, periodt π π¦
3. Interface and Neighbor Addresses β¨
okay so IS-IS TE Metric Extensions sub-TLVs aren't only for the TE crowd π They can also be used for computing paths when there's no TE subsystem around. no cap π¦
BUT, and this is a big but π just like in the TE case, the Interface Address and Neighbor Address sub-TLVs (IPv4 or IPv6) MUST be present. Their encoding is defined in [RFC5305] for IPv4 and in [RFC6119] for IPv6, so go check those if you want the exact details π§
4. Sub-TLV Details π
4.1. Unidirectional Link Delay Sub-TLV πΈ
this sub-TLV is all about the average link delay between two directly connected IS-IS neighbors π The delay it advertises MUST be the delay from the local neighbor to the remote neighbor (aka the forward-path latency). Here's the layout:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A| RESERVED | Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1
where:
- Type:
33 - Length:
4 - A bit: this is the Anomalous (A) bit π¨ It gets set when the measured value of this parameter goes over its configured maximum threshold. It gets cleared when the measured value drops back below its configured reuse threshold. When the A bit is cleared, the sub-TLV is showing steady-state link performance β¨
- RESERVED: reserved for future use, so it's giving "don't touch" π
ββοΈ It MUST be set to
0when sent and MUST be ignored when received. - Delay: this 24-bit field carries the average link delay over a configurable interval, in microseconds, as a plain integer π When it's set to the maximum value
16,777,215(16.777215 seconds), the delay is at least that much and might be even bigger π
4.2. Min/Max Unidirectional Link Delay Sub-TLV π
This sub-TLV is the min and max delay duo between two directly connected IS-IS neighbors π―ββοΈ The delay it advertises MUST be the delay from the local neighbor to the remote neighbor (i.e., the forward-path latency). Here's the diagram:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A| RESERVED | Min Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RESERVED | Max Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2
where:
- Type:
34 - Length:
8 - A bit: the Anomalous (A) bit π¨ It gets set when one or more measured values go over a configured maximum threshold. It gets cleared when the measured value falls below its configured reuse threshold. When it's cleared, the sub-TLV represents steady-state link performance π
- RESERVED: reserved for future use π
ββοΈ It MUST be set to
0when sent and MUST be ignored when received. - Min Delay: a 24-bit field with the minimum measured link delay (in microseconds) over a configurable interval, as an integer π«§
- Max Delay: a 24-bit field with the maximum measured link delay (in microseconds) over a configurable interval, as an integer π«§
Implementations MAY also let you configure an offset value (in microseconds) to be added to the measured delay, so operators can communicate their own delay constraints ποΈ
It's totally possible for Min Delay and Max Delay to be the same value π₯°
When the delay value (Min Delay or Max Delay) is set to the maximum value 16,777,215 (16.777215 seconds), the delay is at least that much and might be larger π
4.3. Unidirectional Delay Variation Sub-TLV π¦
This sub-TLV advertises the average link delay variation between two directly connected IS-IS neighbors (the jitter tea β). The delay variation it advertises MUST be the delay from the local neighbor to the remote neighbor (i.e., the forward-path latency). Here's the diagram:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RESERVED | Delay Variation |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3
where:
- Type:
35 - Length:
4 - RESERVED: reserved for future use π
ββοΈ It MUST be set to
0when sent and MUST be ignored when received. - Delay Variation: a 24-bit field with the average link delay variation over a configurable interval, in microseconds, as an integer π When it's set to
0, it hasn't been measured. When it's set to the maximum value16,777,215(16.777215 seconds), the delay is at least that much and might be larger π
4.4. Unidirectional Link Loss Sub-TLV π
This sub-TLV advertises the loss (as a packet percentage) between two directly connected IS-IS neighbors π The link loss it advertises MUST be the packet loss from the local neighbor to the remote neighbor (i.e., the forward-path loss). Here's the diagram:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A| RESERVED | Link Loss |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4
where:
- Type:
36 - Length:
4 - A bit: the Anomalous (A) bit π¨ It gets set when the measured value of this parameter goes over its configured maximum threshold. It gets cleared when the measured value falls below its configured reuse threshold. When it's cleared, the sub-TLV represents steady-state link performance β¨
- RESERVED: reserved for future use π
ββοΈ It MUST be set to
0when sent and MUST be ignored when received. - Link Loss: a 24-bit field with the link packet loss as a percentage of the total traffic sent over a configurable interval π The basic unit is 0.000003%, where (2^24 - 2) is 50.331642%. That's the highest packet-loss percentage it can express. The reasoning is that precision matters more on high-speed links than advertising loss rates above that number, and high-speed links with over 50% loss are unusable anyway ποΈ So measured values that are larger than the field maximum SHOULD be encoded as the maximum value.
4.5. Unidirectional Residual Bandwidth Sub-TLV πΈ
This sub-TLV advertises the residual bandwidth between two directly connected IS-IS neighbors π° The residual bandwidth it advertises MUST be the residual bandwidth from the system that originates the Link State Advertisement (LSA) to its neighbor. Here's the diagram:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Residual Bandwidth |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5
where:
- Type:
37 - Length:
4 - Residual Bandwidth: this field carries the residual bandwidth on a link, a forwarding adjacency [RFC4206], or a bundled link. It's in IEEE floating-point format, with units of bytes per second π«§ For a link or forwarding adjacency, residual bandwidth is defined as the maximum bandwidth [RFC5305] minus the bandwidth currently allocated to RSVP-TE label switched paths. For a bundled link, it's defined as the sum of the component link residual bandwidths.
The calculation of residual bandwidth is different from that of unreserved bandwidth [RFC5305] π€ This calculation subtracts tunnel reservations from the maximum bandwidth (i.e., the link capacity) [RFC5305] and gives you an aggregated remainder across priorities. Unreserved bandwidth, on the other hand, is subtracted from the maximum reservable bandwidth (the bandwidth that can theoretically be reserved) and gives you per-priority remainders. Residual bandwidth and unreserved bandwidth [RFC5305] can be used at the same time, and each has its own use case π For example, the former can be used for applications like Weighted ECMP, while the latter can be used for call admission control π
4.6. Unidirectional Available Bandwidth Sub-TLV π·
This sub-TLV advertises the available bandwidth between two directly connected IS-IS neighbors π The available bandwidth it advertises MUST be the available bandwidth from the system originating this sub-TLV. Here's the diagram:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Available Bandwidth |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6
where:
- Type:
38 - Length:
4 - Available Bandwidth: this field carries the available bandwidth on a link, a forwarding adjacency, or a bundled link. It's in IEEE floating-point format, with units of bytes per second π«§ For a link or forwarding adjacency, available bandwidth is defined as residual bandwidth (see Section 4.5) minus the measured bandwidth used for the actual forwarding of non-RSVP-TE label switched path packets. For a bundled link, it's defined as the sum of the component link available bandwidths π
4.7. Unidirectional Utilized Bandwidth Sub-TLV β¨
okay bestie, this sub-TLV is how two directly connected IS-IS neighbors share how much bandwidth is being used π‘π the utilization it advertises MUST be the bandwidth coming from the system that originates the sub-TLV, so no sneaky borrowing from anyone else π ββοΈ here's the layout:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Utilized Bandwidth |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7
where:
- Type:
39π - Length:
4πΈ - Utilized Bandwidth: this field carries the bandwidth utilization on a link, forwarding adjacency, or bundled link, in IEEE floating-point format with units of bytes per second π for a link or forwarding adjacency, it's the actual utilization of the link (as measured by the node doing the advertising) π for a bundled link, it's defined as the sum of the component link bandwidth utilizations β¨
5. Announcement Thresholds and Filters β¨
okay so the values in all the sub-TLVs (except minimum/maximum delay and residual bandwidth) MUST represent an average over a period of time, or come from a filter that's reasonably representative of an average π a rolling average is one example, and honestly it's giving very reliable energy π
Minimum and maximum delay MUST each be derived in one of these ways: by taking the lowest and/or highest measured value over a measurement interval, or by using a filter or some other technique to get a reasonable minimum and maximum that represent the interval, with compensation for outliers π§
The measurement interval, any filter coefficients, and any advertisement intervals MUST be configurable per sub-TLV ποΈ
Besides the measurement intervals that control re-advertisement, implementations SHOULD provide configurable accelerated advertisement thresholds per sub-TLV, like this:
- If the measured parameter falls outside a configured upper bound (or, for the minimum delay metric only, a lower bound) and the advertised sub-TLV isn't already outside that bound, or
- If the difference between the last advertised value and the current measured value exceeds a configured threshold, then
- The advertisement is made immediately π
- For sub-TLVs that include an A bit, an additional threshold SHOULD be included for the point where the performance counts as anomalous (and sub-TLVs with the A bit are sent). The A bit gets cleared when the sub-TLV's performance has been below (or re-crosses) this threshold for one or more advertisement intervals, so failback is allowed π¦
To prevent oscillations, only the high threshold or the low threshold (but not both) may be used to trigger any given sub-TLV that supports both π no flip-flopping, periodt π
Also, once a measurement is outside the bounds of the threshold, any re-advertisement of a measurement that's back within the bounds would stay governed solely by the measurement interval for that sub-TLV β±οΈ
6. Announcement Suppression π«Ά
When link-performance values change by small amounts that fall under the thresholds that would trigger a sub-TLV announcement, implementations SHOULD suppress sub-TLV re-advertisement and/or lengthen the period within which the sub-TLVs are refreshed π΄ quiet is the new loud
Only the accelerated advertisement threshold mechanism described in Section 5 may shorten the re-advertisement interval πββοΈ all suppression and re-advertisement interval backoff timer features SHOULD be configurable π
7. Network Stability and Announcement Periodicity π
Sections 5 and 6 give you configurable mechanisms to bound the number of re-advertisements π§± instability might happen in very large networks if the measurement intervals are set low enough to overwhelm the processing of flooded information at some of the routers in the topology π so care should be taken when setting these values, no cap
Additionally, the default measurement interval for all sub-TLVs SHOULD be 30 seconds β²οΈ
Announcements MUST also be able to be throttled using configurable inter-update throttle timers π¦ the minimum announcement periodicity is one announcement per second, and the default value SHOULD be set to 120 seconds π
Implementations SHOULD NOT permit the inter-update timer to be lower than the measurement interval π ββοΈ
Furthermore, it is RECOMMENDED that any underlying performance-measurement mechanisms not include any significant buffer delay, any significant buffer-induced delay variation, or any significant loss due to buffer overflow or due to active queue management π basically keep the buffers chill
8. Enabling and Disabling Sub-TLVs π₯
Implementations MUST make it possible to individually enable or disable each sub-TLV based on configuration ποΈ main character control, iykyk
9. Static Metric Override π
Implementations SHOULD permit static configuration and/or manual override of dynamic measurements for each sub-TLV π§ this makes migration easier and helps in situations where dynamic measurements just aren't possible πΈ
10. Compatibility π¦
As per [RFC5305], unrecognized sub-TLVs should be silently ignored π no drama, just vibes
11. Security Considerations π¨
Okay, this section is serious, so read it carefully π
The sub-TLVs introduced in this document let an operator advertise link state information (bandwidth, delay) that could be sensitive and that the operator might not want to disclose π
Section 7 describes a mechanism to ensure network stability when the new sub-TLVs defined in this document are advertised π§± Implementations SHOULD follow the described guidelines to mitigate the risk of instability π«Ά
[RFC5304] describes an authentication method for IS-IS Link State PDUs that allows cryptographic authentication of IS-IS Link State PDUs π
It is anticipated that in most deployments, the IS-IS protocol is used within an infrastructure entirely under the control of the same operator π However, it's worth considering that sending IS-IS Traffic Engineering sub-TLVs over insecure links could let a man-in-the-middle attacker delay real-time data to a given site or destination π± That could hurt the value of the data for that site or destination. The use of Link State PDU cryptographic authentication helps mitigate the risk of man-in-the-middle attacks π‘οΈ
12. IANA Considerations π
IANA maintains the registry for the sub-TLVs π IANA has registered the following sub-TLVs in the "Sub-TLVs for TLVs 22, 23, 141, 222, and 223" registry:
Type Description
----------------------------------------------------
33 Unidirectional Link Delay
34 Min/Max Unidirectional Link Delay
35 Unidirectional Delay Variation
36 Unidirectional Link Loss
37 Unidirectional Residual Bandwidth
38 Unidirectional Available Bandwidth
39 Unidirectional Utilized Bandwidth
13. References π
13.1. Normative References
- [IEEE754] Institute of Electrical and Electronics Engineers, "IEEE Standard for Floating-Point Arithmetic", IEEE Std 754-2008.
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997,
https://www.rfc-editor.org/info/rfc2119. - [RFC4206] Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP) Hierarchy with Generalized Multi-Protocol Label Switching (GMPLS) Traffic Engineering (TE)", RFC 4206, DOI 10.17487/RFC4206, October 2005,
https://www.rfc-editor.org/info/rfc4206. - [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/RFC5120, February 2008,
https://www.rfc-editor.org/info/rfc5120. - [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic Authentication", RFC 5304, DOI 10.17487/RFC5304, October 2008,
https://www.rfc-editor.org/info/rfc5304. - [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic Engineering", RFC 5305, DOI 10.17487/RFC5305, October 2008,
https://www.rfc-editor.org/info/rfc5305. - [RFC5316] Chen, M., Zhang, R., and X. Duan, "ISIS Extensions in Support of Inter-Autonomous System (AS) MPLS and GMPLS Traffic Engineering", RFC 5316, DOI 10.17487/RFC5316, December 2008,
https://www.rfc-editor.org/info/rfc5316. - [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, February 2011,
https://www.rfc-editor.org/info/rfc6119. - [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. Previdi, "OSPF Traffic Engineering (TE) Metric Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015,
https://www.rfc-editor.org/info/rfc7471. - [RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions", RFC 7810, DOI 10.17487/RFC7810, May 2016,
https://www.rfc-editor.org/info/rfc7810. - [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017,
https://www.rfc-editor.org/info/rfc8174.
13.2. Informative References
- [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
https://www.rfc-editor.org/info/rfc3209. - [RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005,
https://www.rfc-editor.org/info/rfc4203. - [RFC6374] Frost, D. and S. Bryant, "Packet Loss and Delay Measurement for MPLS Networks", RFC 6374, DOI 10.17487/RFC6374, September 2011,
https://www.rfc-editor.org/info/rfc6374. - [RFC6375] Frost, D., Ed. and S. Bryant, Ed., "A Packet Loss and Delay Measurement Profile for MPLS-Based Transport Networks", RFC 6375, DOI 10.17487/RFC6375, September 2011,
https://www.rfc-editor.org/info/rfc6375. - [RFC7285] Alimi, R., Ed., Penno, R., Ed., Yang, Y., Ed., Kiesel, S., Previdi, S., Roome, W., Shalunov, S., and R. Woundy, "Application-Layer Traffic Optimization (ALTO) Protocol", RFC 7285, DOI 10.17487/RFC7285, September 2014,
https://www.rfc-editor.org/info/rfc7285. - [RFC8571] Ginsberg, L., Ed., Previdi, S., Wu, Q., Tantsura, J., and C. Filsfils, "BGP - Link State (BGP-LS) Advertisement of IGP Traffic Engineering Performance Metric Extensions", RFC 8571, DOI 10.17487/RFC8571, March 2019,
https://www.rfc-editor.org/info/rfc8571.
Appendix A. Changes from RFC 7810 π
Okay so, errata ID 5293 (https://www.rfc-editor.org/errata/eid5293) caught a real mess in [RFC7810]. The length listed for these three sub-TLVs didn't match the figures, which showed a RESERVED field π:
37 Unidirectional Residual Bandwidth
38 Unidirectional Available Bandwidth
39 Unidirectional Utilized Bandwidth
The spec said the length was 4, but that didn't include the RESERVED field in the figures. Then it got worse. Some implementations used length 4 and left RESERVED out, while others kept RESERVED and used length 5. Bestie, those two choices are NOT interoperable π, so a bis version was needed to clear it up.
The fix here is to drop the unused RESERVED field from these sub-TLVs and use length 4. This lines up with the matching advertisements in the OSPF TE spec [RFC7471] and the BGP - Link State (BGP-LS) spec [RFC8571]. β¨ There were also some minor editorial fixes.
Errata ID 5486 (https://www.rfc-editor.org/errata/eid5486) pointed out a circular definition in Section 4.6 of [RFC7810]. Available bandwidth on bundled links was defined as "sum of the component link available bandwidths", which is literally the thing being defined π. It should have said "sum of the component link residual bandwidths". That's fixed and clarified now. π₯
Acknowledgements π«Ά
In [RFC7810], the authors gave a shoutout to Ayman Soliman, Nabil Bitar, David McDysan, Edward Crabbe, Don Fedyk, Hannes Gredler, Uma Chunduri, Alvaro Retana, Brian Weis, and Barry Leiba for their contributions and reviews of this document. Iconic squad π
The authors also gave credit to Curtis Villamizar for significant comments and direct content collaboration. π
For this document, the authors thank Jeff Haas for spotting and reporting the incorrect encoding of the bandwidth-related sub-TLVs. He's the reason the length mess got fixed π¦
Contributors πΈ
The following people contributed substantially to the content of this document and should be considered coauthors. They absolutely earned it π
Alia Atlas
Juniper Networks
United States of America
Email: akatlas@juniper.net
Clarence Filsfils
Cisco Systems, Inc.
Belgium
Email: cfilsfil@cisco.com
Authors' Addresses π¦
Here's who wrote this thing, with contact details, so you can slide into their inbox if you have questions π§
Les Ginsberg (editor)
Cisco Systems, Inc.
Email: ginsberg@cisco.com
Stefano Previdi (editor)
Huawei
Email: stefano@previdi.net
Spencer Giacalone
Microsoft
Email: spencer.giacalone@gmail.com
Dave Ward
Cisco Systems, Inc.
Email: wardd@cisco.com
John Drake
Juniper Networks
1194 N. Mathilda Ave.
Sunnyvale, CA 94089
United States of America
Email: jdrake@juniper.net
Qin Wu
Huawei
101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012
China
Email: bill.wu@huawei.com
π¦ where this page comes from
- ietf: rfc8570 2019-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms