RFC 9492

OSPF Application-Specific Link Attributes

๐Ÿ“… published October 2023, from ietf

Okay bestie, here's the main info ๐Ÿ’… This is RFC 9492, called OSPF Application-Specific Link Attributes. P. Psenak is the editor, with L. Ginsberg (Cisco Systems), W. Henderickx (Nokia), J. Tantsura (Nvidia), and J. Drake (Juniper Networks) as co-authors. It's a Standards Track document from October 2023, with ISSN 2070-1721. It obsoletes RFC 8920 ๐Ÿฆ‹


Abstract

okay so, traffic-engineering link attributes already exist and RSVP-TE deployments use them ๐ŸŒธ Then new stuff came along, like Segment Routing (SR) Policy and Loop-Free Alternates (LFAs), and they want those same link attributes too. The problem is that when several applications want the same attribute, today's advertisements can't give each app its own value for that attribute, and they can't say which apps are actually using the value on a given link. ๐Ÿ˜ญ This document adds link attribute advertisements to OSPFv2 and OSPFv3 that fix both of those issues โœจ

This document obsoletes RFC 8920.


Status of This Memo

This is an Internet Standards Track document. ๐Ÿซถ

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). More info on Internet Standards is in Section 2 of RFC 7841.

For the current status of this document, any errata, and how to send feedback, check https://www.rfc-editor.org/info/rfc9492. ๐Ÿ”ฅ


Copyright (c) 2023 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 they stand on the publication date of this document. Please read these carefully, because they spell out your rights and restrictions for this document. Code Components pulled out of this document must include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Revised BSD License. โš–๏ธโœจ


Table of Contents ๐ŸŒˆ

1.  Introduction
  1.1.  Requirements Language
2.  Requirements Discussion
3.  Existing Advertisement of Link Attributes
4.  Advertisement of Link Attributes
  4.1.  OSPFv2 Extended Link Opaque LSA and OSPFv3 E-Router-LSA
5.  Advertisement of Application-Specific Values
6.  Reused TE Link Attributes
  6.1.  Shared Risk Link Group (SRLG)
  6.2.  Extended Metrics
  6.3.  Administrative Group
  6.4.  TE Metric
7.  Maximum Link Bandwidth
8.  Considerations for Extended TE Metrics
9.  Local Interface IPv6 Address Sub-TLV
10. Remote Interface IPv6 Address Sub-TLV
11. Attribute Advertisements and Enablement
12. Deployment Considerations
  12.1.  Use of Legacy RSVP-TE LSA Advertisements
  12.2.  Use of Zero-Length Application Identifier Bit Masks
  12.3.  Interoperability, Backwards Compatibility, and Migration
         Concerns
    12.3.1.  Multiple Applications: Common Attributes with RSVP-TE
    12.3.2.  Multiple Applications: Some Attributes Not Shared with
            RSVP-TE
    12.3.3.  Interoperability with Legacy Routers
    12.3.4.  Use of Application-Specific Advertisements for RSVP-TE
13. Security Considerations
14. IANA Considerations
  14.1.  OSPFv2
  14.2.  OSPFv3
15. Changes to RFC 8920
16. References
  16.1.  Normative References
  16.2.  Informative References
Acknowledgments
Contributors
Authors' Addresses

1. Introduction โœจ

Okay so, link attribute advertisements for traffic engineering (TE) in OSPFv2 [RFC2328] and OSPFv3 [RFC5340] started with [RFC3630] and [RFC5329], respectively. [RFC4203], [RFC7308], and [RFC7471] extended them. These extensions mostly show up in deployments doing TE over Multiprotocol Label Switching (MPLS) with the Resource Reservation Protocol (RSVP), which is the RSVP-TE combo [RFC3209] ๐Ÿ’…

For this document, an application is a technology that uses link attribute advertisements. Section 5 lists some examples ๐Ÿ“

Recently, new applications showed up that want a lot of the same link attributes RSVP-TE uses. Two of them are SR Policy [RFC9256] and LFAs [RFC5286]. This creates a mess ๐Ÿ˜ตโ€๐Ÿ’ซ If a deployment runs both RSVP-TE and SR Policy, for example, there's no clean way to say which advertisements belong to RSVP-TE and which belong to SR Policy. If the two topologies line up exactly, it might be fine, but any mismatch causes confusion ๐Ÿ™ˆ

Here's a real example of how this bites. Picture a network where RSVP-TE is only turned on for some of its links. Then a link attribute gets advertised for another application (say, SR Policy) on a link where RSVP-TE is off. The RSVP-TE head-end router sees that attribute on that link and assumes RSVP-TE is enabled there, even though it isn't. If that head-end tries to set up an RSVP-TE path over that link, the path setup fails ๐Ÿ’€

There's another problem too. Sometimes both applications run on the same link, but each one needs a different value for the same attribute. Current advertisements can't carry application-specific values for one attribute on one link ๐Ÿ˜ค

This document defines extensions that fix these issues. Link attribute use cases will keep evolving, so this document also sets up a solution that's easy to extend for new applications and new use cases ๐ŸŒŸ

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 interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. Requirements Discussion ๐Ÿ’–

As I said earlier, link attribute use cases will keep evolving ๐Ÿ”ฎ So any talk about existing use cases only covers requirements we know about as of this writing. To figure out what OSPF needs beyond what it already has, we only have to look at use cases that back up the two key points from the introduction, which are:

  1. Support for indicating which applications are using the link attribute advertisements on a link.
  2. Support for advertising application-specific values for the same attribute on a link.

[RFC7855] covers use cases and requirements for SR. One of those use cases is SR Policy, which is defined in [RFC9256]. If a network runs both RSVP-TE and SR Policy, link attribute advertisements can be used by one of them or both. The link attributes that SR Policy uses on a given link don't have to match the ones RSVP-TE uses on that same link. So there's a clear need to indicate separately which link attribute advertisements each application uses ๐Ÿฆ‹

Since more applications might want link attributes later, there's one more requirement. The extensions have to let new applications be associated with link attributes without changing the advertisement format or causing backwards-compatibility problems โœจ

Last thing: a single attribute value can often be shared across several applications, so the solution has to avoid advertising duplicate link/attribute pairs whenever it can ๐Ÿซถ

Some advertisements already exist to support RSVP-TE. They're carried in the OSPFv2 TE Opaque Link State Advertisement (LSA) [RFC3630] and the OSPFv3 Intra-Area-TE-LSA [RFC5329]. [RFC4203], [RFC7308], and [RFC7471] defined more RSVP-TE link attributes ๐Ÿงš

Extended Link Opaque LSAs, defined in [RFC7684] for OSPFv2, and E-Router-LSAs [RFC8362] for OSPFv3, are used to advertise link attributes for applications other than RSVP-TE or GMPLS [RFC4203]. These LSAs were designed as generic containers for distributing extended link attributes ๐Ÿ“ฆ

This section lays out the solution for advertising link attributes that were originally defined for RSVP-TE or GMPLS when other applications use them ๐Ÿ’œ

Okay bestie, let's talk about why the Extended Link Opaque LSA ([RFC7684]) for OSPFv2 and the E-Router-LSA ([RFC8362]) for OSPFv3 are literally iconic ๐Ÿ‘‘. They're the move when you want to advertise link attributes that were originally made for RSVP-TE in packet networks and GMPLS. Here's what they bring to the table ๐Ÿ’…:

  1. Advertising the link attributes does not make the link part of the RSVP-TE topology. It avoids any conflicts and is fully compatible with [RFC3630] and [RFC5329]. โœจ
  2. The OSPFv2 TE Opaque LSA and OSPFv3 Intra-Area-TE-LSA remain truly opaque to OSPFv2 and OSPFv3 as originally defined in [RFC3630] and [RFC5329], respectively. Their contents are not inspected by OSPF, which instead acts as a pure transport. ๐Ÿฆ‹
  3. There is a clear distinction between link attributes used by RSVP-TE and link attributes used by other OSPFv2 or OSPFv3 applications. Main character energy, no mix-ups ๐ŸŒธ
  4. All link attributes that are used by other applications are advertised in the Extended Link Opaque LSA in OSPFv2 [RFC7684] or the OSPFv3 E-Router-LSA [RFC8362] in OSPFv3. ๐Ÿซถ
The catch? In rare cases, the same link attribute ends up advertised in both the TE Opaque and Extended Link Attribute LSAs in OSPFv2, or in both the Intra-Area-TE-LSA and E-Router-LSA in OSPFv3. Lowkey annoying, but it's rare ๐Ÿ™ˆ

So the Extended Link Opaque LSA [RFC7684] and E-Router-LSA [RFC8362] are used to advertise any link attributes used for non-RSVP-TE applications in OSPFv2 or OSPFv3, respectively. That includes the ones that were originally defined for RSVP-TE applications (see Section 6).

TE link attributes used for RSVP-TE/GMPLS keep using the OSPFv2 TE Opaque LSA [RFC3630] and OSPFv3 Intra-Area-TE-LSA [RFC5329]. Nothing changes for them ๐Ÿ’–

The format of the link attribute TLVs that were defined for RSVP-TE applications stays unchanged, even when they're used for non-RSVP-TE applications. Unique codepoints are allocated for these link attribute TLVs from the "OSPFv2 Extended Link TLV Sub-TLVs" registry [RFC7684] and from the "OSPFv3 Extended-LSA Sub-TLVs" registry [RFC8362], as specified in Section 14. โœจ


5. Advertisement of Application-Specific Values ๐ŸŒˆ

To allow advertisement of the application-specific values of a link attribute, the Application-Specific Link Attributes (ASLA) sub-TLV is defined. ASLA is a sub-TLV of the OSPFv2 Extended Link TLV [RFC7684] and the OSPFv3 Router-Link TLV [RFC8362]. Very organized, very slay ๐Ÿงš

Besides advertising link attributes for standardized applications, link attributes can also be advertised for applications that are not standardized. We call these a "user-defined application" or "UDA". UDAs are not subject to standardization and are outside the scope of this specification, so this is the wild west ๐Ÿค 

The ASLA sub-TLV is an optional sub-TLV of the OSPFv2 Extended Link TLV and the OSPFv3 Router-Link TLV. You can have multiple ASLA sub-TLVs in a parent TLV when different applications want to control different link attributes, or when a different value of the same attribute needs to be advertised by multiple applications. ๐Ÿ“

When the link attributes listed at the end of this section are advertised inside the OSPFv2 Extended Link TLV and the OSPFv3 Router-Link TLV, the ASLA sub-TLV MUST be used. It has the following format:

 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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SABM Length  |  UDABM Length |            Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Standard Application Identifier Bit Mask (SABM)         |
+-                                                             -+
|                            ...                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       User-Defined Application Identifier Bit Mask (UDABM)    |
+-                                                             -+
|                            ...                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Link Attribute sub-TLVs                  |
+-                                                             -+
|                            ...                                |

Where:

Type: 10 (OSPFv2), 11 (OSPFv3) ๐Ÿ”ฅ

Length: Variable ๐Ÿ’œ

SABM Length: Standard Application Identifier Bit Mask Length in octets. The value MUST be 0, 4, or 8. If the Standard Application Identifier Bit Mask is not present, the SABM Length MUST be set to 0. ๐Ÿ™ˆ

UDABM Length: User-Defined Application Identifier Bit Mask Length in octets. The value MUST be 0, 4, or 8. If the User-Defined Application Identifier Bit Mask is not present, the UDABM Length MUST be set to 0. ๐Ÿ™ˆ

Standard Application Identifier Bit Mask: An optional set of bits, where each bit represents a single standard application. The bits are defined in the "Link Attribute Application Identifiers" registry, which is defined in [RFC9479]. The current assignments are repeated here for informational purposes:

                          0 1 2 3 4 5 6 7 ...
                         +-+-+-+-+-+-+-+-+...
                         |R|S|F|          ...
                         +-+-+-+-+-+-+-+-+...

Bit 0 (R-bit): RSVP-TE. ๐ŸŒธ

Bit 1 (S-bit): SR Policy (this is data plane independent). ๐Ÿฆ‹

Bit 2 (F-bit): Loop-Free Alternate (includes all LFA types). โœจ

User-Defined Application Identifier Bit Mask: An optional set of bits, where each bit represents a single user-defined application.

If the SABM or UDABM Length is other than 0, 4, or 8, the ASLA sub-TLV MUST be ignored by the receiver. Nope, not today ๐Ÿšซ

Standard Application Identifier Bits are defined and sent starting with bit 0. Undefined bits that are transmitted MUST be transmitted as 0 and MUST be ignored on receipt. Bits that are not transmitted MUST be treated as if they are set to 0 on receipt. Bits that are not supported by an implementation MUST be ignored on receipt. ๐Ÿ’–

User-Defined Application Identifier Bits have no relationship to Standard Application Identifier Bits, and they are not managed by IANA or any other standards body. It is recommended that these bits be used starting with bit 0, so as to minimize the number of octets required to advertise all UDAs. Undefined bits that are transmitted MUST be transmitted as 0 and MUST be ignored on receipt. Bits that are not transmitted MUST be treated as if they are set to 0 on receipt. Bits that are not supported by an implementation MUST be ignored on receipt. ๐Ÿงš

If the link attribute advertisement is intended to be used only by a specific set of applications, the corresponding bit masks MUST be present, and one or more application-specific bits MUST be set for all applications that use the link attributes advertised in the ASLA sub-TLV. ๐Ÿซถ

Application Identifier Bit Masks apply to all link attributes that support application-specific values and are advertised in the ASLA sub-TLV. โœจ

The advantage of not making the Application Identifier Bit Masks part of the attribute advertisement itself is that the format of any previously defined link attributes can be kept and reused when advertising them in the ASLA sub-TLV. Smart, right? ๐Ÿ“

If the same attribute is advertised in more than one ASLA sub-TLV with the application listed in the Application Identifier Bit Masks, the application SHOULD use the first instance of advertisement and ignore any subsequent advertisements of that attribute. ๐Ÿ’…

Link attributes MAY be advertised associated with zero-length Application Identifier Bit Masks, for both standard applications and user-defined applications. Such link attribute advertisements MUST be used by standard applications and/or user-defined applications when no link attribute advertisements with a non-zero-length Application Identifier Bit Mask and a matching Application Identifier Bit set are present. Otherwise, such link attribute advertisements MUST NOT be used. ๐ŸŒˆ

This document defines the initial set of link attributes that MUST use the ASLA sub-TLV if they are advertised in the OSPFv2 Extended Link TLV or in the OSPFv3 Router-Link TLV. Documents that define new link attributes MUST state whether the new attributes support application-specific values and, as such, are advertised in an ASLA sub-TLV. The standard link attributes that are advertised in ASLA sub-TLVs are:

  • Shared Risk Link Group [RFC4203] ๐ŸŒธ
  • Unidirectional Link Delay [RFC7471] ๐Ÿฆ‹
  • Min/Max Unidirectional Link Delay [RFC7471] ๐Ÿฆ‹
  • Unidirectional Delay Variation [RFC7471] ๐Ÿฆ‹
  • Unidirectional Link Loss [RFC7471] ๐Ÿฆ‹
  • Unidirectional Residual Bandwidth [RFC7471] ๐Ÿฆ‹
  • Unidirectional Available Bandwidth [RFC7471] ๐Ÿฆ‹
  • Unidirectional Utilized Bandwidth [RFC7471] ๐Ÿฆ‹
  • Administrative Group [RFC3630] โœจ
  • Extended Administrative Group [RFC7308] โœจ
  • TE Metric [RFC3630] โœจ

This section defines the use case and indicates the codepoints (Section 14) from the "OSPFv2 Extended Link TLV Sub-TLVs" registry and the "OSPFv3 Extended-LSA Sub-TLVs" registry for some of the link attributes that were originally defined for RSVP-TE or GMPLS. Reuse is the whole vibe ๐Ÿ”

The SRLG of a link can be used in OSPF-calculated IPFRR (IP Fast Reroute) [RFC5714] to compute a backup path that does not share any SRLG with the protected link. Backup paths with no shared drama ๐Ÿ›ก๏ธ

To advertise the SRLG of the link in the OSPFv2 Extended Link TLV, the same format for the sub-TLV defined in Section 1.3 of [RFC4203] is used, with TLV type 11. Similarly, to advertise the SRLG in the OSPFv3 Router-Link TLV, TLV type 12 is used. ๐ŸŒธ

6.2. Extended Metrics ๐Ÿฆ‹

[RFC3630] defines several link bandwidth types. [RFC7471] defines extended link metrics based on link bandwidth, delay, and loss characteristics. All of these can be used to compute primary and backup paths within an OSPF area to satisfy requirements for bandwidth, delay (nominal or worst case), or loss. Metrics that go hard ๐Ÿ“Š

To advertise extended link metrics in the OSPFv2 Extended Link TLV, the same format for the sub-TLVs defined in [RFC7471] is used with the following TLV types:

12:  Unidirectional Link Delay

13:  Min/Max Unidirectional Link Delay

14:  Unidirectional Delay Variation

15:  Unidirectional Link Loss

16:  Unidirectional Residual Bandwidth

17:  Unidirectional Available Bandwidth

18:  Unidirectional Utilized Bandwidth

To advertise extended link metrics in the Router-Link TLV inside the OSPFv3 E-Router-LSA, the same format for the sub-TLVs defined in [RFC7471] is used with the following TLV types:

13:  Unidirectional Link Delay

14:  Min/Max Unidirectional Link Delay

15:  Unidirectional Delay Variation

16:  Unidirectional Link Loss

17:  Unidirectional Residual Bandwidth

18:  Unidirectional Available Bandwidth

19:  Unidirectional Utilized Bandwidth

6.3. Administrative Group ๐ŸŽ€

Okay so, [RFC3630] and [RFC7308] are the ones that define the Administrative Group and Extended Administrative Group sub-TLVs, respectively. Iconic duo, honestly. ๐Ÿฆ‹

To advertise the Administrative Group and Extended Administrative Group in the OSPFv2 Extended Link TLV, we reuse the same format for the sub-TLVs defined in [RFC3630] and [RFC7308], just with these TLV types:

19:  Administrative Group
20:  Extended Administrative Group

For OSPFv3, it's the same deal: to advertise them in the OSPFv3 Router-Link TLV, you use the same sub-TLV formats from [RFC3630] and [RFC7308], but with these TLV types instead:

20:  Administrative Group
21:  Extended Administrative Group

6.4. TE Metric ๐Ÿ“

[RFC3630] defines the TE Metric, and it's giving classic. โœจ

To advertise the TE Metric in the OSPFv2 Extended Link TLV, we use the same format as the sub-TLV defined in Section 2.5.5 of [RFC3630], with TLV type 22. For OSPFv3, advertising the TE Metric in the OSPFv3 Router-Link TLV uses TLV type 22 too. Same number, both protocols, very neat. ๐Ÿ’…

Maximum link bandwidth is an application-independent attribute of the link, and it's defined in [RFC3630]. Since it's application-independent, it MUST NOT be advertised in the ASLA sub-TLV. ๐Ÿ™…โ€โ™€๏ธ Instead, it MAY be advertised as a sub-TLV of the Extended Link TLV in the Extended Link Opaque LSA in OSPFv2 [RFC7684], or as a sub-TLV of the Router-Link TLV in the E-Router-LSA Router-Link TLV in OSPFv3 [RFC8362]. Lots of "Router-Link" energy here, I know, I know. ๐Ÿซถ

To advertise the maximum link bandwidth in the OSPFv2 Extended Link TLV, use the same format as the sub-TLV defined in [RFC3630], with TLV type 23.

To advertise the maximum link bandwidth in the OSPFv3 Router-Link TLV, use the same format as the sub-TLV defined in [RFC3630], with TLV type 23 too. โœจ

8. Considerations for Extended TE Metrics ๐Ÿ“Š

Okay, so [RFC7471] defines a bunch of dynamic performance metrics that are associated with a link. It's totally conceivable that these metrics could be measured for traffic tied to one specific application. So this document supports advertising these link attributes for a given application. ๐Ÿงš

BUT, real talk, in practice it may well be more practical to have these metrics reflect how all traffic on the link performs, no matter the application. ๐Ÿ™ˆ In that case, the advertisements for these attributes can be associated with all of the applications using that link. You can do this either by explicitly listing the applications in the Application Identifier Bit Mask, or by using a zero-length Application Identifier Bit Mask. More on the zero-length version in Section 12.2. ๐Ÿ’œ

9. Local Interface IPv6 Address Sub-TLV ๐ŸŒธ

The Local Interface IPv6 Address sub-TLV is an application-independent attribute of the link, defined in [RFC5329]. Because it's application-independent, it MUST NOT be advertised in the ASLA sub-TLV. ๐Ÿšซ Instead, it MAY be advertised as a sub-TLV of the Router-Link TLV inside the OSPFv3 E-Router-LSA [RFC8362].

To advertise the Local Interface IPv6 Address sub-TLV in the OSPFv3 Router-Link TLV, use the same format as the sub-TLV defined in [RFC5329], with TLV type 24. ๐Ÿฆ‹

10. Remote Interface IPv6 Address Sub-TLV ๐ŸŒˆ

The Remote Interface IPv6 Address sub-TLV is also an application-independent attribute of the link, defined in [RFC5329]. Same story as the last one, bestie: it MUST NOT be advertised in the ASLA sub-TLV. ๐Ÿ™…โ€โ™€๏ธ Instead, it MAY be advertised as a sub-TLV of the Router-Link TLV inside the OSPFv3 E-Router-LSA [RFC8362].

To advertise the Remote Interface IPv6 Address sub-TLV in the OSPFv3 Router-Link TLV, use the same format as the sub-TLV defined in [RFC5329], with TLV type 25. ๐Ÿ“

11. Attribute Advertisements and Enablement ๐Ÿ”‘

This document defines extensions that support advertising application-specific link attributes. ๐ŸŽ‰

Here's the tea: there are applications where enabling the application on the link actually matters. For example, with RSVP-TE, you need to make sure RSVP is enabled on the link before you send an RSVP-TE signaling message over it. ๐Ÿ“ก

But there are also applications where enabling the application on the link is irrelevant, and has nothing to do with the fact that some link attributes are advertised for its purposes. LFA is a perfect example of that. ๐Ÿ™ƒ

Whether the presence of link attribute advertisements for a given application means the application is enabled on that link depends on the application. Similarly, whether the absence of link attribute advertisements means the application is not enabled also depends on the application. It's all application-dependent, babe. ๐Ÿ’…

For RSVP-TE, advertising application-specific link attributes has no implication that RSVP-TE is enabled on that link. RSVP-TE enablement is derived solely from the information carried in the OSPFv2 TE Opaque LSA [RFC3630] and the OSPFv3 Intra-Area-TE-LSA [RFC5329]. ๐Ÿง 

For SR Policy, advertising application-specific link attributes does not indicate that SR Policy is enabled. Those advertisements are only used to support constraints that may be applied when specifying an explicit path. SR Policy is implicitly enabled on all links that are part of the SR-enabled topology, whether or not there are link attribute advertisements. ๐ŸŒŸ

For LFA, advertising application-specific link attributes does not indicate that LFA is enabled on that link. Enablement is controlled by local configuration. โš™๏ธ

In the future, if more standard applications get defined to use this mechanism, the specification that defines that use MUST define the relationship between application-specific link attribute advertisements and enablement for that application. Future writers, please don't skip this step. ๐Ÿซก

This document allows advertising application-specific link attributes with no application identifiers at all, meaning both the SABM and the UDABM are absent (see Section 5). This lets any application use the link attribute. ๐ŸŒ But if an application uses link attribute advertisements to infer that it's enabled on a link (like RSVP-TE does), then having no application identifier leaves it ambiguous whether that application is enabled on such a link. So you need to think this through before using the "any application" encoding. ๐Ÿ‘€

12. Deployment Considerations ๐Ÿš€

12.1. Use of Legacy RSVP-TE LSA Advertisements ๐Ÿ•ฐ๏ธ

Bit identifiers for standard applications are defined in Section 5. Every identifier defined in this document is tied to an application that was already deployed in some networks before this document was written. So those applications have been deployed using the RSVP-TE LSA advertisements. โœจ

The standard applications defined in this document may continue to use RSVP-TE LSA advertisements for a given link, so long as at least one of the following is true:

  • The application is RSVP-TE.
  • The application is SR Policy or LFA, and RSVP-TE is not deployed anywhere in the network.
  • The application is SR Policy or LFA, RSVP-TE is deployed in the network, and both the set of links where SR Policy and/or LFA advertisements are required AND the attribute values used by SR Policy and/or LFA on all such links are fully congruent with the links and attribute values used by RSVP-TE. ๐Ÿคฏ

Under the conditions above, implementations that support the extensions in this document get to choose between RSVP-TE LSA advertisements or application-specific advertisements to support SR Policy and/or LFA. ๐ŸŽ€ This means implementations need controls that specify which types of advertisements get sent and processed on receipt for these applications. More on the associated issues in Section 12.3. ๐Ÿ“š

Heads up though: New applications that future documents define to use the advertisements in this document MUST NOT make use of RSVP-TE LSA advertisements. ๐Ÿšซ This keeps deployment simple, because new applications don't need to support multiple ways of advertising attributes. Clean and iconic. ๐Ÿ‘‘

12.2. Use of Zero-Length Application Identifier Bit Masks ๐Ÿซง

Link attribute advertisements tied to zero-length Application Identifier Bit Masks, for both standard applications and user-defined applications, are usable by any application. The only catch is that they're subject to the restrictions in Section 5. ๐Ÿ” If support for a new application gets introduced on any node in a network while these advertisements exist, the new application will use them once those restrictions are met.

If that's NOT what you meant to happen, then the existing link attribute advertisements MUST be readvertised with an explicit set of applications specified before the new application is introduced. Plan ahead, bestie! ๐Ÿ“…

12.3. Interoperability, Backwards Compatibility, and Migration Concerns ๐Ÿค

Existing deployments of RSVP-TE, SR Policy, and/or LFA use the legacy advertisements listed in Section 3. Routers that don't support the extensions in this document will only process legacy advertisements, and they're likely to infer that RSVP-TE is enabled on the links where legacy advertisements exist. ๐Ÿ˜ฌ

It's expected that deployments using legacy advertisements will stick around for a significant period of time. So deployments using the extensions in this document, in the presence of routers that don't support them, need to be able to interoperate with the legacy advertisements used by those legacy routers. ๐Ÿซถ The following subsections talk through interoperability and backwards-compatibility concerns for a bunch of deployment scenarios. ๐Ÿ—บ๏ธ

12.3.1. Multiple Applications: Common Attributes with RSVP-TE ๐Ÿงฉ

In cases where multiple applications are using a given link, one of them is RSVP-TE, and all link attributes for that link are common to every application using it, interoperability is achieved by using legacy advertisements for RSVP-TE. ๐ŸŽฏ Attributes for applications other than RSVP-TE MUST be advertised using application-specific advertisements. Yes, this results in duplicate advertisements for those attributes, and yes, it's a little extra, but it works. ๐Ÿ™Œ

12.3.2. Multiple Applications: Some Attributes Not Shared with RSVP-TE ๐ŸŒ—

In cases where one or more applications other than RSVP-TE are using a given link, and one or more link attribute values are not shared with RSVP-TE, interoperability is achieved by using legacy advertisements for RSVP-TE. ๐Ÿ’ซ Attributes for applications other than RSVP-TE MUST be advertised using application-specific advertisements. And when some link attributes ARE shared with RSVP-TE, that means duplicate advertisements for those attributes. Mild, but manageable. ๐Ÿ’–

12.3.3. Interoperability with Legacy Routers

Okay so bestie, this is the part about routers that are still on the old-school version ๐Ÿง“โœจ. For the standard applications in this doc, routers that don't support these extensions will only send and receive the legacy link attribute advertisements. And the link attribute values for these apps are always shared, because legacy routers have literally no way to advertise or process app-specific values ๐Ÿ’….

So as long as there's even ONE legacy router in the network that has any of the standard applications turned on, all routers MUST keep advertising link attributes for these apps using only legacy advertisements ๐Ÿ™ˆ. ASLA advertisements for these apps MUST NOT be sent. Once every legacy router has been upgraded, the glow-up from legacy to ASLA can happen in these steps ๐Ÿฆ‹:

1)  Send new application-specific advertisements while continuing to
    advertise using the legacy advertisement (all advertisements are
    then duplicated).  Receiving routers continue to use legacy
    advertisements.

2)  Enable the use of the application-specific advertisements on all
    routers.

3)  Keep legacy advertisements if needed for RSVP-TE purposes.

Wait, I'm not going to put those steps in a code block. Here they are properly, in order, as the real list ๐ŸŒธ:

  1. Send new application-specific advertisements while continuing to advertise using the legacy advertisement (all advertisements are then duplicated). Receiving routers continue to use legacy advertisements.
  2. Enable the use of the application-specific advertisements on all routers.
  3. Keep legacy advertisements if needed for RSVP-TE purposes.

Once the migration is done, it becomes possible to advertise incongruent values per application on a given link. Main character energy โœจ๐Ÿ‘‘.

Documents defining new applications that make use of the application-specific advertisements defined in this document MUST discuss interoperability and backwards-compatibility issues that could occur in the presence of routers that do not support the new application. No skipping this part, periodt ๐Ÿ’€๐Ÿ“œ.

12.3.4. Use of Application-Specific Advertisements for RSVP-TE

The extensions in this document support RSVP-TE as one of the supported applications. It is, however, RECOMMENDED to advertise all link attributes for RSVP-TE in the existing OSPFv2 TE Opaque LSA [RFC3630] and OSPFv3 Intra-Area-TE-LSA [RFC5329] to keep things backwards compatible ๐Ÿซถ. RSVP-TE can eventually use the application-specific advertisements for newly defined link attributes that are defined as application specific ๐ŸŽ€.

Link attributes that are not allowed to be advertised in the ASLA sub-TLV, like maximum reservable link bandwidth and unreserved bandwidth, MUST use the OSPFv2 TE Opaque LSA [RFC3630] and OSPFv3 Intra-Area-TE-LSA [RFC5329] and MUST NOT be advertised in the ASLA sub-TLV ๐Ÿ˜ญ. These ones are not allowed in ASLA, no exceptions, bestie.


  1. Security Considerations

Existing security extensions as described in [RFC2328], [RFC5340], and [RFC8362] apply to extensions defined in this document. While OSPF is under a single administrative domain, there can be deployments where potential attackers have access to one or more networks in the OSPF routing domain. In these deployments, stronger authentication mechanisms such as those specified in [RFC5709], [RFC7474], [RFC4552], or [RFC7166] SHOULD be used ๐Ÿšจ๐Ÿ”.

Implementations must ensure that if any of the TLVs and sub-TLVs defined in this document are malformed, they are detected and do not facilitate a vulnerability for attackers to crash or otherwise compromise the OSPF router or routing process. Reception of a malformed TLV or sub-TLV SHOULD be counted and/or logged for further analysis. Logging of malformed TLVs and sub-TLVs SHOULD be rate-limited to prevent a denial-of-service (DoS) attack (distributed or otherwise) from overloading the OSPF control plane ๐Ÿ’€๐Ÿ›‘. This is serious, no cap.

This document defines an improved way to advertise link attributes. Tampering with the information defined in this document may have an effect on applications using it, including impacting TE, which uses various link attributes for its path computation. This is similar in nature to the impacts associated with, for example, [RFC3630]. As the advertisements defined in this document limit the scope to specific applications, the impact of tampering is similarly limited in scope ๐Ÿ”ฅโœจ.


  1. IANA Considerations

This specification updates two existing registries:

  • the "OSPFv2 Extended Link TLV Sub-TLVs" registry
  • the "OSPFv3 Extended-LSA Sub-TLVs" registry

The values defined in this document have been allocated using the IETF Review procedure as described in [RFC8126] ๐Ÿ“‹๐ŸŒˆ.

14.1. OSPFv2

The "OSPFv2 Extended Link TLV Sub-TLVs" registry [RFC7684] defines sub-TLVs at any level of nesting for OSPFv2 Extended Link TLVs. IANA has assigned the following sub-TLV types in the "OSPFv2 Extended Link TLV Sub-TLVs" registry:

10:  Application-Specific Link Attributes

11:  Shared Risk Link Group

12:  Unidirectional Link Delay

13:  Min/Max Unidirectional Link Delay

14:  Unidirectional Delay Variation

15:  Unidirectional Link Loss

16:  Unidirectional Residual Bandwidth

17:  Unidirectional Available Bandwidth

18:  Unidirectional Utilized Bandwidth

19:  Administrative Group

20:  Extended Administrative Group

22:  TE Metric

23:  Maximum link bandwidth

14.2. OSPFv3

The "OSPFv3 Extended-LSA Sub-TLVs" registry [RFC8362] defines sub-TLVs at any level of nesting for OSPFv3 Extended LSAs. IANA has assigned the following sub-TLV types in the "OSPFv3 Extended-LSA Sub-TLVs" registry:

11:  Application-Specific Link Attributes

12:  Shared Risk Link Group

13:  Unidirectional Link Delay

14:  Min/Max Unidirectional Link Delay

15:  Unidirectional Delay Variation

16:  Unidirectional Link Loss

17:  Unidirectional Residual Bandwidth

18:  Unidirectional Available Bandwidth

19:  Unidirectional Utilized Bandwidth

20:  Administrative Group

21:  Extended Administrative Group

22:  TE Metric

23:  Maximum link bandwidth

24:  Local Interface IPv6 Address

25:  Remote Interface IPv6 Address
  1. Changes to RFC 8920

Discussion within the LSR WG indicated that there was confusion regarding the use of ASLA advertisements that had a zero-length SABM/UDABM. The discussion can be seen by searching the LSR WG mailing list archives for the thread "Proposed Errata for RFCs 8919/8920" starting on 15 June 2021 ๐Ÿ“ฌ.

Changes to Section 5 have been introduced to clarify normative behavior in the presence of such advertisements. [RFC8920] defines advertising link attributes with zero-length SABM and zero-length UDABM as a means of advertising link attributes that can be used by any application. However, the text uses the word "permitted", suggesting that the use of such advertisements is "optional". Such an interpretation could lead to interoperability issues and is not what was intended ๐Ÿคฆโ€โ™€๏ธ.

The replacement text makes explicit the specific conditions when such advertisements MUST be used and the specific conditions under which they MUST NOT be used. Clear as day ๐Ÿ’–.

A subsection discussing the use of zero-length Application Identifier Bit Masks has been added for greater consistency with [RFC9479]. See Section 12.2 ๐Ÿฆ‹.

  1. References

16.1. Normative References

[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>.

[RFC2328]  Moy, J., "OSPF Version 2", STD 54, RFC 2328,
           DOI 10.17487/RFC2328, April 1998,
           <https://www.rfc-editor.org/info/rfc2328>.

[RFC3630]  Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
           (TE) Extensions to OSPF Version 2", RFC 3630,
           DOI 10.17487/RFC3630, September 2003,
           <https://www.rfc-editor.org/info/rfc3630>.

[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>.

[RFC5329]  Ishiguro, K., Manral, V., Davey, A., and A. Lindem, Ed.,
           "Traffic Engineering Extensions to OSPF Version 3",
           RFC 5329, DOI 10.17487/RFC5329, September 2008,
           <https://www.rfc-editor.org/info/rfc5329>.

[RFC5340]  Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
           for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
           <https://www.rfc-editor.org/info/rfc5340>.

[RFC7308]  Osborne, E., "Extended Administrative Groups in MPLS
           Traffic Engineering (MPLS-TE)", RFC 7308,
           DOI 10.17487/RFC7308, July 2014,
           <https://www.rfc-editor.org/info/rfc7308>.

[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>.

[RFC7684]  Psenak, P., Gredler, H., Shakir, R., Henderickx, W.,
           Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute
           Advertisement", RFC 7684, DOI 10.17487/RFC7684, November
           2015, <https://www.rfc-editor.org/info/rfc7684>.

[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>.

[RFC8362]  Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and
           F. Baker, "OSPFv3 Link State Advertisement (LSA)
           Extensibility", RFC 8362, DOI 10.17487/RFC8362, April
           2018, <https://www.rfc-editor.org/info/rfc8362>.

[RFC9479]  Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and
           J. Drake, "IS-IS Application-Specific Link Attributes",
           RFC 9479, DOI 10.17487/RFC9479, October 2023,
           <https://www.rfc-editor.org/info/rfc9479>.

## 16.2. Informative References ๐Ÿ“š

Okay, bonus reading list time, bestie! These are the references the document points to for background, but they aren't required reading to implement the spec. ๐Ÿฆ‹

- [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`.
- [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006, `https://www.rfc-editor.org/info/rfc4552`.
- [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for IP Fast Reroute: Loop-Free Alternates", RFC 5286, DOI 10.17487/RFC5286, September 2008, `https://www.rfc-editor.org/info/rfc5286`.
- [RFC5709] Bhatia, M., Manral, V., Fanto, M., White, R., Barnes, M., Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA Cryptographic Authentication", RFC 5709, DOI 10.17487/RFC5709, October 2009, `https://www.rfc-editor.org/info/rfc5709`.
- [RFC5714] Shand, M. and S. Bryant, "IP Fast Reroute Framework", RFC 5714, DOI 10.17487/RFC5714, January 2010, `https://www.rfc-editor.org/info/rfc5714`.
- [RFC7166] Bhatia, M., Manral, V., and A. Lindem, "Supporting Authentication Trailer for OSPFv3", RFC 7166, DOI 10.17487/RFC7166, March 2014, `https://www.rfc-editor.org/info/rfc7166`.
- [RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., "Security Extension for OSPFv2 When Using Manual Key Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, `https://www.rfc-editor.org/info/rfc7474`.
- [RFC7855] Previdi, S., Ed., Filsfils, C., Ed., Decraene, B., Litkowski, S., Horneffer, M., and R. Shakir, "Source Packet Routing in Networking (SPRING) Problem Statement and Requirements", RFC 7855, DOI 10.17487/RFC7855, May 2016, `https://www.rfc-editor.org/info/rfc7855`.
- [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, `https://www.rfc-editor.org/info/rfc8126`.
- [RFC8920] Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura, J., and J. Drake, "OSPF Application-Specific Link Attributes", RFC 8920, DOI 10.17487/RFC8920, October 2020, `https://www.rfc-editor.org/info/rfc8920`.
- [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, A., and P. Mattes, "Segment Routing Policy Architecture", RFC 9256, DOI 10.17487/RFC9256, July 2022, `https://www.rfc-editor.org/info/rfc9256`.

---

# Acknowledgments ๐Ÿซถ

The shoutouts from [RFC8920] are carried over here, because the group that wrote that one was so generous. ๐Ÿ’–

Thanks to Chris Bowers for his review and comments. ๐ŸŒธ

Thanks to Alvaro Retana for his detailed review and comments. ๐Ÿ”ฅ

For this document, the authors would like to thank Bruno Decraene. ๐Ÿ’œ

# Contributors ๐Ÿ’œ

These people contributed to the content of this document and should be considered coauthors. They're the real MVPs! ๐Ÿ‘‘

Acee Lindem LabN Consulting, L.L.C. United States of America Email: acee.ietf@gmail.com

Ketan Talaulikar Cisco Systems India Email: ketant.ietf@gmail.com

Hannes Gredler RtBrick Inc. Email: hannes@rtbrick.com


# Authors' Addresses ๐ŸŽ€

And here are the people who actually wrote the thing, with their contact details. Slay! โœจ

Peter Psenak (editor) Cisco Systems Slovakia Email: ppsenak@cisco.com

Les Ginsberg Cisco Systems United States of America Email: ginsberg@cisco.com

Wim Henderickx Nokia Copernicuslaan 50 2018 94089 Antwerp Belgium Email: wim.henderickx@nokia.com

Jeff Tantsura Nvidia United States of America Email: jefftant.ietf@gmail.com

John Drake Juniper Networks United States of America Email: jdrake@juniper.net

๐Ÿ“ฆ where this page comes from