RFC 9351

Border Gateway Protocol - Link State (BGP-LS) Extensions for Flexible Algorithm Advertisement

πŸ“… published February 2023, from ietf

Okay bestie, let's start with the title block πŸŽ€ This one's from the IETF (Internet Engineering Task Force) and the editor is K. Talaulikar πŸ’… with co-authors P. Psenak and S. Zandi and G. Dawra. Talaulikar and Psenak are from Cisco Systems, and Zandi and Dawra are from LinkedIn πŸ’Ό It's a Standards Track document, the ISSN is 2070-1721, and the date is February 2023 πŸ—“οΈ It doesn't list anything it obsoletes or updates, so it's a fresh start 🌸


Abstract πŸ¦‹

Okay so Flexible Algorithm is a solution that lets routing protocols like OSPF and IS-IS compute paths through a network based on constraints and metrics that users define. That's the "flexible" part 🧚 The routers in the network do the computing together in a distributed way, using a Flexible Algorithm Definition (FAD). That definition gets set up on one or more routers, and then it spreads around the network through OSPF and IS-IS flooding 🌊

Border Gateway Protocol - Link State (BGP-LS) lets you collect all sorts of topology info from the network πŸ—ΊοΈ This document adds extensions to the BGP-LS address family so the FAD can be advertised as part of that topology info. It's giving organisation, honestly 😭

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 has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9351.

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) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.

Table of Contents πŸ“

1.  Introduction
  1.1.  Requirements Language
2.  Overview of BGP-LS Extensions for Flexible Algorithm
3.  Flexible Algorithm Definition TLV
  3.1.  Flexible Algorithm Exclude-Any Affinity Sub-TLV
  3.2.  Flexible Algorithm Include-Any Affinity Sub-TLV
  3.3.  Flexible Algorithm Include-All Affinity Sub-TLV
  3.4.  Flexible Algorithm Definition Flags Sub-TLV
  3.5.  Flexible Algorithm Exclude SRLG Sub-TLV
  3.6.  Flexible Algorithm Unsupported Sub-TLV
4.  Flexible Algorithm Prefix Metric TLV
5.  IANA Considerations
6.  Manageability Considerations
7.  Security Considerations
8.  References
  8.1.  Normative References
  8.2.  Informative References
Acknowledgements
Authors' Addresses

1. Introduction ✨

Okay so the classic IGP (that's OSPF and IS-IS, bestie) works out the best paths through the network using the IGP metric on each link πŸ›£οΈ Lots of networks use RSVP-TE [RFC3209] or Segment Routing (SR) Policy [RFC8402] to push traffic down a path that was worked out using different metrics or constraints, not just the shortest IGP path. [RFC9350] defines Flexible Algorithm, which lets the IGPs themselves compute constraint-based paths. Iconic πŸ‘‘

Flexible Algorithm is called that because it gives a user the flexibility to define:

  • the type of calculation to be used (e.g., shortest path),
  • the metric type to be used (e.g., IGP metric or TE metric), and
  • the set of constraints to be used (e.g., inclusion or exclusion of certain links using affinities).

The operations of the IGP Flexible Algorithm solution are described in detail in [RFC9350]. Go read that one if you're curious πŸ€“

The BGP-LS extensions for SR are defined in [RFC9085] and [IDR-BGPLS-SRV6-EXT] for SR-MPLS and Segment Routing over IPv6 (SRv6), respectively. They include the extensions for advertisement of SR information, including various types of Segment Identifiers (SIDs), like these:

  • SR Algorithm TLV to indicate the participation of a node in a Flexible Algorithm computation
  • Prefix-SID TLV to indicate the association of the Prefix-SIDs to a specific Flexible Algorithm for SR-MPLS forwarding
  • SRv6 Locator TLV to indicate the Locator for a specific Flexible Algorithm for SRv6 forwarding

This document defines extensions to BGP-LS for advertising the Flexible Algorithm Definition (FAD) information πŸ’– That lets you learn the mapping from a Flexible Algorithm number to its definition in each area or domain of the underlying IGP. The definition says what kind of computation is used and what constraints apply to a given Flexible Algorithm. This info can then be used to set up SR Policy paths end to end across domains, by putting the right Flexible-Algorithm-specific SIDs in the segment list [RFC9256]. For example, picking the Flexible Algorithm Prefix-SID (for SR-MPLS) or End SID (for SRv6) of Area Border Routers (ABRs) or Autonomous System Border Routers (ASBRs) that match a definition optimising on the delay metric lets you build an end-to-end low-latency path across IGP domains, with the fewest SIDs in the SID list 🧚⚑

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. Overview of BGP-LS Extensions for Flexible Algorithm πŸ¦‹

Okay so BGP-LS [RFC7752] defines the Node Network Layer Reachability Information (NLRI) for advertising nodes along with their attributes, using the BGP-LS Attribute. It also covers the Link NLRI for advertising links with their attributes, and the Prefix NLRI for advertising prefixes with their attributes, all using the BGP-LS Attribute too 🫢

The FADs advertised by a node are treated as a node-level attribute, and they're advertised the way Section 3 describes 🌸

Link attributes like affinities and the Shared Risk Link Group (SRLG) get used during Flexible Algorithm route calculations in IS-IS and OSPF. In those protocols they get advertised using the Application-Specific Link Attribute (ASLA) advertisements, as described in [RFC8919], [RFC8920], and [RFC9350]. The BGP-LS extensions for ASLA advertisements are specified in [RFC9294] ✨

The Flexible Algorithm Prefix Metric (FAPM) is treated as a prefix attribute, and it's advertised the way Section 4 describes πŸ’…


3. Flexible Algorithm Definition TLV πŸ’œ

This document defines a new optional BGP-LS Attribute TLV associated with the Node NLRI, called the "Flexible Algorithm Definition TLV" ("FAD TLV" for short). Its format looks like this πŸ‘‘

   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            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Flex Algo   |   Metric-Type |   Calc-Type   |    Priority   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                sub-TLVs       ...                            //
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Figure 1: Flexible Algorithm Definition TLV

where:

  • Type: 1039
  • Length: The total length of the value field (including any sub-TLVs) in octets. The length value MUST be 4 or larger. 🚨
  • Flexible Algorithm (Flex Algo): Single octet value carrying the Flexible Algorithm number between 128 and 255 inclusive, as defined in [RFC9350].
  • Metric-Type: Single octet value carrying the metric type, as defined in [RFC9350].
  • Calc-Type: Single octet value carrying the calculation type, as defined in [RFC9350].
  • Priority: Single octet value carrying the priority of the FAD advertisement, as defined in [RFC9350].
  • sub-TLVs: Zero or more sub-TLVs may be included, as described further in this section.

The FAD TLV that gets advertised in the BGP-LS Attribute along with a node's Node NLRI is derived from these IGP protocol-specific advertisements:

  • for IS-IS, it comes from the IS-IS Flexible Algorithm Definition sub-TLV in [RFC9350]
  • for OSPFv2/OSPFv3, it comes from the OSPF Flexible Algorithm Definition TLV in [RFC9350]

The BGP-LS Attribute associated with a Node NLRI may include one or more FAD TLVs, one for the FAD of each algorithm that the particular node is advertising 🌈

The following subsections define the sub-TLVs of the FAD TLV 🧚

3.1. Flexible Algorithm Exclude-Any Affinity Sub-TLV πŸ“

The Flexible Algorithm Exclude-Any Affinity sub-TLV is an optional sub-TLV. It carries the affinity constraints tied to the FAD, and it lets you exclude links carrying any of the specified affinities from the computation of that algorithm, as described in [RFC9350] πŸ™ˆ The affinity is expressed in terms of the Extended Admin Group (EAG), as defined in [RFC7308].

The sub-TLV 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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Exclude-Any EAG (variable)                       //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Figure 2: Flexible Algorithm Exclude-Any Affinity Sub-TLV

where:

  • Type: 1040
  • Length: The total length of the value field in octets, dependent on the size of the EAG. It MUST be a non-zero value and a multiple of 4. 🚨
  • Exclude-Any EAG: The EAG value, as defined in [RFC9350].

The information in the Flexible Algorithm Exclude-Any Affinity sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible Algorithm Exclude Admin Group sub-TLV, as defined in [RFC9350] πŸ’…

3.2. Flexible Algorithm Include-Any Affinity Sub-TLV ✨

okay so the Include-Any Affinity sub-TLV is an optional sub-TLV πŸŽ€ that carries the affinity constraints tied to the FAD. Its job is to let in any link that carries at least one of the specified affinities when the specific algorithm is computed, per [RFC9350]. The affinity gets expressed as an EAG, as defined in [RFC7308]. bestie, this is giving clean and organized πŸ’…

The sub-TLV looks like this:

Figure 3: Flexible Algorithm Include-Any Affinity Sub-TLV

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Include-Any EAG (variable)                       //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

where:

  • Type: 1041 πŸ¦‹
  • Length: the total length of the value field in octets, depending on the size of the EAG. It MUST be a non-zero value and a multiple of 4. no skipping this one, periodt πŸ’€
  • Include-Any EAG: the EAG value, as defined in [RFC9350].

The information in the Flexible Algorithm Include-Any Affinity sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible Algorithm Include-Any Admin Group sub-TLV, as defined in [RFC9350]. so it's basically a copy of that one, just in the BGP-LS wrapper 🌸


3.3. Flexible Algorithm Include-All Affinity Sub-TLV 🧚

the Include-All Affinity sub-TLV is also optional πŸ’œ and it carries the affinity constraints for the FAD too. The difference is the logic: it lets in links carrying all of the specified affinities when the specific algorithm is computed, as described in [RFC9350]. Again the affinity is expressed as an EAG, as defined in [RFC7308]. the vibes are "must have everything on the list" πŸ‘‘

The sub-TLV looks like this:

Figure 4: Flexible Algorithm Include-All Affinity Sub-TLV

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Include-All EAG (variable)                       //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

where:

  • Type: 1042 ✨
  • Length: the total length of the value field in octets, depending on the size of the EAG. It MUST be a non-zero value and a multiple of 4. same rule, no cap 🫢
  • Include-All EAG: the EAG value, as defined in [RFC9350].

The information in the Flexible Algorithm Include-All Affinity sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible Algorithm Include-All Admin Group sub-TLV, as defined in [RFC9350]. same family, different vibe πŸ“


3.4. Flexible Algorithm Definition Flags Sub-TLV 🌈

this one is an optional sub-TLV that carries the flags tied to the FAD, the ones used when computing the specific algorithm, as described in [RFC9350]. flags are the little settings that change how the whole thing behaves, so yes, they matter a lot πŸ”₯

The sub-TLV looks like this:

Figure 5: Flexible Algorithm Definition Flags Sub-TLV

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Flags (variable)                       //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

where:

  • Type: 1043 πŸ’–
  • Length: the total length of the value field in octets, depending on the size of the flags. It MUST be a non-zero value and a multiple of 4. πŸ™ˆ
  • Flags: the bitmask used to represent the flags for the FAD, as defined in [RFC9350].

The information in the Flexible Algorithm Definition Flags sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible Algorithm Definition Flags sub-TLV, as defined in [RFC9350].


3.5. Flexible Algorithm Exclude SRLG Sub-TLV πŸ¦‹

the Exclude SRLG sub-TLV is optional too 🌸 and it carries the Shared Risk Link Group (SRLG) info tied to the FAD. Its job is to kick out links that have any of the specified SRLGs when the specific algorithm is computed, per [RFC9350]. The SRLGs for a link travel in the BGP-LS Shared Risk Link Group (TLV 1096) [RFC7752], so go check there too, bestie 🧚

The sub-TLV looks like this:

Figure 6: Flexible Algorithm Exclude SRLG Sub-TLV

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Shared Risk Link Group Values (variable)           //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

where:

  • Type: 1045 ✨
  • Length: the total length of the value field in octets, depending on the number of SRLG values carried. It MUST be a non-zero value and a multiple of 4. still the same rule, we're not bending it πŸ’…
  • Shared Risk Link Group Values: one or more SRLG values, each with a size of 4 octets, as defined in [RFC9350].

The information in the Flexible Algorithm Exclude SRLG sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible Algorithm Exclude SRLG sub-TLV, as defined in [RFC9350].


3.6. Flexible Algorithm Unsupported Sub-TLV 🫢

okay, the lore here is that the OSPF and IS-IS signaling for FAD lets you add new sub-TLVs under each IGP's Flexible Algorithm Definition TLV. But as specified in Section 5.3 of [RFC9350], the entire FAD has to be understood by anyone using it for computation. That's a big difference from most protocol extensions, where skipping or ignoring unsupported sub-TLV info doesn't change the base behavior 😭 so FAD is its own special case, bestie.

The Flexible Algorithm Unsupported sub-TLV is an optional sub-TLV 🌈 used to flag the presence of unsupported FAD sub-TLVs. It shows up when the BGP-LS implementation on the advertising node doesn't support one or more of the FAD sub-TLVs in the IGP advertisement.

The sub-TLV looks like this:

Figure 7: Flexible Algorithm Unsupported Sub-TLV

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Protocol-ID  | sub-TLV types (variable) ...                 //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

where:

  • Type: 1046 πŸ“
  • Length: the total length of the value field in octets (including any included sub-TLV types).
  • Protocol-ID: indicates the BGP-LS Protocol-ID of the protocol from which the FAD is being advertised via BGP-LS. The values are from the IANA "BGP-LS Protocol-IDs" subregistry under the "Border Gateway Protocol - Link State (BGP-LS) Parameters" registry <https://www.iana.org/assignments/bgp-ls-parameters/>.
  • sub-TLV types: zero or more sub-TLV types that are not supported by the node originating the BGP-LS advertisement. The size of each sub-TLV type depends on the protocol indicated by the Protocol-ID field. For example, for IS-IS, each sub-TLV type would be 1 octet in size, while for OSPF, each sub-TLV type would be 2 octets in size. 🧚
The node originating the advertisement MUST include the Flexible Algorithm Unsupported sub-TLV whenever it comes across an unsupported sub-TLV in the corresponding FAD in the IS-IS and OSPF advertisement. This one is not optional, bestie 🚨

When advertising the Flexible Algorithm Unsupported sub-TLV, the protocol-specific sub-TLV types that are not supported SHOULD be included. This info is a diagnostic aid, so it's really helpful for figuring out what went wrong πŸ”

The discussion on how consumers of the BGP-LS information use the FAD information is beyond the scope of this document. πŸ™ˆ However, it is RECOMMENDED that the node chosen for originating the IGP topology information into BGP-LS be one that supports all the FAD extensions in use in its part of the network. That way you avoid the scenario where an incomplete FAD gets advertised via BGP-LS. main character energy for the originating node πŸ‘‘


4. Flexible Algorithm Prefix Metric TLV ✨

this document defines a new optional BGP-LS Attribute TLV tied to the Prefix NLRI, called the "Flexible Algorithm Prefix Metric TLV ("FAPM TLV" for short). Here's the format πŸŽ€

Figure 8: Flexible Algorithm Prefix Metric TLV

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Flex Algo   |     Flags     |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Metric                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

where:

  • Type: 1044 πŸ¦‹
  • Length: 8 octets
  • Flexible Algorithm (Flex Algo): single octet value carrying the Flexible Algorithm number between 128 and 255 inclusive, as defined in [RFC9350].
  • Flags: single octet value and only applicable for OSPF, as defined in [RFC9350]. The value MUST be set to 0 for IS-IS. πŸ™…β€β™€οΈ
  • Reserved: 2-octet value that MUST be set to 0 by the originator and MUST be ignored by the receiver. 🫢
  • Metric: 4-octet field to carry the metric information. πŸ’œ

The FAPM TLV that is advertised in the BGP-LS Attribute along with the Prefix NLRI from a node is derived from the following IGP protocol-specific advertisements:

  • in the case of IS-IS, from the IS-IS Flexible Algorithm Prefix Metric sub-TLV in [RFC9350]
  • in the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm Prefix Metric sub-TLV in [RFC9350]

The BGP-LS Attribute associated with a Prefix NLRI may include one or more FAPM TLVs, one for the Flexible Algorithm Prefix Metric for each algorithm associated with that particular prefix. so one prefix can have a whole squad of FAPM TLVs 🌈✨

5. IANA Considerations ✨

okay so IANA already reserved the code points πŸ’– in the "BGP-LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs" registry at https://www.iana.org/assignments/bgp-ls-parameters. the table below is the full lineup for the TLVs and sub-TLVs this doc introduces πŸŽ€

+================+=========================================+
| TLV Code Point | Description                             |
+================+=========================================+
| 1039           | Flexible Algorithm Definition           |
+----------------+-----------------------------------------+
| 1040           | Flexible Algorithm Exclude-Any Affinity |
+----------------+-----------------------------------------+
| 1041           | Flexible Algorithm Include-Any Affinity |
+----------------+-----------------------------------------+
| 1042           | Flexible Algorithm Include-All Affinity |
+----------------+-----------------------------------------+
| 1043           | Flexible Algorithm Definition Flags     |
+----------------+-----------------------------------------+
| 1044           | Flexible Algorithm Prefix Metric        |
+----------------+-----------------------------------------+
| 1045           | Flexible Algorithm Exclude SRLG         |
+----------------+-----------------------------------------+
| 1046           | Flexible Algorithm Unsupported          |
+----------------+-----------------------------------------+

Table 1: Flexible Algorithm Code Points πŸ¦‹

6. Manageability Considerations 🧚

these new extensions just level up the IGP topology info that can get passed around via [RFC7752] 🌸 Procedures and protocol extensions in this document don't affect BGP protocol operations and management beyond what's covered in the "Manageability Considerations" section of [RFC7752]. Specifically, the malformed NLRIs attribute tests in the "Fault Management" section of [RFC7752] now cover the new TLVs for the BGP-LS NLRI in this document.

the extensions here don't specify any new configuration or monitoring aspects in BGP or BGP-LS. the BGP models spec is still an ongoing work based on [IDR-BGP-MODEL] πŸ‘€

7. Security Considerations πŸ”₯

security considerations for acquiring and distributing BGP-LS information are discussed in [RFC7752] πŸ”

the TLVs in this document are used to propagate the IGP Flexible Algorithm extensions defined in [RFC9350]. it's assumed that the IGP instances originating these TLVs will support all the required security (as described in [RFC9350]) for Flexible Algorithm deployment.

Heads up, this one is serious bestie 😭 This document specifies extensions for advertising node and prefix-related Flexible Algorithm information. Tampering with this Flexible-Algorithm-related information may affect applications using it, including impacting route calculation and programming. As the advertisements defined in this document are related to a specific Flexible Algorithm topology, the impact of tampering is similarly limited in scope.

8. References πŸ“š

8.1. Normative References

these are the must-reads πŸ’…

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

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

[RFC7752]  Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and
           S. Ray, "North-Bound Distribution of Link-State and
           Traffic Engineering (TE) Information Using BGP", RFC 7752,
           DOI 10.17487/RFC7752, March 2016,
           <https://www.rfc-editor.org/info/rfc7752>.

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

[RFC9350]  Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K.,
           and A. Gulko, "IGP Flexible Algorithm", RFC 9350,
           DOI 10.17487/RFC9350, February 2023,
           <https://www.rfc-editor.org/info/rfc9350>.

8.2. Informative References

the bonus reading list πŸ€“βœ¨

[IDR-BGP-MODEL]
           Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP
           YANG Model for Service Provider Networks", Work in
           Progress, Internet-Draft, draft-ietf-idr-bgp-model-15, 13
           October 2022, <https://datatracker.ietf.org/doc/html/
           draft-ietf-idr-bgp-model-15>.

[IDR-BGPLS-SRV6-EXT]
           Dawra, G., Filsfils, C., Talaulikar, K., Ed., Chen, M.,
           Bernier, D., and B. Decraene, "BGP Link State Extensions
           for SRv6", Work in Progress, Internet-Draft, draft-ietf-
           idr-bgpls-srv6-ext-13, 14 January 2023,
           <https://datatracker.ietf.org/doc/html/draft-ietf-idr-
           bgpls-srv6-ext-13>.

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

[RFC8402]  Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
           Decraene, B., Litkowski, S., and R. Shakir, "Segment
           Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
           July 2018, <https://www.rfc-editor.org/info/rfc8402>.

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

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

[RFC9085]  Previdi, S., Talaulikar, K., Ed., Filsfils, C., Gredler,
           H., and M. Chen, "Border Gateway Protocol - Link State
           (BGP-LS) Extensions for Segment Routing", RFC 9085,
           DOI 10.17487/RFC9085, August 2021,
           <https://www.rfc-editor.org/info/rfc9085>.

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

[RFC9294]  Talaulikar, K., Ed., Psenak, P., and J. Tantsura,
           "Application-Specific Link Attributes Advertisement Using
           the Border Gateway Protocol - Link State (BGP-LS)",
           RFC 9294, DOI 10.17487/RFC9294, August 2022,
           <https://www.rfc-editor.org/info/rfc9294>.

Acknowledgements 🫢

huge thanks from the authors to Les Ginsberg, Amalesh Maity, Y. F. Siu, Vijay Gurbani, and Donald Eastlake 3rd for their reviews and contributions to this work πŸ’œ they also thank Jie Dong for his shepherd review, and Alvaro Retana for his detailed AD review and suggestions for improving this document 🌈

Authors' Addresses πŸ’Œ

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


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


Shawn Zandi
LinkedIn
United States of America
Email: szandi@linkedin.com


Gaurav Dawra
LinkedIn
United States of America
Email: gdawra.ietf@gmail.com
πŸ“¦ where this page comes from