rfc9351.original | rfc9351.txt | |||
---|---|---|---|---|
Inter-Domain Routing K. Talaulikar, Ed. | Internet Engineering Task Force (IETF) K. Talaulikar, Ed. | |||
Internet-Draft Arrcus, Inc | Request for Comments: 9351 P. Psenak | |||
Intended status: Standards Track P. Psenak | Category: Standards Track Cisco Systems | |||
Expires: 26 February 2023 Cisco Systems | ISSN: 2070-1721 S. Zandi | |||
S. Zandi | ||||
G. Dawra | G. Dawra | |||
25 August 2022 | February 2023 | |||
Flexible Algorithm Advertisement using BGP Link-State | Border Gateway Protocol - Link State (BGP-LS) Extensions for Flexible | |||
draft-ietf-idr-bgp-ls-flex-algo-12 | Algorithm Advertisement | |||
Abstract | Abstract | |||
Flexible Algorithm is a solution that allows some routing protocols | Flexible Algorithm is a solution that allows some routing protocols | |||
(e.g., OSPF and IS-IS) to compute paths over a network based on user- | (e.g., OSPF and IS-IS) to compute paths over a network based on user- | |||
defined (and hence, flexible) constraints and metrics. The | defined (and hence, flexible) constraints and metrics. The | |||
computation is performed by routers participating in the specific | computation is performed by routers participating in the specific | |||
network in a distributed manner using a Flexible Algorithm | network in a distributed manner using a Flexible Algorithm Definition | |||
Definition. This Definition is provisioned on one or more routers | (FAD). This definition is provisioned on one or more routers and | |||
and propagated through the network by OSPF and IS-IS flooding. | propagated through the network by OSPF and IS-IS flooding. | |||
BGP Link-State (BGP-LS) enables the collection of various topology | Border Gateway Protocol - Link State (BGP-LS) enables the collection | |||
information from the network. This document defines extensions to | of various topology information from the network. This document | |||
the BGP-LS address family to advertise the Flexible Algorithm | defines extensions to the BGP-LS address family to advertise the FAD | |||
Definition as a part of the topology information from the network. | as a part of the topology information from the network. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 26 February 2023. | 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 Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.1. Requirements Language | |||
2. Overview of BGP-LS Extensions for Flexible Algorithm . . . . 4 | 2. Overview of BGP-LS Extensions for Flexible Algorithm | |||
3. Flexible Algorithm Definition TLV . . . . . . . . . . . . . . 4 | 3. Flexible Algorithm Definition TLV | |||
3.1. Flexible Algorithm Exclude Any Affinity Sub-TLV . . . . . 6 | 3.1. Flexible Algorithm Exclude-Any Affinity Sub-TLV | |||
3.2. Flexible Algorithm Include Any Affinity Sub-TLV . . . . . 6 | 3.2. Flexible Algorithm Include-Any Affinity Sub-TLV | |||
3.3. Flexible Algorithm Include All Affinity Sub-TLV . . . . . 7 | 3.3. Flexible Algorithm Include-All Affinity Sub-TLV | |||
3.4. Flexible Algorithm Definition Flags Sub-TLV . . . . . . . 8 | 3.4. Flexible Algorithm Definition Flags Sub-TLV | |||
3.5. Flexible Algorithm Exclude SRLG Sub-TLV . . . . . . . . . 9 | 3.5. Flexible Algorithm Exclude SRLG Sub-TLV | |||
3.6. Flexible Algorithm Unsupported Sub-TLV . . . . . . . . . 10 | 3.6. Flexible Algorithm Unsupported Sub-TLV | |||
4. Flexible Algorithm Prefix Metric TLV . . . . . . . . . . . . 11 | 4. Flexible Algorithm Prefix Metric TLV | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5. IANA Considerations | |||
6. Manageability Considerations . . . . . . . . . . . . . . . . 13 | 6. Manageability Considerations | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 7. Security Considerations | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 8. References | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 8.1. Normative References | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 8.2. Informative References | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 15 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
The classical IGP (e.g., OSPF and IS-IS) computation of best paths | The classical IGP (e.g., OSPF and IS-IS) computation of best paths | |||
over the network is based on the IGP metric assigned to the links in | over the network is based on the IGP metric assigned to the links in | |||
the network. Many network deployments use RSVP-TE-based [RFC3209] or | the network. Many network deployments use solutions based on RSVP-TE | |||
Segment Routing (SR) Policy-based [RFC8402] solutions to enforce | [RFC3209] or Segment Routing (SR) Policy [RFC8402] to enforce traffic | |||
traffic over a path that is computed using different metrics or | over a path that is computed using different metrics or constraints | |||
constraints than the shortest IGP path. [I-D.ietf-lsr-flex-algo] | than the shortest IGP path. [RFC9350] defines the Flexible Algorithm | |||
defines the Flexible Algorithm solution that allows IGPs themselves | solution that allows IGPs themselves to compute constraint-based | |||
to compute constraint based paths over the network. | paths over the network. | |||
Flexible Algorithm is so called because it allows a user the | Flexible Algorithm is called so because it allows a user the | |||
flexibility to define | flexibility to define: | |||
* the type of calculation to be used (e.g., shortest path) | * the type of calculation to be used (e.g., shortest path), | |||
* the metric type to be used (e.g., IGP metric or TE metric) | * 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 | * the set of constraints to be used (e.g., inclusion or exclusion of | |||
certain links using affinities) | certain links using affinities). | |||
The operations of the IGP flexible algorithm solution are described | The operations of the IGP Flexible Algorithm solution are described | |||
in detail in [I-D.ietf-lsr-flex-algo]. | in detail in [RFC9350]. | |||
The BGP-LS extensions for SR are defined in [RFC9085] and | The BGP-LS extensions for SR are defined in [RFC9085] and | |||
[I-D.ietf-idr-bgpls-srv6-ext] for SR-MPLS and Segment Routing over | [IDR-BGPLS-SRV6-EXT] for SR-MPLS and Segment Routing over IPv6 | |||
IPv6 (SRv6), respectively. They include the extensions for | (SRv6), respectively. They include the extensions for advertisement | |||
advertisement of SR information including various types of Segment | of SR information including various types of Segment Identifiers | |||
Identifiers (SIDs) as below: | (SIDs) as below: | |||
* SR Algorithm TLV to indicate the participation of a node in a | * SR Algorithm TLV to indicate the participation of a node in a | |||
flexible algorithm computation | Flexible Algorithm computation | |||
* Prefix-SID TLV to indicate the association of the Prefix-SIDs to a | * Prefix-SID TLV to indicate the association of the Prefix-SIDs to a | |||
specific flexible algorithm for SR-MPLS forwarding | specific Flexible Algorithm for SR-MPLS forwarding | |||
* SRv6 Locator TLV to indicate the Locator for specific flexible | * SRv6 Locator TLV to indicate the Locator for a specific Flexible | |||
algorithm for SRv6 forwarding | Algorithm for SRv6 forwarding | |||
This document defines extensions to BGP-LS for the advertisement of | This document defines extensions to BGP-LS for the advertisement of | |||
the Flexible Algorithm Definition (FAD) information to enable | the Flexible Algorithm Definition (FAD) information to enable | |||
learning of the mapping of the flexible algorithm number to its | learning of the mapping of the Flexible Algorithm number to its | |||
Definition in each area/domain of the underlying IGP. This | definition in each area/domain of the underlying IGP. This | |||
Definition indicates the type of computation used and the constraints | definition indicates the type of computation used and the constraints | |||
for a given flexible algorithm. This information can then be used | for a given Flexible Algorithm. This information can then be used | |||
for setting up SR Policy paths end to end across domains by using the | for setting up SR Policy paths end to end across domains by using the | |||
appropriate flexible algorithm-specific SIDs in its Segment List | appropriate Flexible-Algorithm-specific SIDs in its segment list | |||
[RFC9256]. For example, picking the flexible algorithm Prefix SID | [RFC9256]. For example, picking the Flexible Algorithm Prefix-SID | |||
(in case of SR-MPLS) or End SID (in case of SRv6) of Area Border | (in case of SR-MPLS) or End SID (in case of SRv6) of Area Border | |||
Routers (ABRs) or Autonomous System Border Routers (ASBRs) | Routers (ABRs) or Autonomous System Border Routers (ASBRs) | |||
corresponding to a Definition that optimizes on the delay metric | corresponding to a definition that optimizes on the delay metric | |||
enables the building of an end to end low latency path across IGP | enables the building of an end-to-end low-latency path across IGP | |||
domains with minimal SIDs in the SID list. | domains with minimal SIDs in the SID list. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. Overview of BGP-LS Extensions for Flexible Algorithm | 2. Overview of BGP-LS Extensions for Flexible Algorithm | |||
BGP-LS [RFC7752] specifies the Node Network Layer Reachability | BGP-LS [RFC7752] specifies the Node Network Layer Reachability | |||
Information (NLRI) for the advertisement of nodes along with their | Information (NLRI) for the advertisement of nodes, along with their | |||
attributes using the BGP-LS Attribute, the Link NLRI for the | attributes using the BGP-LS Attribute; the Link NLRI for the | |||
advertisement of links along with their attributes using the BGP-LS | advertisement of links, along with their attributes using the BGP-LS | |||
Attribute and the Prefix NLRI for the advertisement of prefixes along | Attribute; and the Prefix NLRI for the advertisement of prefixes, | |||
with their attributes using the BGP-LS Attribute. | along with their attributes using the BGP-LS Attribute. | |||
The FADs advertised by a node are considered as a node-level | The FADs advertised by a node are considered as a node-level | |||
attribute and advertised as specified in Section 3. | attribute and advertised as specified in Section 3. | |||
Various link attributes like affinities and Shared Risk Link Group | Various link attributes, like affinities and Shared Risk Link Group | |||
(SRLG) that are used during the Flexible Algorithm route calculations | (SRLG), that are used during the Flexible Algorithm route | |||
in IS-IS and OSPF are advertised in those protocols using the | calculations in IS-IS and OSPF are advertised in those protocols | |||
Application Specific Link Attribute (ASLA) advertisements as | using the Application-Specific Link Attribute (ASLA) advertisements, | |||
described in [RFC8919], [RFC8920], and [I-D.ietf-lsr-flex-algo]. The | as described in [RFC8919], [RFC8920], and [RFC9350]. The BGP-LS | |||
BGP-LS extensions for ASLA advertisements are specified in [RFC9294]. | extensions for ASLA advertisements are specified in [RFC9294]. | |||
The Flexible Algorithm Prefix Metric (FAPM) is considered as a prefix | The Flexible Algorithm Prefix Metric (FAPM) is considered as a prefix | |||
attribute and advertised as specified in Section 4. | attribute and advertised as specified in Section 4. | |||
3. Flexible Algorithm Definition TLV | 3. Flexible Algorithm Definition TLV | |||
This document defines a new optional BGP-LS Attribute TLV associated | This document defines a new optional BGP-LS Attribute TLV associated | |||
with the Node NLRI called the Flexible Algorithm Definition (FAD) TLV | with the Node NLRI called the "Flexible Algorithm Definition TLV" | |||
and its format is as follows: | ("FAD TLV" for short), and its format is as follows: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flex Algo | Metric-Type | Calc-Type | Priority | | | Flex Algo | Metric-Type | Calc-Type | Priority | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| sub-TLVs ... // | | sub-TLVs ... // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: Flexible Algorithm Definition TLV | Figure 1: Flexible Algorithm Definition TLV | |||
where: | ||||
* Type: 1039 | where: | |||
Type: 1039 | ||||
* Length: The total length of the value field (including any sub- | Length: The total length of the value field (including any sub- | |||
TLVs) in octets. The length value MUST be 4 or larger. | TLVs) in octets. The length value MUST be 4 or larger. | |||
* Flexible Algorithm (Flex Algo): Single octet value carrying the | Flexible Algorithm (Flex Algo): Single octet value carrying the | |||
flexible algorithm number between 128 and 255 inclusive, as | Flexible Algorithm number between 128 and 255 inclusive, as | |||
defined in [I-D.ietf-lsr-flex-algo]. | defined in [RFC9350]. | |||
* Metric-Type: Single octet value carrying the metric type, as | Metric-Type: Single octet value carrying the metric type, as | |||
defined in [I-D.ietf-lsr-flex-algo]. | defined in [RFC9350]. | |||
* Calc-Type: Single octet value carrying the calculation type, as | Calc-Type: Single octet value carrying the calculation type, as | |||
defined in [I-D.ietf-lsr-flex-algo]. | defined in [RFC9350]. | |||
* Priority: Single octet value carrying the priority of the FAD | Priority: Single octet value carrying the priority of the FAD | |||
advertisement, as defined in [I-D.ietf-lsr-flex-algo]. | advertisement, as defined in [RFC9350]. | |||
* sub-TLVs: zero or more sub-TLVs may be included as described | sub-TLVs: Zero or more sub-TLVs may be included, as described | |||
further in this section. | further in this section. | |||
The FAD TLV that is advertised in the BGP-LS Attribute along with the | The FAD TLV that is advertised in the BGP-LS Attribute along with the | |||
Node NLRI of a node is derived from the following IGP protocol- | Node NLRI of a node is derived from the following IGP protocol- | |||
specific advertisements: | specific advertisements: | |||
* In the case of IS-IS, from the IS-IS Flexible Algorithm Definition | * in the case of IS-IS, from the IS-IS Flexible Algorithm Definition | |||
sub-TLV in [I-D.ietf-lsr-flex-algo]. | sub-TLV in [RFC9350] | |||
* In the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm | * in the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm | |||
Definition TLV in [I-D.ietf-lsr-flex-algo]. | Definition TLV in [RFC9350] | |||
The BGP-LS Attribute associated with a Node NLRI may include one or | The BGP-LS Attribute associated with a Node NLRI may include one or | |||
more FAD TLVs corresponding to the FAD for each algorithm that the | more FAD TLVs corresponding to the FAD for each algorithm that the | |||
particular node is advertising. | particular node is advertising. | |||
The following sub-sections define sub-TLVs of the FAD TLV. | The following subsections define sub-TLVs of the FAD TLV. | |||
3.1. Flexible Algorithm Exclude Any Affinity Sub-TLV | 3.1. Flexible Algorithm Exclude-Any Affinity Sub-TLV | |||
The Flexible Algorithm Exclude Any Affinity sub-TLV is an optional | The Flexible Algorithm Exclude-Any Affinity sub-TLV is an optional | |||
sub-TLV that is used to carry the affinity constraints associated | sub-TLV that is used to carry the affinity constraints associated | |||
with the FAD and enable the exclusion of links carrying any of the | with the FAD and enable the exclusion of links carrying any of the | |||
specified affinities from the computation of the specific algorithm | specified affinities from the computation of the specific algorithm, | |||
as described in [I-D.ietf-lsr-flex-algo]. The affinity is expressed | as described in [RFC9350]. The affinity is expressed in terms of the | |||
in terms of Extended Admin Group (EAG) as defined in [RFC7308]. | Extended Admin Group (EAG), as defined in [RFC7308]. | |||
The sub-TLV has the following format: | The sub-TLV has the following format: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Exclude-Any EAG (variable) // | | Exclude-Any EAG (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: Flexible Algorithm Exclude Any Affinity sub-TLV | Figure 2: Flexible Algorithm Exclude-Any Affinity Sub-TLV | |||
where: | where: | |||
Type: 1040 | ||||
* 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 | ||||
* Length: The total length of the value field in octets dependent on | multiple of 4. | |||
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 | Exclude-Any EAG: The EAG value, as defined in [RFC9350]. | |||
[I-D.ietf-lsr-flex-algo]. | ||||
The information in the Flexible Algorithm Exclude Any Affinity sub- | The information in the Flexible Algorithm Exclude-Any Affinity sub- | |||
TLV is derived from the IS-IS and OSPF protocol-specific Flexible | TLV is derived from the IS-IS and OSPF protocol-specific Flexible | |||
Algorithm Exclude Admin Group sub-TLV as defined in | Algorithm Exclude Admin Group sub-TLV, as defined in [RFC9350]. | |||
[I-D.ietf-lsr-flex-algo]. | ||||
3.2. Flexible Algorithm Include Any Affinity Sub-TLV | 3.2. Flexible Algorithm Include-Any Affinity Sub-TLV | |||
The Flexible Algorithm Include Any Affinity sub-TLV is an optional | The Flexible Algorithm Include-Any Affinity sub-TLV is an optional | |||
sub-TLV that is used to carry the affinity constraints associated | sub-TLV that is used to carry the affinity constraints associated | |||
with the FAD and enable the inclusion of links carrying any of the | with the FAD and enable the inclusion of links carrying any of the | |||
specified affinities in the computation of the specific algorithm as | specified affinities in the computation of the specific algorithm, as | |||
described in [I-D.ietf-lsr-flex-algo]. The affinity is expressed in | described in [RFC9350]. The affinity is expressed in terms of the | |||
terms of Extended Admin Group (EAG) as defined in [RFC7308]. | EAG, as defined in [RFC7308]. | |||
The sub-TLV has the following format: | The sub-TLV has the following format: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Include-Any EAG (variable) // | | Include-Any EAG (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: Flexible Algorithm Include Any Affinity sub-TLV | Figure 3: Flexible Algorithm Include-Any Affinity Sub-TLV | |||
where: | where: | |||
Type: 1041 | ||||
* Type: 1041 | 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 | ||||
* Length: The total length of the value field in octets dependent on | multiple of 4. | |||
the size of the EAG. It MUST be a non-zero value and a multiple | ||||
of 4. | ||||
* Include-Any EAG: the EAG value as defined in | Include-Any EAG: The EAG value, as defined in [RFC9350]. | |||
[I-D.ietf-lsr-flex-algo]. | ||||
The information in the Flexible Algorithm Include Any Affinity sub- | The information in the Flexible Algorithm Include-Any Affinity sub- | |||
TLV is derived from the IS-IS and OSPF protocol-specific Flexible | TLV is derived from the IS-IS and OSPF protocol-specific Flexible | |||
Algorithm Include-Any Admin Group sub-TLV as defined in | Algorithm Include-Any Admin Group sub-TLV, as defined in [RFC9350]. | |||
[I-D.ietf-lsr-flex-algo]. | ||||
3.3. Flexible Algorithm Include All Affinity Sub-TLV | 3.3. Flexible Algorithm Include-All Affinity Sub-TLV | |||
The Flexible Algorithm Include All Affinity sub-TLV is an optional | The Flexible Algorithm Include-All Affinity sub-TLV is an optional | |||
sub-TLV that is used to carry the affinity constraints associated | sub-TLV that is used to carry the affinity constraints associated | |||
with the FAD and enable the inclusion of links carrying all of the | with the FAD and enable the inclusion of links carrying all of the | |||
specified affinities in the computation of the specific algorithm as | specified affinities in the computation of the specific algorithm, as | |||
described in [I-D.ietf-lsr-flex-algo]. The affinity is expressed in | described in [RFC9350]. The affinity is expressed in terms of the | |||
terms of Extended Admin Group (EAG) as defined in [RFC7308]. | EAG, as defined in [RFC7308]. | |||
The sub-TLV has the following format: | The sub-TLV has the following format: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Include-All EAG (variable) // | | Include-All EAG (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: Flexible Algorithm Include All Affinity sub-TLV | Figure 4: Flexible Algorithm Include-All Affinity Sub-TLV | |||
where: | where: | |||
Type: 1042 | ||||
* Type: 1042 | 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 | ||||
* Length: The total length of the value field in octets dependent on | multiple of 4. | |||
the size of the EAG. It MUST be a non-zero value and a multiple | ||||
of 4. | ||||
* Include-All EAG: the EAG value as defined in | Include-All EAG: The EAG value, as defined in [RFC9350]. | |||
[I-D.ietf-lsr-flex-algo]. | ||||
The information in the Flexible Algorithm Include All Affinity sub- | The information in the Flexible Algorithm Include-All Affinity sub- | |||
TLV is derived from the IS-IS and OSPF protocol-specific Flexible | TLV is derived from the IS-IS and OSPF protocol-specific Flexible | |||
Algorithm Include-All Admin Group sub-TLV as defined in | Algorithm Include-All Admin Group sub-TLV, as defined in [RFC9350]. | |||
[I-D.ietf-lsr-flex-algo]. | ||||
3.4. Flexible Algorithm Definition Flags Sub-TLV | 3.4. Flexible Algorithm Definition Flags Sub-TLV | |||
The Flexible Algorithm Definition Flags sub-TLV is an optional sub- | The Flexible Algorithm Definition Flags sub-TLV is an optional sub- | |||
TLV that is used to carry the flags associated with the FAD that are | TLV that is used to carry the flags associated with the FAD that are | |||
used in the computation of the specific algorithm as described in | used in the computation of the specific algorithm, as described in | |||
[I-D.ietf-lsr-flex-algo]. | [RFC9350]. | |||
The sub-TLV has the following format: | The sub-TLV has the following format: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags (variable) // | | Flags (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: Flexible Algorithm Definition Flags sub-TLV | Figure 5: Flexible Algorithm Definition Flags Sub-TLV | |||
where: | where: | |||
Type: 1043 | ||||
* Type: 1043 | Length: The total length of the value field in octets dependent | |||
* Length: The total length of the value field in octets dependent on | on the size of the flags. It MUST be a non-zero value and a | |||
the size of the Flags. It MUST be a non-zero value and a multiple | multiple of 4. | |||
of 4. | ||||
* Flags: the bitmask used to represent the flags for the FAD, as | Flags: The bitmask used to represent the flags for the FAD, as | |||
defined in [I-D.ietf-lsr-flex-algo]. | defined in [RFC9350]. | |||
The information in the Flexible Algorithm Definition Flags sub-TLV is | The information in the Flexible Algorithm Definition Flags sub-TLV is | |||
derived from the IS-IS and OSPF protocol-specific Flexible Algorithm | derived from the IS-IS and OSPF protocol-specific Flexible Algorithm | |||
Definition Flags sub-TLV as defined in [I-D.ietf-lsr-flex-algo]. | Definition Flags sub-TLV, as defined in [RFC9350]. | |||
3.5. Flexible Algorithm Exclude SRLG Sub-TLV | 3.5. Flexible Algorithm Exclude SRLG Sub-TLV | |||
The Flexible Algorithm Exclude SRLG sub-TLV is an optional sub-TLV | The Flexible Algorithm Exclude SRLG sub-TLV is an optional sub-TLV | |||
that is used to carry the Shared Risk Link Group (SRLG) information | that is used to carry the Shared Risk Link Group (SRLG) information | |||
associated with the FAD and enable the exclusion of links that are | associated with the FAD and enable the exclusion of links that are | |||
associated with any of the specified SRLG in the computation of the | associated with any of the specified SRLG in the computation of the | |||
specific algorithm as described in [I-D.ietf-lsr-flex-algo]. The | specific algorithm, as described in [RFC9350]. The SRLGs associated | |||
SRLGs associated with a link are carried in the BGP-LS Shared Link | with a link are carried in the BGP-LS Shared Risk Link Group (TLV | |||
Risk Group (TLV 1096) [RFC7752]. | 1096) [RFC7752]. | |||
The sub-TLV has the following format: | The sub-TLV has the following format: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Shared Risk Link Group Values (variable) // | | Shared Risk Link Group Values (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: Flexible Algorithm Exclude SRLG sub-TLV | Figure 6: Flexible Algorithm Exclude SRLG Sub-TLV | |||
where: | where: | |||
Type: 1045 | ||||
* Type: 1045 | Length: The total length of the value field in octets dependent | |||
on the number of SRLG values carried. It MUST be a non-zero | ||||
* Length: The total length of the value field in octets dependent on | value and a multiple of 4. | |||
the number of SRLG values carried. It MUST be a non-zero value | ||||
and a multiple of 4. | ||||
* Shared Risk Link Group Values: One or more SRLG values, each of 4 | Shared Risk Link Group Values: One or more SRLG values, each with | |||
octet size, as defined in [I-D.ietf-lsr-flex-algo]. | a size of 4 octets, as defined in [RFC9350]. | |||
The information in the Flexible Algorithm SRLG Exclude sub-TLV is | The information in the Flexible Algorithm Exclude SRLG sub-TLV is | |||
derived from the IS-IS and OSPF protocol-specific Flexible Algorithm | derived from the IS-IS and OSPF protocol-specific Flexible Algorithm | |||
Exclude SRLG sub-TLV as defined in [I-D.ietf-lsr-flex-algo]. | Exclude SRLG sub-TLV, as defined in [RFC9350]. | |||
3.6. Flexible Algorithm Unsupported Sub-TLV | 3.6. Flexible Algorithm Unsupported Sub-TLV | |||
The OSPF and IS-IS signaling for FAD allows for extensions via new | The OSPF and IS-IS signaling for FAD allows for extensions via new | |||
sub-TLVs under the respective IGP's Flexible Algorithm Definition | sub-TLVs under the respective IGP's Flexible Algorithm Definition | |||
TLV. As specified in section 5.3 of [I-D.ietf-lsr-flex-algo], it is | TLV. As specified in Section 5.3 of [RFC9350], it is important that | |||
important that the entire FAD be understood by anyone using it for | the entire FAD be understood by anyone using it for computation | |||
computation purpose. Therefore, the FAD is different from most other | purposes. Therefore, the FAD is different from most other protocol | |||
protocol extensions where the skipping or ignoring of unsupported | extensions, where the skipping or ignoring of unsupported sub-TLV | |||
sub-TLV information does not affect the base behavior. | information does not affect the base behavior. | |||
The Flexible Algorithm Unsupported sub-TLV is an optional sub-TLV | The Flexible Algorithm Unsupported sub-TLV is an optional sub-TLV | |||
that is used to indicate the presence of unsupported FAD sub-TLVs. | that is used to indicate the presence of unsupported FAD sub-TLVs. | |||
The need for this sub-TLV arises when the BGP-LS implementation on | The need for this sub-TLV arises when the BGP-LS implementation on | |||
the advertising node does not support one or more of the FAD sub-TLVs | the advertising node does not support one or more of the FAD sub-TLVs | |||
present in the IGP advertisement. | present in the IGP advertisement. | |||
The sub-TLV has the following format: | The sub-TLV has the following format: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Protocol-ID | sub-TLV types (variable) ... // | | Protocol-ID | sub-TLV types (variable) ... // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 7: Flexible Algorithm Unsupported sub-TLV | Figure 7: Flexible Algorithm Unsupported Sub-TLV | |||
where: | where: | |||
Type: 1046 | ||||
* Type: TBD (Note to Editor: The code point allocation, once made by | Length: The total length of the value field in octets (including | |||
IANA, needs to be updated here - refer to Section 5) | any included sub-TLV types). | |||
* 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 | Protocol-ID: Indicates the BGP-LS Protocol-ID of the protocol | |||
which the FAD is being advertised via BGP-LS. The values are from | from which the FAD is being advertised via BGP-LS. The values | |||
the "BGP-LS Protocol-IDs" registry | are from the IANA "BGP-LS Protocol-IDs" subregistry under the | |||
<https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls- | "Border Gateway Protocol - Link State (BGP-LS) Parameters" | |||
parameters.xhtml#protocol-ids> under the IANA BGP-LS Parameters | registry <https://www.iana.org/assignments/bgp-ls-parameters/>. | |||
registry. | ||||
* sub-TLV types: Zero or more sub-TLV types that are not supported | sub-TLV types: Zero or more sub-TLV types that are not supported | |||
by the node originating the BGP-LS advertisement. The size of | by the node originating the BGP-LS advertisement. The size of | |||
each sub-TLV type depends on the protocol indicated by the | each sub-TLV type depends on the protocol indicated by the | |||
Protocol-ID field. For example, for IS-IS each sub-TLV type would | Protocol-ID field. For example, for IS-IS, each sub-TLV type | |||
be of size 1 octet while for OSPF each sub-TLV type would be of | would be 1 octet in size, while for OSPF, each sub-TLV type | |||
size 2 octets. | would be 2 octets in size. | |||
The node originating the advertisement MUST include the Flexible | The node originating the advertisement MUST include the Flexible | |||
Algorithm Unsupported sub-TLV when it comes across an unsupported | Algorithm Unsupported sub-TLV when it comes across an unsupported | |||
sub-TLV in the corresponding FAD in the IS-IS and OSPF advertisement. | sub-TLV in the corresponding FAD in the IS-IS and OSPF advertisement. | |||
When advertising the Flexible Algorithm Unsupported sub-TLV, the | When advertising the Flexible Algorithm Unsupported sub-TLV, the | |||
protocol-specific sub-TLV types that are not supported SHOULD be | protocol-specific sub-TLV types that are not supported SHOULD be | |||
included. This information serves as a diagnostic aid. | included. This information serves as a diagnostic aid. | |||
The discussion on the use of the FAD information by the consumers of | The discussion on the use of the FAD information by the consumers of | |||
the BGP-LS information is beyond the scope of this document. | the BGP-LS information is beyond the scope of this document. | |||
However, it is RECOMMENDED that the choice of the node used for | However, it is RECOMMENDED that the choice of the node used for | |||
originating the IGP topology information into BGP-LS be made such | originating the IGP topology information into BGP-LS be made such | |||
that the advertising node supports all the FAD extensions in use in | that the advertising node supports all the FAD extensions in use in | |||
its part of the network. This avoids the scenario where an | its part of the network. This avoids the scenario where an | |||
incomplete FAD gets advertised via BGP-LS. | incomplete FAD gets advertised via BGP-LS. | |||
4. Flexible Algorithm Prefix Metric TLV | 4. Flexible Algorithm Prefix Metric TLV | |||
This document defines a new optional BGP-LS Attribute TLV associated | This document defines a new optional BGP-LS Attribute TLV associated | |||
with the Prefix NLRI called the Flexible Algorithm Prefix Metric | with the Prefix NLRI called the "Flexible Algorithm Prefix Metric TLV | |||
(FAPM) TLV and its format is as follows: | ("FAPM TLV" for short), and its format is as follows: | |||
0 1 2 3 | 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 | 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flex Algo | Flags | Reserved | | | Flex Algo | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 8: Flexible Algorithm Prefix Metric TLV | Figure 8: Flexible Algorithm Prefix Metric TLV | |||
where: | where: | |||
Type: 1044 | ||||
* Type: 1044 | Length: 8 octets | |||
* Length: 8 octets. | ||||
* Flexible Algorithm (Flex Algo): Single octet value carrying the | Flexible Algorithm (Flex Algo): Single octet value carrying the | |||
flexible algorithm number between 128 and 255 inclusive, as | Flexible Algorithm number between 128 and 255 inclusive, as | |||
defined in [I-D.ietf-lsr-flex-algo]. | defined in [RFC9350]. | |||
* Flags: single octet value and only applicable for OSPF as defined | Flags: Single octet value and only applicable for OSPF, as | |||
in [I-D.ietf-lsr-flex-algo]. The value MUST be set to 0 for IS- | defined in [RFC9350]. The value MUST be set to 0 for IS-IS. | |||
IS. | ||||
* Reserved: 2 octet value that MUST be set to 0 by the originator | Reserved: 2-octet value that MUST be set to 0 by the originator | |||
and MUST be ignored by the receiver. | and MUST be ignored by the receiver. | |||
* Metric: 4 octets field to carry the metric information. | Metric: 4-octet field to carry the metric information. | |||
The FAPM TLV that is advertised in the BGP-LS Attribute along with | 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 | the Prefix NLRI from a node is derived from the following IGP | |||
protocol-specific advertisements: | protocol-specific advertisements: | |||
* In the case of IS-IS, from the IS-IS Flexible Algorithm Prefix | * in the case of IS-IS, from the IS-IS Flexible Algorithm Prefix | |||
Metric sub-TLV in [I-D.ietf-lsr-flex-algo]. | Metric sub-TLV in [RFC9350] | |||
* In the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm | * in the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm | |||
Prefix Metric sub-TLV in [I-D.ietf-lsr-flex-algo]. | Prefix Metric sub-TLV in [RFC9350] | |||
The BGP-LS Attribute associated with a Prefix NLRI may include one or | The BGP-LS Attribute associated with a Prefix NLRI may include one or | |||
more FAPM TLVs corresponding to the Flexible Algorithm Prefix Metric | more FAPM TLVs corresponding to the Flexible Algorithm Prefix Metric | |||
for each algorithm associated with that particular prefix. | for each algorithm associated with that particular prefix. | |||
5. IANA Considerations | 5. IANA Considerations | |||
IANA has allocated code points from the registry "BGP-LS Node | IANA has allocated code points in the "BGP-LS Node Descriptor, Link | |||
Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs" | Descriptor, Prefix Descriptor, and Attribute TLVs" registry | |||
<https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls- | <https://www.iana.org/assignments/bgp-ls-parameters> based on the | |||
parameters.xhtml#node-descriptor-link-descriptor-prefix-descriptor- | table below for the TLVs/sub-TLVs introduced by this document. | |||
attribute-tlv> based on the table below for the TLVs/sub-TLVs | ||||
introduced by this document. This document requests IANA to allocate | ||||
the pending code point for the Flexible Algorithm Unsupported sub-TLV | ||||
as suggested below. The column "IS-IS TLV/Sub-TLV" defined in the | ||||
registry does not require any value and should be left empty. | ||||
+------------+-----------------------------------------+ | +================+=========================================+ | |||
| Code Point | Description | | | TLV Code Point | Description | | |||
+------------+-----------------------------------------+ | +================+=========================================+ | |||
| 1039 | Flexible Algorithm Definition | | | 1039 | Flexible Algorithm Definition | | |||
| 1040 | Flexible Algorithm Exclude Any Affinity | | +----------------+-----------------------------------------+ | |||
| 1041 | Flexible Algorithm Include Any Affinity | | | 1040 | Flexible Algorithm Exclude-Any Affinity | | |||
| 1042 | Flexible Algorithm Include All Affinity | | +----------------+-----------------------------------------+ | |||
| 1043 | Flexible Algorithm Definition Flags | | | 1041 | Flexible Algorithm Include-Any Affinity | | |||
| 1044 | Flexible Algorithm Prefix Metric | | +----------------+-----------------------------------------+ | |||
| 1045 | Flexible Algorithm Exclude SRLG | | | 1042 | Flexible Algorithm Include-All Affinity | | |||
| 1046 (Sugg)| Flexible Algorithm Unsupported | | +----------------+-----------------------------------------+ | |||
+------------+-----------------------------------------+ | | 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 | Table 1: Flexible Algorithm Code Points | |||
6. Manageability Considerations | 6. Manageability Considerations | |||
The new protocol extensions introduced in this document augment the | The new protocol extensions introduced in this document augment the | |||
existing IGP topology information that can be distributed via | existing IGP topology information that can be distributed via | |||
[RFC7752]. Procedures and protocol extensions defined in this | [RFC7752]. Procedures and protocol extensions defined in this | |||
document do not affect the BGP protocol operations and management | document do not affect the BGP protocol operations and management | |||
other than as discussed in the Manageability Considerations section | other than what is discussed in the "Manageability Considerations" | |||
of [RFC7752]. Specifically, the malformed NLRIs attribute tests in | section of [RFC7752]. Specifically, the malformed NLRIs attribute | |||
the Fault Management section of [RFC7752] now encompass the new TLVs | tests in the "Fault Management" section of [RFC7752] now encompass | |||
for the BGP-LS NLRI in this document. | the new TLVs for the BGP-LS NLRI in this document. | |||
The extensions specified in this document do not specify any new | The extensions specified in this document do not specify any new | |||
configuration or monitoring aspects in BGP or BGP-LS. The | configuration or monitoring aspects in BGP or BGP-LS. The | |||
specification of BGP models is an ongoing work based on | specification of BGP models is an ongoing work based on | |||
[I-D.ietf-idr-bgp-model]. | [IDR-BGP-MODEL]. | |||
7. Security Considerations | 7. Security Considerations | |||
Security considerations for acquiring and distributing BGP-LS | Security considerations for acquiring and distributing BGP-LS | |||
information are discussed in [RFC7752]. | information are discussed in [RFC7752]. | |||
The TLVs introduced in this document are used to propagate the IGP | The TLVs introduced in this document are used to propagate the IGP | |||
Flexible Algorithm extensions defined in [I-D.ietf-lsr-flex-algo]. | Flexible Algorithm extensions defined in [RFC9350]. It is assumed | |||
It is assumed that the IGP instances originating these TLVs will | that the IGP instances originating these TLVs will support all the | |||
support all the required security (as described in | required security (as described in [RFC9350]) for Flexible Algorithm | |||
[I-D.ietf-lsr-flex-algo]) for Flexible Algorithm deployment. | deployment. | |||
This document specifies extensions for the advertisement of node and | This document specifies extensions for the advertisement of node and | |||
prefix related flexible algorithm information. Tampering with this | prefix-related Flexible Algorithm information. Tampering with this | |||
flexible algorithm-related information may affect applications using | Flexible-Algorithm-related information may affect applications using | |||
it, including impacting route calculation and programming. As the | it, including impacting route calculation and programming. As the | |||
advertisements defined in this document are related to a specific | advertisements defined in this document are related to a specific | |||
flexible algorithm topology, the impact of tampering is similarly | Flexible Algorithm topology, the impact of tampering is similarly | |||
limited in scope. | limited in scope. | |||
8. Acknowledgements | 8. References | |||
The authors would like to thank Les Ginsberg, Amalesh Maity, Y F Siu, | ||||
Vijay Gurbani, and Donald Eastlake III for their reviews and | ||||
contributions to this work. The authors would like to thank Jie Dong | ||||
for his shepherd review. The authors would like to thank Alvaro | ||||
Retana for his detailed AD review and suggestions for improving this | ||||
document. | ||||
9. References | ||||
9.1. Normative References | ||||
[I-D.ietf-lsr-flex-algo] | 8.1. Normative References | |||
Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and | ||||
A. Gulko, "IGP Flexible Algorithm", Work in Progress, | ||||
Internet-Draft, draft-ietf-lsr-flex-algo-20, 18 May 2022, | ||||
<https://www.ietf.org/archive/id/draft-ietf-lsr-flex-algo- | ||||
20.txt>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC7308] Osborne, E., "Extended Administrative Groups in MPLS | [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS | |||
Traffic Engineering (MPLS-TE)", RFC 7308, | Traffic Engineering (MPLS-TE)", RFC 7308, | |||
DOI 10.17487/RFC7308, July 2014, | DOI 10.17487/RFC7308, July 2014, | |||
<https://www.rfc-editor.org/info/rfc7308>. | <https://www.rfc-editor.org/info/rfc7308>. | |||
skipping to change at page 15, line 5 ¶ | skipping to change at line 589 ¶ | |||
[RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | |||
S. Ray, "North-Bound Distribution of Link-State and | S. Ray, "North-Bound Distribution of Link-State and | |||
Traffic Engineering (TE) Information Using BGP", RFC 7752, | Traffic Engineering (TE) Information Using BGP", RFC 7752, | |||
DOI 10.17487/RFC7752, March 2016, | DOI 10.17487/RFC7752, March 2016, | |||
<https://www.rfc-editor.org/info/rfc7752>. | <https://www.rfc-editor.org/info/rfc7752>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
9.2. Informative References | [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>. | ||||
[I-D.ietf-idr-bgp-model] | 8.2. Informative References | |||
[IDR-BGP-MODEL] | ||||
Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP | Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP | |||
YANG Model for Service Provider Networks", Work in | YANG Model for Service Provider Networks", Work in | |||
Progress, Internet-Draft, draft-ietf-idr-bgp-model-14, 3 | Progress, Internet-Draft, draft-ietf-idr-bgp-model-15, 13 | |||
July 2022, <https://www.ietf.org/archive/id/draft-ietf- | October 2022, <https://datatracker.ietf.org/doc/html/ | |||
idr-bgp-model-14.txt>. | draft-ietf-idr-bgp-model-15>. | |||
[I-D.ietf-idr-bgpls-srv6-ext] | [IDR-BGPLS-SRV6-EXT] | |||
Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., | Dawra, G., Filsfils, C., Talaulikar, K., Ed., Chen, M., | |||
Bernier, D., and B. Decraene, "BGP Link State Extensions | Bernier, D., and B. Decraene, "BGP Link State Extensions | |||
for SRv6", Work in Progress, Internet-Draft, draft-ietf- | for SRv6", Work in Progress, Internet-Draft, draft-ietf- | |||
idr-bgpls-srv6-ext-09, 10 November 2021, | idr-bgpls-srv6-ext-13, 14 January 2023, | |||
<https://www.ietf.org/archive/id/draft-ietf-idr-bgpls- | <https://datatracker.ietf.org/doc/html/draft-ietf-idr- | |||
srv6-ext-09.txt>. | bgpls-srv6-ext-13>. | |||
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | |||
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | |||
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | |||
<https://www.rfc-editor.org/info/rfc3209>. | <https://www.rfc-editor.org/info/rfc3209>. | |||
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | |||
Decraene, B., Litkowski, S., and R. Shakir, "Segment | Decraene, B., Litkowski, S., and R. Shakir, "Segment | |||
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | |||
July 2018, <https://www.rfc-editor.org/info/rfc8402>. | July 2018, <https://www.rfc-editor.org/info/rfc8402>. | |||
skipping to change at page 16, line 11 ¶ | skipping to change at line 648 ¶ | |||
A., and P. Mattes, "Segment Routing Policy Architecture", | A., and P. Mattes, "Segment Routing Policy Architecture", | |||
RFC 9256, DOI 10.17487/RFC9256, July 2022, | RFC 9256, DOI 10.17487/RFC9256, July 2022, | |||
<https://www.rfc-editor.org/info/rfc9256>. | <https://www.rfc-editor.org/info/rfc9256>. | |||
[RFC9294] Talaulikar, K., Ed., Psenak, P., and J. Tantsura, | [RFC9294] Talaulikar, K., Ed., Psenak, P., and J. Tantsura, | |||
"Application-Specific Link Attributes Advertisement Using | "Application-Specific Link Attributes Advertisement Using | |||
the Border Gateway Protocol - Link State (BGP-LS)", | the Border Gateway Protocol - Link State (BGP-LS)", | |||
RFC 9294, DOI 10.17487/RFC9294, August 2022, | RFC 9294, DOI 10.17487/RFC9294, August 2022, | |||
<https://www.rfc-editor.org/info/rfc9294>. | <https://www.rfc-editor.org/info/rfc9294>. | |||
Acknowledgements | ||||
The authors would like to thank Les Ginsberg, Amalesh Maity, | ||||
Y. F. Siu, Vijay Gurbani, and Donald Eastlake 3rd for their reviews | ||||
and contributions to this work. The authors would like to thank Jie | ||||
Dong for his shepherd review. The authors would like to thank Alvaro | ||||
Retana for his detailed AD review and suggestions for improving this | ||||
document. | ||||
Authors' Addresses | Authors' Addresses | |||
Ketan Talaulikar (editor) | Ketan Talaulikar (editor) | |||
Arrcus, Inc | Cisco Systems | |||
India | India | |||
Email: ketant.ietf@gmail.com | Email: ketant.ietf@gmail.com | |||
Peter Psenak | Peter Psenak | |||
Cisco Systems | Cisco Systems | |||
Slovakia | Slovakia | |||
Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
Shawn Zandi | Shawn Zandi | |||
End of changes. 111 change blocks. | ||||
294 lines changed or deleted | 275 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |