rfc9502v4.txt | rfc9502.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) W. Britto | Internet Engineering Task Force (IETF) W. Britto | |||
Request for Comments: 9502 S. Hegde | Request for Comments: 9502 S. Hegde | |||
Category: Standards Track P. Kaneriya | Category: Standards Track P. Kaneriya | |||
ISSN: 2070-1721 R. Shetty | ISSN: 2070-1721 R. Shetty | |||
R. Bonica | R. Bonica | |||
Juniper Networks | Juniper Networks | |||
P. Psenak | P. Psenak | |||
Cisco Systems | Cisco Systems | |||
October 2023 | November 2023 | |||
IGP Flexible Algorithm in IP Networks | IGP Flexible Algorithm in IP Networks | |||
Abstract | Abstract | |||
This document extends IGP Flexible Algorithm so that it can be used | This document extends IGP Flexible Algorithm so that it can be used | |||
with regular IPv4 and IPv6 forwarding. | with regular IPv4 and IPv6 forwarding. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at line 53 ¶ | skipping to change at line 53 ¶ | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Revised BSD License text as described in Section 4.e of the | include Revised BSD License text as described in Section 4.e of the | |||
Trust Legal Provisions and are provided without warranty as described | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction | 1. Introduction | |||
2. Requirements Language | 2. Requirements Language | |||
3. Use Case Example | 3. Use Case Example | |||
4. Advertising Flexible Algorithm Definitions (FAD) | 4. Advertising Flexible Algorithm Definitions (FADs) | |||
5. Advertising IP Flexible Algorithm Participation | 5. Advertising IP Flexible Algorithm Participation | |||
5.1. The IS-IS IP Algorithm Sub-TLV | 5.1. The IS-IS IP Algorithm Sub-TLV | |||
5.2. The OSPF IP Algorithm TLV | 5.2. The OSPF IP Algorithm TLV | |||
6. Advertising IP Flexible Algorithm Reachability | 6. Advertising IP Flexible Algorithm Reachability | |||
6.1. The IS-IS IPv4 Algorithm Prefix Reachability TLV | 6.1. The IS-IS IPv4 Algorithm Prefix Reachability TLV | |||
6.2. The IS-IS IPv6 Algorithm Prefix Reachability TLV | 6.2. The IS-IS IPv6 Algorithm Prefix Reachability TLV | |||
6.3. The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | 6.3. The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | |||
6.3.1. The OSPFv2 IP Forwarding Address Sub-TLV | 6.3.1. The OSPFv2 IP Forwarding Address Sub-TLV | |||
6.4. The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | 6.4. The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | |||
6.5. The OSPF IP Flexible Algorithm ASBR Metric Sub-TLV | 6.5. The OSPF IP Flexible Algorithm ASBR Metric Sub-TLV | |||
skipping to change at line 129 ¶ | skipping to change at line 129 ¶ | |||
traffic for different sessions is destined to a different destination | traffic for different sessions is destined to a different destination | |||
IP address. | IP address. | |||
The IP address allocated to the UPF can be associated with an | The IP address allocated to the UPF can be associated with an | |||
algorithm. The mobile user traffic is then forwarded along the path | algorithm. The mobile user traffic is then forwarded along the path | |||
based on the algorithm-specific metric and constraints. As a result, | based on the algorithm-specific metric and constraints. As a result, | |||
traffic can be sent over a path that is optimized for minimal latency | traffic can be sent over a path that is optimized for minimal latency | |||
or highest bandwidth. This mechanism is used to achieve Service | or highest bandwidth. This mechanism is used to achieve Service | |||
Level Agreement (SLA) appropriate for a user session. | Level Agreement (SLA) appropriate for a user session. | |||
4. Advertising Flexible Algorithm Definitions (FAD) | 4. Advertising Flexible Algorithm Definitions (FADs) | |||
To guarantee loop-free forwarding, all routers that participate in a | To guarantee loop-free forwarding, all routers that participate in a | |||
Flex-Algorithm MUST agree on the Flex-Algorithm Definition (FAD). | Flex-Algorithm MUST agree on the Flexible Algorithm Definition (FAD). | |||
Selected nodes within the IGP domain MUST advertise FADs as described | Selected nodes within the IGP domain MUST advertise FADs as described | |||
in Sections 5, 6, and 7 of [RFC9350]. | in Sections 5, 6, and 7 of [RFC9350]. | |||
5. Advertising IP Flexible Algorithm Participation | 5. Advertising IP Flexible Algorithm Participation | |||
A node may use various algorithms when calculating paths to nodes and | A node may use various algorithms when calculating paths to nodes and | |||
prefixes. Algorithm values are defined in the "IGP Algorithm Types" | prefixes. Algorithm values are defined in the "IGP Algorithm Types" | |||
registry [IANA-ALG]. | registry [IANA-ALG]. | |||
Only a node that is participating in a Flex-Algorithm is: | Only a node that is participating in a Flex-Algorithm is: | |||
* Able to compute a path for such Flex-Algorithm | * Able to compute a path for such Flex-Algorithm | |||
* Part of the topology for such Flex-Algorithm | * Part of the topology for such Flex-Algorithm | |||
Flexible Algorithm participation MUST be advertised for each Flexibel | Flexible Algorithm participation MUST be advertised for each Flexible | |||
Algorithm data plane independently, as specified in [RFC9350]. Using | Algorithm data plane independently, as specified in [RFC9350]. Using | |||
Flexible Algorithm for regular IPv4 and IPv6 prefixes represents an | Flexible Algorithm for regular IPv4 and IPv6 prefixes represents an | |||
independent Flexible Algorithm data plane; as such, the Flexible | independent Flexible Algorithm data plane; as such, the Flexible | |||
Algorithm participation for the IP Flexible Algorithm data plane MUST | Algorithm participation for the IP Flexible Algorithm data plane MUST | |||
be signaled independently of any other Flexible Algorithm data plane | be signaled independently of any other Flexible Algorithm data plane | |||
(e.g., SR). | (e.g., SR). | |||
All routers in an IGP domain participate in default algorithm 0. | All routers in an IGP domain participate in default algorithm 0. | |||
Advertisement of participation in IP Flex-Algorithm does not impact | Advertisement of participation in IP Flexible Algorithm does not | |||
the router participation in default algorithm 0. | impact the router participation in default algorithm 0. | |||
Advertisement of participation in IP Flexible Algorithm does not | Advertisement of participation in IP Flexible Algorithm does not | |||
impact the router participation signaled for other data planes. For | impact the router participation signaled for other data planes. For | |||
example, it is possible that a router participates in a particular | example, it is possible that a router participates in a particular | |||
Flex-Algorithm for the IP data plane but does not participate in the | Flex-Algorithm for the IP data plane but does not participate in the | |||
same Flex-Algorithm for the SR data plane. | same Flex-Algorithm for the SR data plane. | |||
The following sections describe how the IP Flexible Algorithm | The following sections describe how the IP Flexible Algorithm | |||
participation is advertised in IGP protocols. | participation is advertised in IGP protocols. | |||
skipping to change at line 445 ¶ | skipping to change at line 445 ¶ | |||
Flags (1 octet): The following flags are defined: | Flags (1 octet): The following flags are defined: | |||
0 1 2 3 4 5 6 7 8 | 0 1 2 3 4 5 6 7 8 | |||
+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+ | |||
|E| Reserved | | |E| Reserved | | |||
+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+ | |||
Where: | Where: | |||
E bit: The same as the E bit defined in Section A.4.5 of | E bit: The same as the E bit defined in Appendix A.4.5 of | |||
[RFC2328]. | [RFC2328]. | |||
The remaining bits: Are reserved for future use. They MUST be | The remaining bits: Are reserved for future use. They MUST be | |||
set to zero on transmission and MUST be ignored on receipt. | set to zero on transmission and MUST be ignored on receipt. | |||
Reserved (1 octet): SHOULD be set to 0 on transmission and MUST be | Reserved (1 octet): SHOULD be set to 0 on transmission and MUST be | |||
ignored on reception. | ignored on reception. | |||
Metric (4 octets): The algorithm-specific metric value. The metric | Metric (4 octets): The algorithm-specific metric value. The metric | |||
value of 0XFFFFFFFF MUST be considered unreachable. | value of 0XFFFFFFFF MUST be considered unreachable. | |||
skipping to change at line 513 ¶ | skipping to change at line 513 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Forwarding Address | | | Forwarding Address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: OSPFv2 IP Forwarding Address Sub-TLV | Figure 6: OSPFv2 IP Forwarding Address Sub-TLV | |||
Type (2 octets): The value is 7 | Type (2 octets): The value is 7 | |||
Length (2 octets): 4 | Length (2 octets): 4 | |||
Forwarding Address (4 octets): The same as defined in Section A.4.5 | Forwarding Address (4 octets): The same as defined in Appendix A.4.5 | |||
of [RFC2328] | of [RFC2328] | |||
The OSPFv2 IP Forwarding Address Sub-TLV MUST NOT be used for | The OSPFv2 IP Forwarding Address Sub-TLV MUST NOT be used for | |||
computing algorithm 0 prefix reachability and MUST be ignored for | computing algorithm 0 prefix reachability and MUST be ignored for | |||
algorithm 0 prefixes. | algorithm 0 prefixes. | |||
The OSPFv2 IP Forwarding Address Sub-TLV is optional. If it is not | The OSPFv2 IP Forwarding Address Sub-TLV is optional. If it is not | |||
present, the forwarding address for computing the IP Algorithm Prefix | present, the forwarding address for computing the IP Algorithm Prefix | |||
reachability is assumed to be equal to 0.0.0.0. | reachability is assumed to be equal to 0.0.0.0. | |||
skipping to change at line 697 ¶ | skipping to change at line 697 ¶ | |||
Participation in the IP Flexible Algorithm is signaled as described | Participation in the IP Flexible Algorithm is signaled as described | |||
in Section 5 and is specific to the IP Flexible Algorithm data plane. | in Section 5 and is specific to the IP Flexible Algorithm data plane. | |||
Calculation of IP Flexible Algorithm paths follows what is described | Calculation of IP Flexible Algorithm paths follows what is described | |||
in [RFC9350]. This computation uses the IP Flexible Algorithm data | in [RFC9350]. This computation uses the IP Flexible Algorithm data | |||
plane participation and is independent of the Flexible Algorithm | plane participation and is independent of the Flexible Algorithm | |||
calculation done for any other Flexible Algorithm data plane (e.g., | calculation done for any other Flexible Algorithm data plane (e.g., | |||
SR, SRv6). | SR, SRv6). | |||
The IP Flexibel Algorithm data plane only considers participating | The IP Flexible Algorithm data plane only considers participating | |||
nodes during the Flexible Algorithm calculation. When computing | nodes during the Flexible Algorithm calculation. When computing | |||
paths for a given Flex-Algorithm, all nodes that do not advertise | paths for a given Flex-Algorithm, all nodes that do not advertise | |||
participation for such IP Flex-Algorithm, as described in Section 5, | participation for such IP Flex-Algorithm, as described in Section 5, | |||
MUST be pruned from the topology. | MUST be pruned from the topology. | |||
8. IP Flexible Algorithm Forwarding | 8. IP Flexible Algorithm Forwarding | |||
The IP Algorithm Prefix Reachability advertisement as described in | The IP Algorithm Prefix Reachability advertisement as described in | |||
Section 5 includes the MTID value that associates the prefix with a | Section 5 includes the MTID value that associates the prefix with a | |||
specific topology. Algorithm Prefix Reachability advertisement also | specific topology. Algorithm Prefix Reachability advertisement also | |||
skipping to change at line 729 ¶ | skipping to change at line 729 ¶ | |||
9. Deployment Considerations | 9. Deployment Considerations | |||
IGP Flexible Algorithm can be used by many data planes. The original | IGP Flexible Algorithm can be used by many data planes. The original | |||
specification was done for SR and SRv6; this specification adds IP as | specification was done for SR and SRv6; this specification adds IP as | |||
another data plane that can use IGP Flexible Algorithm. Other data | another data plane that can use IGP Flexible Algorithm. Other data | |||
planes may be defined in the future. This section provides some | planes may be defined in the future. This section provides some | |||
details about the coexistence of the various data planes of an IGP | details about the coexistence of the various data planes of an IGP | |||
Flexible Algorithm. | Flexible Algorithm. | |||
Flexibel Algorithm Definition (FAD), as described in [RFC9350], is | Flexible Algorithm Definition (FAD), as described in [RFC9350], is | |||
data plane independent and is used by all Flexible Algorithm data | data plane independent and is used by all Flexible Algorithm data | |||
planes. | planes. | |||
Participation in the Flexible Algorithm, as described in [RFC9350], | Participation in the Flexible Algorithm, as described in [RFC9350], | |||
is data plane specific. | is data plane specific. | |||
Calculation of the Flexible Algorithm paths is data plane specific | Calculation of the Flexible Algorithm paths is data plane specific | |||
and uses data-plane-specific participation advertisements. | and uses data-plane-specific participation advertisements. | |||
Data-plane-specific participation and calculation guarantee that the | Data-plane-specific participation and calculation guarantee that the | |||
skipping to change at line 776 ¶ | skipping to change at line 776 ¶ | |||
LFA and R-LFA computations MUST be restricted to the Flex-Algorithm | LFA and R-LFA computations MUST be restricted to the Flex-Algorithm | |||
topology and the computed backup next hops should be programmed for | topology and the computed backup next hops should be programmed for | |||
the IP Flex-Algorithm prefixes. | the IP Flex-Algorithm prefixes. | |||
11. IANA Considerations | 11. IANA Considerations | |||
This specification updates the "OSPF Router Information (RI) TLVs" | This specification updates the "OSPF Router Information (RI) TLVs" | |||
registry as follows: | registry as follows: | |||
+=======+==============+========================+ | +=======+==============+=======================+ | |||
| Value | TLV Name | Reference | | | Value | TLV Name | Reference | | |||
+=======+==============+========================+ | +=======+==============+=======================+ | |||
| 21 | IP Algorithm | RFC 9502], Section 5.2 | | | 21 | IP Algorithm | RFC 9502, Section 5.2 | | |||
+-------+--------------+------------------------+ | +-------+--------------+-----------------------+ | |||
Table 1 | Table 1 | |||
This document also updates the "IS-IS Sub-TLVs for IS-IS Router | This document also updates the "IS-IS Sub-TLVs for IS-IS Router | |||
CAPABILITY TLV" registry as follows: | CAPABILITY TLV" registry as follows: | |||
+=======+==============+=======================+ | +=======+==============+=======================+ | |||
| Value | TLV Name | Reference | | | Value | TLV Name | Reference | | |||
+=======+==============+=======================+ | +=======+==============+=======================+ | |||
| 29 | IP Algorithm | RFC 9502, Section 5.1 | | | 29 | IP Algorithm | RFC 9502, Section 5.1 | | |||
+-------+--------------+-----------------------+ | +-------+--------------+-----------------------+ | |||
skipping to change at line 1017 ¶ | skipping to change at line 1017 ¶ | |||
DOI 10.17487/RFC9350, February 2023, | DOI 10.17487/RFC9350, February 2023, | |||
<https://www.rfc-editor.org/info/rfc9350>. | <https://www.rfc-editor.org/info/rfc9350>. | |||
[RFC9352] Psenak, P., Ed., Filsfils, C., Bashandy, A., Decraene, B., | [RFC9352] Psenak, P., Ed., Filsfils, C., Bashandy, A., Decraene, B., | |||
and Z. Hu, "IS-IS Extensions to Support Segment Routing | and Z. Hu, "IS-IS Extensions to Support Segment Routing | |||
over the IPv6 Data Plane", RFC 9352, DOI 10.17487/RFC9352, | over the IPv6 Data Plane", RFC 9352, DOI 10.17487/RFC9352, | |||
February 2023, <https://www.rfc-editor.org/info/rfc9352>. | February 2023, <https://www.rfc-editor.org/info/rfc9352>. | |||
13.2. Informative References | 13.2. Informative References | |||
[IANA-ALG] IANA, "IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV", | [IANA-ALG] IANA, "IGP Algorithm Types", | |||
<https://www.iana.org/assignments/igp-parameters>. | <https://www.iana.org/assignments/igp-parameters>. | |||
[RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | |||
IP Fast Reroute: Loop-Free Alternates", RFC 5286, | IP Fast Reroute: Loop-Free Alternates", RFC 5286, | |||
DOI 10.17487/RFC5286, September 2008, | DOI 10.17487/RFC5286, September 2008, | |||
<https://www.rfc-editor.org/info/rfc5286>. | <https://www.rfc-editor.org/info/rfc5286>. | |||
[RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | |||
So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | |||
RFC 7490, DOI 10.17487/RFC7490, April 2015, | RFC 7490, DOI 10.17487/RFC7490, April 2015, | |||
End of changes. 13 change blocks. | ||||
18 lines changed or deleted | 18 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |