rfc9502.original | rfc9502.txt | |||
---|---|---|---|---|
LSR Working Group W. Britto | Internet Engineering Task Force (IETF) W. Britto | |||
Internet-Draft S. Hegde | Request for Comments: 9502 S. Hegde | |||
Intended status: Standards Track P. Kaneriya | Category: Standards Track P. Kaneriya | |||
Expires: 30 December 2023 R. Shetty | ISSN: 2070-1721 R. Shetty | |||
R. Bonica | R. Bonica | |||
Juniper Networks | Juniper Networks | |||
P. Psenak | P. Psenak | |||
Cisco Systems | Cisco Systems | |||
28 June 2023 | November 2023 | |||
IGP Flexible Algorithms (Flex-Algorithm) In IP Networks | IGP Flexible Algorithm in IP Networks | |||
draft-ietf-lsr-ip-flexalgo-16 | ||||
Abstract | Abstract | |||
This document extends IGP Flex-Algorithm, so that it can be used with | This document extends IGP Flexible Algorithm so that it can be used | |||
regular IPv4 and IPv6 forwarding. | with regular IPv4 and IPv6 forwarding. | |||
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 30 December 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/rfc9502. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 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 | |||
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language | |||
3. Use Case Example . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Use Case Example | |||
4. Advertising Flex-Algorithm Definitions (FAD) . . . . . . . . 3 | 4. Advertising Flexible Algorithm Definitions (FADs) | |||
5. Advertising IP Flex-Algorithm Participation . . . . . . . . . 4 | 5. Advertising IP Flexible Algorithm Participation | |||
5.1. The IS-IS IP Algorithm Sub-TLV . . . . . . . . . . . . . 4 | 5.1. The IS-IS IP Algorithm Sub-TLV | |||
5.2. The OSPF IP Algorithm TLV . . . . . . . . . . . . . . . . 5 | 5.2. The OSPF IP Algorithm TLV | |||
6. Advertising IP Flex-Algorithm Reachability . . . . . . . . . 6 | 6. Advertising IP Flexible Algorithm Reachability | |||
6.1. The IS-IS IPv4 Algorithm Prefix Reachability TLV . . . . 7 | 6.1. The IS-IS IPv4 Algorithm Prefix Reachability TLV | |||
6.2. The IS-IS IPv6 Algorithm Prefix Reachability TLV . . . . 9 | 6.2. The IS-IS IPv6 Algorithm Prefix Reachability TLV | |||
6.3. The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV . . . 9 | 6.3. The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | |||
6.3.1. The OSPFv2 IP Forwarding Address Sub-TLV . . . . . . 11 | 6.3.1. The OSPFv2 IP Forwarding Address Sub-TLV | |||
6.4. The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV . . . 12 | 6.4. The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | |||
6.5. The OSPF IP Flexible Algorithm ASBR Metric Sub-TLV . . . 14 | 6.5. The OSPF IP Flexible Algorithm ASBR Metric Sub-TLV | |||
7. Calculating of IP Flex-Algorithm Paths . . . . . . . . . . . 15 | 7. Calculating of IP Flexible Algorithm Paths | |||
8. IP Flex-Algorithm Forwarding . . . . . . . . . . . . . . . . 16 | 8. IP Flexible Algorithm Forwarding | |||
9. Deployment Considerations . . . . . . . . . . . . . . . . . . 16 | 9. Deployment Considerations | |||
10. Protection . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 10. Protection | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 11. IANA Considerations | |||
12. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 12. Security Considerations | |||
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | 13. References | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 13.1. Normative References | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . 20 | 13.2. Informative References | |||
14.2. Informative References . . . . . . . . . . . . . . . . . 22 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
An IGP Flexible Algorithm (Flex-Algorithm) allows IGPs to compute | An IGP Flexible Algorithm allows IGPs to compute constraint-based | |||
constraint-based paths. The base IGP Flex-Algorithm specification | paths. The base IGP Flexible Algorithm specification describes how | |||
describes how it is used with Segment Routing (SR) data planes - SR | it is used with Segment Routing (SR) data planes: SR MPLS and SRv6. | |||
MPLS and SRv6. | ||||
An IGP Flex-Algorithm as specified in [RFC9350] computes a | An IGP Flexible Algorithm as specified in [RFC9350] computes a | |||
constraint-based path to: | constraint-based path to: | |||
* All Flex-Algorithm specific Prefix Segment Identifiers (SIDs) | * All Flexible-Algorithm-specific Prefix Segment Identifiers (SIDs) | |||
[RFC8402]. | [RFC8402]. | |||
* All Flex-Algorithm specific SRv6 Locators [RFC8986]. | * All Flexible-Algorithm-specific SRv6 Locators [RFC8986]. | |||
Therefore, Flex-Algorithm cannot be deployed in the absence of SR or | Therefore, Flexible Algorithm cannot be deployed in the absence of SR | |||
SRv6. | or SRv6. | |||
This document extends Flex-Algorithm, allowing it to compute paths to | This document extends Flexible Algorithm, allowing it to compute | |||
IPv4 and IPv6 prefixes. | paths to IPv4 and IPv6 prefixes. | |||
2. Requirements Language | 2. 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 | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Use Case Example | 3. Use Case Example | |||
In this subsection, we illustrate one use case that motivates this | In this section, we illustrate one use case that motivates this | |||
specification: if a specific service can be identified by an IP | specification: if a specific service can be identified by an IP | |||
address, traffic to it can use constraint-based paths computed | address, traffic to it can use constraint-based paths computed | |||
according to this specification. | according to this specification. | |||
The System Architecture for the 5G System [TS.23.501-3GPP] describes | The System architecture for the 5G System [TS.23.501-3GPP] describes | |||
the N3 interface between gNodeB and UPF (User Plane Function). | the N3 interface between gNodeB and UPF (User Plane Function). | |||
Mobile networks are becoming more and more IP centric. Each end-user | Mobile networks are becoming more and more IP-centric. Each end-user | |||
session from a gNodeB can be destined to a specific UPFs (User Plane | session from a gNodeB can be destined to a specific UPF based on the | |||
Function) based on the session requirements. For example, some | session requirements. For example, some sessions require high | |||
sessions require high bandwidth, others need to be routed along the | bandwidth, while others need to be routed along the lowest latency | |||
lowest latency path. Each UPF is assigned a unique IP address. As a | path. Each UPF is assigned a unique IP address. As a result, | |||
result, traffic for different sessions is destined to a different | traffic for different sessions is destined to a different destination | |||
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 SLA (Service | or highest bandwidth. This mechanism is used to achieve Service | |||
Level Agreement) appropriate for a user session. | Level Agreement (SLA) appropriate for a user session. | |||
4. Advertising Flex-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 Flex-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 Type | 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 | |||
Flex-Algorithm participation MUST be advertised for each Flex- | 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 | |||
Flex-Algorithm for regular IPv4 and IPv6 prefixes represents an | Flexible Algorithm for regular IPv4 and IPv6 prefixes represents an | |||
independent Flex-Algorithm data-plane, and as such, the Flex- | independent Flexible Algorithm data plane; as such, the Flexible | |||
Algorithm participation for the IP Flex-Algorithm data-plane MUST be | Algorithm participation for the IP Flexible Algorithm data plane MUST | |||
signalled independently of any other Flex-Algorithm data-plane (e.g., | be signaled independently of any other Flexible Algorithm data plane | |||
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 Flex-Algorithm does not impact | Advertisement of participation in IP Flexible Algorithm does not | |||
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-algo for the IP data-plane but does not participate in the same | Flex-Algorithm for the IP data plane but does not participate in the | |||
flex-algo for the SR data-plane. | same Flex-Algorithm for the SR data plane. | |||
The following sections describe how the IP Flex-Algorithm | The following sections describe how the IP Flexible Algorithm | |||
participation is advertised in IGP protocols. | participation is advertised in IGP protocols. | |||
5.1. The IS-IS IP Algorithm Sub-TLV | 5.1. The IS-IS IP Algorithm Sub-TLV | |||
The IS-IS [ISO10589] IP Algorithm Sub-TLV is a sub-TLV of the IS-IS | The IS-IS [ISO10589] IP Algorithm Sub-TLV is a sub-TLV of the IS-IS | |||
Router Capability TLV [RFC7981] and has the following format: | Router Capability TLV [RFC7981] and 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Algorithm 1 | Algorithm 2 | Algorithm ... | Algorithm n | | | Algorithm 1 | Algorithm 2 | Algorithm ... | Algorithm n | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: IS-IS IP Algorithm Sub-TLV | Figure 1: IS-IS IP Algorithm Sub-TLV | |||
* Type (1 octet): IP Algorithm Sub-TLV (Value 29) | Type (1 octet): IP Algorithm Sub-TLV (Value 29) | |||
* Length (1 octet): Variable | Length (1 octet): Variable | |||
* Algorithm (1 octet): Value from 128 to 255. | Algorithm (1 octet): Value from 128 to 255 | |||
The IP Algorithm Sub-TLV MUST be propagated throughout the level and | The IP Algorithm Sub-TLV MUST be propagated throughout the level and | |||
MUST NOT be advertised across level boundaries. Therefore, the S bit | MUST NOT be advertised across level boundaries. Therefore, the S bit | |||
in the Router Capability TLV, in which the IP Algorithm Sub-TLV is | in the Router Capability TLV, in which the IP Algorithm Sub-TLV is | |||
advertised, MUST NOT be set. | advertised, MUST NOT be set. | |||
The IP Algorithm Sub-TLV is optional. It MUST NOT be advertised more | The IP Algorithm Sub-TLV is optional. It MUST NOT be advertised more | |||
than once at a given level. A router receiving multiple IP Algorithm | than once at a given level. A router receiving multiple IP Algorithm | |||
sub-TLVs from the same originator MUST select the first advertisement | sub-TLVs from the same originator MUST select the first advertisement | |||
in the lowest-numbered LSP and subsequent instances of the IP | in the lowest-numbered Link State PDU (LSP), and subsequent instances | |||
Algorithm Sub-TLV MUST be ignored. | of the IP Algorithm Sub-TLV MUST be ignored. | |||
Algorithms outside the Flex-Algorithm range (128-255) MUST be ignored | Algorithms outside the Flex-Algorithm range (128-255) MUST be ignored | |||
by the receiver. This situation SHOULD be logged as an error. | by the receiver. This situation SHOULD be logged as an error. | |||
The IP Flex-Algorithm participation advertised in the IS-IS IP | The IP Flex-Algorithm participation advertised in the IS-IS IP | |||
Algorithm Sub-TLV is topology independent. When a router advertises | Algorithm Sub-TLV is topology independent. When a router advertises | |||
participation in the IS-IS IP Algorithm Sub-TLV, the participation | participation in the IS-IS IP Algorithm Sub-TLV, the participation | |||
applies to all topologies in which the advertising node participates. | applies to all topologies in which the advertising node participates. | |||
5.2. The OSPF IP Algorithm TLV | 5.2. The OSPF IP Algorithm TLV | |||
The OSPF [RFC2328] IP Algorithm TLV is a top-level TLV of the Router | The OSPF [RFC2328] IP Algorithm TLV is a top-level TLV of the Router | |||
Information Opaque LSA [RFC7770] and has the following format: | Information Opaque Link State Advertisement (LSA) [RFC7770] and 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Algorithm 1 | Algorithm... | Algorithm n | | | | Algorithm 1 | Algorithm... | Algorithm n | | | |||
+- -+ | +- -+ | |||
| | | | | | |||
+ + | + + | |||
Figure 2: OSPF IP Algorithm TLV | Figure 2: OSPF IP Algorithm TLV | |||
* Type (2 octets): IP Algorithm TLV (Value TBD1 by IANA) | Type (2 octets): IP Algorithm TLV (21) | |||
* Length( 2 octets): Variable | Length( 2 octets): Variable | |||
* Algorithm (1 octet): Value from 128 to 255. | ||||
Algorithm (1 octet): Value from 128 to 255 | ||||
The IP Algorithm TLV is optional. It MUST only be advertised once in | The IP Algorithm TLV is optional. It MUST only be advertised once in | |||
the Router Information LSA. | the Router Information LSA. | |||
Algorithms outside the Flex-Algorithm range (128-255) MUST be ignored | Algorithms outside the Flex-Algorithm range (128-255) MUST be ignored | |||
by the receiver. This situation SHOULD be logged as an error. | by the receiver. This situation SHOULD be logged as an error. | |||
When multiple IP Algorithm TLVs are received from a given router, the | When multiple IP Algorithm TLVs are received from a given router, the | |||
receiver MUST use the first occurrence of the TLV in the Router | receiver MUST use the first occurrence of the TLV in the Router | |||
Information LSA. If the IP Algorithm TLV appears in multiple Router | Information LSA. If the IP Algorithm TLV appears in multiple Router | |||
Information LSAs that have different flooding scopes, the IP | Information LSAs that have different flooding scopes, the IP | |||
Algorithm TLV in the Router Information LSA with the area-scoped | Algorithm TLV in the Router Information LSA with the area-scoped | |||
flooding scope MUST be used. If the IP Algorithm TLV appears in | flooding scope MUST be used. If the IP Algorithm TLV appears in | |||
multiple Router Information LSAs that have the same flooding scope, | multiple Router Information LSAs that have the same flooding scope, | |||
the IP Algorithm TLV in the Router Information LSA with the | the IP Algorithm TLV in the Router Information LSA with the | |||
numerically smallest Instance ID (Opaque ID for OSPFv2 or Link State | numerically smallest Instance ID (Opaque ID for OSPFv2 or Link State | |||
ID for OSPFv3) MUST be used and subsequent instances of the IP | ID for OSPFv3) MUST be used, and subsequent instances of the IP | |||
Algorithm TLV MUST be ignored. | Algorithm TLV MUST be ignored. | |||
The Router Information LSA can be advertised at any of the defined | The Router Information LSA can be advertised at any of the defined | |||
flooding scopes (link, area, or Autonomous System (AS)). For the | flooding scopes (link, area, or Autonomous System (AS)). For the | |||
purpose of IP Algorithm TLV advertisement, area or Autonomous System | purpose of IP Algorithm TLV advertisement, area- or AS-scoped | |||
scoped flooding is REQUIRED. The AS flooding scope SHOULD NOT be | flooding is REQUIRED. The AS flooding scope SHOULD NOT be used | |||
used unless local configuration policy on the originating router | unless local configuration policy on the originating router indicates | |||
indicates domain-wide flooding. | domain-wide flooding. | |||
The IP Flex-Algorithm participation advertised in the OSPF IP | The IP Flexible Algorithm participation advertised in the OSPF IP | |||
Algorithm TLV is topology independent. When a router advertises | Algorithm TLV is topology independent. When a router advertises | |||
participation in OSPF IP Algorithm TLV, the participation applies to | participation in OSPF IP Algorithm TLV, the participation applies to | |||
all topologies in which the advertising node participates. | all topologies in which the advertising node participates. | |||
6. Advertising IP Flex-Algorithm Reachability | 6. Advertising IP Flexible Algorithm Reachability | |||
To be able to associate the prefix with the Flex-Algorithm, the | To be able to associate the prefix with the Flex-Algorithm, the | |||
existing prefix reachability advertisements cannot be used, because | existing prefix reachability advertisements cannot be used, because | |||
they advertise the prefix reachability in default algorithm 0. | they advertise the prefix reachability in default algorithm 0. | |||
Instead, new IP Flex-Algorithm reachability advertisements are | Instead, new IP Flexible Algorithm reachability advertisements are | |||
defined in IS-IS and OSPF. | defined in IS-IS and OSPF. | |||
The M-flag in the FAD is not applicable to IP Algorithm Prefixes. | The M-flag in the FAD is not applicable to IP Algorithm Prefixes. | |||
Any IP Algorithm Prefix advertisement includes the Algorithm and | Any IP Algorithm Prefix advertisement includes the Algorithm and | |||
Metric fields. When an IP Algorithm Prefix is advertised between | Metric fields. When an IP Algorithm Prefix is advertised between | |||
areas or domains, the metric field in the IP Algorithm Prefix | areas or domains, the metric field in the IP Algorithm Prefix | |||
advertisement MUST be used irrespective of the M-flag in the FAD | advertisement MUST be used irrespective of the M-flag in the FAD | |||
advertisement. | advertisement. | |||
6.1. The IS-IS IPv4 Algorithm Prefix Reachability TLV | 6.1. The IS-IS IPv4 Algorithm Prefix Reachability TLV | |||
The IPv4 Algorithm Prefix Reachability top-level TLV is defined for | The IPv4 Algorithm Prefix Reachability top-level TLV is defined for | |||
advertising IPv4 Flex-Algorithm Prefix Reachability in IS-IS. | advertising IPv4 Flexible Algorithm Prefix Reachability in IS-IS. | |||
This new TLV shares the sub-TLV space defined for TLVs Advertising | This new TLV shares the sub-TLV space defined for TLVs Advertising | |||
Prefix Reachability. | Prefix Reachability. | |||
The IS-IS IPv4 Algorithm Prefix Reachability TLV has the following | The IS-IS IPv4 Algorithm Prefix Reachability TLV has the following | |||
format: | 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 | Rsvd | MTID | | | Type | Length | Rsvd | MTID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: IS-IS IPv4 Algorithm Prefix Reachability TLV | Figure 3: IS-IS IPv4 Algorithm Prefix Reachability TLV | |||
* Type (1 octet): IPv4 Algorithm Prefix Reachability TLV (Value | Type (1 octet): IPv4 Algorithm Prefix Reachability TLV (Value 126) | |||
126). | ||||
* Length (1 octet): Variable based on number of prefix entries | Length (1 octet): Variable based on number of prefix entries encoded | |||
encoded | ||||
* Rsvd (4 bits): Reserved for future use. They MUST be set to zero | Rsvd (4 bits): Reserved for future use. They MUST be set to zero on | |||
on transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
* MTID (12 bits): Multitopology Identifier as defined in [RFC5120]. | MTID (12 bits): Multitopology Identifier as defined in [RFC5120]. | |||
Note that the value 0 is legal. | Note that the value 0 is legal. | |||
Followed by one or more prefix entries of the form: | Followed by one or more prefix entries of the form: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Algorithm | | | Flags | Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Pfx Length | Prefix (variable)... | | Pfx Length | Prefix (variable)... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-tlv-len | Sub-TLVs (variable) . . . | | | Sub-tlv-len | Sub-TLVs (variable) . . . | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: IS-IS IPv4 Algorithm Prefix Reachability TLV | Figure 4: IS-IS IPv4 Algorithm Prefix Reachability TLV | |||
* Metric (4 octets): Metric information as defined in [RFC5305]. | Metric (4 octets): Metric information as defined in [RFC5305] | |||
* Flags (1 octet): | Flags (1 octet): | |||
0 1 2 3 4 5 6 7 | ||||
+-+-+-+-+-+-+-+-+ | ||||
|D| Reserved | | ||||
+-+-+-+-+-+-+-+-+ | ||||
0 1 2 3 4 5 6 7 | D-flag: The D-flag is described as the "up/down bit" in | |||
+-+-+-+-+-+-+-+-+ | Section 4.1 of [RFC5305]. When the Prefix is leaked from level | |||
|D| Reserved | | 2 to level 1, the D bit MUST be set. Otherwise, this bit MUST | |||
+-+-+-+-+-+-+-+-+ | be clear. Prefixes with the D bit set MUST NOT be leaked from | |||
level 1 to level 2. This is to prevent looping. | ||||
D-flag: When the Prefix is leaked from level-2 to level-1, the | The remaining bits: Are reserved for future use. They MUST be | |||
D bit MUST be set. Otherwise, this bit MUST be clear. | set to zero on transmission and MUST be ignored on receipt. | |||
Prefixes with the D bit set MUST NOT be leaked from level-1 to | ||||
level-2. This is to prevent looping. | ||||
* Algorithm (1 octet): Associated Algorithm from 128 to 255. | Algorithm (1 octet): Associated Algorithm from 128 to 255 | |||
* Prefix Len (1 octet): Prefix length measured in bits. | Prefix Len (1 octet): Prefix length measured in bits | |||
* Prefix (variable length): Prefix mapped to Flex-Algorithm. | Prefix (variable length): Prefix mapped to Flex-Algorithm | |||
* Optional Sub-TLV-length (1 octet): Number of octets used by sub- | Optional Sub-TLV-length (1 octet): Number of octets used by sub-TLVs | |||
TLVs | ||||
* Optional sub-TLVs (variable length). | Optional sub-TLVs (variable length) | |||
If the Algorithms in the IS-IS IPv4 Algorithm Prefix Reachability TLV | If the Algorithms in the IS-IS IPv4 Algorithm Prefix Reachability TLV | |||
is outside the Flex-Algorithm range (128-255), the IS-IS IPv4 | are outside the Flex-Algorithm range (128-255), the IS-IS IPv4 | |||
Algorithm Prefix Reachability TLV MUST be ignored by the receiver. | Algorithm Prefix Reachability TLV MUST be ignored by the receiver. | |||
This situation SHOULD be logged as an error. | This situation SHOULD be logged as an error. | |||
If a router receives multiple IPv4 Algorithm Prefix Reachability | If a router receives multiple IPv4 Algorithm Prefix Reachability | |||
advertisements for the same prefix from the same originator, it MUST | advertisements for the same prefix from the same originator, it MUST | |||
select the first advertisement in the lowest-numbered LSP and ignore | select the first advertisement in the lowest-numbered LSP and ignore | |||
any subsequent IPv4 Algorithm Prefix Reachability advertisements for | any subsequent IPv4 Algorithm Prefix Reachability advertisements for | |||
the same prefix. | the same prefix. | |||
If a router receives multiple IPv4 Algorithm Prefix Reachability | If a router receives multiple IPv4 Algorithm Prefix Reachability | |||
advertisements for the same prefix, from different originators, where | advertisements for the same prefix, from different originators, where | |||
all of them do not advertise the same algorithm, it MUST ignore all | all of them do not advertise the same algorithm, it MUST ignore all | |||
of them and MUST NOT install any forwarding entries based on these | of them and MUST NOT install any forwarding entries based on these | |||
advertisements. This situation SHOULD be logged as an error. | advertisements. This situation SHOULD be logged as an error. | |||
In cases where a prefix advertisement is received in both a IPv4 | In cases where a prefix advertisement is received in both an IPv4 | |||
Prefix Reachability TLV ([RFC5305], [RFC5120]) and an IPv4 Algorithm | Prefix Reachability TLV [RFC5305] [RFC5120] and an IPv4 Algorithm | |||
Prefix Reachability TLV, the IPv4 Prefix Reachability advertisement | Prefix Reachability TLV, the IPv4 Prefix Reachability advertisement | |||
MUST be preferred when installing entries in the forwarding plane. | MUST be preferred when installing entries in the forwarding plane. | |||
6.2. The IS-IS IPv6 Algorithm Prefix Reachability TLV | 6.2. The IS-IS IPv6 Algorithm Prefix Reachability TLV | |||
The IS-IS IPv6 Algorithm Prefix Reachability TLV is identical to the | The IS-IS IPv6 Algorithm Prefix Reachability TLV is identical to the | |||
IS-IS IPv4 Algorithm Prefix Reachability TLV, except that it has a | IS-IS IPv4 Algorithm Prefix Reachability TLV, except that it has a | |||
distinct type. The type is 127. | distinct type. The type is 127. | |||
If the Algorithms in the IS-IS IPv6 Algorithm Prefix Reachability TLV | If the Algorithms in the IS-IS IPv6 Algorithm Prefix Reachability TLV | |||
is outside the Flex-Algorithm range (128-255), the IS-IS IPv6 | are outside the Flex-Algorithm range (128-255), the IS-IS IPv6 | |||
Algorithm Prefix Reachability TLV MUST be ignored by the receiver. | Algorithm Prefix Reachability TLV MUST be ignored by the receiver. | |||
This situation SHOULD be logged as an error. | This situation SHOULD be logged as an error. | |||
If a router receives multiple IPv6 Algorithm Prefix Reachability | If a router receives multiple IPv6 Algorithm Prefix Reachability | |||
advertisements for the same prefix from the same originator, it MUST | advertisements for the same prefix from the same originator, it MUST | |||
select the first advertisement in the lowest-numbered LSP and ignore | select the first advertisement in the lowest-numbered LSP and ignore | |||
any subsequent IPv6 Algorithm Prefix Reachability advertisements for | any subsequent IPv6 Algorithm Prefix Reachability advertisements for | |||
the same prefix. | the same prefix. | |||
If a router receives multiple IPv6 Algorithm Prefix Reachability | If a router receives multiple IPv6 Algorithm Prefix Reachability | |||
advertisements for the same prefix, from different originators, where | advertisements for the same prefix, from different originators, where | |||
all of them do not advertise the same algorithm, it MUST ignore all | all of them do not advertise the same algorithm, it MUST ignore all | |||
of them and MUST NOT install any forwarding entries based on these | of them and MUST NOT install any forwarding entries based on these | |||
advertisements. This situation SHOULD be logged as an error. | advertisements. This situation SHOULD be logged as an error. | |||
In cases where a prefix advertisement is received in both an IPv6 | In cases where a prefix advertisement is received in both an IPv6 | |||
Prefix Reachability TLV ([RFC5308], [RFC5120]) and an IPv6 Algorithm | Prefix Reachability TLV [RFC5308] [RFC5120] and an IPv6 Algorithm | |||
Prefix Reachability TLV, the IPv6 Prefix Reachability advertisement | Prefix Reachability TLV, the IPv6 Prefix Reachability advertisement | |||
MUST be preferred when installing entries in the forwarding plane. | MUST be preferred when installing entries in the forwarding plane. | |||
In cases where a prefix advertisement is received in both an IS-IS | In cases where a prefix advertisement is received in both an IS-IS | |||
SRv6 Locator TLV [RFC9352] and in IS-IS IPv6 Algorithm Prefix | SRv6 Locator TLV [RFC9352] and in IS-IS IPv6 Algorithm Prefix | |||
Reachability TLV, the receiver MUST ignore both of them and MUST NOT | Reachability TLV, the receiver MUST ignore both of them and MUST NOT | |||
install any forwarding entries based on these advertisements. This | install any forwarding entries based on these advertisements. This | |||
situation SHOULD be logged as an error. | situation SHOULD be logged as an error. | |||
6.3. The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | 6.3. The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | |||
A new Sub-TLV of the OSPFv2 Extended Prefix TLV is defined for | A new sub-TLV of the OSPFv2 Extended Prefix TLV is defined for | |||
advertising IP Algorithm Prefix Reachability in OSPFv2, the OSPFv2 IP | advertising IP Algorithm Prefix Reachability in OSPFv2, the OSPFv2 IP | |||
Algorithm Prefix Reachability Sub-TLV. | Algorithm Prefix Reachability Sub-TLV. | |||
The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV has the following | The OSPFv2 IP Algorithm Prefix Reachability Sub-TLV has the following | |||
format: | 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MT-ID | Algorithm | Flags | Reserved | | | MT-ID | Algorithm | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | Figure 5: OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | |||
* Type (2 octets) : The value is TBD2. | Type (2 octets): The value is 6 | |||
* Length (2 octets): 8 | Length (2 octets): 8 | |||
* MT-ID (1 octet): Multi-Topology ID as defined in [RFC4915] | MT-ID (1 octet): Multi-Topology ID as defined in [RFC4915] | |||
* Algorithm (1 octet): Associated Algorithm from 128 to 255. | Algorithm (1 octet): Associated Algorithm from 128 to 255 | |||
* 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: | |||
- bit E: Same as bit E defined in section A.4.5 of [RFC2328]. | E bit: The same as the E bit defined in Appendix A.4.5 of | |||
[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 | Reserved (1 octet): SHOULD be set to 0 on transmission and MUST be | |||
be ignored on reception. | ignored on reception. | |||
* Metric (4 octets): The algorithm-specific metric value. The | Metric (4 octets): The algorithm-specific metric value. The metric | |||
metric value of 0XFFFFFFFF MUST be considered as unreachable. | value of 0XFFFFFFFF MUST be considered unreachable. | |||
If the Algorithms in the OSPFv2 IP Algorithm Prefix Reachability Sub- | If the Algorithms in the OSPFv2 IP Algorithm Prefix Reachability Sub- | |||
TLV is outside the Flex-Algorithm range (128-255), the OSPFv2 IP | TLV are outside the Flex-Algorithm range (128-255), the OSPFv2 IP | |||
Algorithm Prefix Reachability Sub-TLV MUST be ignored by the | Algorithm Prefix Reachability Sub-TLV MUST be ignored by the | |||
receiver. This situation SHOULD be logged as an error. | receiver. This situation SHOULD be logged as an error. | |||
An OSPFv2 router receiving multiple OSPFv2 IP Algorithm Prefix | An OSPFv2 router receiving multiple OSPFv2 IP Algorithm Prefix | |||
Reachability Sub-TLVs in the same OSPFv2 Extended Prefix TLV, MUST | Reachability Sub-TLVs in the same OSPFv2 Extended Prefix TLV MUST | |||
select the first advertisement of this Sub-TLV and MUST ignore all | select the first advertisement of this sub-TLV and MUST ignore all | |||
remaining occurences of this Sub-TLV in the OSPFv2 Extended Prefix | remaining occurrences of this sub-TLV in the OSPFv2 Extended Prefix | |||
TLV. | TLV. | |||
An OSPFv2 router receiving multiple OSPFv2 IP Algorithm Prefix | An OSPFv2 router receiving multiple OSPFv2 IP Algorithm Prefix | |||
Reachability TLVs for the same prefix, from different originators, | Reachability TLVs for the same prefix from different originators | |||
where all of them do not advertise the same algorithm, MUST ignore | where all of them do not advertise the same algorithm MUST ignore all | |||
all of them and MUST NOT install any forwarding entries based on | of them and MUST NOT install any forwarding entries based on these | |||
these advertisements. This situation SHOULD be logged as an error. | advertisements. This situation SHOULD be logged as an error. | |||
In cases where a prefix advertisement is received in any of the LSAs | In cases where a prefix advertisement is received in any of the LSAs | |||
advertising the prefix reachability for algorithm 0 and in an OSPFv2 | advertising the prefix reachability for algorithm 0 and in an OSPFv2 | |||
IP Algorithm Prefix Reachability Sub-TLV, only the prefix | IP Algorithm Prefix Reachability Sub-TLV, only the prefix | |||
reachability advertisement for algorithm 0 MUST be used and all | reachability advertisement for algorithm 0 MUST be used, and all | |||
occurences of the OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | occurrences of the OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | |||
MUST be ignored. | MUST be ignored. | |||
When computing the IP Algorithm Prefix reachability in OSPFv2, only | When computing the IP Algorithm Prefix reachability in OSPFv2, only | |||
information present in the OSPFv2 Extended Prefix TLV MUST be used. | information present in the OSPFv2 Extended Prefix TLV MUST be used. | |||
There will not be any information advertised for the IP Algorithm | There will not be any information advertised for the IP Algorithm | |||
Prefix in any of the OSPFv2 LSAs that advertise prefix reachability | Prefix in any of the OSPFv2 LSAs that advertise prefix reachability | |||
for algorithm 0. For the IP Algorithm Prefix the OSPFv2 Extended | for algorithm 0. For the IP Algorithm Prefix, the OSPFv2 Extended | |||
Prefix TLV is used to advertise the prefix reachability, unlike for | Prefix TLV is used to advertise the prefix reachability, unlike for | |||
algorithm 0 prefixes, where the OSPFv2 Extended Prefix TLV is only | algorithm 0 prefixes, where the OSPFv2 Extended Prefix TLV is only | |||
used to advertise additional attributes, but not the reachability | used to advertise additional attributes -- but not the reachability | |||
itself. | itself. | |||
6.3.1. The OSPFv2 IP Forwarding Address Sub-TLV | 6.3.1. The OSPFv2 IP Forwarding Address Sub-TLV | |||
A new Sub-TLV of the OSPFv2 Extended Prefix TLV is defined for | A new sub-TLV of the OSPFv2 Extended Prefix TLV is defined for | |||
advertising IP Forwarding Address, the OSPFv2 IP Forwarding Address | advertising IP Forwarding Address, the OSPFv2 IP Forwarding Address | |||
Sub-TLV. | Sub-TLV. | |||
The OSPFv2 IP Forwarding Address Sub-TLV has the following format: | The OSPFv2 IP Forwarding Address 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 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 TBD4. | Type (2 octets): The value is 7 | |||
* Length (2 octets): 4 | Length (2 octets): 4 | |||
* Forwarding Address (4 octets): Same as defined in section A.4.5 of | Forwarding Address (4 octets): The same as defined in Appendix A.4.5 | |||
[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. | |||
The OSPFv2 IP Forwarding Address Sub-TLV is only applicable to | The OSPFv2 IP Forwarding Address Sub-TLV is only applicable to AS | |||
Autonomous System (AS) External and Not-So-Stubby Area (NSSA) | External and Not-So-Stubby Area (NSSA) External route types. If the | |||
External route types. If the OSPFv2 IP Forwarding Address Sub-TLV is | OSPFv2 IP Forwarding Address Sub-TLV is advertised in the OSPFv2 | |||
advertised in the OSPFv2 Extended Prefix TLV that has the Route Type | Extended Prefix TLV that has the Route Type field set to any other | |||
field set to any other type, the OSPFv2 IP Forwarding Address Sub-TLV | type, the OSPFv2 IP Forwarding Address Sub-TLV MUST be ignored. | |||
MUST be ignored. | ||||
6.4. The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | 6.4. The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | |||
The OSPFv3 [RFC5340] IP Algorithm Prefix Reachability Sub-TLV is | The OSPFv3 [RFC5340] IP Algorithm Prefix Reachability Sub-TLV is | |||
defined for advertisement of the IP Algorithm Prefix Reachability in | defined for advertisement of the IP Algorithm Prefix Reachability in | |||
OSPFv3. | OSPFv3. | |||
The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV is a sub-TLV of | The OSPFv3 IP Algorithm Prefix Reachability Sub-TLV is a sub-TLV of | |||
the following OSPFv3 TLVs defined in [RFC8362]: | the following OSPFv3 TLVs defined in [RFC8362]: | |||
* Intra-Area-Prefix TLV | * Intra-Area-Prefix TLV | |||
* Inter-Area-Prefix TLV | * Inter-Area-Prefix TLV | |||
* External-Prefix TLV | * External-Prefix TLV | |||
The format of OSPFv3 IP Algorithm Prefix Reachability Sub-TLV is | The format of OSPFv3 IP Algorithm Prefix Reachability Sub-TLV is | |||
shown below: | shown below: | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Algorithm | Reserved | | | Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 7: OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | Figure 7: OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | |||
Where: | Where: | |||
Type (2 octets): The value is TBD3. | Type (2 octets): The value is 35 | |||
Length (2 octets): 8. | Length (2 octets): 8 | |||
Algorithm (1 octet): Associated Algorithm from 128 to 255. | Algorithm (1 octet): Associated Algorithm from 128 to 255 | |||
Reserved: (3 octets). SHOULD be set to 0 on transmission and MUST | Reserved (3 octets): SHOULD be set to 0 on transmission and MUST be | |||
be ignored on reception. | ignored on reception. | |||
Metric (4 octets): The algorithm-specific metric value. The | Metric (4 octets): The algorithm-specific metric value. The metric | |||
metric value of 0XFFFFFFFF MUST be considered as unreachable. | value of 0XFFFFFFFF MUST be considered unreachable. | |||
If the Algorithms in the OSPFv3 IP Algorithm Prefix Reachability Sub- | If the Algorithms in the OSPFv3 IP Algorithm Prefix Reachability Sub- | |||
TLV is outside the Flex-Algorithm range (128-255), the OSPFv3 IP | TLV are outside the Flex-Algorithm range (128-255), the OSPFv3 IP | |||
Algorithm Prefix Reachability Sub-TLV MUST be ignored by the | Algorithm Prefix Reachability Sub-TLV MUST be ignored by the | |||
receiver. This situation SHOULD be logged as an error. | receiver. This situation SHOULD be logged as an error. | |||
When the OSPFv3 IP Algorithm Prefix Reachability Sub-TLV is present, | When the OSPFv3 IP Algorithm Prefix Reachability Sub-TLV is present, | |||
the NU-bit in the PrefixOptions field of the parent TLV MUST be set. | the NU-bit in the PrefixOptions field of the parent TLV MUST be set. | |||
This is needed to prevent the OSPFv3 IP Algorithm Prefix Reachability | This is needed to prevent the OSPFv3 IP Algorithm Prefix Reachability | |||
advertisement from contributing to the base algorithm reachability. | advertisement from contributing to the base algorithm reachability. | |||
If the NU-bit in the PrefixOptions field of the parent TLV is not | If the NU-bit in the PrefixOptions field of the parent TLV is not | |||
set, the OSPFv3 IP Algorithm Prefix Sub-TLV MUST be ignored by the | set, the OSPFv3 IP Algorithm Prefix Sub-TLV MUST be ignored by the | |||
receiver. | receiver. | |||
The metric value in the parent TLV is RECOMMENDED to be set to | The metric value in the parent TLV is RECOMMENDED to be set to | |||
LSInfinity [RFC2328]. This recommendation is provided as a network | LSInfinity [RFC2328]. This recommendation is provided as a network | |||
troubleshooting convenience; if it is not followed the protocol will | troubleshooting convenience; if it is not followed, the protocol will | |||
still function correctly. | still function correctly. | |||
An OSPFv3 router receiving multiple OSPFv3 IP Algorithm Prefix | An OSPFv3 router receiving multiple OSPFv3 IP Algorithm Prefix | |||
Reachability Sub-TLVs in the same parent TLV, MUST select the first | Reachability Sub-TLVs in the same parent TLV MUST select the first | |||
advertisement of this Sub-TLV and MUST ignore all remaining | advertisement of this sub-TLV and MUST ignore all remaining | |||
occurences of this Sub-TLV in the parent TLV. | occurrences of this sub-TLV in the parent TLV. | |||
An OSPFv3 router receiving multiple OSPFv3 IP Algorithm Prefix | An OSPFv3 router receiving multiple OSPFv3 IP Algorithm Prefix | |||
Reachability TLVs for the same prefix, from different originators, | Reachability TLVs for the same prefix from different originators | |||
where all of them do not advertise the same algorithm, MUST ignore | where all of them do not advertise the same algorithm MUST ignore all | |||
all of them and MUST NOT install any forwarding entries based on | of them and MUST NOT install any forwarding entries based on these | |||
these advertisements. This situation SHOULD be logged as an error. | advertisements. This situation SHOULD be logged as an error. | |||
In cases where a prefix advertisement is received in any of the LSAs | In cases where a prefix advertisement is received in any of the LSAs | |||
advertising the prefix reachability for algorithm 0 and in an OSPFv3 | advertising the prefix reachability for algorithm 0 and in an OSPFv3 | |||
OSPFv3 IP Algorithm Prefix Reachability Sub-TLV, only the prefix | OSPFv3 IP Algorithm Prefix Reachability Sub-TLV, only the prefix | |||
reachability advertisement for algorithm 0 MUST be used and all | reachability advertisement for algorithm 0 MUST be used, and all | |||
occurences of the OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | occurrences of the OSPFv3 IP Algorithm Prefix Reachability Sub-TLV | |||
MUST be ignored. | MUST be ignored. | |||
In cases where a prefix advertisement is received in both an OSPFv3 | In cases where a prefix advertisement is received in both an OSPFv3 | |||
SRv6 Locator TLV and in an OSPFv3 IP Algorithm Prefix Reachability | SRv6 Locator TLV and in an OSPFv3 IP Algorithm Prefix Reachability | |||
Sub-TLV, the receiver MUST ignore both of them and MUST NOT install | Sub-TLV, the receiver MUST ignore both of them and MUST NOT install | |||
any forwarding entries based on these advertisements. This situation | any forwarding entries based on these advertisements. This situation | |||
SHOULD be logged as an error. | SHOULD be logged as an error. | |||
6.5. The OSPF IP Flexible Algorithm ASBR Metric Sub-TLV | 6.5. The OSPF IP Flexible Algorithm ASBR Metric Sub-TLV | |||
[RFC9350] defines the OSPF Flexible Algorithm ASBR Metric Sub-TLV | [RFC9350] defines the OSPF Flexible Algorithm ASBR Metric (FAAM) Sub- | |||
(FAAM) that is used by an OSPFv2 or an OSPFv3 ABR to advertise a | TLV that is used by an OSPFv2 or an OSPFv3 Area Border Router (ABR) | |||
Flex-Algorithm specific metric associated with the corresponding ASBR | to advertise a Flex-Algorithm-specific metric associated with the | |||
LSA. | corresponding ASBR LSA. | |||
As described in [RFC9350] each data-plane signals its participation | As described in [RFC9350], each data plane signals its participation | |||
independently. IP Flex-Algorithm participation is signaled | independently. IP Flexible Algorithm participation is signaled | |||
independent of Segment Routing (SR) Flex-Algorithm participation. As | independent of SR Flexible Algorithm participation. As a result, the | |||
a result, the calculated topologies for SR and IP Flex-Algorithm | calculated topologies for SR and IP Flexible Algorithm could be | |||
could be different. Such difference prevents the usage of FAAM for | different. Such a difference prevents the usage of FAAM for the | |||
the purpose of the IP Flex-Algorithm. | purpose of the IP Flexible Algorithm. | |||
The OSPF IP Flexible Algorithm ASBR Metric (IPFAAM) Sub-TLV is | The OSPF IP Flexible Algorithm ASBR Metric (IPFAAM) Sub-TLV is | |||
defined for the advertisement of the IP Flex-Algorithm specific | defined for the advertisement of the IP Flex-Algorithm-specific | |||
metric associated with an ASBR by the ABR. | metric associated with an ASBR by the ABR. | |||
The IPFAAM Sub-TLV is a Sub-TLV of the: | The IPFAAM Sub-TLV is a sub-TLV of the: | |||
- OSPFv2 Extended Inter-Area ASBR TLV as defined in [RFC9350] | * OSPFv2 Extended Inter-Area ASBR TLV, as defined in [RFC9350] | |||
- OSPFv3 Inter-Area-Router TLV defined in [RFC8362] | * OSPFv3 Inter-Area-Router TLV, as defined in [RFC8362] | |||
The OSPF IPFAAM Sub-TLV has the following format: | The OSPF IPFAAM 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Algorithm | Reserved | | | Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Figure 8: OSPF IP Flexible Algorithm ASBR Metric Sub-TLV | Figure 8: OSPF IP Flexible Algorithm ASBR Metric Sub-TLV | |||
Type (2 octets): 2 (allocated by IANA) for OSPFv2, TBD5 for | Where: | |||
OSPFv3. | ||||
Length (2 octets): 8. | Type (2 octets): 2 (allocated by IANA) for OSPFv2, 36 for OSPFv3 | |||
Algorithm (1 octet): Associated Algorithm from 128 to 255. | Length (2 octets): 8 | |||
Reserved: (3 octets). SHOULD be set to 0 on transmission and MUST | Algorithm (1 octet): Associated Algorithm from 128 to 255 | |||
be ignored on reception. | ||||
Metric (4 octets): The algorithm-specific metric value. | Reserved (3 octets): SHOULD be set to 0 on transmission and MUST be | |||
ignored on reception | ||||
Metric (4 octets): The algorithm-specific metric value | ||||
If the Algorithms in the OSPF IP Flexible Algorithm ASBR Metric Sub- | If the Algorithms in the OSPF IP Flexible Algorithm ASBR Metric Sub- | |||
TLV is outside the Flex-Algorithm range (128-255), the OSPF IP | TLV are outside the Flex-Algorithm range (128-255), the OSPF IP | |||
Flexible Algorithm ASBR Metric Sub-TLV MUST be ignored by the | Flexible Algorithm ASBR Metric Sub-TLV MUST be ignored by the | |||
receiver. This situation SHOULD be logged as an error. | receiver. This situation SHOULD be logged as an error. | |||
The usage of the IPFAAM Sub-TLV is similar to the usage of the FAAM | The usage of the IPFAAM Sub-TLV is similar to the usage of the FAAM | |||
Sub-TLV defined in [RFC9350], but it is used to advertise IP Flex- | Sub-TLV defined in [RFC9350], but it is used to advertise IP Flexible | |||
Algorithm metric. | Algorithm metric. | |||
An OSPF ABR MUST include the OSPF IPFAAM Sub-TLVs as part of the ASBR | An OSPF ABR MUST include the OSPF IPFAAM Sub-TLVs as part of any IP | |||
reachability advertisement between areas for every IP Flex-Algorithm | Flexible Algorithm ASBR reachability advertisement between areas. | |||
in which it participates and the ASBR is reachable in. | ||||
The FAAM Sub-TLV as defined in [RFC9350] MUST NOT be used during IP | The FAAM Sub-TLV as defined in [RFC9350] MUST NOT be used during IP | |||
Flex-Algorithm path calculation, the IPFAAM Sub-TLV MUST be used | Flexible Algorithm path calculation; the IPFAAM Sub-TLV MUST be used | |||
instead. | instead. | |||
7. Calculating of IP Flex-Algorithm Paths | 7. Calculating of IP Flexible Algorithm Paths | |||
The IP Flex-Algorithm is considered as yet another data-plane of the | The IP Flexible Algorithm is considered as yet another data plane of | |||
Flex-Algorithm as described in [RFC9350]. | the Flexible Algorithm as described in [RFC9350]. | |||
Participation in the IP Flex-Algorithm is signalled as described in | Participation in the IP Flexible Algorithm is signaled as described | |||
Section 5 and is specific to the IP Flex-Algorithm data-plane. | in Section 5 and is specific to the IP Flexible Algorithm data plane. | |||
Calculation of IP Flex-Algorithm paths follows what is described in | Calculation of IP Flexible Algorithm paths follows what is described | |||
[RFC9350]. This computation uses the IP Flex-Algorithm data-plane | in [RFC9350]. This computation uses the IP Flexible Algorithm data | |||
participation and is independent of the Flex-Algorithm calculation | plane participation and is independent of the Flexible Algorithm | |||
done for any other Flex-Algorithm data-plane (e.g., SR, SRv6). | calculation done for any other Flexible Algorithm data plane (e.g., | |||
SR, SRv6). | ||||
The IP Flex-Algorithm data-plane only considers participating nodes | The IP Flexible Algorithm data plane only considers participating | |||
during the Flex-Algorithm calculation. When computing paths for a | nodes during the Flexible Algorithm calculation. When computing | |||
given Flex-Algorithm, all nodes that do not advertise participation | paths for a given Flex-Algorithm, all nodes that do not advertise | |||
for the IP Flex-Algorithm, as described in Section 5, MUST be pruned | participation for such IP Flex-Algorithm, as described in Section 5, | |||
from the topology. | MUST be pruned from the topology. | |||
8. IP Flex-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 | |||
includes an Algorithm value that explicitly associates the prefix | includes an Algorithm value that explicitly associates the prefix | |||
with a specific Flex-Algorithm. The paths to the prefix MUST be | with a specific Flex-Algorithm. The paths to the prefix MUST be | |||
calculated using the specified Flex-Algorithm in the associated | calculated using the specified Flex-Algorithm in the associated | |||
topology. | topology. | |||
Forwarding entries for the IP Flex-Algorithm prefixes advertised in | Forwarding entries for the IP Flex-Algorithm prefixes advertised in | |||
IGPs MUST be installed in the forwarding plane of the receiving IP | IGPs MUST be installed in the forwarding plane of the receiving IP | |||
Flex-Algorithm prefix capable routers when they participate in the | Flex-Algorithm prefix capable routers when they participate in the | |||
associated topology and algorithm. Forwarding entries for IP Flex- | associated topology and algorithm. Forwarding entries for IP Flex- | |||
Algorithm prefixes associated with Flex-Algorithms in which the node | Algorithm prefixes associated with Flex-Algorithms in which the node | |||
is not participating MUST NOT be installed in the forwarding plane. | is not participating MUST NOT be installed in the forwarding plane. | |||
9. Deployment Considerations | 9. Deployment Considerations | |||
IGP Flex-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 Flex-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 | |||
Flex-Algorithm. | Flexible Algorithm. | |||
Flex-Algorithm definition (FAD), as described in [RFC9350], is data- | Flexible Algorithm Definition (FAD), as described in [RFC9350], is | |||
plane independent and is used by all Flex-Algorithm data-planes. | data plane independent and is used by all Flexible Algorithm data | |||
planes. | ||||
Participation in the Flex-Algorithm, as described in [RFC9350], is | Participation in the Flexible Algorithm, as described in [RFC9350], | |||
data-plane specific. | is data plane specific. | |||
Calculation of the flex-algo paths is data-plane specific and uses | Calculation of the Flexible Algorithm paths is data plane specific | |||
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 | |||
forwarding of the traffic over the Flex-Algorithm data-plane specific | forwarding of the traffic over the Flex-Algorithm data-plane-specific | |||
paths is consistent between all nodes that apply the IGP Flex- | paths is consistent between all nodes that apply the IGP Flex- | |||
Algorithm to the data-plane. | Algorithm to the data plane. | |||
Multiple data-planes can use the same Flex-Algorithm value at the | Multiple data planes can use the same Flex-Algorithm value at the | |||
same time and, and as such, share the FAD for it. For example, SR- | same time and, and as such, share the FAD for it. For example, SR- | |||
MPLS and IP can both use a common Flex-Algorithm. Traffic for SR- | MPLS and IP can both use a common Flex-Algorithm. Traffic for SR- | |||
MPLS will be forwarded based on Flex-algorithm specific SR SIDs. | MPLS will be forwarded based on Flex-Algorithm-specific SR SIDs. | |||
Traffic for IP Flex-Algorithm will be forwarded based on Flex- | Traffic for IP Flex-Algorithm will be forwarded based on Flex- | |||
Algorithm specific prefix reachability advertisements. Note that for | Algorithm-specific prefix reachability advertisements. Note that for | |||
a particular Flex-Algorithm, for a particular IP prefix, there will | a particular Flex-Algorithm, for a particular IP prefix, there will | |||
only be path(s) calculated and installed for a single data-plane. | only be path(s) calculated and installed for a single data plane. | |||
10. Protection | 10. Protection | |||
In many networks where IGP Flexible Algorithms are deployed, IGP | In many networks where IGP Flexible Algorithms are deployed, IGP | |||
restoration will be fast and additional protection mechanisms will | restoration will be fast and additional protection mechanisms will | |||
not be required. IGP restoration may be enhanced by Equal Cost | not be required. IGP restoration may be enhanced by Equal Cost | |||
Multipath (ECMP). | Multipath (ECMP). | |||
In other networks, operators can deploy additional protection | In other networks, operators can deploy additional protection | |||
mechanisms. The following are examples: | mechanisms. The following are examples: | |||
* Loop Free Alternates (LFA) [RFC5286] | * Loop-Free Alternates (LFAs) [RFC5286] | |||
* Remote Loop Free Alternates (R-LFA) [RFC7490] | * Remote Loop-Free Alternates (R-LFAs) [RFC7490] | |||
LFA and R-LFA computations MUST be restricted to the flex-algo | LFA and R-LFA computations MUST be restricted to the Flex-Algorithm | |||
topology and the computed backup nexthops should be programmed for | topology and the computed backup next hops should be programmed for | |||
the IP flex-algo 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 | | |||
+=======+==============+===========================+ | +=======+==============+=======================+ | |||
| TBD1 | IP Algorithm | This Document Section 5.2 | | | 21 | IP Algorithm | RFC 9502, Section 5.2 | | |||
+-------+--------------+---------------------------+ | +-------+--------------+-----------------------+ | |||
Table 1 | Table 1 | |||
This document also updates the IS-IS "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 | This Document Section 5.1 | | | 29 | IP Algorithm | RFC 9502, Section 5.1 | | |||
+-------+--------------+---------------------------+ | +-------+--------------+-----------------------+ | |||
Table 2 | Table 2 | |||
This document also updates the "IS-IS TLV Codepoints Registry" | This document also updates the "IS-IS Top-Level TLV Codepoints" | |||
registry as follows: | registry as follows: | |||
+=======+================+=====+=====+=====+=======+=============+ | +=======+=====================+=====+=====+=====+=======+===========+ | |||
| Value | TLV Name | IIH | LSP | SNP | Purge | Reference | | | Value | TLV Name | IIH | LSP | SNP | Purge | Reference | | |||
+=======+================+=====+=====+=====+=======+=============+ | +=======+=====================+=====+=====+=====+=======+===========+ | |||
| 126 | IPv4 Algorithm | N | Y | N | N | This | | | 126 | IPv4 Algorithm | n | y | n | n | RFC 9502, | | |||
| | Prefix | | | | | document, | | | | Prefix | | | | | Section | | |||
| | Reachability | | | | | Section 6.1 | | | | Reachability | | | | | 6.1 | | |||
+-------+----------------+-----+-----+-----+-------+-------------+ | +-------+---------------------+-----+-----+-----+-------+-----------+ | |||
| 127 | IPv6 Algorithm | N | Y | N | N | This | | | 127 | IPv6 Algorithm | n | y | n | n | RFC 9502, | | |||
| | Prefix | | | | | document, | | | | Prefix | | | | | Section | | |||
| | Reachability | | | | | Section 6.2 | | | | Reachability | | | | | 6.2 | | |||
+-------+----------------+-----+-----+-----+-------+-------------+ | +-------+---------------------+-----+-----+-----+-------+-----------+ | |||
Table 3 | Table 3 | |||
Since the above TLVs share the sub-TLV space managed in the "IS-IS | Since the above TLVs share the sub-TLV space managed in the "IS-IS | |||
Sub-TLVs for TLVs Advertising Prefix Reachability" registry, IANA is | Sub-TLVs for TLVs Advertising Prefix Reachability" registry, IANA has | |||
requested to add "IPv4 Algorithm Prefix Reachability TLV (126)" and | added "IPv4 Algorithm Prefix Reachability TLV (126)" and "IPv6 | |||
"IPv6 Algorithm Prefix Reachability TLV (127)" to the list of TLVs in | Algorithm Prefix Reachability TLV (127)" to the list of TLVs in the | |||
the description of that registry. | description of that registry. | |||
In addition, columns headed '126' and '127' are added to that | In addition, columns headed "126" and "127" have been added to that | |||
registry, as follows: | registry, as follows: | |||
Type Description 126 127 | +======+=========================================+=====+=====+ | |||
---- ---------------------------------- --- --- | | Type | Description | 126 | 127 | | |||
1 32-bit Administrative Tag Sub-TLV y y | +======+=========================================+=====+=====+ | |||
2 64-bit Administrative Tag Sub-TLV y y | | 1 | 32-bit Administrative Tag Sub-TLV | y | y | | |||
3 Prefix Segment Identifier n n | +------+-----------------------------------------+-----+-----+ | |||
4 Prefix Attribute Flags y y | | 2 | 64-bit Administrative Tag Sub-TLV | y | y | | |||
5 SRv6 End SID n n | +------+-----------------------------------------+-----+-----+ | |||
6 Flex-Algorithm Prefix Metric n n | | 3 | Prefix Segment Identifier | n | n | | |||
11 IPv4 Source Router ID y y | +------+-----------------------------------------+-----+-----+ | |||
12 IPv6 Source Router ID y y | | 4 | Prefix Attribute Flags | y | y | | |||
32 BIER Info n n | +------+-----------------------------------------+-----+-----+ | |||
| 5 | SRv6 End SID | n | n | | ||||
This document updates the "OSPFv2 Extended Prefix TLV Sub-TLVs" | +------+-----------------------------------------+-----+-----+ | |||
registry as follows: | | 6 | Flexible Algorithm Prefix Metric (FAPM) | n | n | | |||
+------+-----------------------------------------+-----+-----+ | ||||
+=======+=========================================+================+ | | 11 | IPv4 Source Router ID | y | y | | |||
| Value | TLV Name | Reference | | +------+-----------------------------------------+-----+-----+ | |||
+=======+=========================================+================+ | | 12 | IPv6 Source Router ID | y | y | | |||
| TBD2 | OSPFv2 IP Algorithm Prefix Reachability | This Document, | | +------+-----------------------------------------+-----+-----+ | |||
| | | Section 6.3 | | | 32 | BIER Info | n | n | | |||
+-------+-----------------------------------------+----------------+ | +------+-----------------------------------------+-----+-----+ | |||
| TBD4 | OSPFv2 IP Forwarding Address | This Document, | | ||||
| | | Section 6.3.1 | | ||||
+-------+-----------------------------------------+----------------+ | ||||
Table 4 | Table 4 | |||
This document creates a new registry under "Open Shortest Path First | This document registers the following in the "OSPFv2 Extended Prefix | |||
v2 (OSPFv2) Parameters" registry, called "IP Algorithm Prefix | TLV Sub-TLVs" registry: | |||
Reachability Sub-TLV Flags". The new registry defines the bits in | ||||
the 8-bit Flags field in the OSPFv2 IP Algorithm Prefix Reachability | ||||
Sub-TLV (Section 6.3). New bits can be allocated via IETF Review or | ||||
IESG Approval [RFC8126] | ||||
+=======+==========+============================+ | +=======+=========================================+===============+ | |||
| Bit # | Name | Reference | | | Value | TLV Name | Reference | | |||
+=======+==========+============================+ | +=======+=========================================+===============+ | |||
| 0 | bit E | This Document, Section 6.3 | | | 6 | OSPFv2 IP Algorithm Prefix Reachability | RFC 9502, | | |||
+-------+----------+----------------------------+ | | | | Section 6.3 | | |||
| 1-7 | Reserved | This Document, Section 6.3 | | +-------+-----------------------------------------+---------------+ | |||
+-------+----------+----------------------------+ | | 7 | OSPFv2 IP Forwarding Address | RFC 9502, | | |||
| | | Section 6.3.1 | | ||||
+-------+-----------------------------------------+---------------+ | ||||
Table 5 | Table 5 | |||
This document updates the "OSPFv3 Extended-LSA Sub-TLVs" registry as | IANA has created the "IP Algorithm Prefix Reachability Sub-TLV Flags" | |||
follows: | registry within the "Open Shortest Path First v2 (OSPFv2) Parameters" | |||
group of registries. The new registry defines the bits in the 8-bit | ||||
Flags field in the OSPFv2 IP Algorithm Prefix Reachability Sub-TLV | ||||
(Section 6.3). New bits can be allocated via IETF Review or IESG | ||||
Approval [RFC8126] | ||||
+=======+=========================================+================+ | +=====+============+=======================+ | |||
| Value | TLV Name | Reference | | | Bit | Name | Reference | | |||
+=======+=========================================+================+ | +=====+============+=======================+ | |||
| TBD3 | OSPFv3 IP Algorithm Prefix Reachability | This Document, | | | 0 | E bit | RFC 9502, Section 6.3 | | |||
| | | Section 6.4 | | +-----+------------+-----------------------+ | |||
+-------+-----------------------------------------+----------------+ | | 1-7 | Unassigned | | | |||
| TBD5 | OSPFv3 IP Flexible Algorithm ASBR | This Document, | | +-----+------------+-----------------------+ | |||
| | Metric | Section 6.5 | | ||||
+-------+-----------------------------------------+----------------+ | ||||
Table 6 | Table 6 | |||
This document updates the "OSPFv2 Extended Inter-Area ASBR Sub-TLVs" | This document registers the following in the "OSPFv3 Extended-LSA | |||
registry as follows: | Sub-TLVs" registry: | |||
+=======+========================================+================+ | +=======+=======================+======+=============+ | |||
| Value | TLV Name | Reference | | | Value | Description | L2BM | Reference | | |||
+=======+========================================+================+ | +=======+=======================+======+=============+ | |||
| 2 | OSPF IP Flexible Algorithm ASBR Metric | This Document, | | | 35 | OSPFv3 IP Algorithm | X | RFC 9502, | | |||
| | | Section 6.5 | | | | Prefix Reachability | | Section 6.4 | | |||
+-------+----------------------------------------+----------------+ | +-------+-----------------------+------+-------------+ | |||
| 36 | OSPFv3 IP Flexible | X | RFC 9502, | | ||||
| | Algorithm ASBR Metric | | Section 6.5 | | ||||
+-------+-----------------------+------+-------------+ | ||||
Table 7 | Table 7 | |||
This document registers the following in the "OSPFv2 Extended Inter- | ||||
Area ASBR Sub-TLVs" registry: | ||||
+=======+========================================+=============+ | ||||
| Value | Description | Reference | | ||||
+=======+========================================+=============+ | ||||
| 2 | OSPF IP Flexible Algorithm ASBR Metric | RFC 9502, | | ||||
| | | Section 6.5 | | ||||
+-------+----------------------------------------+-------------+ | ||||
Table 8 | ||||
12. Security Considerations | 12. Security Considerations | |||
This document inherits security considerations from [RFC9350]. | This document inherits security considerations from [RFC9350]. | |||
This document adds one new way to disrupt IGP networks that are using | This document adds one new way to disrupt IGP networks that are using | |||
Flex-Algorithm: an attacker can suppress reachability for a given | Flexible Algorithm: an attacker can suppress reachability for a given | |||
prefix whose reachability is advertised by a legitimate node for a | prefix whose reachability is advertised by a legitimate node for a | |||
particular IP Flex-Algorithm X, by advertising the same prefix in | particular IP Flex-Algorithm X by advertising the same prefix in | |||
Flex-Algorithm Y from another, malicious node. (To see why this is, | Flex-Algorithm Y from another malicious node. (To see why this is, | |||
consider, for example, the rule given in the second-last paragraph of | consider, for example, the rule given in the second-to-last paragraph | |||
Section 6.1). | of Section 6.1). | |||
This attack can be addressed by the existing security extensions, as | This attack can be addressed by the existing security extensions, as | |||
described in [RFC5304] and [RFC5310] for IS-IS, in [RFC2328] and | described in [RFC5304] and [RFC5310] for IS-IS, in [RFC2328] and | |||
[RFC7474]for OSPFv2, and in [RFC4552] and [RFC5340] for OSPFv3. | [RFC7474] for OSPFv2, and in [RFC4552] and [RFC5340] for OSPFv3. | |||
If a node that is authenticated is taken over by an attacker, such a | If a node that is authenticated is taken over by an attacker, such a | |||
rogue node can perform the attack described above. Such an attack is | rogue node can perform the attack described above. Such an attack is | |||
not preventable through authentication, and it is not different from | not preventable through authentication, and it is not different from | |||
advertising any other incorrect information through IS-IS or OSPF. | advertising any other incorrect information through IS-IS or OSPF. | |||
13. Acknowledgements | 13. References | |||
Thanks to Bruno Decraene for his contributions to this document. | ||||
Special thanks to Petr Bonbon Adamec of Cesnet for supporting | ||||
interoperability testing. | ||||
14. References | ||||
14.1. Normative References | 13.1. Normative References | |||
[ISO10589] ISO, "Intermediate system to Intermediate system routing | [ISO10589] ISO, "Information technology - Telecommunications and | |||
information exchange protocol for use in conjunction with | information exchange between systems - Intermediate System | |||
the Protocol for providing the Connectionless-mode Network | to Intermediate System intra-domain routeing information | |||
Service (ISO 8473)", November 2002, <ISO/IEC 10589:2002>. | exchange protocol for use in conjunction with the protocol | |||
for providing the connectionless-mode network service (ISO | ||||
8473)", Second Edition, ISO/IEC 10589:2002, November 2002. | ||||
[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>. | |||
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
DOI 10.17487/RFC2328, April 1998, | DOI 10.17487/RFC2328, April 1998, | |||
<https://www.rfc-editor.org/info/rfc2328>. | <https://www.rfc-editor.org/info/rfc2328>. | |||
skipping to change at page 21, line 46 ¶ | skipping to change at line 977 ¶ | |||
[RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | |||
DOI 10.17487/RFC5308, October 2008, | DOI 10.17487/RFC5308, October 2008, | |||
<https://www.rfc-editor.org/info/rfc5308>. | <https://www.rfc-editor.org/info/rfc5308>. | |||
[RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R., | [RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R., | |||
and M. Fanto, "IS-IS Generic Cryptographic | and M. Fanto, "IS-IS Generic Cryptographic | |||
Authentication", RFC 5310, DOI 10.17487/RFC5310, February | Authentication", RFC 5310, DOI 10.17487/RFC5310, February | |||
2009, <https://www.rfc-editor.org/info/rfc5310>. | 2009, <https://www.rfc-editor.org/info/rfc5310>. | |||
[RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF | [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, Ed., | |||
for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, | "OSPF for IPv6", RFC 5340, DOI 10.17487/RFC5340, July | |||
<https://www.rfc-editor.org/info/rfc5340>. | 2008, <https://www.rfc-editor.org/info/rfc5340>. | |||
[RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | [RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | |||
"Security Extension for OSPFv2 When Using Manual Key | "Security Extension for OSPFv2 When Using Manual Key | |||
Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | |||
<https://www.rfc-editor.org/info/rfc7474>. | <https://www.rfc-editor.org/info/rfc7474>. | |||
[RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | [RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and | |||
S. Shaffer, "Extensions to OSPF for Advertising Optional | S. Shaffer, "Extensions to OSPF for Advertising Optional | |||
Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, | Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, | |||
February 2016, <https://www.rfc-editor.org/info/rfc7770>. | February 2016, <https://www.rfc-editor.org/info/rfc7770>. | |||
skipping to change at page 22, line 39 ¶ | skipping to change at line 1015 ¶ | |||
[RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., | [RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., | |||
and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | |||
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>. | |||
14.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", | |||
August 1987, <https://www.iana.org/assignments/igp- | <https://www.iana.org/assignments/igp-parameters>. | |||
parameters/igp-parameters.xhtml#igp-algorithm-types>. | ||||
[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, | |||
<https://www.rfc-editor.org/info/rfc7490>. | <https://www.rfc-editor.org/info/rfc7490>. | |||
skipping to change at page 23, line 27 ¶ | skipping to change at line 1047 ¶ | |||
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>. | |||
[RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | |||
D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | |||
(SRv6) Network Programming", RFC 8986, | (SRv6) Network Programming", RFC 8986, | |||
DOI 10.17487/RFC8986, February 2021, | DOI 10.17487/RFC8986, February 2021, | |||
<https://www.rfc-editor.org/info/rfc8986>. | <https://www.rfc-editor.org/info/rfc8986>. | |||
[TS.23.501-3GPP] | [TS.23.501-3GPP] | |||
3rd Generation Partnership Project (3GPP), "System | 3GPP, "System architecture for 5G System (5GS)", Release | |||
Architecture for 5G System; Stage 2, 3GPP TS 23.501 | 18.3.0, 3GPP TS 23.501, September 2023. | |||
v16.4.0", March 2020. | ||||
Acknowledgements | ||||
Thanks to Bruno Decraene for his contributions to this document. | ||||
Special thanks to Petr Bonbon Adamec of Cesnet for supporting | ||||
interoperability testing. | ||||
Authors' Addresses | Authors' Addresses | |||
William Britto | William Britto | |||
Juniper Networks | Juniper Networks | |||
Elnath-Exora Business Park Survey | Elnath-Exora Business Park Survey | |||
Bangalore 560103 | Bangalore 560103 | |||
Karnataka | Karnataka | |||
India | India | |||
Email: bwilliam@juniper.net | Email: bwilliam@juniper.net | |||
End of changes. 162 change blocks. | ||||
449 lines changed or deleted | 461 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |