rfc9350.original | rfc9350.txt | |||
---|---|---|---|---|
Network Working Group P. Psenak, Ed. | Internet Engineering Task Force (IETF) P. Psenak, Ed. | |||
Internet-Draft Cisco Systems, Inc. | Request for Comments: 9350 Cisco Systems, Inc. | |||
Intended status: Standards Track S. Hegde | Category: Standards Track S. Hegde | |||
Expires: 20 April 2023 Juniper Networks, Inc. | ISSN: 2070-1721 Juniper Networks, Inc. | |||
C. Filsfils | C. Filsfils | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
K. Talaulikar | K. Talaulikar | |||
Cisco Systems, Inc | Cisco Systems, Inc | |||
A. Gulko | A. Gulko | |||
Edward Jones | Edward Jones | |||
17 October 2022 | February 2023 | |||
IGP Flexible Algorithm | IGP Flexible Algorithm | |||
draft-ietf-lsr-flex-algo-26 | ||||
Abstract | Abstract | |||
IGP protocols historically compute best paths over the network based | IGP protocols historically compute the best paths over the network | |||
on the IGP metric assigned to the links. Many network deployments | based on the IGP metric assigned to the links. Many network | |||
use RSVP-TE based or Segment Routing based Traffic Engineering to | deployments use RSVP-TE or Segment Routing - Traffic Engineering (SR- | |||
steer traffic over a path that is computed using different metrics or | TE) to steer traffic over a path that is computed using different | |||
constraints than the shortest IGP path. This document specifies a | metrics or constraints than the shortest IGP path. This document | |||
solution that allows IGPs themselves to compute constraint-based | specifies a solution that allows IGPs themselves to compute | |||
paths over the network. This document also specifies a way of using | constraint-based paths over the network. This document also | |||
Segment Routing (SR) Prefix-SIDs and SRv6 locators to steer packets | specifies a way of using Segment Routing (SR) Prefix-SIDs and SRv6 | |||
along the constraint-based paths. | locators to steer packets along the constraint-based paths. | |||
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 20 April 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/rfc9350. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction | |||
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language | |||
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Terminology | |||
4. Flexible Algorithm . . . . . . . . . . . . . . . . . . . . . 5 | 4. Flexible Algorithm | |||
5. Flexible Algorithm Definition Advertisement . . . . . . . . . 6 | 5. Flexible Algorithm Definition Advertisement | |||
5.1. IS-IS Flexible Algorithm Definition Sub-TLV . . . . . . . 6 | 5.1. IS-IS Flexible Algorithm Definition Sub-TLV | |||
5.2. OSPF Flexible Algorithm Definition TLV . . . . . . . . . 8 | 5.2. OSPF Flexible Algorithm Definition TLV | |||
5.3. Common Handling of Flexible Algorithm Definition TLV . . 10 | 5.3. Common Handling of the Flexible Algorithm Definition TLV | |||
6. Sub-TLVs of IS-IS FAD Sub-TLV . . . . . . . . . . . . . . . . 11 | 6. Sub-TLVs of IS-IS FAD Sub-TLV | |||
6.1. IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV . . 11 | 6.1. IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV | |||
6.2. IS-IS Flexible Algorithm Include-Any Admin Group | 6.2. IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV | |||
Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 6.3. IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV | |||
6.3. IS-IS Flexible Algorithm Include-All Admin Group | 6.4. IS-IS Flexible Algorithm Definition Flags Sub-TLV | |||
Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.5. IS-IS Flexible Algorithm Exclude SRLG Sub-TLV | |||
6.4. IS-IS Flexible Algorithm Definition Flags Sub-TLV . . . . 14 | 7. Sub-TLVs of the OSPF FAD TLV | |||
6.5. IS-IS Flexible Algorithm Exclude SRLG Sub-TLV . . . . . . 16 | 7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV | |||
7. Sub-TLVs of OSPF FAD TLV . . . . . . . . . . . . . . . . . . 17 | 7.2. OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV | |||
7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV . . . 17 | 7.3. OSPF Flexible Algorithm Include-All Admin Group Sub-TLV | |||
7.2. OSPF Flexible Algorithm Include-Any Admin Group | 7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV | |||
Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 7.5. OSPF Flexible Algorithm Exclude SRLG Sub-TLV | |||
7.3. OSPF Flexible Algorithm Include-All Admin Group | 8. IS-IS Flexible Algorithm Prefix Metric Sub-TLV | |||
Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 9. OSPF Flexible Algorithm Prefix Metric Sub-TLV | |||
7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV . . . . 19 | 10. OSPF Flexible Algorithm ASBR Reachability Advertisement | |||
7.5. OSPF Flexible Algorithm Exclude SRLG Sub-TLV . . . . . . 20 | 10.1. OSPFv2 Extended Inter-Area ASBR LSA | |||
8. IS-IS Flexible Algorithm Prefix Metric Sub-TLV . . . . . . . 21 | 10.1.1. OSPFv2 Extended Inter-Area ASBR TLV | |||
9. OSPF Flexible Algorithm Prefix Metric Sub-TLV . . . . . . . . 22 | 10.2. OSPF Flexible Algorithm ASBR Metric Sub-TLV | |||
10. OSPF Flexible Algorithm ASBR Reachability Advertisement . . . 23 | 11. Advertisement of Node Participation in a Flex-Algorithm | |||
10.1. OSPFv2 Extended Inter-Area ASBR LSA . . . . . . . . . . 23 | 11.1. Advertisement of Node Participation for Segment Routing | |||
10.1.1. OSPFv2 Extended Inter-Area ASBR TLV . . . . . . . . 25 | 11.2. Advertisement of Node Participation for Other Data Planes | |||
10.2. OSPF Flexible Algorithm ASBR Metric Sub-TLV . . . . . . 26 | 12. Advertisement of Link Attributes for Flex-Algorithm | |||
11. Advertisement of Node Participation in a Flex-Algorithm . . . 28 | 13. Calculation of Flexible Algorithm Paths | |||
11.1. Advertisement of Node Participation for Segment | 13.1. Multi-area and Multi-domain Considerations | |||
Routing . . . . . . . . . . . . . . . . . . . . . . . . 28 | 14. Flex-Algorithm and Forwarding Plane | |||
11.2. Advertisement of Node Participation for Other | 14.1. Segment Routing MPLS Forwarding for Flex-Algorithm | |||
Data-planes . . . . . . . . . . . . . . . . . . . . . . 28 | 14.2. SRv6 Forwarding for Flex-Algorithm | |||
12. Advertisement of Link Attributes for Flex-Algorithm . . . . . 29 | 14.3. Other Data Planes' Forwarding for Flex-Algorithm | |||
13. Calculation of Flexible Algorithm Paths . . . . . . . . . . . 30 | 15. Operational Considerations | |||
13.1. Multi-area and Multi-domain Considerations . . . . . . . 31 | 15.1. Inter-area Considerations | |||
14. Flex-Algorithm and Forwarding Plane . . . . . . . . . . . . . 34 | 15.2. Usage of the SRLG Exclude Rule with Flex-Algorithm | |||
14.1. Segment Routing MPLS Forwarding for Flex-Algorithm . . . 34 | 15.3. Max-Metric Consideration | |||
14.2. SRv6 Forwarding for Flex-Algorithm . . . . . . . . . . . 35 | 15.4. Flexible Algorithm Definition and Changes | |||
14.3. Other Data-planes' Forwarding for Flex-Algorithm . . . . 36 | 15.5. Number of Flex-Algorithms | |||
15. Operational Considerations . . . . . . . . . . . . . . . . . 36 | 16. Backward Compatibility | |||
15.1. Inter-area Considerations . . . . . . . . . . . . . . . 36 | 17. Security Considerations | |||
15.2. Usage of SRLG Exclude Rule with Flex-Algorithm . . . . . 37 | 18. IANA Considerations | |||
15.3. Max-metric consideration . . . . . . . . . . . . . . . . 37 | 18.1. IGP IANA Considerations | |||
15.4. FAD Definition and Changes . . . . . . . . . . . . . . . 38 | 18.1.1. IGP Algorithm Types Registry | |||
15.5. Number of Flex-Algorithms . . . . . . . . . . . . . . . 38 | 18.1.2. IGP Metric-Type Registry | |||
16. Backward Compatibility . . . . . . . . . . . . . . . . . . . 38 | 18.2. IGP Flexible Algorithm Definition Flags Registry | |||
17. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | 18.3. IS-IS IANA Considerations | |||
18. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 | 18.3.1. IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV | |||
18.1. IGP IANA Considerations . . . . . . . . . . . . . . . . 39 | Registry | |||
18.1.1. IGP Algorithm Types Registry . . . . . . . . . . . . 39 | ||||
18.1.2. IGP Metric-Type Registry . . . . . . . . . . . . . . 39 | ||||
18.2. Flexible Algorithm Definition Flags Registry . . . . . . 40 | ||||
18.3. IS-IS IANA Considerations . . . . . . . . . . . . . . . 40 | ||||
18.3.1. IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV . . . 40 | ||||
18.3.2. IS-IS Sub-TLVs for TLVs Advertising Prefix | 18.3.2. IS-IS Sub-TLVs for TLVs Advertising Prefix | |||
Reachability . . . . . . . . . . . . . . . . . . . . 41 | Reachability Registry | |||
18.3.3. Sub-Sub-TLVs for Flexible Algorithm Definition | 18.3.3. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition | |||
Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . 41 | Sub-TLV Registry | |||
18.4. OSPF IANA Considerations . . . . . . . . . . . . . . . . 42 | 18.4. OSPF IANA Considerations | |||
18.4.1. OSPF Router Information (RI) TLVs Registry . . . . . 42 | 18.4.1. OSPF Router Information (RI) TLVs Registry | |||
18.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs . . . . . . . . 42 | 18.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs Registry | |||
18.4.3. OSPFv3 Extended-LSA Sub-TLVs . . . . . . . . . . . . 42 | 18.4.3. OSPFv3 Extended-LSA Sub-TLVs Registry | |||
18.4.4. OSPF Flex-Algorithm Prefix Metric Bits . . . . . . . 43 | 18.4.4. OSPF Flex-Algorithm Prefix Metric Bits Registry | |||
18.4.5. OSPFv2 Opaque LSA Option Types . . . . . . . . . . . 43 | 18.4.5. Opaque Link-State Advertisements (LSA) Option Types | |||
18.4.6. OSPFv2 Extended Inter-Area ASBR TLVs . . . . . . . . 44 | Registry | |||
18.4.7. OSPFv2 Inter-Area ASBR Sub-TLVs . . . . . . . . . . 44 | 18.4.6. OSPFv2 Extended Inter-Area ASBR TLVs Registry | |||
18.4.8. OSPF Flexible Algorithm Definition TLV Sub-TLV | 18.4.7. OSPFv2 Extended Inter-Area ASBR Sub-TLVs Registry | |||
Registry . . . . . . . . . . . . . . . . . . . . . . 44 | 18.4.8. OSPF Flexible Algorithm Definition TLV Sub-TLVs | |||
18.4.9. Link Attribute Applications Registry . . . . . . . . 46 | Registry | |||
19. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 46 | 18.4.9. Link Attribute Application Identifiers Registry | |||
20. References . . . . . . . . . . . . . . . . . . . . . . . . . 46 | 19. References | |||
20.1. Normative References . . . . . . . . . . . . . . . . . . 46 | 19.1. Normative References | |||
20.2. Informative References . . . . . . . . . . . . . . . . . 48 | 19.2. Informative References | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 | Acknowledgements | |||
Authors' Addresses | ||||
1. Introduction | 1. Introduction | |||
An IGP-computed path based on the shortest IGP metric is often | An IGP-computed path based on the shortest IGP metric is often | |||
replaced by a traffic-engineered path due to requirements which are | replaced by a traffic-engineered path due to requirements that are | |||
not reflected by the IGP metric. Some networks engineer the IGP | not reflected by the IGP metric. Some networks engineer the IGP | |||
metric assignments in a way that the IGP metric reflects the link | metric assignments in a way that the IGP metric reflects the link | |||
bandwidth or delay. If, for example, the IGP metric reflects the | bandwidth or delay. If, for example, the IGP metric reflects the | |||
bandwidth on the link and user traffic is delay sensitive, the best | bandwidth on the link and user traffic is delay sensitive, the best | |||
IGP path may not reflect the best path from such a user's | IGP path may not reflect the best path from such a user's | |||
perspective. | perspective. | |||
To overcome this limitation, various sorts of traffic engineering | To overcome this limitation, various sorts of Traffic Engineering | |||
have been deployed, including RSVP-TE and SR-TE, in which case the TE | have been deployed, including RSVP-TE and SR-TE, in which case the TE | |||
component is responsible for computing paths based on additional | component is responsible for computing paths based on additional | |||
metrics and/or constraints. Such paths need to be installed in the | metrics and/or constraints. Such paths need to be installed in the | |||
forwarding tables in addition to, or as a replacement for, the | forwarding tables in addition to, or as a replacement for, the | |||
original paths computed by IGPs. Tunnels are often used to represent | original paths computed by IGPs. Tunnels are often used to represent | |||
the engineered paths and mechanisms like the one described in | the engineered paths and mechanisms, like the one described in | |||
[RFC3906] are used to replace the original IGP paths with such tunnel | [RFC3906], and are used to replace the original IGP paths with such | |||
paths. | tunnel paths. | |||
This document specifies a set of extensions to IS-IS, OSPFv2, and | This document specifies a set of extensions to IS-IS, OSPFv2, and | |||
OSPFv3 that enable a router to advertise TLVs that (a) identify | OSPFv3 that enable a router to advertise TLVs that (a) identify a | |||
calculation-type, (b) specify a metric-type, and (c) describe a set | calculation-type, (b) specify a metric-type, and (c) describe a set | |||
of constraints on the topology, that are to be used to compute the | of constraints on the topology that are to be used to compute the | |||
best paths along the constrained topology. A given combination of | best paths along the constrained topology. A given combination of | |||
calculation-type, metric-type, and constraints is known as a | calculation-type, metric-type, and constraints is known as a | |||
"Flexible Algorithm Definition". A router that sends such a set of | "Flexible Algorithm Definition". A router that sends such a set of | |||
TLVs also assigns a Flex-Algorithm value to the specified combination | TLVs also assigns a Flex-Algorithm value to the specified combination | |||
of calculation-type, metric-type, and constraints. | of calculation-type, metric-type, and constraints. | |||
This document also specifies a way for a router to use IGPs to | This document also specifies a way for a router to use IGPs to | |||
associate one or more "Segment Routing with the MPLS Data Plane (SR- | associate one or more Segment Routing with the MPLS Data Plane (SR- | |||
MPLS)" Prefix-SIDs [RFC8660], or "Segment Routing over IPv6 (SRv6)" | MPLS) Prefix-SIDs [RFC8660] or Segment Routing over IPv6 (SRv6) | |||
locators [RFC8986] with a particular Flex-Algorithm. Each such | locators [RFC8986] with a particular Flex-Algorithm. Each such | |||
Prefix-SID or SRv6 locator then represents a path that is computed | Prefix-SID or SRv6 locator then represents a path that is computed | |||
according to the identified Flex-Algorithm. In SRv6 it is the | according to the identified Flex-Algorithm. In SRv6, it is the | |||
locator, not the SID, that holds the binding to the algorithm. | locator, not the Segment Identifier (SID), that holds the binding to | |||
the algorithm. | ||||
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 BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Terminology | 3. Terminology | |||
This section defines terms that are often used in this document. | This section defines terms that are often used in this document. | |||
Flexible Algorithm Definition (FAD) - the set consisting of (a) | Flexible Algorithm Definition (FAD): the set consisting of (a) a | |||
calculation-type, (b) metric-type, and (c) a set of constraints. | calculation-type, (b) a metric-type, and (c) a set of constraints. | |||
Flex-Algorithm - a numeric identifier in the range 128-255 that is | ||||
associated via configuration with the Flexible Algorithm Definition. | ||||
Local Flexible Algorithm Definition - Flexible Algorithm Definition | ||||
defined locally on the node. | ||||
Remote Flexible Algorithm Definition - Flexible Algorithm Definition | Flex-Algorithm: a numeric identifier in the range 128-255 that is | |||
received from other nodes via IGP flooding. | associated via configuration with the Flexible Algorithm | |||
Definition. | ||||
Flexible Algorithm Participation - per data-plane configuration state | Flexible Algorithm Participation: per the data plane configuration | |||
that expresses whether the node is participating in a particular | state that expresses whether the node is participating in a | |||
Flexible Algorithm. Not all routers in a given network need to | particular Flexible Algorithm. Not all routers in a given network | |||
participate in a given Flexible Algorithm. The Flexible Algorithm(s) | need to participate in a given Flexible Algorithm. The Flexible | |||
a given router participates in is determined by configuration. | Algorithm(s) that a given router participates in is determined by | |||
configuration. | ||||
IGP Algorithm - value from the "IGP Algorithm Types" registry defined | IGP Algorithm: value from the IANA "IGP Algorithm Types" registry | |||
under "Interior Gateway Protocol (IGP) Parameters" IANA registry | defined under the "Interior Gateway Protocol (IGP) Parameters" | |||
grouping. IGP Algorithms represents the triplet (calculation-type, | registry group. IGP Algorithms represent the triplet | |||
metric-type, constraints), where the second and third elements of the | (calculation-type, metric-type, and constraints), where the second | |||
triple MAY be unspecified. | and third elements of the triplet MAY be unspecified. | |||
ABR - Area Border Router. In IS-IS terminology it is also known as | ABR: Area Border Router. In IS-IS terminology, it is also known as | |||
L1/L2 router. | the Level 1 (L1) / Level 2 (L2) router. | |||
ASBR - Autonomous System Border Router. | ASBR: Autonomous System Border Router. | |||
4. Flexible Algorithm | 4. Flexible Algorithm | |||
Many possible constraints may be used to compute a path over a | Many possible constraints may be used to compute a path over a | |||
network. Some networks are deployed as multiple planes. A simple | network. Some networks are deployed as multiple planes. A simple | |||
form of constraint may be to use a particular plane. A more | form of constraint may be to use a particular plane. A more | |||
sophisticated form of constraint can include some extended metric as | sophisticated form of constraint can include some extended metric, as | |||
described in [RFC8570]. Constraints which restrict paths to links | described in [RFC8570]. Constraints that restrict paths to links | |||
with specific affinities or avoid links with specific affinities are | with specific affinities or avoid links with specific affinities are | |||
also possible. Combinations of these are also possible. | also possible. Combinations of these are also possible. | |||
To provide maximum flexibility, a mechanism is provided that allows a | To provide maximum flexibility, a mechanism is provided that allows a | |||
router to (a) identify a particular calculation-type and (b) metric- | router to identify a particular calculation-type and metric-type, | |||
type, (c) describe a particular set of constraints, and (d) assign a | describe a particular set of constraints, and assign a numeric | |||
numeric identifier, referred to as Flex-Algorithm, to the combination | identifier, referred to as Flex-Algorithm, to the combination of that | |||
of that calculation-type, metric-type, and those constraints. The | calculation-type, metric-type, and those constraints. The mapping | |||
mapping between the Flex-Algorithm and its meaning is flexible and | between the Flex-Algorithm and its meaning is flexible and defined by | |||
defined by the user. As long as all routers in the domain have a | the user. As long as all routers in the domain have a common | |||
common understanding as to what a particular Flex-Algorithm | understanding as to what a particular Flex-Algorithm represents, the | |||
represents, the resulting routing computation is consistent and | resulting routing computation is consistent and traffic is not | |||
traffic is not subject to any looping. | subject to any looping. | |||
The set consisting of (a) calculation-type, (b) metric-type, and (c) | The set consisting of (a) a calculation-type, (b) a metric-type, and | |||
a set of constraints is referred to as a Flexible Algorithm | (c) a set of constraints is referred to as a Flexible Algorithm | |||
Definition. | Definition. | |||
Flex-Algorithm is a numeric identifier in the range 128-255 that is | The Flex-Algorithm is a numeric identifier in the range 128-255 that | |||
associated via configuration with the Flexible Algorithm Definition. | is associated via configuration with the Flexible Algorithm | |||
Definition. | ||||
The IANA "IGP Algorithm Types" registry defines the set of values for | The IANA "IGP Algorithm Types" registry defines the set of values for | |||
IGP Algorithms. The following values area allocated by IANA from | IGP Algorithms. The following values are allocated by IANA from this | |||
this registry for Flex-Algorithms: | registry for Flex-Algorithms: | |||
128-255 - Flex-Algorithms | 128-255 - Flex-Algorithms | |||
5. Flexible Algorithm Definition Advertisement | 5. Flexible Algorithm Definition Advertisement | |||
To guarantee loop-free forwarding for paths computed for a particular | To guarantee loop-free forwarding for paths computed for a particular | |||
Flex-Algorithm, all routers that (a) are configured to participate in | Flex-Algorithm, all routers that (a) are configured to participate in | |||
a particular Flex-Algorithm, and (b) are in the same Flex-Algorithm | a particular Flex-Algorithm and (b) are in the same Flex-Algorithm | |||
definition advertisement scope MUST agree on the definition of the | Definition advertisement scope MUST agree on the definition of the | |||
Flex-Algorithm. The following procedures ensure this condition is | Flex-Algorithm. The following procedures ensure this condition is | |||
fulfilled. | fulfilled. | |||
5.1. IS-IS Flexible Algorithm Definition Sub-TLV | 5.1. IS-IS Flexible Algorithm Definition Sub-TLV | |||
The IS-IS Flexible Algorithm Definition Sub-TLV (FAD Sub-TLV) is used | The IS-IS Flexible Algorithm Definition (FAD) sub-TLV is used to | |||
to advertise the definition of the Flex-Algorithm. | advertise the definition of the Flex-Algorithm. | |||
The IS-IS FAD Sub-TLV is advertised as a Sub-TLV of the IS-IS Router | The IS-IS FAD sub-TLV is advertised as a sub-TLV of the IS-IS Router | |||
Capability TLV-242 that is defined in [RFC7981]. | CAPABILITY TLV-242, which is defined in [RFC7981]. | |||
IS-IS FAD Sub-TLV has the following format: | The IS-IS FAD 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 |Flex-Algorithm | Metric-Type | | | Type | Length |Flex-Algorithm | Metric-Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Calc-Type | Priority | | | Calc-Type | Priority | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs | | | Sub-TLVs | | |||
+ + | + + | |||
| ... | | | ... | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: 26 | ||||
Type: 26 | Length: variable number of octets, dependent on the included sub- | |||
TLVs. | ||||
Length: variable number of octets, dependent on the included Sub- | ||||
TLVs | ||||
Flex-Algorithm: Flexible Algorithm number. Single octet value | Flex-Algorithm: Flexible Algorithm number. Single octet value | |||
between 128 and 255 inclusive. | between 128 and 255 inclusive. | |||
Metric-Type: Type of metric from the "IGP Metric-Type Registry" | Metric-Type: type of metric from the IANA "IGP Metric-Type" | |||
(Section 18.1.2) to be used during the calculation. The following | registry (Section 18.1.2) to be used during the calculation. | |||
values are defined: | The following values are defined: | |||
0: IGP Metric | 0: IGP Metric | |||
1: Min Unidirectional Link Delay as defined in [RFC8570], | 1: Min Unidirectional Link Delay, as defined in Section 4.2 of | |||
section 4.2, encoded as application specific link attribute as | [RFC8570], encoded as an application-specific link | |||
specified in [RFC8919] and Section 12 of this document. | attribute, as specified in [RFC8919] and Section 12 of this | |||
document. | ||||
2: Traffic Engineering Default Metric as defined in [RFC5305], | 2: Traffic Engineering Default Metric, as defined in | |||
section 3.7, encoded as application specific link attribute as | Section 3.7 of [RFC5305], encoded as an application-specific | |||
specified in [RFC8919] and Section 12 of this document. | link attribute, as specified in [RFC8919] and Section 12 of | |||
this document. | ||||
Calc-Type: calculation-type, value from 0 to 127 inclusive from | Calc-Type: calculation-type. Value from 0-127 inclusive from the | |||
the "IGP Algorithm Types" registry defined under "Interior Gateway | IANA "IGP Algorithm Types" registry defined under the "Interior | |||
Protocol (IGP) Parameters" IANA registries. IGP algorithms in the | Gateway Protocol (IGP) Parameters" registry. IGP Algorithms in | |||
range of 0-127 have a defined triplet (calculation-type, metric- | the range of 0-127 have a defined triplet (calculation-type, | |||
type, constraints). When used to specify the calculation-type in | metric-type, constraints). When used to specify the | |||
the FAD Sub-TLV, only the calculation-type defined for the | calculation-type in the FAD sub-TLV, only the calculation-type | |||
specified IGP Algorithm is used. The Metric/Constraints MUST NOT | defined for the specified IGP Algorithm is used. The Metric/ | |||
be inherited. If the required calculation-type is Shortest Path | Constraints MUST NOT be inherited. If the required | |||
First, the value 0 MUST appear in this field. | calculation-type is Shortest Path First, the value 0 MUST | |||
appear in this field. | ||||
Priority: Value between 0 and 255 inclusive that specifies the | Priority: value between 0 and 255 inclusive that specifies the | |||
priority of the advertisement. Numerically greater values are | priority of the advertisement. Numerically greater values are | |||
preferred. Usage fo the priority is described in Section 5.3. | preferred. Usage of the priority is described in Section 5.3. | |||
Sub-TLVs - optional sub-TLVs. | Sub-TLVs: optional sub-TLVs. | |||
The IS-IS FAD Sub-TLV MAY be advertised in an LSP of any number. IS- | The IS-IS FAD sub-TLV MAY be advertised in a Label Switched Path | |||
IS router MAY advertise more than one IS-IS FAD Sub-TLV for a given | (LSP) of any number. The IS-IS router MAY advertise more than one | |||
Flexible Algorithm (see Section 6). | IS-IS FAD sub-TLV for a given Flexible Algorithm (see Section 6). | |||
The IS-IS FAD Sub-TLV has an area scope. The Router Capability TLV | The IS-IS FAD sub-TLV has an area/level scope. The Router Capability | |||
in which the FAD Sub-TLV is present MUST have the S-bit clear. | TLV in which the FAD sub-TLV is present MUST have the S bit clear. | |||
An IS-IS L1/L2 router MAY be configured to re-generate the winning | An IS-IS L1/L2 router MAY be configured to regenerate the winning FAD | |||
FAD from level 2, without any modification to it, to the level 1 | from level 2, without any modification to it, to the level 1 area. | |||
area. The re-generation of the FAD Sub-TLV from level 2 to level 1 | The regeneration of the FAD sub-TLV from level 2 to level 1 is | |||
is determined by the L1/L2 router, not by the originator of the FAD | determined by the L1/L2 router, not by the originator of the FAD | |||
advertisement in the level 2. In such a case, the re-generated FAD | advertisement in level 2. In such a case, the regenerated FAD sub- | |||
Sub-TLV will be advertised in the level 1 Router Capability TLV | TLV will be advertised in the level 1 Router Capability TLV | |||
originated by the L1/L2 router. | originated by the L1/L2 router. | |||
An L1/L2 router MUST NOT re-generate any FAD Sub-TLV from level 1 to | An L1/L2 router MUST NOT regenerate any FAD sub-TLV from level 1 to | |||
level 2. | level 2. | |||
5.2. OSPF Flexible Algorithm Definition TLV | 5.2. OSPF Flexible Algorithm Definition TLV | |||
The OSPF FAD TLV is advertised as a top-level TLV of the Router | The OSPF FAD TLV is advertised as a top-level TLV of the Router | |||
Information (RI) LSA that is defined in [RFC7770]. | Information (RI) Link State Advertisement (LSA), which is defined in | |||
[RFC7770]. | ||||
The OSPF FAD TLV has the following format: | The OSPF FAD 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Flex-Algorithm | Metric-Type | Calc-Type | Priority | | |Flex-Algorithm | Metric-Type | Calc-Type | Priority | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs | | | Sub-TLVs | | |||
+ + | + + | |||
| ... | | | ... | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: 16 | ||||
Type: 16 | Length: variable number of octets, dependent on the included sub- | |||
TLVs. | ||||
Length: variable number of octets, dependent on the included Sub- | ||||
TLVs | ||||
Flex-Algorithm: Flexible Algorithm number. Single octet value | Flex-Algorithm: Flexible Algorithm number. Single octet value | |||
between 128 and 255 inclusive. | between 128 and 255 inclusive. | |||
Metric-Type: Type of metric from the "IGP Metric-Type Registry" | Metric-Type: type of metric from the IANA "IGP Metric-Type" | |||
(Section 18.1.2) to be used during the calculation. The following | registry (Section 18.1.2) to be used during the calculation. | |||
values are defined: | The following values are defined: | |||
0: IGP Metric | 0: IGP Metric | |||
1: Min Unidirectional Link Delay as defined in [RFC7471], | 1: Min Unidirectional Link Delay, as defined in Section 4.2 of | |||
section 4.2, encoded as application specific link attribute as | [RFC7471], encoded as an application-specific link | |||
specified in [RFC8920] and Section 12 of this document. | attribute, as specified in [RFC8920] and Section 12 of this | |||
document. | ||||
2: Traffic Engineering metric as defined in [RFC3630], section | 2: Traffic Engineering Metric, as defined in Section 2.5.5 of | |||
2.5.5, encoded as application specific link attribute as | [RFC3630], encoded as an application-specific link | |||
specified in [RFC8920] and Section 12 of this document. | attribute, as specified in [RFC8920] and Section 12 of this | |||
document. | ||||
Calc-Type: as described in Section 5.1 | Calc-Type: as described in Section 5.1. | |||
Priority: as described in Section 5.1 | Priority: as described in Section 5.1. | |||
Sub-TLVs - optional sub-TLVs. | Sub-TLVs: optional sub-TLVs. | |||
When multiple OSPF FAD TLVs, for the same Flexible Algorithm, are | When multiple OSPF FAD TLVs, for the same Flexible Algorithm, are | |||
received from a given router, the receiver MUST use the first | received from a given router, the receiver MUST use the first | |||
occurrence of the TLV in the Router Information LSA. If the OSPF FAD | occurrence of the TLV in the RI LSA. If the OSPF FAD TLV, for the | |||
TLV, for the same Flex-Algorithm, appears in multiple Router | same Flex-Algorithm, appears in multiple RI LSAs that have different | |||
Information LSAs that have different flooding scopes, the OSPF FAD | flooding scopes, the OSPF FAD TLV in the RI LSA with the area-scoped | |||
TLV in the Router Information LSA with the area-scoped flooding scope | flooding scope MUST be used. If the OSPF FAD TLV, for the same | |||
MUST be used. If the OSPF FAD TLV, for the same algorithm, appears | algorithm, appears in multiple RI LSAs that have the same flooding | |||
in multiple Router Information LSAs that have the same flooding | scope, the OSPF FAD TLV in the RI LSA with the numerically smallest | |||
scope, the OSPF FAD TLV in the Router Information (RI) LSA with the | Instance ID MUST be used and subsequent instances of the OSPF FAD TLV | |||
numerically smallest Instance ID MUST be used and subsequent | MUST be ignored. | |||
instances of the OSPF FAD TLV MUST be ignored. | ||||
The RI LSA can be advertised at any of the defined opaque flooding | The RI LSA can be advertised at any of the defined opaque flooding | |||
scopes (link, area, or Autonomous System (AS)). For the purpose of | scopes (link, area, or Autonomous System (AS)). For the purpose of | |||
OSPF FAD TLV advertisement, area-scoped flooding is REQUIRED. The | OSPF FAD TLV advertisement, area-scoped flooding is REQUIRED. The AS | |||
Autonomous System flooding scope SHOULD NOT be used unless local | flooding scope SHOULD NOT be used unless local configuration policy | |||
configuration policy on the originating router indicates domain wide | on the originating router indicates domain-wide flooding. | |||
flooding. | ||||
5.3. Common Handling of Flexible Algorithm Definition TLV | 5.3. Common Handling of the Flexible Algorithm Definition TLV | |||
This section describes the protocol-independent handling of the FAD | This section describes the protocol-independent handling of the FAD | |||
TLV (OSPF) or FAD Sub-TLV (IS-IS). We will refer to it as FAD TLV in | TLV (OSPF) or FAD sub-TLV (IS-IS). We will refer to it as FAD TLV in | |||
this section, even though in the case of IS-IS it is a Sub-TLV. | this section, even though, in the case of IS-IS, it is a sub-TLV. | |||
The value of the Flex-Algorithm MUST be between 128 and 255 | The value of the Flex-Algorithm MUST be between 128 and 255 | |||
inclusive. If it is not, the FAD TLV MUST be ignored. | inclusive. If it is not, the FAD TLV MUST be ignored. | |||
Only a subset of the routers participating in the particular Flex- | Only a subset of the routers participating in the particular Flex- | |||
Algorithm need to advertise the definition of the Flex-Algorithm. | Algorithm need to advertise the definition of the Flex-Algorithm. | |||
Every router, that is configured to participate in a particular Flex- | Every router that is configured to participate in a particular Flex- | |||
Algorithm, MUST select the Flex-Algorithm definition based on the | Algorithm MUST select the Flex-Algorithm Definition based on the | |||
following ordered rules. This allows for the consistent Flex- | following ordered rules. This allows for the consistent Flex- | |||
Algorithm definition selection in cases where different routers | Algorithm Definition selection in cases where different routers | |||
advertise different definitions for a given Flex-Algorithm: | advertise different definitions for a given Flex-Algorithm: | |||
1. From the advertisements of the FAD in the area (including both | 1. From the advertisements of the FAD in the area (including both | |||
locally generated advertisements and received advertisements) | locally generated advertisements and received advertisements), | |||
select the one(s) with the numerically greatest priority value. | select the one(s) with the numerically greatest priority value. | |||
2. If there are multiple advertisements of the FAD with the same | 2. If there are multiple advertisements of the FAD with the same | |||
numerically greatest priority, select the one that is originated | numerically greatest priority, select the one that is originated | |||
from the router with the numerically greatest System-ID, in the | from the router with the numerically greatest System-ID, in the | |||
case of IS-IS, or Router ID, in the case of OSPFv2 and OSPFv3. | case of IS-IS, or Router ID, in the case of OSPFv2 and OSPFv3. | |||
For IS-IS, the System-ID is described in [ISO10589]. For OSPFv2 | For IS-IS, the System-ID is described in [ISO10589]. For OSPFv2 | |||
and OSPFv3, standard Router ID is described in [RFC2328] and | and OSPFv3, the standard Router ID is described in [RFC2328] and | |||
[RFC5340] respectively. | [RFC5340], respectively. | |||
The FAD selected according to these rules is also known as the | The FAD selected according to these rules is also known as the | |||
"winning FAD". | "winning FAD". | |||
A router that is not configured to participate in a particular Flex- | A router that is not configured to participate in a particular Flex- | |||
Algorithm MUST ignore FAD Sub-TLVs advertisements for such Flex- | Algorithm MUST ignore FAD sub-TLV advertisements for such Flex- | |||
Algorithm. | Algorithm. | |||
A router that is not participating in a particular Flex-Algorithm MAY | A router that is not participating in a particular Flex-Algorithm MAY | |||
advertise FAD for such Flex-Algorithm. Receiving routers MUST | advertise the FAD for such Flex-Algorithm. Receiving routers MUST | |||
consider a received FAD advertisement regardless of the Flex- | consider a received FAD advertisement regardless of the Flex- | |||
Algorithm participation of that FAD advertisement's originator. | Algorithm participation of that FAD advertisement's originator. | |||
Any change in the Flex-Algorithm definition may result in temporary | Any change in the Flex-Algorithm Definition may result in a temporary | |||
disruption of traffic that is forwarded based on such Flex-Algorithm | disruption of traffic that is forwarded based on such Flex-Algorithm | |||
paths. The impact is similar to any other event that requires | paths. The impact is similar to any other event that requires | |||
network-wide convergence. | network-wide convergence. | |||
If a node is configured to participate in a particular Flexible | If a node is configured to participate in a particular Flexible | |||
Algorithm, but there is no valid Flex-Algorithm definition available | Algorithm, but there is no valid Flex-Algorithm Definition available | |||
for it, or the selected Flex-Algorithm definition includes | for it or the selected Flex-Algorithm Definition includes | |||
calculation-type, metric-type, constraint, flag, or Sub-TLV that is | calculation-type, metric-type, constraint, flag, or sub-TLV that is | |||
not supported by the node, it MUST stop participating in such | not supported by the node, it MUST stop participating in such | |||
Flexible Algorithm. That implies that it MUST NOT announce | Flexible Algorithm. That implies that it MUST NOT announce | |||
participation for such Flexible Algorithm as specified in Section 11 | participation for such Flexible Algorithm, as specified in | |||
and it MUST remove any forwarding state associated with it. | Section 11, and it MUST remove any forwarding state associated with | |||
it. | ||||
Flex-Algorithm definition is topology independent. It applies to all | The Flex-Algorithm Definition is topology independent. It applies to | |||
topologies that a router participates in. | all topologies that a router participates in. | |||
6. Sub-TLVs of IS-IS FAD Sub-TLV | 6. Sub-TLVs of IS-IS FAD Sub-TLV | |||
One of the limitations of IS-IS [ISO10589] is that the length of a | One of the limitations of IS-IS [ISO10589] is that the length of a | |||
TLV/sub-TLV is limited to a maximum of 255 octets. For the FAD sub- | TLV/sub-TLV is limited to a maximum of 255 octets. For the FAD sub- | |||
TLV, there are a number of sub-sub-TLVs (defined below) which are | TLV, there are a number of sub-sub-TLVs (defined below) that are | |||
supported. For a given Flex-Algorithm, it is possible that the total | supported. For a given Flex-Algorithm, it is possible that the total | |||
number of octets required to completely define a FAD exceeds the | number of octets required to completely define a FAD exceeds the | |||
maximum length supported by a single FAD sub-TLV. In such cases, the | maximum length supported by a single FAD sub-TLV. In such cases, the | |||
FAD MAY be split into multiple such sub-TLVs and the content of the | FAD MAY be split into multiple such sub-TLVs, and the content of the | |||
multiple FAD sub-TLVs combined to provide a complete FAD for the | multiple FAD sub-TLVs are combined to provide a complete FAD for the | |||
Flex-Algorithm. In such a case, the fixed portion of the FAD (see | Flex-Algorithm. In such a case, the fixed portion of the FAD (see | |||
Section 5.1) MUST be identical in all FAD sub-TLVs for a given Flex- | Section 5.1) MUST be identical in all FAD sub-TLVs for a given Flex- | |||
Algorithm from a given IS. In case the fixed portion of such FAD | Algorithm from a given IS. In case the fixed portion of such FAD | |||
Sub-TLVs differ, the values in the fixed portion in the FAD sub-TLV | sub-TLVs differ, the values in the fixed portion in the FAD sub-TLV | |||
in the first occurrence in the lowest numbered LSP from a given IS | in the first occurrence in the lowest-numbered LSP from a given IS | |||
MUST be used. | MUST be used. | |||
Any specification that introduces a new IS-IS FAD sub-sub-TLV MUST | Any specification that introduces a new IS-IS FAD sub-sub-TLV MUST | |||
specify whether the FAD sub-TLV may appear multiple times in the set | specify whether the FAD sub-TLV may appear multiple times in the set | |||
of FAD sub-TLVs for a given Flex-Algorithm from a given IS and how to | of FAD sub-TLVs for a given Flex-Algorithm from a given IS and how to | |||
handle them if multiple are allowed. | handle them if multiple are allowed. | |||
6.1. IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV | 6.1. IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV | |||
The Flexible Algorithm definition can specify 'colors' that are used | The Flexible Algorithm Definition can specify "colors" that are used | |||
by the operator to exclude links during the Flex-Algorithm path | by the operator to exclude links during the Flex-Algorithm path | |||
computation. | computation. | |||
The IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV is used to | The IS-IS Flexible Algorithm Exclude Admin Group (FAEAG) sub-TLV is | |||
advertise the exclude rule that is used during the Flex-Algorithm | used to advertise the exclude rule that is used during the Flex- | |||
path calculation as specified in Section 13. | Algorithm path calculation, as specified in Section 13. | |||
The IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV (FAEAG Sub- | The IS-IS FAEAG sub-TLV is a sub-TLV of the IS-IS FAD sub-TLV. It | |||
TLV) is a Sub-TLV of the IS-IS FAD Sub-TLV. It has the following | 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 1 | where: | |||
Type: 1 | ||||
Length: variable, dependent on the size of the Extended Admin | Length: variable, dependent on the size of the Extended Admin | |||
Group. MUST be a multiple of 4 octets. | Group. MUST be a multiple of 4 octets. | |||
Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group, as | |||
defined in [RFC7308]. | defined in [RFC7308]. | |||
The IS-IS FAEAG Sub-TLV MUST NOT appear more than once in a single | The IS-IS FAEAG sub-TLV MUST NOT appear more than once in a single | |||
IS-IS FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub- | IS-IS FAD sub-TLV. If it appears more than once, the IS-IS FAD sub- | |||
TLV MUST be ignored by the receiver. | TLV MUST be ignored by the receiver. | |||
The IS-IS FAEAG Sub-TLV MUST NOT appear more than once in the set of | The IS-IS FAEAG sub-TLV MUST NOT appear more than once in the set of | |||
FAD sub-TLVs for a given Flex-Algorithm from a given IS. If it | FAD sub-TLVs for a given Flex-Algorithm from a given IS. If it | |||
appears more than once in such a set, the IS-IS FAEAG Sub-TLV in the | appears more than once in such a set, the IS-IS FAEAG sub-TLV in the | |||
first occurrence in the lowest numbered LSP from a given IS MUST be | first occurrence in the lowest-numbered LSP from a given IS MUST be | |||
used and any other occurrences MUST be ignored. | used, and any other occurrences MUST be ignored. | |||
6.2. IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV | 6.2. IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV | |||
The Flexible Algorithm definition can specify 'colors' that are used | The Flexible Algorithm Definition can specify "colors" that are used | |||
by the operator to include links during the Flex-Algorithm path | by the operator to include links during the Flex-Algorithm path | |||
computation. | computation. | |||
The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV is used | The IS-IS Flexible Algorithm Include-Any Admin Group sub-TLV is used | |||
to advertise the include-any rule that is used during the Flex- | to advertise the include-any rule that is used during the Flex- | |||
Algorithm path calculation as specified in Section 13. | Algorithm path calculation, as specified in Section 13. | |||
The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV is a | The IS-IS Flexible Algorithm Include-Any Admin Group sub-TLV is a | |||
Sub-TLV of the IS-IS FAD Sub-TLV. It has the following format: | sub-TLV of the IS-IS FAD sub-TLV. It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 2 | where: | |||
Type: 2 | ||||
Length: variable, dependent on the size of the Extended Admin | Length: variable, dependent on the size of the Extended Admin | |||
Group. MUST be a multiple of 4 octets. | Group. MUST be a multiple of 4 octets. | |||
Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group, as | |||
defined in [RFC7308]. | defined in [RFC7308]. | |||
The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV MUST NOT | The IS-IS Flexible Algorithm Include-Any Admin Group sub-TLV MUST NOT | |||
appear more than once in a single IS-IS FAD Sub-TLV. If it appears | appear more than once in a single IS-IS FAD sub-TLV. If it appears | |||
more than once, the IS-IS FAD Sub-TLV MUST be ignored by the | more than once, the IS-IS FAD sub-TLV MUST be ignored by the | |||
receiver. | receiver. | |||
The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV MUST NOT | The IS-IS Flexible Algorithm Include-Any Admin Group sub-TLV MUST NOT | |||
appear more than once in the set of FAD sub-TLVs for a given Flex- | appear more than once in the set of FAD sub-TLVs for a given Flex- | |||
Algorithm from a given IS. If it appears more than once in such a | Algorithm from a given IS. If it appears more than once in such a | |||
set, the IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV in | set, the IS-IS Flexible Algorithm Include-Any Admin Group sub-TLV in | |||
the first occurrence in the lowest numbered LSP from a given IS MUST | the first occurrence in the lowest-numbered LSP from a given IS MUST | |||
be used and any other occurrences MUST be ignored. | be used, and any other occurrences MUST be ignored. | |||
6.3. IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV | 6.3. IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV | |||
The Flexible Algorithm definition can specify 'colors' that are used | The Flexible Algorithm Definition can specify "colors" that are used | |||
by the operator to include links during the Flex-Algorithm path | by the operator to include links during the Flex-Algorithm path | |||
computation. | computation. | |||
The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV is used | The IS-IS Flexible Algorithm Include-All Admin Group sub-TLV is used | |||
to advertise the include-all rule that is used during the Flex- | to advertise the include-all rule that is used during the Flex- | |||
Algorithm path calculation as specified in Section 13. | Algorithm path calculation, as specified in Section 13. | |||
The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV is is a | The IS-IS Flexible Algorithm Include-All Admin Group sub-TLV is a | |||
Sub-TLV of the IS-IS FAD Sub-TLV. It has the following format: | sub-TLV of the IS-IS FAD sub-TLV. It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 3 | where: | |||
Type: 3 | ||||
Length: variable, dependent on the size of the Extended Admin | Length: variable, dependent on the size of the Extended Admin | |||
Group. MUST be a multiple of 4 octets. | Group. MUST be a multiple of 4 octets. | |||
Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group, as | |||
defined in [RFC7308]. | defined in [RFC7308]. | |||
The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV MUST NOT | The IS-IS Flexible Algorithm Include-All Admin Group sub-TLV MUST NOT | |||
appear more than once in a single IS-IS FAD Sub-TLV. If it appears | appear more than once in a single IS-IS FAD sub-TLV. If it appears | |||
more than once, the IS-IS FAD Sub-TLV MUST be ignored by the | more than once, the IS-IS FAD sub-TLV MUST be ignored by the | |||
receiver. | receiver. | |||
The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV MUST NOT | The IS-IS Flexible Algorithm Include-All Admin Group sub-TLV MUST NOT | |||
appear more than once in the set of FAD sub-TLVs for a given Flex- | appear more than once in the set of FAD sub-TLVs for a given Flex- | |||
Algorithm from a given IS. If it appears more than once in such a | Algorithm from a given IS. If it appears more than once in such a | |||
set, the IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV in | set, the IS-IS Flexible Algorithm Include-All Admin Group sub-TLV in | |||
the first occurrence in the lowest numbered LSP from a given IS MUST | the first occurrence in the lowest-numbered LSP from a given IS MUST | |||
be used and any other occurrences MUST be ignored. | be used, and any other occurrences MUST be ignored. | |||
6.4. IS-IS Flexible Algorithm Definition Flags Sub-TLV | 6.4. IS-IS Flexible Algorithm Definition Flags Sub-TLV | |||
The IS-IS Flexible Algorithm Definition Flags Sub-TLV (FADF Sub-TLV) | The IS-IS Flexible Algorithm Definition Flags (FADF) sub-TLV is a | |||
is a Sub-TLV of the IS-IS FAD Sub-TLV. It has the following format: | sub-TLV of the IS-IS FAD sub-TLV. It has the following format: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | | | Flags | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 4 | where: | |||
Type: 4 | ||||
Length: variable, number of octets of the Flags field | Length: variable, number of octets of the Flags field. | |||
Flags: | Flags: | |||
0 1 2 3 4 5 6 7... | ||||
+-+-+-+-+-+-+-+-+... | ||||
|M| | | ... | ||||
+-+-+-+-+-+-+-+-+... | ||||
0 1 2 3 4 5 6 7... | M-flag: when set, the Flex-Algorithm-specific prefix metric | |||
+-+-+-+-+-+-+-+-+... | MUST be used for inter-area and external prefix calculation. | |||
|M| | | ... | This flag is not applicable to prefixes advertised as SRv6 | |||
+-+-+-+-+-+-+-+-+... | locators. | |||
M-flag: when set, the Flex-Algorithm specific prefix metric | ||||
MUST be used for inter-area and external prefix calculation. | ||||
This flag is not applicable to prefixes advertised as SRv6 | ||||
locators. | ||||
A new IANA "IGP Flexible Algorithm Definition Flags Registry" is | A new IANA "IGP Flexible Algorithm Definition Flags" registry is | |||
defined for allocation of bits in the Flags field - see Section 18.2. | defined for allocation of bits in the Flags field -- see | |||
Section 18.2. | ||||
Bits are defined/sent starting with Bit 0 defined above. Additional | Bits are defined/sent starting with bit 0 defined above. Additional | |||
bit definitions that may be defined in the future SHOULD be assigned | bit definitions that may be defined in the future SHOULD be assigned | |||
in ascending bit order so as to minimize the number of bits that will | in ascending bit order to minimize the number of bits that will need | |||
need to be transmitted. | to be transmitted. | |||
Undefined bits MUST be transmitted as 0. | Undefined bits MUST be transmitted as 0. | |||
Bits that are not transmitted MUST be treated as if they are set to 0 | Bits that are not transmitted MUST be treated as if they are set to 0 | |||
on receipt. | on receipt. | |||
The IS-IS FADF Sub-TLV MUST NOT appear more than once in a single IS- | The IS-IS FADF sub-TLV MUST NOT appear more than once in a single IS- | |||
IS FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV | IS FAD sub-TLV. If it appears more than once, the IS-IS FAD sub-TLV | |||
MUST be ignored by the receiver. | MUST be ignored by the receiver. | |||
The IS-IS FADF Sub-TLV MUST NOT appear more than once in the set of | The IS-IS FADF sub-TLV MUST NOT appear more than once in the set of | |||
FAD sub-TLVs for a given Flex-Algorithm from a given IS. If it | FAD sub-TLVs for a given Flex-Algorithm from a given IS. If it | |||
appears more than once in such a set, the IS-IS FADF Sub-TLV in the | appears more than once in such a set, the IS-IS FADF sub-TLV in the | |||
first occurrence in the lowest numbered LSP from a given IS MUST be | first occurrence in the lowest-numbered LSP from a given IS MUST be | |||
used and any other occurrences MUST be ignored. | used, and any other occurrences MUST be ignored. | |||
If the IS-IS FADF Sub-TLV is not present inside the IS-IS FAD Sub- | If the IS-IS FADF sub-TLV is not present inside the IS-IS FAD sub- | |||
TLV, all the bits are assumed to be set to 0. | TLV, all the bits are assumed to be set to 0. | |||
If a node is configured to participate in a particular Flexible | If a node is configured to participate in a particular Flexible | |||
Algorithm, but the selected Flex-Algorithm definition includes a bit | Algorithm, but the selected Flex-Algorithm Definition includes a bit | |||
in the IS-IS FADF Sub-TLV that is not supported by the node, it MUST | in the IS-IS FADF sub-TLV that is not supported by the node, it MUST | |||
stop participating in such Flexible Algorithm. | stop participating in such Flexible Algorithm. | |||
New flag bits may be defined in the future. Implementations MUST | New flag bits may be defined in the future. Implementations MUST | |||
check all advertised flag bits in the received IS-IS FADF Sub-TLV - | check all advertised flag bits in the received IS-IS FADF sub-TLV -- | |||
not just the subset currently defined. | not just the subset currently defined. | |||
M-flag MUST not be used when calculating prefix reachability for SRv6 | The M-flag MUST not be used when calculating prefix reachability for | |||
Locator prefix. | the SRv6 Locator prefix. | |||
6.5. IS-IS Flexible Algorithm Exclude SRLG Sub-TLV | 6.5. IS-IS Flexible Algorithm Exclude SRLG Sub-TLV | |||
The Flexible Algorithm definition can specify Shared Risk Link Groups | The Flexible Algorithm Definition can specify Shared Risk Link Groups | |||
(SRLGs) that the operator wants to exclude during the Flex-Algorithm | (SRLGs) that the operator wants to exclude during the Flex-Algorithm | |||
path computation. | path computation. | |||
The IS-IS Flexible Algorithm Exclude SRLG Sub-TLV (FAESRLG) is used | The IS-IS Flexible Algorithm Exclude SRLG (FAESRLG) sub-TLV is used | |||
to advertise the exclude rule that is used during the Flex-Algorithm | to advertise the exclude rule that is used during the Flex-Algorithm | |||
path calculation as specified in Section 13. | path calculation, as specified in Section 13. | |||
The IS-IS FAESRLG Sub-TLV is a Sub-TLV of the IS-IS FAD Sub-TLV. It | The IS-IS FAESRLG sub-TLV is a sub-TLV of the IS-IS FAD sub-TLV. It | |||
has the following format: | has the following format: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 5 | where: | |||
Type: 5 | ||||
Length: variable, dependent on number of SRLG values. MUST be a | Length: variable, dependent on number of SRLG values. MUST be a | |||
multiple of 4 octets. | multiple of 4 octets. | |||
Shared Risk Link Group Value: SRLG value as defined in [RFC5307]. | Shared Risk Link Group Value: SRLG value, as defined in | |||
[RFC5307]. | ||||
The IS-IS FAESRLG Sub-TLV MUST NOT appear more than once in a single | The IS-IS FAESRLG sub-TLV MUST NOT appear more than once in a single | |||
IS-IS FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub- | IS-IS FAD sub-TLV. If it appears more than once, the IS-IS FAD sub- | |||
TLV MUST be ignored by the receiver. | TLV MUST be ignored by the receiver. | |||
The IS-IS FAESRLG Sub-TLV MAY appear more than once in the set of FAD | The IS-IS FAESRLG sub-TLV MAY appear more than once in the set of FAD | |||
sub-TLVs for a given Flex-Algorithm from a given IS. This may be | sub-TLVs for a given Flex-Algorithm from a given IS. This may be | |||
necessary in cases where the total number of SRLG values which are | necessary in cases where the total number of SRLG values that are | |||
specified cause the FAD sub-TLV to exceed the maximum length of a | specified cause the FAD sub-TLV to exceed the maximum length of a | |||
single FAD sub-TLV. In such a case the receiver MUST use the union | single FAD sub-TLV. In such a case, the receiver MUST use the union | |||
of all values across all IS-IS FAESRLG Sub-TLVs from such set. | of all values across all IS-IS FAESRLG sub-TLVs from such set. | |||
7. Sub-TLVs of OSPF FAD TLV | 7. Sub-TLVs of the OSPF FAD TLV | |||
7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV | 7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV | |||
The Flexible Algorithm Exclude Admin Group Sub-TLV (FAEAG Sub-TLV) is | The OSPF Flexible Algorithm Exclude Admin Group (FAEAG) sub-TLV is a | |||
a Sub-TLV of the OSPF FAD TLV. Its usage is described in | sub-TLV of the OSPF FAD TLV. Its usage is described in Section 6.1. | |||
Section 6.1. It has the following format: | It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 1 | where: | |||
Type: 1 | ||||
Length: variable, dependent on the size of the Extended Admin | Length: variable, dependent on the size of the Extended Admin | |||
Group. MUST be a multiple of 4 octets. | Group. MUST be a multiple of 4 octets. | |||
Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group, as | |||
defined in [RFC7308]. | defined in [RFC7308]. | |||
The OSPF FAEAG Sub-TLV MUST NOT appear more than once in an OSPF FAD | The OSPF FAEAG sub-TLV MUST NOT appear more than once in an OSPF FAD | |||
TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored | TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored | |||
by the receiver. | by the receiver. | |||
7.2. OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV | 7.2. OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV | |||
The OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV is a Sub- | The OSPF Flexible Algorithm Include-Any Admin Group sub-TLV is a sub- | |||
TLV of the OSPF FAD TLV. The usage of this Sub-TLVs is described in | TLV of the OSPF FAD TLV. The usage of this sub-TLV is described in | |||
Section 6.2. It has the following format: | Section 6.2. It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 2 | where: | |||
Type: 2 | ||||
Length: variable, dependent on the size of the Extended Admin | Length: variable, dependent on the size of the Extended Admin | |||
Group. MUST be a multiple of 4 octets. | Group. MUST be a multiple of 4 octets. | |||
Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group, as | |||
defined in [RFC7308]. | defined in [RFC7308]. | |||
The OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV MUST NOT | The OSPF Flexible Algorithm Include-Any Admin Group sub-TLV MUST NOT | |||
appear more than once in an OSPF FAD TLV. If it appears more than | appear more than once in an OSPF FAD TLV. If it appears more than | |||
once, the OSPF FAD TLV MUST be ignored by the receiver. | once, the OSPF FAD TLV MUST be ignored by the receiver. | |||
7.3. OSPF Flexible Algorithm Include-All Admin Group Sub-TLV | 7.3. OSPF Flexible Algorithm Include-All Admin Group Sub-TLV | |||
The OSPF Flexible Algorithm Include-All Admin Group Sub-TLV is a Sub- | The OSPF Flexible Algorithm Include-All Admin Group sub-TLV is a sub- | |||
TLV of the OSPF FAD TLV. The usage of this Sub-TLVs is described in | TLV of the OSPF FAD TLV. The usage of this sub-TLV is described in | |||
Section 6.3. It has the following format: | Section 6.3. It 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 3 | where: | |||
Type: 3 | ||||
Length: variable, dependent on the size of the Extended Admin | Length: variable, dependent on the size of the Extended Admin | |||
Group. MUST be a multiple of 4 octets. | Group. MUST be a multiple of 4 octets. | |||
Extended Administrative Group: Extended Administrative Group as | Extended Administrative Group: Extended Administrative Group, as | |||
defined in [RFC7308]. | defined in [RFC7308]. | |||
The OSPF Flexible Algorithm Include-All Admin Group Sub-TLV MUST NOT | The OSPF Flexible Algorithm Include-All Admin Group sub-TLV MUST NOT | |||
appear more than once in an OSPF FAD TLV. If it appears more than | appear more than once in an OSPF FAD TLV. If it appears more than | |||
once, the OSPF FAD TLV MUST be ignored by the receiver. | once, the OSPF FAD TLV MUST be ignored by the receiver. | |||
7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV | 7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV | |||
The OSPF Flexible Algorithm Definition Flags Sub-TLV (FADF Sub-TLV) | The OSPF Flexible Algorithm Definition Flags (FADF) sub-TLV is a sub- | |||
is a Sub-TLV of the OSPF FAD TLV. It has the following format: | TLV of the OSPF FAD TLV. It has the following format: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | | | Flags | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 4 | where: | |||
Type: 4 | ||||
Length: variable, dependent on the size of the Flags field. MUST | Length: variable, dependent on the size of the Flags field. MUST | |||
be a multiple of 4 octets. | be a multiple of 4 octets. | |||
Flags: | Flags: | |||
0 1 2 3 4 5 6 7... | ||||
+-+-+-+-+-+-+-+-+... | ||||
|M| | | ... | ||||
+-+-+-+-+-+-+-+-+... | ||||
0 1 2 3 4 5 6 7... | M-flag: when set, the Flex-Algorithm-specific prefix and ASBR | |||
+-+-+-+-+-+-+-+-+... | metric MUST be used for inter-area and external prefix | |||
|M| | | ... | calculation. This flag is not applicable to prefixes | |||
+-+-+-+-+-+-+-+-+... | advertised as SRv6 locators. | |||
M-flag: when set, the Flex-Algorithm specific prefix and ASBR | ||||
metric MUST be used for inter-area and external prefix | ||||
calculation. This flag is not applicable to prefixes | ||||
advertised as SRv6 locators. | ||||
A new IANA "IGP Flexible Algorithm Definition Flags Registry" is | A new IANA "IGP Flexible Algorithm Definition Flags" registry is | |||
defined for allocation of bits in the Flags field - see Section 18.2. | defined for allocation of bits in the Flags field -- see | |||
Section 18.2. | ||||
Bits are defined/sent starting with Bit 0 defined above. Additional | Bits are defined/sent starting with bit 0 defined above. Additional | |||
bit definitions that may be defined in the future SHOULD be assigned | bit definitions that may be defined in the future SHOULD be assigned | |||
in ascending bit order so as to minimize the number of bits that will | in ascending bit order to minimize the number of bits that will need | |||
need to be transmitted. | to be transmitted. | |||
Undefined bits MUST be transmitted as 0. | Undefined bits MUST be transmitted as 0. | |||
Bits that are not transmitted MUST be treated as if they are set to 0 | Bits that are not transmitted MUST be treated as if they are set to 0 | |||
on receipt. | on receipt. | |||
The OSPF FADF Sub-TLV MUST NOT appear more than once in an OSPF FAD | The OSPF FADF sub-TLV MUST NOT appear more than once in an OSPF FAD | |||
TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored | TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored | |||
by the receiver. | by the receiver. | |||
If the OSPF FADF Sub-TLV is not present inside the OSPF FAD TLV, all | If the OSPF FADF sub-TLV is not present inside the OSPF FAD TLV, all | |||
the bits are assumed to be set to 0. | the bits are assumed to be set to 0. | |||
If a node is configured to participate in a particular Flexible | If a node is configured to participate in a particular Flexible | |||
Algorithm, but the selected Flex-Algorithm definition includes a bit | Algorithm, but the selected Flex-Algorithm Definition includes a bit | |||
in the OSPF FADF Sub-TLV that is not supported by the node, it MUST | in the OSPF FADF sub-TLV that is not supported by the node, it MUST | |||
stop participating in such Flexible Algorithm. | stop participating in such Flexible Algorithm. | |||
New flag bits may be defined in the future. Implementations MUST | New flag bits may be defined in the future. Implementations MUST | |||
check all advertised flag bits in the received OSPF FADF Sub-TLV - | check all advertised flag bits in the received OSPF FADF sub-TLV -- | |||
not just the subset currently defined. | not just the subset currently defined. | |||
M-flag MUST not be used when calculating prefix reachability for SRv6 | The M-flag MUST not be used when calculating prefix reachability for | |||
Locator prefix. | the SRv6 Locator prefix. | |||
7.5. OSPF Flexible Algorithm Exclude SRLG Sub-TLV | 7.5. OSPF Flexible Algorithm Exclude SRLG Sub-TLV | |||
The OSPF Flexible Algorithm Exclude SRLG Sub-TLV (FAESRLG Sub-TLV) is | The OSPF Flexible Algorithm Exclude SRLG (FAESRLG) sub-TLV is a sub- | |||
a Sub-TLV of the OSPF FAD TLV. Its usage is described in | TLV of the OSPF FAD TLV. Its usage is described in Section 6.5. It | |||
Section 6.5. It has the following format: | has the following format: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 5 | where: | |||
Type: 5 | ||||
Length: variable, dependent on the number of SRLGs. MUST be a | Length: variable, dependent on the number of SRLGs. MUST be a | |||
multiple of 4 octets. | multiple of 4 octets. | |||
Shared Risk Link Group Value: SRLG value as defined in [RFC4203]. | Shared Risk Link Group Value: SRLG value, as defined in | |||
[RFC4203]. | ||||
The OSPF FAESRLG Sub-TLV MUST NOT appear more than once in an OSPF | The OSPF FAESRLG sub-TLV MUST NOT appear more than once in an OSPF | |||
FAD TLV. If it appears more than once, the OSPF FAD TLV MUST be | FAD TLV. If it appears more than once, the OSPF FAD TLV MUST be | |||
ignored by the receiver. | ignored by the receiver. | |||
8. IS-IS Flexible Algorithm Prefix Metric Sub-TLV | 8. IS-IS Flexible Algorithm Prefix Metric Sub-TLV | |||
The IS-IS Flexible Algorithm Prefix Metric (FAPM) Sub-TLV supports | The IS-IS Flexible Algorithm Prefix Metric (FAPM) sub-TLV supports | |||
the advertisement of a Flex-Algorithm specific prefix metric | the advertisement of a Flex-Algorithm-specific prefix metric | |||
associated with a given prefix advertisement. | associated with a given prefix advertisement. | |||
The IS-IS FAPM Sub-TLV is a sub-TLV of TLVs 135, 235, 236, and 237 | The IS-IS FAPM sub-TLV is a sub-TLV of TLVs 135, 235, 236, and 237 | |||
and has the following format: | 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 |Flex-Algorithm | | | Type | Length |Flex-Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Type: 6 | where: | |||
Type: 6 | ||||
Length: 5 octets | Length: 5 octets | |||
Flex-Algorithm: Single octet value between 128 and 255 inclusive. | Flex-Algorithm: single octet value between 128 and 255 inclusive. | |||
Metric: 4 octets of metric information | Metric: 4 octets of metric information. | |||
The IS-IS FAPM Sub-TLV MAY appear multiple times in its parent TLV. | The IS-IS FAPM sub-TLV MAY appear multiple times in its parent TLV. | |||
If it appears more than once with the same Flex-Algorithm value, the | If it appears more than once with the same Flex-Algorithm value, the | |||
first instance MUST be used and any subsequent instances MUST be | first instance MUST be used and any subsequent instances MUST be | |||
ignored. | ignored. | |||
If a prefix is advertised with a Flex-Algorithm prefix metric larger | If a prefix is advertised with a Flex-Algorithm prefix metric larger | |||
than MAX_PATH_METRIC as defined in [RFC5305] this prefix MUST NOT be | than MAX_PATH_METRIC, as defined in [RFC5305], this prefix MUST NOT | |||
considered during the Flexible Algorithm computation. | be considered during the Flexible Algorithm computation. | |||
The usage of the Flex-Algorithm prefix metric is described in | The usage of the Flex-Algorithm prefix metric is described in | |||
Section 13. | Section 13. | |||
The IS-IS FAPM Sub-TLV MUST NOT be advertised as a sub-TLV of the IS- | The IS-IS FAPM sub-TLV MUST NOT be advertised as a sub-TLV of the IS- | |||
IS SRv6 Locator TLV [I-D.ietf-lsr-isis-srv6-extensions]. The IS-IS | IS SRv6 Locator TLV [RFC9352]. The IS-IS SRv6 Locator TLV includes | |||
SRv6 Locator TLV includes the Algorithm and Metric fields which MUST | the Algorithm and Metric fields, which MUST be used instead. If the | |||
be used instead. If the FAPM Sub-TLV is present as a sub-TLV of the | FAPM sub-TLV is present as a sub-TLV of the IS-IS SRv6 Locator TLV in | |||
IS-IS SRv6 Locator TLV in the received LSP, such FAPM Sub-TLV MUST be | the received LSP, such FAPM sub-TLV MUST be ignored. | |||
ignored. | ||||
9. OSPF Flexible Algorithm Prefix Metric Sub-TLV | 9. OSPF Flexible Algorithm Prefix Metric Sub-TLV | |||
The OSPF Flexible Algorithm Prefix Metric (FAPM) Sub-TLV supports the | The OSPF Flexible Algorithm Prefix Metric (FAPM) sub-TLV supports the | |||
advertisement of a Flex-Algorithm specific prefix metric associated | advertisement of a Flex-Algorithm-specific prefix metric associated | |||
with a given prefix advertisement. | with a given prefix advertisement. | |||
The OSPF Flex-Algorithm Prefix Metric (FAPM) Sub-TLV is a Sub-TLV of | The OSPF FAPM sub-TLV is a sub-TLV of the: | |||
the: | ||||
- OSPFv2 Extended Prefix TLV [RFC7684] | * OSPFv2 Extended Prefix TLV [RFC7684] and | |||
- Following OSPFv3 TLVs as defined in [RFC8362]: | * following OSPFv3 TLVs, as defined in [RFC8362]: | |||
Inter-Area Prefix TLV | - Inter-Area Prefix TLV | |||
External Prefix TLV | - External-Prefix TLV | |||
OSPF FAPM Sub-TLV has the following format: | The OSPF FAPM 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Flex-Algorithm | Flags | Reserved | | |Flex-Algorithm | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: 3 for OSPFv2, and 26 for OSPFv3 | ||||
Type: 3 for OSPFv2, 26 for OSPFv3 | Length: 8 octets | |||
Length: 8 octets | Flex-Algorithm: single octet value between 128 and 255 inclusive. | |||
Flex-Algorithm: Single octet value between 128 and 255 inclusive. | Flags: 1-octet value | |||
Flags: One octet value | 0 1 2 3 4 5 6 7 | |||
0 1 2 3 4 5 6 7 | +-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+ | |E| | | |||
|E| | | +-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+ | ||||
E bit : position 0: The type of external metric. If bit is | E bit: position 0: The type of external metric. If the bit is | |||
set, the metric specified is a Type 2 external metric. This | set, the metric specified is a Type 2 external metric. This | |||
bit is applicable only to OSPF External and NSSA external | bit is applicable only to OSPF external and Not-So-Stubby | |||
prefixes. This is semantically the same as the E bit in | Area (NSSA) external prefixes. This is semantically the | |||
section A.4.5 of [RFC2328] and section A.4.7 of [RFC5340] for | same as the E bit in Appendix A.4.5 of [RFC2328] and | |||
OSPFv2 and OSPFv3 respectively. | Appendix A.4.7 of [RFC5340] for OSPFv2 and OSPFv3, | |||
respectively. | ||||
Bits 1 through 7: MUST be cleared by originator and ignored by | Bits 1 through 7: MUST be cleared by the originator and | |||
receiver. | ignored by the receiver. | |||
Reserved: MUST be set to 0, ignored at reception. | Reserved: MUST be set to 0 and ignored at reception. | |||
Metric: 4 octets of metric information | Metric: 4 octets of metric information. | |||
The OSPF FAPM Sub-TLV MAY appear multiple times in its parent TLV. | The OSPF FAPM sub-TLV MAY appear multiple times in its parent TLV. | |||
If it appears more than once with the same Flex-Algorithm value, the | If it appears more than once with the same Flex-Algorithm value, the | |||
first instance MUST be used and any subsequent instances MUST be | first instance MUST be used and any subsequent instances MUST be | |||
ignored. | ignored. | |||
The usage of the Flex-Algorithm prefix metric is described in | The usage of the Flex-Algorithm prefix metric is described in | |||
Section 13. | Section 13. | |||
10. OSPF Flexible Algorithm ASBR Reachability Advertisement | 10. OSPF Flexible Algorithm ASBR Reachability Advertisement | |||
An OSPF ABR advertises the reachability of ASBRs in its attached | An OSPF ABR advertises the reachability of ASBRs in its attached | |||
areas to enable routers within those areas to perform route | areas to enable routers within those areas to perform route | |||
calculations for external prefixes advertised by the ASBRs. OSPF | calculations for external prefixes advertised by the ASBRs. OSPF | |||
extensions for advertisement of Flex-Algorithm specific reachability | extensions for advertisement of Flex-Algorithm-specific reachability | |||
and metric for ASBRs is similarly required for Flex-Algorithm | and the metric for ASBRs is similarly required for Flex-Algorithm | |||
external prefix computations as described further in Section 13.1. | external prefix computations, as described further in Section 13.1. | |||
10.1. OSPFv2 Extended Inter-Area ASBR LSA | 10.1. OSPFv2 Extended Inter-Area ASBR LSA | |||
The OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) LSA is an OSPF Opaque | The OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) LSA is an OSPF Opaque | |||
LSA [RFC5250] that is used to advertise additional attributes related | LSA [RFC5250] that is used to advertise additional attributes related | |||
to the reachability of the OSPFv2 ASBR that is external to the area | to the reachability of the OSPFv2 ASBR that is external to the area | |||
yet internal to the OSPF domain. Semantically, the OSPFv2 EIA-ASBR | yet internal to the OSPF domain. Semantically, the OSPFv2 EIA-ASBR | |||
LSA is equivalent to the fixed format Type 4 Summary LSA [RFC2328]. | LSA is equivalent to the fixed format Type 4 summary-LSA [RFC2328]. | |||
Unlike the Type 4 Summary LSA, the LSID of the EIA-ASBR LSA does not | Unlike the Type 4 summary-LSA, the Link State ID (LSID) of the EIA- | |||
carry the ASBR Router-ID - the ASBR Router-ID is carried in the body | ASBR LSA does not carry the ASBR Router ID -- the ASBR Router ID is | |||
of the LSA. The OSPFv2 EIA-ASBR LSA is advertised by an OSPFv2 ABR | carried in the body of the LSA. The OSPFv2 EIA-ASBR LSA is | |||
and its flooding is defined to be area-scoped only. | advertised by an OSPFv2 ABR, and its flooding is defined to be area- | |||
scoped only. | ||||
An OSPFv2 ABR generates the EIA-ASBR LSA for an ASBR when it is | An OSPFv2 ABR generates the EIA-ASBR LSA for an ASBR when it is | |||
advertising the Type-4 Summary LSA for it and has the need for | advertising the Type 4 summary-LSA for it and has the need for | |||
advertising additional attributes for that ASBR beyond what is | advertising additional attributes for that ASBR beyond what is | |||
conveyed in the fixed format Type-4 Summary LSA. An OSPFv2 ABR MUST | conveyed in the fixed-format Type 4 summary-LSA. An OSPFv2 ABR MUST | |||
NOT advertise the EIA-ASBR LSA for an ASBR for which it is not | NOT advertise the EIA-ASBR LSA for an ASBR for which it is not | |||
advertising the Type 4 Summary LSA. This ensures that the ABR does | advertising the Type 4 summary-LSA. This ensures that the ABR does | |||
not generate the EIA-ASBR LSA for an ASBR to which it does not have | not generate the EIA-ASBR LSA for an ASBR to which it does not have | |||
reachability in the base OSPFv2 topology calculation. The OSPFv2 ABR | reachability in the base OSPFv2 topology calculation. The OSPFv2 ABR | |||
SHOULD NOT advertise the EIA-ASBR LSA for an ASBR when it does not | SHOULD NOT advertise the EIA-ASBR LSA for an ASBR when it does not | |||
have additional attributes to advertise for that ASBR. | have additional attributes to advertise for that ASBR. | |||
The OSPFv2 EIA-ASBR LSA has the following format: | The OSPFv2 EIA-ASBR LSA 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS age | Options | LS Type | | | LS age | Options | LS Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Opaque Type | Opaque ID | | | Opaque Type | Opaque ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Advertising Router | | | Advertising Router | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS sequence number | | | LS sequence number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS checksum | Length | | | LS checksum | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- TLVs -+ | +- TLVs -+ | |||
| ... | | | ... | | |||
LS age and Options fields are as defined in Section A.4.1. of | The LS age and Options fields are as defined in Appendix A.4.1 of | |||
[RFC2328]. | [RFC2328]. | |||
The LS Type MUST be 10, indicating that the Opaque LSA flooding scope | The LS Type MUST be 10, indicating that the Opaque LSA flooding scope | |||
is area-local [RFC5250]. | is area-local [RFC5250]. | |||
The Opaque Type used by the OSPFv2 EIA-ASBR LSA is 11. The Opaque | The Opaque Type used by the OSPFv2 EIA-ASBR LSA is 11. The Opaque | |||
Type is used to differentiate the various types of OSPFv2 Opaque LSAs | Type is used to differentiate the various types of OSPFv2 Opaque LSAs | |||
and is described in Section 3 of [RFC5250]. | and is described in Section 3 of [RFC5250]. | |||
The Opaque ID field is an arbitrary value used to maintain multiple | The Opaque ID field is an arbitrary value used to maintain multiple | |||
OSPFv2 EIA-ASBR LSAs. For OSPFv2 EIA-ASBR LSAs, the Opaque ID has no | OSPFv2 EIA-ASBR LSAs. For OSPFv2 EIA-ASBR LSAs, the Opaque ID has no | |||
semantic significance other than to differentiate OSPFv2 EIA-ASBR | semantic significance other than to differentiate OSPFv2 EIA-ASBR | |||
LSAs originated by the same OSPFv2 ABR. If multiple OSPFv2 EIA-ASBR | LSAs originated by the same OSPFv2 ABR. If multiple OSPFv2 EIA-ASBR | |||
LSAs specify the same ASBR, the attributes from the Opaque LSA with | LSAs specify the same ASBR, the attributes from the Opaque LSA with | |||
the lowest Opaque ID SHOULD be used. | the lowest Opaque ID SHOULD be used. | |||
Advertising Router, LS sequence number, and LS checksum fields are as | The Advertising Router, LS sequence number, and LS checksum fields | |||
defined in Section A.4.1. of [RFC2328]. | are as defined in Appendix A.4.1 of [RFC2328]. | |||
The Length field is as defined in Section A.4.1. of [RFC5250]. It | The Length field is as defined in Appendix A.4.1 of [RFC2328]. It | |||
represents the total length (in octets) of the Opaque LSA, including | represents the total length (in octets) of the Opaque LSA, including | |||
the LSA header and all TLVs (including padding). | the LSA header and all TLVs (including padding). | |||
The format of the TLVs within the body of the OSPFv2 EIA-ASBR LSA is | The format of the TLVs within the body of the OSPFv2 EIA-ASBR LSA is | |||
the same as the format used by the Traffic Engineering Extensions to | the same as the format used by the Traffic Engineering Extensions to | |||
OSPFv2 [RFC3630]. The variable TLV section consists of one or more | OSPFv2 [RFC3630]. The variable TLV section consists of one or more | |||
nested TLV tuples. Nested TLVs are also referred to as sub- TLVs. | nested TLV tuples. Nested TLVs are also referred to as sub-TLVs. | |||
The TLV Length field defines the length of the value portion in | The TLV Length field defines the length of the value portion in | |||
octets (thus, a TLV with no value portion would have a length of 0). | octets (thus, a TLV with no value portion would have a length of 0). | |||
The TLV is padded to 4-octet alignment; padding is not included in | The TLV is padded to 4-octet alignment; padding is not included in | |||
the Length field (so a 3-octet value would have a length of 3, but | the Length field (so a 3-octet value would have a length of 3, but | |||
the total size of the TLV would be 8 octets). Nested TLVs are also | the total size of the TLV would be 8 octets). Nested TLVs are also | |||
32-bit aligned. For example, a 1-octet value would have the Length | 32-bit aligned. For example, a 1-octet value would have the Length | |||
field set to 1, and 3 octets of padding would be added to the end of | field set to 1, and 3 octets of padding would be added to the end of | |||
the value portion of the TLV. The padding is composed of zeros. | the value portion of the TLV. The padding is composed of zeros. | |||
10.1.1. OSPFv2 Extended Inter-Area ASBR TLV | 10.1.1. OSPFv2 Extended Inter-Area ASBR TLV | |||
The OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) TLV is a top-level TLV | The OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) TLV is a top-level TLV | |||
of the OSPFv2 EIA-ASBR LSA and is used to advertise additional | of the OSPFv2 EIA-ASBR LSA and is used to advertise additional | |||
attributes associated with the reachability of an ASBR. | attributes associated with the reachability of an ASBR. | |||
The OSPFv2 EIA-ASBR TLV has the following format: | The OSPFv2 EIA-ASBR 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ASBR Router ID | | | ASBR Router ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
. . | . . | |||
. Sub-TLVs . | . Sub-TLVs . | |||
. . | . . | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: 1 | ||||
Type: 1 | Length: variable number of octets. | |||
Length: variable number of octets | ||||
ASBR Router ID: four octets carrying the OSPF Router ID of the | ASBR Router ID: 4 octets carrying the OSPF Router ID of the ASBR | |||
ASBR whose information is being carried. | whose information is being carried. | |||
Sub-TLVs : variable | Sub-TLVs: variable | |||
Only a single OSPFv2 EIA-ASBR TLV MUST be advertised in each OSPFv2 | Only a single OSPFv2 EIA-ASBR TLV MUST be advertised in each OSPFv2 | |||
EIA-ASBR LSA and the receiver MUST ignore all instances of this TLV | EIA-ASBR LSA, and the receiver MUST ignore all instances of this TLV | |||
other than the first one in an LSA. | other than the first one in an LSA. | |||
OSPFv2 EIA-ASBR TLV MUST be present inside an OSPFv2 EIA-ASBR LSA and | The OSPFv2 EIA-ASBR TLV MUST be present inside an OSPFv2 EIA-ASBR LSA | |||
MUST include at least a single sub-TLV, otherwise the OSPFv2 EIA-ASBR | and MUST include at least a single sub-TLV; otherwise, the OSPFv2 | |||
LSA MUST be ignored by the receiver. | EIA-ASBR LSA MUST be ignored by the receiver. | |||
10.2. OSPF Flexible Algorithm ASBR Metric Sub-TLV | 10.2. OSPF Flexible Algorithm ASBR Metric Sub-TLV | |||
The OSPF Flexible Algorithm ASBR Metric (FAAM) Sub-TLV supports the | The OSPF Flexible Algorithm ASBR Metric (FAAM) sub-TLV supports the | |||
advertisement of a Flex-Algorithm specific metric associated with a | advertisement of a Flex-Algorithm-specific metric associated with a | |||
given ASBR reachability advertisement by an ABR. | given ASBR reachability advertisement by an ABR. | |||
The OSPF Flex-Algorithm ASBR Metric (FAAM) Sub-TLV is a Sub-TLV of | The OSPF FAAM sub-TLV is a sub-TLV of the: | |||
the: | ||||
- OSPFv2 Extended Inter-Area ASBR TLV as defined in Section 10.1.1 | * OSPFv2 Extended Inter-Area ASBR TLV, as defined in Section 10.1.1, | |||
and | ||||
- OSPFv3 Inter-Area-Router TLV defined in [RFC8362] | * OSPFv3 Inter-Area-Router TLV, as defined in [RFC8362]. | |||
OSPF FAAM Sub-TLV has the following format: | The OSPF FAAM 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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Flex-Algorithm | Reserved | | |Flex-Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: 1 for OSPFv2, and 33 for OSPFv3 | ||||
Type: 1 for OSPFv2, 33 for OSPFv3 | Length: 8 octets | |||
Length: 8 octets | ||||
Flex-Algorithm: Single octet value between 128 and 255 inclusive. | Flex-Algorithm: single octet value between 128 and 255 inclusive. | |||
Reserved: Three octets. MUST be set to 0, ignored at reception. | Reserved: 3 octets. MUST be set to 0 and ignored at reception. | |||
Metric: 4 octets of metric information | Metric: 4 octets of metric information. | |||
The OSPF FAAM Sub-TLV MAY appear multiple times in its parent TLV. | The OSPF FAAM sub-TLV MAY appear multiple times in its parent TLV. | |||
If it appears more than once with the same Flex-Algorithm value, the | If it appears more than once with the same Flex-Algorithm value, the | |||
first instance MUST be used and any subsequent instances MUST be | first instance MUST be used and any subsequent instances MUST be | |||
ignored. | ignored. | |||
The advertisement of the ASBR reachability using the OSPF FAAM Sub- | The advertisement of the ASBR reachability using the OSPF FAAM sub- | |||
TLV inside the OSPFv2 EIA-ASBR LSA follows Section 12.4.3 of | TLV inside the OSPFv2 EIA-ASBR LSA follows Section 12.4.3 of | |||
[RFC2328] and inside the OSPFv3 E-Inter-Area-Router LSA follows | [RFC2328] and inside the OSPFv3 E-Inter-Area-Router-LSA follows | |||
Section 4.8.5 of [RFC5340]. The reachability of the ASBR is | Section 4.8.5 of [RFC5340]. The reachability of the ASBR is | |||
evaluated in the context of the specific Flex-Algorithm. | evaluated in the context of the specific Flex-Algorithm. | |||
The FAAM computed by the ABR will be equal to the metric to reach the | The FAAM computed by the ABR will be equal to the metric to reach the | |||
ASBR for a given Flex-Algorithm in a source area or the cumulative | ASBR for a given Flex-Algorithm in a source area or the cumulative | |||
metric via other ABR(s) when the ASBR is in a remote area. This is | metric via an ABR(s) when the ASBR is in a remote area. This is | |||
similar in nature to how the metric is set when the ASBR reachability | similar in nature to how the metric is set when the ASBR reachability | |||
metric is computed in the default algorithm for the metric in the | metric is computed in the default algorithm for the metric in the | |||
OSPFv2 Type 4 ASBR Summary LSA and the OSPFv3 Inter-Area-Router LSA. | OSPFv2 Type 4 ASBR summary-LSA and the OSPFv3 Inter-Area-Router-LSA. | |||
An OSPF ABR MUST NOT include the OSPF FAAM Sub-TLV with a specific | An OSPF ABR MUST NOT include the OSPF FAAM sub-TLV with a specific | |||
Flex-Algorithm in its reachability advertisement for an ASBR between | Flex-Algorithm in its reachability advertisement for an ASBR between | |||
areas unless that ASBR is reachable for it in the context of that | areas unless that ASBR is reachable for it in the context of that | |||
specific Flex-Algorithm. | specific Flex-Algorithm. | |||
An OSPF ABR MUST include the OSPF FAAM Sub-TLVs as part of the ASBR | An OSPF ABR MUST include the OSPF FAAM sub-TLVs as part of the ASBR | |||
reachability advertisement between areas for any Flex-Algorithm for | reachability advertisement between areas for any Flex-Algorithm for | |||
which the winning FAD includes the M-flag and the ASBR is reachable | which the winning FAD includes the M-flag and the ASBR is reachable | |||
in the context of that specific Flex-Algorithm. | in the context of that specific Flex-Algorithm. | |||
OSPF routers MUST use the OSPF FAAM Sub-TLV to calculate the | OSPF routers MUST use the OSPF FAAM sub-TLV to calculate the | |||
reachability of the ASBRs if the winning FAD for the specific Flex- | reachability of the ASBRs if the winning FAD for the specific Flex- | |||
Algorithm includes the M-flag. OSPF routers MUST NOT use the OSPF | Algorithm includes the M-flag. OSPF routers MUST NOT use the OSPF | |||
FAAM Sub-TLV to calculate the reachability of the ASBRs for the | FAAM sub-TLV to calculate the reachability of the ASBRs for the | |||
specific Flex-Algorithm if the winning FAD for such Flex-Algorithm | specific Flex-Algorithm if the winning FAD for such Flex-Algorithm | |||
does not include the M-flag. Instead, the OSPFv2 Type 4 Summary LSAs | does not include the M-flag. Instead, the OSPFv2 Type 4 summary-LSAs | |||
or the OSPFv3 Inter-Area-Router-LSAs MUST be used instead as | or the OSPFv3 Inter-Area-Router-LSAs MUST be used, as specified in | |||
specified in section 16.2 of [RFC2328] and section 4.8.5 of [RFC5340] | Section 16.2 of [RFC2328] and Section 4.8.5 of [RFC5340] for OSPFv2 | |||
for OSPFv2 and OSPFv3 respectively. | and OSPFv3, respectively. | |||
The processing of a new or changed OSPF FAAM Sub-TLV triggers the | The processing of a new or changed OSPF FAAM sub-TLV triggers the | |||
processing of External routes similar to what is described in section | processing of external routes similar to what is described in | |||
16.5 of the [RFC2328] for OSPFv2 and section 4.8.5 of [RFC5340] for | Section 16.5 of [RFC2328] for OSPFv2 and Section 4.8.5 of [RFC5340] | |||
OSPFv3 for the specific Flex-Algorithm. The External and NSSA | for OSPFv3 for the specific Flex-Algorithm. The OSPF external and | |||
External route calculation should be limited to Flex-Algorithm(s) for | NSSA external route calculation should be limited to a Flex- | |||
which the winning FAD(s) includes the M-flag. | Algorithm(s) for which the winning FAD(s) includes the M-flag. | |||
Processing of the OSPF FAAM Sub-TLV does not require the existence of | Processing of the OSPF FAAM sub-TLV does not require the existence of | |||
the equivalent OSPFv2 Type 4 Summary LSA or the OSPFv3 Inter-Area- | the equivalent OSPFv2 Type 4 summary-LSA or the OSPFv3 Inter-Area- | |||
Router-LSA that is advertised by the same ABR inside the area. The | Router-LSA that is advertised by the same ABR inside the area. The | |||
presence of the base LSA is not mandatory for the usage of the | presence of the base LSA is not mandatory for the usage of the | |||
extended LSA with the OSPF FAAM Sub-TLV. | extended LSA with the OSPF FAAM sub-TLV. | |||
11. Advertisement of Node Participation in a Flex-Algorithm | 11. Advertisement of Node Participation in a Flex-Algorithm | |||
When a router is configured to participate in a particular Flex- | When a router is configured to participate in a particular Flex- | |||
Algorithm and is advertising such participation, it is participating | Algorithm and is advertising such participation, it is participating | |||
in that Flex-Algorithm. | in that Flex-Algorithm. | |||
Paths for various data-planes MAY be computed for a specific Flex- | Paths for various data planes MAY be computed for a specific Flex- | |||
Algorithm. Each data-plane uses its own specific forwarding over | Algorithm. Each data plane uses its own specific forwarding over | |||
such Flex-Algorithm paths. To guarantee the presence of the data- | such Flex-Algorithm paths. To guarantee the presence of the data- | |||
plane specific forwarding, associated with a particular Flex- | plane-specific forwarding, associated with a particular Flex- | |||
Algorithm, a router MUST advertise its participation for a particular | Algorithm, a router MUST advertise its participation for a particular | |||
Flex-Algorithm for each data-plane. Some data-planes may share a | Flex-Algorithm for each data plane. Some data planes may share a | |||
common participation advertisement (e.g. SR-MPLS and SRv6). | common participation advertisement (e.g., SR-MPLS and SRv6). | |||
Advertisement of the participation for any particular Flex-Algorithm | Advertisement of the participation for any particular Flex-Algorithm | |||
in any data-plane is subject to the condition specified in | in any data plane is subject to the condition specified in | |||
Section 5.3. | Section 5.3. | |||
11.1. Advertisement of Node Participation for Segment Routing | 11.1. Advertisement of Node Participation for Segment Routing | |||
[RFC8667], [RFC8665], and [RFC8666] (IGP Segment Routing extensions) | [RFC8665], [RFC8666], and [RFC8667] (IGP Segment Routing extensions) | |||
describe how the SR-Algorithm is used to compute the IGP best path. | describe how the SR-Algorithm is used to compute the IGP best path. | |||
Routers advertise support for the SR-Algorithm as a node capability | Routers advertise support for the SR-Algorithm as a node capability, | |||
as described in the above-mentioned IGP Segment Routing extensions. | as described in the above-mentioned IGP Segment Routing extensions. | |||
To advertise participation for a particular Flex-Algorithm for | To advertise participation for a particular Flex-Algorithm for | |||
Segment Routing, including both SR-MPLS and SRv6, the Flex-Algorithm | Segment Routing, including both SR-MPLS and SRv6, the Flex-Algorithm | |||
value MUST be advertised in the SR-Algorithm TLV (OSPF) or sub-TLV | value MUST be advertised in the SR-Algorithm TLV (OSPF) or sub-TLV | |||
(IS-IS). | (IS-IS). | |||
Segment Routing Flex-Algorithm participation advertisement is | Segment Routing Flex-Algorithm participation advertisement is | |||
topology independent. When a router advertises participation in an | topology independent. When a router advertises participation in an | |||
SR-Algorithm, the participation applies to all topologies in which | SR-Algorithm, the participation applies to all topologies in which | |||
the advertising node participates. | the advertising node participates. | |||
11.2. Advertisement of Node Participation for Other Data-planes | 11.2. Advertisement of Node Participation for Other Data Planes | |||
This section describes considerations related to how other data- | This section describes considerations related to how other data | |||
planes can advertise their participation in a specific Flex- | planes can advertise their participation in a specific Flex- | |||
Algorithm. | Algorithm. | |||
Data-plane specific Flex-Algorithm participation advertisements MAY | Data-plane-specific Flex-Algorithm participation advertisements MAY | |||
be topology specific or MAY be topology independent, depending on the | be topology specific or MAY be topology independent, depending on the | |||
data-plane itself. | data plane itself. | |||
Data-plane specific advertisement for Flex-Algorithm participation | Data-plane-specific advertisement for Flex-Algorithm participation | |||
MUST be defined for each data-plane and is outside the scope of this | MUST be defined for each data plane and is outside the scope of this | |||
document. | document. | |||
12. Advertisement of Link Attributes for Flex-Algorithm | 12. Advertisement of Link Attributes for Flex-Algorithm | |||
Various link attributes may be used during the Flex-Algorithm path | Various link attributes may be used during the Flex-Algorithm path | |||
calculation. For example, include or exclude rules based on link | calculation. For example, include or exclude rules based on link | |||
affinities can be part of the Flex-Algorithm definition as defined in | affinities can be part of the Flex-Algorithm Definition, as defined | |||
Section 6 and Section 7. | in Sections 6 and 7. | |||
Application-specific link attributes, as specified in [RFC8919] or | Application-specific link attributes, as specified in [RFC8919] or | |||
[RFC8920], that are to be used during Flex-Algorithm calculation MUST | [RFC8920], that are to be used during Flex-Algorithm calculation MUST | |||
use the Application-Specific Link Attribute (ASLA) advertisements | use the Application-Specific Link Attribute (ASLA) advertisements | |||
defined in [RFC8919] or [RFC8920], unless, in the case of IS-IS, the | defined in [RFC8919] or [RFC8920] unless, in the case of IS-IS, the | |||
L-Flag is set in the ASLA advertisement. When the L-Flag is set, | L-flag is set in the ASLA advertisement. When the L-flag is set, | |||
then legacy advertisements MUST be used, subject to the procedures | then legacy advertisements MUST be used, subject to the procedures | |||
and constraints defined in [[RFC8919] Section 4.2 and Section 6. | and constraints defined in Section 4.2 of [RFC8919] and Section 6. | |||
The mandatory use of ASLA advertisements applies to link attributes | The mandatory use of ASLA advertisements applies to link attributes | |||
specifically mentioned in this document (Min Unidirectional Link | specifically mentioned in this document (Min Unidirectional Link | |||
Delay, TE Default Metric, Administrative Group, Extended | Delay, TE Default Metric, Administrative Group, Extended | |||
Administrative Group and Shared Risk Link Group) and any other link | Administrative Group, and Shared Risk Link Group) and any other link | |||
attributes that may be used in support of Flex-Algorithm in the | attributes that may be used in support of Flex-Algorithm in the | |||
future. | future. | |||
A new Application Identifier Bit is defined to indicate that the ASLA | A new Application Identifier Bit is defined to indicate that the ASLA | |||
advertisement is associated with the Flex-Algorithm application. | advertisement is associated with the Flex-Algorithm application. | |||
This bit is set in the Standard Application Bit Mask (SABM) defined | This bit is set in the Standard Application Bit Mask (SABM) defined | |||
in [RFC8919] or [RFC8920]: | in [RFC8919] or [RFC8920]: | |||
Bit-3: Flexible Algorithm (X-bit) | Bit 3: Flexible Algorithm (X-bit) | |||
ASLA Admin Group Advertisements to be used by the Flexible Algorithm | ASLA Admin Group Advertisements to be used by the Flexible Algorithm | |||
application MAY use either the Administrative Group or Extended | application MAY use either the Administrative Group or Extended | |||
Administrative Group encodings. | Administrative Group encodings. | |||
A receiver supporting this specification MUST accept both ASLA | A receiver supporting this specification MUST accept both ASLA | |||
Administrative Group and Extended Administrative Group TLVs as | Administrative Group and Extended Administrative Group TLVs, as | |||
defined in [RFC8919] or [RFC8920]. In the case of IS-IS, if the | defined in [RFC8919] or [RFC8920]. In the case of IS-IS, if the | |||
L-Flag is set in ASLA advertisement, as defined in [RFC8919] | L-flag is set in the ASLA advertisement, as defined in Section 4.2 of | |||
Section 4.2, then the receiver MUST be able to accept both | [RFC8919], then the receiver MUST be able to accept both the | |||
Administrative Group TLV as defined in [RFC5305] and Extended | Administrative Group TLV, as defined in [RFC5305], and the Extended | |||
Administrative Group TLV as defined in [RFC7308]. | Administrative Group TLV, as defined in [RFC7308]. | |||
13. Calculation of Flexible Algorithm Paths | 13. Calculation of Flexible Algorithm Paths | |||
A router MUST be configured to participate in a given Flex-Algorithm | A router MUST be configured to participate in a given Flex-Algorithm | |||
K and MUST select the FAD based on the rules defined in Section 5.3 | K and MUST select the FAD based on the rules defined in Section 5.3 | |||
before it can compute any path for that Flex-Algorithm. | before it can compute any path for that Flex-Algorithm. | |||
No specific two-way connectivity check is performed during the Flex- | No specific two-way connectivity check is performed during the Flex- | |||
Algorithm path computation. The result of the existing, Flex- | Algorithm path computation. The result of the existing Flex- | |||
Algorithm agnostic, two-way connectivity check is used during the | Algorithm-agnostic, two-way connectivity check is used during the | |||
Flex-Algorithm path computation. | Flex-Algorithm path computation. | |||
As described in Section 11, participation for any particular Flex- | As described in Section 11, participation for any particular Flex- | |||
Algorithm MUST be advertised on a per data-plane basis. Calculation | Algorithm MUST be advertised on a per data plane basis. Calculation | |||
of the paths for any particular Flex-Algorithm is data-plane | of the paths for any particular Flex-Algorithm is data plane | |||
specific. | specific. | |||
Multiple data-planes MAY use the same Flex-Algorithm value at the | Multiple data planes MAY use the same Flex-Algorithm value at the | |||
same time, and as such, share the FAD for it. Traffic for each data- | same time and, as such, share the FAD for it. Traffic for each data | |||
plane will be forwarded based on the data-plane specific forwarding | plane will be forwarded based on the data-plane-specific forwarding | |||
entries. | entries. | |||
Flex-Algorithm definition is data-plane independent and is used by | The Flex-Algorithm Definition is data plane independent and is used | |||
all Flex-Algorithm data-planes. | by all Flex-Algorithm data planes. | |||
The way various data-planes handle nodes that do not participate in | The way various data planes handle nodes that do not participate in | |||
Flexible Algorithm is data-plane specific. If the data-plane only | Flexible Algorithm is data plane specific. If the data plane only | |||
wants to consider participating nodes during the Flex-Algorithm | wants to consider participating nodes during the Flex-Algorithm | |||
calculation, then when computing paths for a given Flex-Algorithm, | calculation, then when computing paths for a given Flex-Algorithm, | |||
all nodes that do not advertise participation for that Flex-Algorithm | all nodes that do not advertise participation for that Flex-Algorithm | |||
in their data-plane specific advertisements MUST be pruned from the | in their data-plane-specific advertisements MUST be pruned from the | |||
topology. Segment Routing, including both SR-MPLS and SRv6, are | topology. Segment Routing, including both SR-MPLS and SRv6, are data | |||
data-planes that MUST use such pruning when computing Flex-Algorithm | planes that MUST use such pruning when computing Flex-Algorithm | |||
paths. | paths. | |||
When computing the path for a given Flex-Algorithm, the metric-type | When computing the path for a given Flex-Algorithm, the metric-type | |||
that is part of the Flex-Algorithm definition (Section 5) MUST be | that is part of the Flex-Algorithm Definition (Section 5) MUST be | |||
used. | used. | |||
When computing the path for a given Flex-Algorithm, the calculation- | When computing the path for a given Flex-Algorithm, the calculation- | |||
type that is part of the Flex-Algorithm definition (Section 5) MUST | type that is part of the Flex-Algorithm Definition (Section 5) MUST | |||
be used. | be used. | |||
Various link include or exclude rules can be part of the Flex- | Various links that include or exclude rules can be part of the Flex- | |||
Algorithm definition. To refer to a particular bit within an Admin | Algorithm Definition. To refer to a particular bit within an Admin | |||
Group or Extended Admin Group we use the term 'color'. | Group or Extended Admin Group, we use the term "color". | |||
Rules, in the order as specified below, MUST be used to prune links | Rules, in the order as specified below, MUST be used to prune links | |||
from the topology during the Flex-Algorithm computation. | from the topology during the Flex-Algorithm computation. | |||
For all links in the topology: | For all links in the topology: | |||
1. Check if any exclude AG rule is part of the Flex-Algorithm | 1. Check if any exclude Administrative Group rule is part of the | |||
definition. If such exclude rule exists, check if any color that | Flex-Algorithm Definition. If such exclude rule exists, check if | |||
is part of the exclude rule is also set on the link. If such a | any color that is part of the exclude rule is also set on the | |||
color is set, the link MUST be pruned from the computation. | link. If such a color is set, the link MUST be pruned from the | |||
computation. | ||||
2. Check if any exclude SRLG rule is part of the Flex-Algorithm | 2. Check if any exclude SRLG rule is part of the Flex-Algorithm | |||
definition. If such exclude rule exists, check if the link is | Definition. If such exclude rule exists, check if the link is | |||
part of any SRLG that is also part of the SRLG exclude rule. If | part of any SRLG that is also part of the SRLG exclude rule. If | |||
the link is part of such SRLG, the link MUST be pruned from the | the link is part of such SRLG, the link MUST be pruned from the | |||
computation. | computation. | |||
3. Check if any include-any AG rule is part of the Flex-Algorithm | 3. Check if any include-any Administrative Group rule is part of the | |||
definition. If such include-any rule exists, check if any color | Flex-Algorithm Definition. If such include-any rule exists, | |||
that is part of the include-any rule is also set on the link. If | check if any color that is part of the include-any rule is also | |||
no such color is set, the link MUST be pruned from the | set on the link. If no such color is set, the link MUST be | |||
computation. | pruned from the computation. | |||
4. Check if any include-all AG rule is part of the Flex-Algorithm | 4. Check if any include-all Administrative Group rule is part of the | |||
definition. If such include-all rule exists, check if all colors | Flex-Algorithm Definition. If such include-all rule exists, | |||
that are part of the include-all rule are also set on the link. | check if all colors that are part of the include-all rule are | |||
If all such colors are not set on the link, the link MUST be | also set on the link. If all such colors are not set on the | |||
pruned from the computation. | link, the link MUST be pruned from the computation. | |||
5. If the Flex-Algorithm definition uses other than IGP metric | 5. If the Flex-Algorithm Definition uses something other than the | |||
(Section 5), and such metric is not advertised for the particular | IGP metric (Section 5), and such metric is not advertised for the | |||
link in a topology for which the computation is done, such link | particular link in a topology for which the computation is done, | |||
MUST be pruned from the computation. A metric of value 0 MUST NOT | such link MUST be pruned from the computation. A metric of value | |||
be assumed in such a case. | 0 MUST NOT be assumed in such a case. | |||
13.1. Multi-area and Multi-domain Considerations | 13.1. Multi-area and Multi-domain Considerations | |||
Any IGP Shortest Path Tree calculation is limited to a single area. | Any IGP Shortest Path Tree calculation is limited to a single area. | |||
This applies to Flex-Algorithm calculations as well. Given that the | This applies to Flex-Algorithm calculations as well. Given that the | |||
computing router does not have visibility of the topology of the next | computing router does not have visibility of the topology of the next | |||
areas or domain, the Flex-Algorithm specific path to an inter-area or | areas or domain, the Flex-Algorithm-specific path to an inter-area or | |||
inter-domain prefix will be computed for the local area only. The | inter-domain prefix will be computed for the local area only. The | |||
egress L1/L2 router (ABR in OSPF), or ASBR for inter-domain case, | egress L1/L2 router (ABR in OSPF), or ASBR for an inter-domain case, | |||
will be selected based on the best path for the given Flex-Algorithm | will be selected based on the best path for the given Flex-Algorithm | |||
in the local area and such egress ABR or ASBR router will be | in the local area, and such egress ABR or ASBR router will be | |||
responsible to compute the best Flex-Algorithm specific path over the | responsible to compute the best Flex-Algorithm-specific path over the | |||
next area or domain. This may produce an end-to-end path, which is | next area or domain. This may produce an end-to-end path, which is | |||
suboptimal based on Flex-Algorithm constraints. In cases where the | suboptimal based on Flex-Algorithm constraints. In cases where the | |||
ABR or ASBR has no reachability to a prefix for a given Flex- | ABR or ASBR has no reachability to a prefix for a given Flex- | |||
Algorithm in the next area or domain, the traffic could be dropped by | Algorithm in the next area or domain, the traffic could be dropped by | |||
the ABR/ASBR. | the ABR/ASBR. | |||
To allow the optimal end-to-end path for an inter-area or inter- | To allow the optimal end-to-end path for an inter-area or inter- | |||
domain prefix for any Flex-Algorithm to be computed, the FAPM has | domain prefix for any Flex-Algorithm to be computed, the FAPM has | |||
been defined in Section 8 and Section 9. For external route | been defined in Sections 8 and 9. For external route calculation for | |||
calculation for prefixes originated by ASBRs in remote areas in OSPF, | prefixes originated by ASBRs in remote areas in OSPF, the FAAM has | |||
the FAAM has been defined in Section 10.2 for the ABR to indicate its | been defined in Section 10.2 for the ABR to indicate its ASBR | |||
ASBR reachability along with the metric for the specific Flex- | reachability along with the metric for the specific Flex-Algorithm. | |||
Algorithm. | ||||
If the FAD selected based on the rules defined in Section 5.3 | If the FAD selected based on the rules defined in Section 5.3 | |||
includes the M-flag, an ABR or ASBR MUST include the FAPM (Section 8, | includes the M-flag, an ABR or an ASBR MUST include the FAPM (see | |||
Section 9) when advertising the prefix, that is reachable in a given | Sections 8 and 9) when advertising the prefix that is reachable in a | |||
Flex-Algorithm, between areas or domains. Such metric will be equal | given Flex-Algorithm between areas or domains. Such metric will be | |||
to the metric to reach the prefix for that Flex-Algorithm in its | equal to the metric to reach the prefix for that Flex-Algorithm in | |||
source area or domain. This is similar in nature to how the metric | its source area or domain. This is similar in nature to how the | |||
is set when prefixes are advertised between areas or domains for the | metric is set when prefixes are advertised between areas or domains | |||
default algorithm. When a prefix is unreachable in its source area | for the default algorithm. When a prefix is unreachable in its | |||
or domain in a specific Flex-Algorithm, then an ABR or ASBR MUST NOT | source area or domain in a specific Flex-Algorithm, then an ABR or | |||
include the FAPM for that Flex-Algorithm when advertising the prefix | ASBR MUST NOT include the FAPM for that Flex-Algorithm when | |||
between areas or domains. | advertising the prefix between areas or domains. | |||
If the FAD selected based on the rules defined in Section 5.3 | If the FAD selected based on the rules defined in Section 5.3 | |||
includes the M-flag, the FAPM MUST be used during the calculation of | includes the M-flag, the FAPM MUST be used during the calculation of | |||
prefix reachability for the inter-area and external prefixes. If the | prefix reachability for the inter-area and external prefixes. If the | |||
FAPM for the Flex-Algorithm is not advertised with the inter-area or | FAPM for the Flex-Algorithm is not advertised with the inter-area or | |||
external prefix reachability advertisement, the prefix MUST be | external prefix reachability advertisement, the prefix MUST be | |||
considered as unreachable for that Flex-Algorithm. Similarly, in the | considered as unreachable for that Flex-Algorithm. Similarly, in the | |||
case of OSPF, for ASBRs in remote areas, if the FAAM is not | case of OSPF, for ASBRs in remote areas, if the FAAM is not | |||
advertised by the local ABR(s), the ASBR MUST be considered as | advertised by the local ABR(s), the ASBR MUST be considered as | |||
unreachable for that Flex-Algorithm and the external prefix | unreachable for that Flex-Algorithm, and the external prefix | |||
advertisements from such an ASBR are not considered for that Flex- | advertisements from such an ASBR are not considered for that Flex- | |||
Algorithm. | Algorithm. | |||
Flex-Algorithm prefix metrics and the OSPF Flex-Algorithm ASBR | The Flex-Algorithm prefix metrics and the OSPF Flex-Algorithm ASBR | |||
metrics MUST NOT be used during the Flex-Algorithm computation unless | metrics MUST NOT be used during the Flex-Algorithm computation unless | |||
the FAD selected based on the rules defined in Section 5.3 includes | the FAD selected based on the rules defined in Section 5.3 includes | |||
the M-Flag, as described in (Section 6.4 or Section 7.4). | the M-flag, as described in Sections 6.4 or 7.4. | |||
In the case of OSPF, when calculating external routes in a Flex- | In the case of OSPF, when calculating external routes in a Flex- | |||
Algorithm, if the winning FAD includes the M-Flag, and where the | Algorithm, if the winning FAD includes the M-flag, and the | |||
advertising ASBR is in a remote area, the metric will be the sum of | advertising ASBR is in a remote area, the metric will be the sum of | |||
the following: | the following: | |||
* the FAPM for that Flex-Algorithm advertised with the external | * the FAPM for that Flex-Algorithm advertised with the external | |||
route by the ASBR | route by the ASBR | |||
* the metric to reach the ASBR for that Flex-Algorithm from the | * the metric to reach the ASBR for that Flex-Algorithm from the | |||
local ABR i.e., the FAAM for that Flex-Algorithm advertised by the | local ABR, i.e., the FAAM for that Flex-Algorithm advertised by | |||
ABR in the local area for that ASBR | the ABR in the local area for that ASBR | |||
* the Flex-Algorithm specific metric to reach the local ABR | * the Flex-Algorithm-specific metric to reach the local ABR | |||
This is similar in nature to how the metric is calculated for routes | This is similar in nature to how the metric is calculated for routes | |||
learned from remote ASBRs in the default algorithm using the OSPFv2 | learned from remote ASBRs in the default algorithm using the OSPFv2 | |||
Type 4 ASBR Summary LSA and the OSPFv3 Inter-Area-Router LSA. | Type 4 ASBR summary-LSA and the OSPFv3 Inter-Area-Router-LSA. | |||
If the FAD selected based on the rules defined in Section 5.3 does | If the FAD selected based on the rules defined in Section 5.3 does | |||
not include the M-flag, then the IGP metrics associated with the | not include the M-flag, then the IGP metrics associated with the | |||
prefix reachability advertisements used by the base IS-IS and OSPF | prefix reachability advertisements used by the base IS-IS and OSPF | |||
protocol MUST be used for the Flex-Algorithm route computation. | protocol MUST be used for the Flex-Algorithm route computation. | |||
Similarly, in the case of external route calculations in OSPF, the | Similarly, in the case of external route calculations in OSPF, the | |||
ASBR reachability is determined based on the base OSPFv2 Type 4 | ASBR reachability is determined based on the base OSPFv2 Type 4 | |||
Summary LSA and the OSFPv3 Inter-Area-Router LSA. | summary-LSA and the OSFPv3 Inter-Area-Router-LSA. | |||
It is NOT RECOMMENDED to use the Flex-Algorithm for inter-area or | It is NOT RECOMMENDED to use the Flex-Algorithm for inter-area or | |||
inter-domain prefix reachability without the M-flag set. The reason | inter-domain prefix reachability without the M-flag set. The reason | |||
is that without the explicit Flex-Algorithm Prefix Metric | is that, without the explicit Flex-Algorithm prefix metric | |||
advertisement (and the Flex-Algorithm ASBR metric advertisement in | advertisement (and the Flex-Algorithm ASBR metric advertisement in | |||
the case of OSPF external route calculation), it is not possible to | the case of OSPF external route calculation), it is not possible to | |||
conclude whether the ABR or ASBR has reachability to the inter-area | conclude whether the ABR or ASBR has reachability to the inter-area | |||
or inter-domain prefix for a given Flex-Algorithm in the next area or | or inter-domain prefix for a given Flex-Algorithm in the next area or | |||
domain. Sending the Flex-Algorithm traffic for such a prefix towards | domain. Sending the Flex-Algorithm traffic for such a prefix towards | |||
the ABR or ASBR may result in traffic looping or persistent traffic | the ABR or ASBR may result in traffic looping or persistent traffic | |||
drop. | drop. | |||
During the route computation, it is possible for the Flex-Algorithm | During the route computation, it is possible for the Flex-Algorithm- | |||
specific metric to exceed the maximum value that can be stored in an | specific metric to exceed the maximum value that can be stored in an | |||
unsigned 32-bit variable. In such scenarios, the value MUST be | unsigned 32-bit variable. In such scenarios, the value MUST be | |||
considered to be of value 0xFFFFFFFF during the computation and | considered to be of value 0xFFFFFFFF during the computation and | |||
advertised as such. | advertised as such. | |||
The FAPM MUST NOT be advertised with IS-IS L1 or L2 intra-area, | The FAPM MUST NOT be advertised with IS-IS L1 or L2 intra-area, | |||
OSPFv2 intra-area, or OSPFv3 intra-area routes. If the FAPM is | OSPFv2 intra-area, or OSPFv3 intra-area routes. If the FAPM is | |||
advertised for these route-types, it MUST be ignored during the | advertised for these route-types, it MUST be ignored during the | |||
prefix reachability calculation. | prefix reachability calculation. | |||
The M-flag in the FAD is not applicable to prefixes advertised as | The M-flag in the FAD is not applicable to prefixes advertised as | |||
SRv6 locators. The IS-IS SRv6 Locator TLV | SRv6 locators. The IS-IS SRv6 Locator TLV [RFC9352] includes the | |||
[I-D.ietf-lsr-isis-srv6-extensions] includes the Algorithm and Metric | Algorithm and Metric fields. When the SRv6 Locator is advertised | |||
fields. When the SRv6 Locator is advertised between areas or | between areas or domains, the Metric field in the Locator TLV of IS- | |||
domains, the metric field in the Locator TLV of IS-IS MUST be used | IS MUST be used irrespective of the M-flag in the FAD advertisement. | |||
irrespective of the M-flag in the FAD advertisement. | ||||
OSPF external and NSSA external prefix advertisements MAY include a | OSPF external and NSSA external prefix advertisements MAY include a | |||
non-zero forwarding address in the prefix advertisements in the base | non-zero forwarding address in the prefix advertisements in the base | |||
protocol. In such a scenario, the Flex-Algorithm specific | protocol. In such a scenario, the Flex-Algorithm-specific | |||
reachability of the external prefix is determined by Flex-Algorithm | reachability of the external prefix is determined by Flex-Algorithm- | |||
specific reachability of the forwarding address. | specific reachability of the forwarding address. | |||
In OSPF, the procedures for translation of NSSA external prefix | In OSPF, the procedures for translation of NSSA external prefix | |||
advertisements into external prefix advertisements performed by an | advertisements into external prefix advertisements performed by an | |||
NSSA ABR [RFC3101] remain unchanged for Flex-Algorithm. An NSSA | NSSA ABR [RFC3101] remain unchanged for Flex-Algorithm. An NSSA | |||
translator MUST include the OSPF FAPM Sub-TLVs for all Flex- | translator MUST include the OSPF FAPM sub-TLVs for all Flex- | |||
Algorithms that are in the original NSSA external prefix | Algorithms that are in the original NSSA external prefix | |||
advertisement from the NSSA ASBR in the translated external prefix | advertisement from the NSSA ASBR in the translated external prefix | |||
advertisement generated by it regardless of its participation in | advertisement generated by it, regardless of its participation in | |||
those Flex-Algorithms or its having reachability to the NSSA ASBR in | those Flex-Algorithms or its having reachability to the NSSA ASBR in | |||
those Flex-Algorithms. | those Flex-Algorithms. | |||
An area could become partitioned from the perspective of the Flex- | An area could become partitioned from the perspective of the Flex- | |||
Algorithm due to the constraints and/or metric being used for it, | Algorithm due to the constraints and/or metric being used for it | |||
while maintaining the continuity in the base algorithm. When that | while maintaining the continuity in the base algorithm. When that | |||
happens, some destinations inside that area could become unreachable | happens, some destinations inside that area could become unreachable | |||
in that Flex-Algorithm. These destinations will not be able to use | in that Flex-Algorithm. These destinations will not be able to use | |||
an inter-area path. This is the consequence of the fact that the | an inter-area path. This is the consequence of the fact that the | |||
inter-area prefix reachability advertisement would not be available | inter-area prefix reachability advertisement would not be available | |||
for these intra-area destinations within the area. It is RECOMMENDED | for these intra-area destinations within the area. It is RECOMMENDED | |||
to minimize the risk of such partitioning by providing enough | to minimize the risk of such partitioning by providing enough | |||
redundancy inside the area for each Flex-Algorithm being used. | redundancy inside the area for each Flex-Algorithm being used. | |||
14. Flex-Algorithm and Forwarding Plane | 14. Flex-Algorithm and Forwarding Plane | |||
This section describes how Flex-Algorithm paths are used in | This section describes how Flex-Algorithm paths are used in | |||
forwarding. | forwarding. | |||
14.1. Segment Routing MPLS Forwarding for Flex-Algorithm | 14.1. Segment Routing MPLS Forwarding for Flex-Algorithm | |||
This section describes how Flex-Algorithm paths are used with SR MPLS | This section describes how Flex-Algorithm paths are used with SR MPLS | |||
forwarding. | forwarding. | |||
Prefix SID advertisements include an SR-Algorithm value and, as such, | Prefix-SID advertisements include an SR-Algorithm value and, as such, | |||
are associated with the specified SR-Algorithm. Prefix-SIDs are also | are associated with the specified SR-Algorithm. Prefix-SIDs are also | |||
associated with a specific topology which is inherited from the | associated with a specific topology that is inherited from the | |||
associated prefix reachability advertisement. When the algorithm | associated prefix reachability advertisement. When the algorithm | |||
value advertised is a Flex-Algorithm value, the Prefix SID is | value advertised is a Flex-Algorithm value, the Prefix-SID is | |||
associated with paths calculated using that Flex-Algorithm in the | associated with paths calculated using that Flex-Algorithm in the | |||
associated topology. | associated topology. | |||
A Flex-Algorithm path MUST be installed in the MPLS forwarding plane | A Flex-Algorithm path MUST be installed in the MPLS forwarding plane | |||
using the MPLS label that corresponds to the Prefix-SID that was | using the MPLS label that corresponds to the Prefix-SID that was | |||
advertised for that Flex-algorithm. If the Prefix SID for a given | advertised for that Flex-algorithm. If the Prefix-SID for a given | |||
Flex-algorithm is not known, the Flex-Algorithm specific path cannot | Flex-Algorithm is not known, the Flex-Algorithm-specific path cannot | |||
be installed in the MPLS forwarding plane. | be installed in the MPLS forwarding plane. | |||
Traffic that is supposed to be routed via Flex-Algorithm specific | Traffic that is supposed to be routed via Flex-Algorithm-specific | |||
paths MUST be dropped when there are no such paths available. | paths MUST be dropped when there are no such paths available. | |||
Loop Free Alternate (LFA) paths ([RFC6571] or its variants) for a | Loop Free Alternate (LFA) paths ([RFC6571] or its variants) for a | |||
given Flex-Algorithm MUST be computed using the same constraints as | given Flex-Algorithm MUST be computed using the same constraints as | |||
the calculation of the primary paths for that Flex-Algorithm. LFA | the calculation of the primary paths for that Flex-Algorithm. LFA | |||
paths MUST only use Prefix-SIDs advertised specifically for the given | paths MUST only use Prefix-SIDs advertised specifically for the given | |||
algorithm. LFA paths MUST NOT use an Adjacency-SID that belongs to a | algorithm. LFA paths MUST NOT use an Adjacency SID that belongs to a | |||
link that has been pruned from the Flex-Algorithm computation. | link that has been pruned from the Flex-Algorithm computation. | |||
If LFA protection is being used to protect a given Flex-Algorithm | If LFA protection is being used to protect a given Flex-Algorithm | |||
paths, all routers in the area participating in the given Flex- | path, all routers in the area participating in the given Flex- | |||
Algorithm SHOULD advertise at least one Flex-Algorithm specific Node- | Algorithm SHOULD advertise at least one Flex-Algorithm-specific Node- | |||
SID. These Node-SIDs are used to steer traffic over the LFA computed | SID. These Node-SIDs are used to steer traffic over the LFA-computed | |||
backup path. | backup path. | |||
14.2. SRv6 Forwarding for Flex-Algorithm | 14.2. SRv6 Forwarding for Flex-Algorithm | |||
This section describes how Flex-Algorithm paths are used with SRv6 | This section describes how Flex-Algorithm paths are used with SRv6 | |||
forwarding. | forwarding. | |||
In SRv6 a node is provisioned with a (topology, algorithm) specific | In SRv6, a node is provisioned with a (topology, algorithm) specific | |||
locator for each of the topology/algorithm pairs supported by that | locator for each of the topology/algorithm pairs supported by that | |||
node. Each locator is an aggregate prefix for all SIDs provisioned | node. Each locator is an aggregate prefix for all SIDs provisioned | |||
on that node which have the matching topology/algorithm. | on that node that have the matching topology/algorithm. | |||
The SRv6 locator advertisement in IS-IS | The SRv6 locator advertisement in IS-IS [RFC9352] includes the Multi- | |||
[I-D.ietf-lsr-isis-srv6-extensions] includes the MTID value that | Topology Identifier (MTID) value that associates the locator with a | |||
associates the locator with a specific topology. SRv6 locator | specific topology. SRv6 locator advertisements also include an | |||
advertisements also includes an Algorithm value that explicitly | algorithm value that explicitly associates the locator with a | |||
associates the locator with a specific algorithm. When the algorithm | specific algorithm. When the algorithm value advertised with a | |||
value advertised with a locator represents a Flex-Algorithm, the | locator represents a Flex-Algorithm, the paths to the locator prefix | |||
paths to the locator prefix MUST be calculated using the specified | MUST be calculated using the specified Flex-Algorithm in the | |||
Flex-Algorithm in the associated topology. | associated topology. | |||
Forwarding entries for the locator prefixes advertised in IS-IS MUST | Forwarding entries for the locator prefixes advertised in IS-IS MUST | |||
be installed in the forwarding plane of the receiving SRv6 capable | be installed in the forwarding plane of the receiving SRv6-capable | |||
routers when the associated topology/algorithm is participating in | routers when the associated topology/algorithm is participating in | |||
them. Forwarding entries for locators associated with Flex- | them. Forwarding entries for locators associated with Flex- | |||
Algorithms in which the node is not participating MUST NOT be | Algorithms in which the node is not participating MUST NOT be | |||
installed in the forwarding plane. | installed in the forwarding plane. | |||
When the locator is associated with a Flex-Algorithm, LFA paths to | When the locator is associated with a Flex-Algorithm, LFA paths to | |||
the locator prefix MUST be calculated using such Flex-Algorithm in | the locator prefix MUST be calculated using such Flex-Algorithm in | |||
the associated topology, to guarantee that they follow the same | the associated topology to guarantee that they follow the same | |||
constraints as the calculation of the primary paths. LFA paths MUST | constraints as the calculation of the primary paths. LFA paths MUST | |||
only use SRv6 SIDs advertised specifically for the given Flex- | only use SRv6 SIDs advertised specifically for the given Flex- | |||
Algorithm. | Algorithm. | |||
If LFA protection is being used to protect locators associated with a | If LFA protection is being used to protect locators associated with a | |||
given Flex-Algorithm, all routers in the area participating in the | given Flex-Algorithm, all routers in the area participating in the | |||
given Flex-Algorithm SHOULD advertise at least one Flex-Algorithm | given Flex-Algorithm SHOULD advertise at least one Flex-Algorithm- | |||
specific locator and END SID per node and one END.X SID for every | specific locator and END SID per node and one END.X SID for every | |||
link that has not been pruned from such Flex-Algorithm computation. | link that has not been pruned from such Flex-Algorithm computation. | |||
These locators and SIDs are used to steer traffic over the LFA- | These locators and SIDs are used to steer traffic over the LFA- | |||
computed backup path. | computed backup path. | |||
14.3. Other Data-planes' Forwarding for Flex-Algorithm | 14.3. Other Data Planes' Forwarding for Flex-Algorithm | |||
Any data-plane that wants to use Flex-Algorithm specific forwarding | Any data plane that wants to use Flex-Algorithm-specific forwarding | |||
needs to install some form of Flex-Algorithm specific forwarding | needs to install some form of Flex-Algorithm-specific forwarding | |||
entries. | entries. | |||
Data-plane specific forwarding for Flex-Algorithm MUST be defined for | Data-plane-specific forwarding for Flex-Algorithms MUST be defined | |||
each data-plane and is outside the scope of this document. | for each data plane and is outside the scope of this document. | |||
15. Operational Considerations | 15. Operational Considerations | |||
15.1. Inter-area Considerations | 15.1. Inter-area Considerations | |||
The scope of the Flex-Algorithm computation is an area, so is the | The scope of the Flex-Algorithm computation and the scope of the FAD | |||
scope of the FAD. In IS-IS, the Router Capability TLV in which the | is an area. In IS-IS, the Router Capability TLV in which the FAD | |||
FAD Sub-TLV is advertised MUST have the S-bit clear, which prevents | sub-TLV is advertised MUST have the S bit clear, which prevents it | |||
it from being flooded outside the level in which it was originated. | from being flooded outside the level in which it was originated. | |||
Even though in OSPF the FAD Sub-TLV can be flooded in an RI LSA that | Even though in OSPF the FAD sub-TLV can be flooded in an RI LSA that | |||
has AS flooding scope, the FAD selection is performed for each | has an AS flooding scope, the FAD selection is performed for each | |||
individual area in which it is being used. | individual area in which it is being used. | |||
There is no requirement for the FAD for a particular Flex-Algorithm | There is no requirement for the FAD for a particular Flex-Algorithm | |||
to be identical in all areas in the network. For example, traffic | to be identical in all areas in the network. For example, traffic | |||
for the same Flex-Algorithm may be optimized for minimal delay (e.g., | for the same Flex-Algorithm may be optimized for minimal delay (e.g., | |||
using delay metric) in one area or level, while being optimized for | using delay metric) in one area or level while being optimized for | |||
available bandwidth (e.g., using IGP metric) in another area or | available bandwidth (e.g., using IGP metric) in another area or | |||
level. | level. | |||
As described in Section 5.1, IS-IS allows the re-generation of the | As described in Section 5.1, IS-IS allows the regeneration of the | |||
winning FAD from level 2, without any modification to it, into a | winning FAD from level 2, without any modification to it, into a | |||
level 1 area. This allows the operator to configure the FAD in one | level 1 area. This allows the operator to configure the FAD in one | |||
or multiple routers in the level 2, without the need to repeat the | or multiple routers in level 2, without the need to repeat the same | |||
same task in each level 1 area, if the intent is to have the same FAD | task in each level 1 area, if the intent is to have the same FAD for | |||
for the particular Flex-Algorithm across all levels. This can | the particular Flex-Algorithm across all levels. This can similarly | |||
similarly be achieved in OSPF by using the AS flooding scope of the | be achieved in OSPF by using the AS flooding scope of the RI LSA in | |||
RI LSA in which the FAD Sub-TLV for the particular Flex-Algoritm is | which the FAD sub-TLV for the particular Flex-Algorithm is | |||
advertised. | advertised. | |||
Re-generation of the FAD from a level 1 area to the level 2 area is | Regeneration of the FAD from a level 1 area to the level 2 area is | |||
not supported in IS-IS, so if the intent is to regenerate the FAD | not supported in IS-IS, so if the intent is to regenerate the FAD | |||
between IS-IS levels, the FAD MUST be defined on router(s) that are | between IS-IS levels, the FAD MUST be defined on a router(s) that is | |||
in level 2. In OSPF, the FAD definition can be done in any area and | in level 2. In OSPF, the FAD definition can be done in any area and | |||
be propagated to all routers in the OSPF routing domain by using the | propagated to all routers in the OSPF routing domain by using the AS | |||
AS flooding scope of the RI LSA. | flooding scope of the RI LSA. | |||
15.2. Usage of SRLG Exclude Rule with Flex-Algorithm | 15.2. Usage of the SRLG Exclude Rule with Flex-Algorithm | |||
There are two different ways in which SRLG information can be used | There are two different ways in which SRLG information can be used | |||
with Flex-Algorithm: | with Flex-Algorithms: | |||
In a context of a single Flex-Algorithm, it can be used for | * In a context of a single Flex-Algorithm, it can be used for | |||
computation of backup paths, as described in | computation of backup paths, as described in | |||
[I-D.ietf-rtgwg-segment-routing-ti-lfa]. This usage does not | [RTGWG-SEGMENT-ROUTING-TI-LFA]. This usage does not require | |||
require association of any specific SRLG constraint with the given | association of any specific SRLG constraint with the given Flex- | |||
Flex-Algorithm definition. | Algorithm Definition. | |||
In the context of multiple Flex-Algorithms, it can be used for | * In the context of multiple Flex-Algorithms, it can be used for | |||
creating disjoint sets of paths by pruning the links belonging to | creating disjoint sets of paths by pruning the links belonging to | |||
a specific SRLG from the topology on which a specific Flex- | a specific SRLG from the topology on which a specific Flex- | |||
Algorithm computes its paths. This usage: | Algorithm computes its paths. This usage: | |||
Facilitates the usage of already deployed SRLG configurations | - facilitates the usage of already deployed SRLG configurations | |||
for setup of disjoint paths between two or more Flex- | for the setup of disjoint paths between two or more Flex- | |||
Algorithms. | Algorithms and | |||
Requires explicit association of a given Flex-Algorithm with a | - requires explicit association of a given Flex-Algorithm with a | |||
specific set of SRLG constraints as defined in Section 6.5 and | specific set of SRLG constraints, as defined in Sections 6.5 | |||
Section 7.5. | and 7.5. | |||
The two usages mentioned above are orthogonal. | The two usages mentioned above are orthogonal. | |||
15.3. Max-metric consideration | 15.3. Max-Metric Consideration | |||
Both IS-IS and OSPF have a mechanism to set the IGP metric on a link | Both IS-IS and OSPF have a mechanism to set the IGP metric on a link | |||
to a value that would make the link either non-reachable or to serve | to a value that would make the link either unreachable or serve as | |||
as the link of last resort. Similar functionality would be needed | the link of last resort. Similar functionality would be needed for | |||
for the Min Unidirectional Link Delay and TE metric, as these can be | the Min Unidirectional Link Delay and TE metric, as these can be used | |||
used to compute Flex-Algorithm paths. | to compute Flex-Algorithm paths. | |||
The link can be made un-reachable for all Flex-Algorithms that use | The link can be made unreachable for all Flex-Algorithms that use the | |||
Min Unidirectional Link Delay as metric, as described in Section 5.1, | Min Unidirectional Link Delay as a metric, as described in | |||
by removing the Flex-Algorithm ASLA Min Unidirectional Link Delay | Section 5.1, by removing the Flex-Algorithm ASLA Min Unidirectional | |||
advertisement for the link. The link can be made the link of last | Link Delay advertisement for the link. The link can be made the link | |||
resort by setting the delay value in the Flex-Algorithm ASLA delay | of last resort by setting the delay value in the Flex-Algorithm ASLA | |||
advertisement for the link to the value of 16,777,215 (2^24 - 1). | delay advertisement for the link to the value of 16,777,215 (2^24 - | |||
1). | ||||
The link can be made un-reachable for all Flex-Algorithms that use TE | The link can be made unreachable for all Flex-Algorithms that use the | |||
metric, as described in Section 5.1, by removing the Flex-Algorithm | TE metric, as described in Section 5.1, by removing the Flex- | |||
ASLA TE metric advertisement for the link. The link can be made the | Algorithm ASLA TE metric advertisement for the link. The link can be | |||
link of last resort by setting the TE metric value in the Flex- | made the link of last resort by setting the TE metric value in the | |||
Algorithm ASLA delay advertisement for the link to the value of (2^24 | Flex-Algorithm ASLA delay advertisement for the link to the value of | |||
- 1) in IS-IS and (2^32 - 1) in OSPF. | (2^24 - 1) in IS-IS and (2^32 - 1) in OSPF. | |||
15.4. FAD Definition and Changes | 15.4. Flexible Algorithm Definition and Changes | |||
When configuring a node to participate in a specific Flex-Algorithm, | When configuring a node to participate in a specific Flex-Algorithm, | |||
the components of the FAD (calculation-type, metric-type, | the components of the FAD (calculation-type, metric-type, and | |||
constraints) should be considered carefully. The configuration of | constraints) should be considered carefully. The configuration of | |||
participation in a particular Flex-Algorithm doesn't guarantee that | participation in a particular Flex-Algorithm doesn't guarantee that | |||
the node will actively participate in it, because it may not support | the node will actively participate in it, because it may not support | |||
the calculation-type, metric type or some constraint advertised by | the calculation-type, the metric-type, or some constraint advertised | |||
the winning FAD (see Section 5.3). Changes in the FAD configuration | by the winning FAD (see Section 5.3). Changes in the FAD | |||
should also be considered in light of the capabilities of the | configuration should also be considered in light of the capabilities | |||
participating routers in the scope of the FAD advertisement. | of the participating routers in the scope of the FAD advertisement. | |||
As Section 5.3 notes, a change in the Flex-Algorithm definition may | As Section 5.3 notes, a change in the Flex-Algorithm Definition may | |||
require network-wide SPF re-computation and network re-convergence. | require network-wide Shortest Path First (SPF) recomputation and | |||
This potential for disruption should be taken into consideration when | network reconvergence. This potential for disruption should be taken | |||
planning and making changes to the FAD. | into consideration when planning and making changes to the FAD. | |||
15.5. Number of Flex-Algorithms | 15.5. Number of Flex-Algorithms | |||
The maximum number of Flex-Algorithms is determined by the algorithm | The maximum number of Flex-Algorithms is determined by the algorithm | |||
range that is (128-255), as specified in Section 4. Although | range 128-255, as specified in Section 4. Although possible, it is | |||
possible, it is not expected that all of them will be used | not expected that all of them will be used simultaneously. | |||
simultaneously. Typically, only a limited subset of Flex-Algorithms | Typically, only a limited subset of Flex-Algorithms is expected to be | |||
is expected to be deployed in the network. | deployed in the network. | |||
16. Backward Compatibility | 16. Backward Compatibility | |||
This extension brings no new backward compatibility issues. IS-IS, | This extension brings no new backward-compatibility issues. IS-IS, | |||
OSPFv2 and OSPFv3 all have well-defined handling of unrecognized TLVs | OSPFv2, and OSPFv3 all have well-defined handling of unrecognized | |||
and sub-TLVs that allows the introduction of new extensions, similar | TLVs and sub-TLVs that allows the introduction of new extensions, | |||
to those defined here, without introducing any interoperability | similar to those defined here, without introducing any | |||
issues. | interoperability issues. | |||
17. Security Considerations | 17. Security Considerations | |||
This draft adds two new ways to disrupt IGP networks: | This document adds two new ways to disrupt IGP networks: | |||
An attacker can hijack a particular Flex-Algorithm by advertising | * An attacker can hijack a particular Flex-Algorithm by advertising | |||
a FAD with a priority of 255 (or any priority higher than that of | a FAD with a priority of 255 (or any priority higher than that of | |||
the legitimate nodes). | the legitimate nodes). | |||
An attacker could make it look like a router supports a particular | * An attacker could make it look like a router supports a particular | |||
Flex-Algorithm when it actually doesn't, or vice versa. | Flex-Algorithm when it actually doesn't, or vice versa. | |||
Both of these attacks can be addressed by the existing security | Both of these attacks can be addressed by the existing security | |||
extensions as described in [RFC5304] and [RFC5310] for IS-IS, in | extensions, as described in [RFC5304] and [RFC5310] for IS-IS, in | |||
[RFC2328] and [RFC7474] for OSPFv2, and in [RFC5340] and [RFC4552] | [RFC2328] and [RFC7474] for OSPFv2, and in [RFC4552] and [RFC5340] | |||
for OSPFv3. | for OSPFv3. | |||
If the node that is authenticated is taken over by an attacker, such | If the node that is authenticated is taken over by an attacker, such | |||
rogue node can advertise the FAD for any Flex-Algorithm. Doing so | rogue node can advertise the FAD for any Flex-Algorithm. Doing so | |||
may result in traffic for such Flex-Algorithm to be misrouted, or not | may result in traffic for such Flex-Algorithm to be misrouted, or not | |||
being delivered at all, for example, by using an unsupported metric- | delivered at all, for example, by using an unsupported metric-type, | |||
type, calculation-type, or constraint. Such attack is not | calculation-type, or constraint. Such attack is not preventable | |||
preventable through authentication, and it is not different from | through authentication, and it is not different from advertising any | |||
advertising any other incorrect information through IS-IS or OSPF. | other incorrect information through IS-IS or OSPF. | |||
18. IANA Considerations | 18. IANA Considerations | |||
18.1. IGP IANA Considerations | 18.1. IGP IANA Considerations | |||
18.1.1. IGP Algorithm Types Registry | 18.1.1. IGP Algorithm Types Registry | |||
This document makes the following registrations in the "IGP Algorithm | This document makes the following registration in the "IGP Algorithm | |||
Types" registry: | Types" registry: | |||
Type: 128-255. | +=========+=====================+=====================+ | |||
| Value | Description | Reference | | ||||
Description: Flexible Algorithms. | +=========+=====================+=====================+ | |||
| 128-255 | Flexible Algorithms | RFC 9350, Section 4 | | ||||
+---------+---------------------+---------------------+ | ||||
Reference: This document (Section 4). | Table 1: IGP Algorithm Types Registry | |||
18.1.2. IGP Metric-Type Registry | 18.1.2. IGP Metric-Type Registry | |||
IANA is requested to set up a registry called "IGP Metric-Type | IANA has created the "IGP Metric-Type" registry within the "Interior | |||
Registry" under the "Interior Gateway Protocol (IGP) Parameters" IANA | Gateway Protocol (IGP) Parameters" registry group. The registration | |||
grouping. The registration policy for this registry is "Standards | policy is "Standards Action" [RFC8126] [RFC7120]. Values are | |||
Action" ([RFC8126] and [RFC7120]). | assigned from the range 0-255 and have been registered as follows. | |||
Values in this registry come from the range 0-255. | ||||
This document registers following values in the "IGP Metric-Type | ||||
Registry": | ||||
Type: 0 | ||||
Description: IGP metric | ||||
Reference: This document (Section 5.1) | ||||
Type: 1 | ||||
Description: Min Unidirectional Link Delay as defined in | ||||
[RFC8570], section 4.2, and [RFC7471], section 4.2. | ||||
Reference: This document (Section 5.1) | ||||
Type: 2 | ||||
Description: Traffic Engineering Default Metric as defined in | ||||
[RFC5305], section 3.7, and Traffic engineering metric as defined | ||||
in [RFC3630], section 2.5.5 | ||||
Reference: This document (Section 5.1) | +======+======================================+===========+ | |||
| Type | Description | Reference | | ||||
+======+======================================+===========+ | ||||
| 0 | IGP Metric | RFC 9350, | | ||||
| | | Section | | ||||
| | | 5.1 | | ||||
+------+--------------------------------------+-----------+ | ||||
| 1 | Min Unidirectional Link Delay as | RFC 9350, | | ||||
| | defined in [RFC8570], Section 4.2 | Section | | ||||
| | and [RFC7471], Section 4.2 | 5.1 | | ||||
+------+--------------------------------------+-----------+ | ||||
| 2 | Traffic Engineering Default Metric | RFC 9350, | | ||||
| | as defined in [RFC5305], Section 3.7 | Section | | ||||
| | and Traffic Engineering Metric as | 5.1 | | ||||
| | defined in [RFC3630], Section 2.5.5 | | | ||||
+------+--------------------------------------+-----------+ | ||||
18.2. Flexible Algorithm Definition Flags Registry | Table 2: IGP Metric-Type Registry | |||
IANA is requested to set up a registry called "IGP Flexible Algorithm | 18.2. IGP Flexible Algorithm Definition Flags Registry | |||
Definition Flags Registry" under the "Interior Gateway Protocol (IGP) | ||||
Parameters" IANA grouping. The registration policy for this registry | ||||
is "Standards Action" ([RFC8126] and [RFC7120]). New registrations | ||||
should be assigned in ascending bit order (see Section 6.4). | ||||
This document defines the following single bit in Flexible Algorithm | IANA has created the "IGP Flexible Algorithm Definition Flags" | |||
Definition Flags registry: | registry within the "Interior Gateway Protocol (IGP) Parameters" | |||
registry group. The registration policy is "Standards Action". New | ||||
registrations should be assigned in ascending bit order (see | ||||
Section 6.4); the following single bit has been assigned as follows. | ||||
Bit # Name | +=====+=============================+====================+ | |||
----- ------------------------------ | | Bit | Name | Reference | | |||
0 Prefix Metric Flag (M-flag) | +=====+=============================+====================+ | |||
| 0 | Prefix Metric Flag (M-flag) | RFC 9350, Sections | | ||||
| | | 6.4 and 7.4 | | ||||
+-----+-----------------------------+--------------------+ | ||||
Reference: This document (Section 6.4, Section 7.4). | Table 3: IGP Flexible Algorithm Definition Flags Registry | |||
18.3. IS-IS IANA Considerations | 18.3. IS-IS IANA Considerations | |||
18.3.1. IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV | 18.3.1. IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV Registry | |||
This document makes the following registrations in the "IS-IS Sub- | ||||
TLVs for IS-IS Router CAPABILITY TLV" registry. | ||||
Type: 26. | This document makes the following registration in the "IS-IS Sub-TLVs | |||
for IS-IS Router CAPABILITY TLV" registry. | ||||
Description: Flexible Algorithm Definition (FAD) | +=======+=====================================+=============+ | |||
| Value | Description | Reference | | ||||
+=======+=====================================+=============+ | ||||
| 26 | Flexible Algorithm Definition (FAD) | RFC 9350, | | ||||
| | | Section 5.1 | | ||||
+-------+-------------------------------------+-------------+ | ||||
Reference: This document (Section 5.1). | Table 4: IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV | |||
Registry | ||||
18.3.2. IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability | 18.3.2. IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability | |||
Registry | ||||
This document makes the following registrations in the "IS-IS Sub- | This document makes the following registration in the "IS-IS Sub-TLVs | |||
TLVs for TLVs Advertising Prefix Reachability" registry. | for TLVs Advertising Prefix Reachability" registry. | |||
Type: 6 | ||||
Description: Flexible Algorithm Prefix Metric (FAPM). | ||||
Reference: This document (Section 8). | ||||
18.3.3. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | ||||
This document creates the following Sub-Sub-TLV Registry, under the | ||||
IS-IS TLV Codepoints grouping. | ||||
Registry: Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | ||||
Registration Procedure: Expert review. (Note that the IS-IS TLV | ||||
Codepoints grouping includes Expert Review guidance that applies | ||||
to all registries thereunder.) | ||||
Reference: This document (Section 5.1) | ||||
This document defines the following Sub-Sub-TLVs in the "Sub-Sub-TLVs | ||||
for Flexible Algorithm Definition Sub-TLV" registry: | ||||
Type: 0 | ||||
Description: Reserved | ||||
Reference: This document. | ||||
Type: 1 | ||||
Description: Flexible Algorithm Exclude Admin Group | ||||
Reference: This document (Section 6.1). | ||||
Type: 2 | ||||
Description: Flexible Algorithm Include-Any Admin Group | ||||
Reference: This document (Section 6.2). | ||||
Type: 3 | ||||
Description: Flexible Algorithm Include-All Admin Group | ||||
Reference: This document (Section 6.3). | ||||
Type: 4 | ||||
Description: Flexible Algorithm Definition Flags | ||||
Reference: This document (Section 6.4). | +======+==================+====+=====+=====+=====+=====+===========+ | |||
| Type | Description | 27 | 135 | 235 | 236 | 237 | Reference | | ||||
+======+==================+====+=====+=====+=====+=====+===========+ | ||||
| 6 | Flexible | n | y | y | y | y | RFC 9350, | | ||||
| | Algorithm Prefix | | | | | | Section 8 | | ||||
| | Metric (FAPM) | | | | | | | | ||||
+------+------------------+----+-----+-----+-----+-----+-----------+ | ||||
Type: 5 | Table 5: IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability | |||
Registry | ||||
Description: Flexible Algorithm Exclude SRLG | 18.3.3. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
Registry | ||||
Reference: This document (Section 6.5). | IANA has created the "IS-IS Sub-Sub-TLVs for Flexible Algorithm | |||
Definition Sub-TLV" registry within the "IS-IS TLV Codepoints" | ||||
registry group. The registration procedure is "Expert Review" (note | ||||
that the "IS-IS TLV Codepoints" registry group includes Expert Review | ||||
guidance that applies to all registries thereunder). | ||||
Type: 6-255 | The sub-sub-TLVs defined in this document have been assigned as | |||
follows. | ||||
Description: Unassigned | +=======+========================================+=============+ | |||
| Type | Description | Reference | | ||||
+=======+========================================+=============+ | ||||
| 0 | Reserved | RFC 9350 | | ||||
+-------+----------------------------------------+-------------+ | ||||
| 1 | Flexible Algorithm Exclude Admin Group | RFC 9350, | | ||||
| | | Section 6.1 | | ||||
+-------+----------------------------------------+-------------+ | ||||
| 2 | Flexible Algorithm Include-Any Admin | RFC 9350, | | ||||
| | Group | Section 6.2 | | ||||
+-------+----------------------------------------+-------------+ | ||||
| 3 | Flexible Algorithm Include-All Admin | RFC 9350, | | ||||
| | Group | Section 6.3 | | ||||
+-------+----------------------------------------+-------------+ | ||||
| 4 | Flexible Algorithm Definition Flags | RFC 9350, | | ||||
| | | Section 6.4 | | ||||
+-------+----------------------------------------+-------------+ | ||||
| 5 | Flexible Algorithm Exclude SRLG | RFC 9350, | | ||||
| | | Section 6.5 | | ||||
+-------+----------------------------------------+-------------+ | ||||
| 6-255 | Unassigned | | | ||||
+-------+----------------------------------------+-------------+ | ||||
Reference: This document. | Table 6: IS-IS Sub-Sub-TLVs for Flexible Algorithm | |||
Definition Sub-TLV Registry | ||||
18.4. OSPF IANA Considerations | 18.4. OSPF IANA Considerations | |||
18.4.1. OSPF Router Information (RI) TLVs Registry | 18.4.1. OSPF Router Information (RI) TLVs Registry | |||
This specification makes the following registration in the OSPF | This document makes the following registration in the "OSPF Router | |||
Router Information (RI) TLVs Registry. | Information (RI) TLVs" registry. | |||
Type: 16 | ||||
Description: Flexible Algorithm Definition (FAD) TLV. | +=======+=========================================+=============+ | |||
| Value | Description | Reference | | ||||
+=======+=========================================+=============+ | ||||
| 16 | Flexible Algorithm Definition (FAD) TLV | RFC 9350, | | ||||
| | | Section 5.2 | | ||||
+-------+-----------------------------------------+-------------+ | ||||
Reference: This document (Section 5.2). | Table 7: OSPF Router Information (RI) TLVs Registry | |||
18.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs | 18.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs Registry | |||
This document makes the following registrations in the "OSPFv2 | This document makes the following registration in the "OSPFv2 | |||
Extended Prefix TLV Sub-TLVs" registry. | Extended Prefix TLV Sub-TLVs" registry. | |||
Type: 3 | +=======+=========================================+===========+ | |||
| Value | Description | Reference | | ||||
Description: Flexible Algorithm Prefix Metric (FAPM). | +=======+=========================================+===========+ | |||
| 3 | Flexible Algorithm Prefix Metric (FAPM) | RFC 9350, | | ||||
| | | Section 9 | | ||||
+-------+-----------------------------------------+-----------+ | ||||
Reference: This document (Section 9). | Table 8: OSPFv2 Extended Prefix TLV Sub-TLVs Registry | |||
18.4.3. OSPFv3 Extended-LSA Sub-TLVs | 18.4.3. OSPFv3 Extended-LSA Sub-TLVs Registry | |||
This document makes the following registrations in the "OSPFv3 | This document makes the following registrations in the "OSPFv3 | |||
Extended-LSA Sub-TLVs" registry. | Extended-LSA Sub-TLVs" registry. | |||
Type: 26 | +=======+=========================================+==============+ | |||
| Value | Description | Reference | | ||||
Description: Flexible Algorithm Prefix Metric (FAPM). | +=======+=========================================+==============+ | |||
| 26 | Flexible Algorithm Prefix Metric (FAPM) | RFC 9350, | | ||||
Reference: This document (Section 9). | | | | Section 9 | | |||
+-------+-----------------------------------------+--------------+ | ||||
Type: 33 | | 33 | OSPF Flexible Algorithm ASBR Metric | RFC 9350, | | |||
| | | Section 10.2 | | ||||
Description: OSPF Flexible Algorithm ASBR Metric | +-------+-----------------------------------------+--------------+ | |||
Reference: This document (Section 10.2). | ||||
For both of these sub-TLVs the column L2BN in the registry is set to | ||||
"X" - meaning "sub-TLV is not a Router Link sub-TLV; it MUST NOT | ||||
appear in L2 Bundle Member sub-TLV". | ||||
18.4.4. OSPF Flex-Algorithm Prefix Metric Bits | ||||
This specification requests creation of the "OSPF Flex-Algorithm | Table 9: OSPFv3 Extended-LSA Sub-TLVs Registry | |||
Prefix Metric Bits" registry under the "Open Shortest Path First | ||||
(OSPF) Parameters" with the following initial values: | ||||
Bit Number: 0 | 18.4.4. OSPF Flex-Algorithm Prefix Metric Bits Registry | |||
Description: E bit - External Type | IANA has created the "OSPF Flex-Algorithm Prefix Metric Bits" | |||
registry under the "Open Shortest Path First (OSPF) Parameters" | ||||
registry. The registration procedure is "IETF Review". Bits 1-7 are | ||||
unassigned, and the initial value has been assigned as follows. | ||||
Reference: this document (Section 9). | +============+=======================+=====================+ | |||
| Bit Number | Description | Reference | | ||||
+============+=======================+=====================+ | ||||
| 0 | E bit - External Type | RFC 9350, Section 9 | | ||||
+------------+-----------------------+---------------------+ | ||||
The bits 1-7 are unassigned and the registration procedure to be | Table 10: OSPF Flex-Algorithm Prefix Metric Bits Registry | |||
followed for this registry is IETF Review. | ||||
18.4.5. OSPFv2 Opaque LSA Option Types | 18.4.5. Opaque Link-State Advertisements (LSA) Option Types Registry | |||
This document makes the following registrations in the "Opaque Link- | This document makes the following registration in the "Opaque Link- | |||
State Advertisements (LSA) Option Types" registry under the "Open | State Advertisements (LSA) Option Types" registry within the "Open | |||
Shortest Path First (OSPF) Opaque Link-State Advertisements (LSA) | Shortest Path First (OSPF) Opaque Link-State Advertisements (LSA) | |||
Option Types" grouping. | Option Types" registry group. | |||
Value: 11 | ||||
Description: OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) LSA | ||||
Reference: This document (Section 10.1). | ||||
18.4.6. OSPFv2 Extended Inter-Area ASBR TLVs | ||||
This specification requests creation of "OSPFv2 Extended Inter-Area | ||||
ASBR TLVs" registry under the OSPFv2 Parameters Registry with the | ||||
following initial values. | ||||
Value: 1 | ||||
Description : Extended Inter-Area ASBR | +=======+==========================+==============+ | |||
| Value | Opaque Type | Reference | | ||||
+=======+==========================+==============+ | ||||
| 11 | OSPFv2 Extended Inter- | RFC 9350, | | ||||
| | Area ASBR (EIA-ASBR) LSA | Section 10.1 | | ||||
+-------+--------------------------+--------------+ | ||||
Reference: this document | Table 11: Opaque Link-State Advertisements | |||
(LSA) Option Types Registry | ||||
The values 2 to 32767 are unassigned, values 32768 to 33023 are | 18.4.6. OSPFv2 Extended Inter-Area ASBR TLVs Registry | |||
reserved for experimental use while the values 0 and 33024 to 65535 | ||||
are reserved. The registration procedure to be followed for this | ||||
registry is IETF Review or IESG Approval. | ||||
18.4.7. OSPFv2 Inter-Area ASBR Sub-TLVs | IANA has created the "OSPFv2 Extended Inter-Area ASBR TLVs" registry | |||
within the "Open Shortest Path First v2 (OSPFv2) Parameters" registry | ||||
group. The registration procedure is "IETF Review" or "IESG | ||||
Approval". The initial value has been assigned as follows. | ||||
This specification requests creation of "OSPFv2 Extended Inter-Area | +=======+==========================+===========+ | |||
ASBR Sub-TLVs" registry under the "Open Shortest Path First v2 | | Value | Description | Reference | | |||
(OSPFv2) Parameters" grouping, with the following initial values. | +=======+==========================+===========+ | |||
| 1 | Extended Inter-Area ASBR | RFC 9350 | | ||||
+-------+--------------------------+-----------+ | ||||
Value: 1 | Table 12: OSPFv2 Extended Inter-Area ASBR | |||
TLVs Registry | ||||
Description : OSPF Flexible Algorithm ASBR Metric | The values 2-32767 are unassigned, the values 32768-33023 are | |||
reserved for Experimental Use, and the values 0 and 33024-65535 are | ||||
reserved. | ||||
Reference: this document | 18.4.7. OSPFv2 Extended Inter-Area ASBR Sub-TLVs Registry | |||
The values 2 to 32767 are unassigned, values 32768 to 33023 are | IANA has created the "OSPFv2 Extended Inter-Area ASBR Sub-TLVs" | |||
reserved for experimental use while the values 0 and 33024 to 65535 | registry under the "Open Shortest Path First v2 (OSPFv2) Parameters" | |||
are reserved. The registration procedure to be followed for this | registry. The registration procedure is "IETF Review" or "IESG | |||
registry is IETF Review or IESG Approval. | Approval". The initial value has been assigned as follows. | |||
18.4.8. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry | +=======+=====================================+===========+ | |||
| Value | Description | Reference | | ||||
+=======+=====================================+===========+ | ||||
| 1 | OSPF Flexible Algorithm ASBR Metric | RFC 9350 | | ||||
+-------+-------------------------------------+-----------+ | ||||
This document creates the following registry under the "Open Shortest | Table 13: OSPFv2 Extended Inter-Area ASBR Sub-TLVs Registry | |||
Path First (OSPF) Parameters" grouping: | ||||
Registry: OSPF Flexible Algorithm Definition TLV sub-TLVs | The values 2-32767 are unassigned, the values 32768-33023 are | |||
reserved for Experimental Use, and the values 0 and 33024-65535 are | ||||
reserved. | ||||
Registration Procedure: IETF Review or IESG Approval | 18.4.8. OSPF Flexible Algorithm Definition TLV Sub-TLVs Registry | |||
Reference: This document (Section 5.2) | IANA has created the "OSPF Flexible Algorithm Definition TLV Sub- | |||
TLVs" registry within the "Open Shortest Path First (OSPF) | ||||
Parameters" registry group. The registration procedure is "IETF | ||||
Review" or "IESG Approval". | ||||
The "OSPF Flexible Algorithm Definition TLV sub-TLV" registry will | The "OSPF Flexible Algorithm Definition TLV Sub-TLVs" registry will | |||
define sub-TLVs at any level of nesting for the Flexible Algorithm | define sub-TLVs at any level of nesting for the Flexible Algorithm | |||
TLV New values can be allocated via IETF Review or IESG Approval. | TLV, and new values can be allocated via the registration procedure. | |||
This document registers following Sub-TLVs in the "OSPF Flexible | ||||
Algorithm Definition TLV sub-TLV" registry: | ||||
Type: 0 | ||||
Description: Reserved | ||||
Reference: This document (Section 7.1). | ||||
Type: 1 | ||||
Description: Flexible Algorithm Exclude Admin Group | ||||
Reference: This document (Section 7.1). | ||||
Type: 2 | ||||
Description: Flexible Algorithm Include-Any Admin Group | ||||
Reference: This document (Section 7.2). | ||||
Type: 3 | ||||
Description: Flexible Algorithm Include-All Admin Group | ||||
Reference: This document (Section 7.3). | ||||
Type: 4 | ||||
Description: Flexible Algorithm Definition Flags | ||||
Reference: This document (Section 7.4). | ||||
Type: 5 | This document registers the following sub-TLVs. | |||
Description: Flexible Algorithm Exclude SRLG | +============+========================================+=============+ | |||
| Bit Number | Description | Reference | | ||||
+============+========================================+=============+ | ||||
| 0 | Reserved | RFC 9350 | | ||||
+------------+----------------------------------------+-------------+ | ||||
| 1 | Flexible Algorithm | RFC 9350, | | ||||
| | Exclude Admin Group | Section 7.1 | | ||||
+------------+----------------------------------------+-------------+ | ||||
| 2 | Flexible Algorithm | RFC 9350, | | ||||
| | Include-Any Admin Group | Section 7.2 | | ||||
+------------+----------------------------------------+-------------+ | ||||
| 3 | Flexible Algorithm | RFC 9350, | | ||||
| | Include-All Admin Group | Section 7.3 | | ||||
+------------+----------------------------------------+-------------+ | ||||
| 4 | Flexible Algorithm | RFC 9350, | | ||||
| | Definition Flags | Section 7.4 | | ||||
+------------+----------------------------------------+-------------+ | ||||
| 5 | Flexible Algorithm | RFC 9350, | | ||||
| | Exclude SRLG | Section 7.5 | | ||||
+------------+----------------------------------------+-------------+ | ||||
Reference: This document (Section 7.5). | Table 14: OSPF Flexible Algorithm Definition TLV Sub-TLVs Registry | |||
The values 6 to 32767 are unassigned, values 32768-33023 are for | The values 6-32767 are unassigned, and values 32768-33023 are for | |||
experimental use; these will not be registered with IANA. | Experimental Use; these will not be registered with IANA. | |||
Types in the range 33024-65535 are not to be assigned at this time. | Types in the range 33024-65535 are not to be assigned at this time. | |||
Before any assignments can be made in the 33024-65535 range, there | Before any assignments can be made in the 33024-65535 range, there | |||
MUST be an IETF specification that specifies IANA Considerations that | MUST be an IETF specification that specifies IANA considerations that | |||
covers the range being assigned. | cover the range being assigned. | |||
18.4.9. Link Attribute Applications Registry | ||||
This document registers following bit in the Link Attribute | ||||
Applications Registry: | ||||
Bit-3 | ||||
Description: Flexible Algorithm (X-bit) | ||||
Reference: This document (Section 12). | ||||
19. Acknowledgements | ||||
This draft, among other things, is also addressing the problem that | ||||
the [I-D.gulkohegde-routing-planes-using-sr] was trying to solve. | ||||
All authors of that draft agreed to join this draft. | ||||
Thanks to Eric Rosen, Tony Przygienda, William Britto A J, Gunter Van | ||||
De Velde, Dirk Goethals, Manju Sivaji and, Baalajee S for their | ||||
detailed review and excellent comments. | ||||
Thanks to Cengiz Halit for his review and feedback during initial | 18.4.9. Link Attribute Application Identifiers Registry | |||
phase of the solution definition. | ||||
Thanks to Kenji Kumaki for his comments. | This document registers the following bit in the "Link Attribute | |||
Application Identifiers" registry. | ||||
Thanks to Acee Lindem for editorial comments. | +=====+============================+======================+ | |||
| Bit | Description | Reference | | ||||
+=====+============================+======================+ | ||||
| 3 | Flexible Algorithm (X-bit) | RFC 9350, Section 12 | | ||||
+-----+----------------------------+----------------------+ | ||||
20. References | Table 15: Link Attribute Application Identifiers Registry | |||
20.1. Normative References | 19. References | |||
[I-D.ietf-lsr-isis-srv6-extensions] | 19.1. Normative References | |||
Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and | ||||
Z. Hu, "IS-IS Extensions to Support Segment Routing over | ||||
IPv6 Dataplane", Work in Progress, Internet-Draft, draft- | ||||
ietf-lsr-isis-srv6-extensions-18, 20 October 2021, | ||||
<https://www.ietf.org/archive/id/draft-ietf-lsr-isis-srv6- | ||||
extensions-18.txt>. | ||||
[ISO10589] ISO, "Intermediate system to Intermediate system intra- | [ISO10589] ISO, "Information technology - Telecommunications and | |||
domain routeing information exchange protocol for use in | information exchange between systems - Intermediate System | |||
conjunction with the protocol for providing the | to Intermediate System intra-domain routeing information | |||
connectionless-mode Network Service (ISO 8473)", ISO/ | exchange protocol for use in conjunction with the protocol | |||
IEC 10589:2002, Second Edition, November 2002. | 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>. | |||
[RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in | [RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in | |||
Support of Generalized Multi-Protocol Label Switching | Support of Generalized Multi-Protocol Label Switching | |||
(GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005, | (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005, | |||
<https://www.rfc-editor.org/info/rfc4203>. | <https://www.rfc-editor.org/info/rfc4203>. | |||
skipping to change at page 48, line 37 ¶ | skipping to change at line 2174 ¶ | |||
[RFC8919] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and | [RFC8919] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and | |||
J. Drake, "IS-IS Application-Specific Link Attributes", | J. Drake, "IS-IS Application-Specific Link Attributes", | |||
RFC 8919, DOI 10.17487/RFC8919, October 2020, | RFC 8919, DOI 10.17487/RFC8919, October 2020, | |||
<https://www.rfc-editor.org/info/rfc8919>. | <https://www.rfc-editor.org/info/rfc8919>. | |||
[RFC8920] Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura, | [RFC8920] Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura, | |||
J., and J. Drake, "OSPF Application-Specific Link | J., and J. Drake, "OSPF Application-Specific Link | |||
Attributes", RFC 8920, DOI 10.17487/RFC8920, October 2020, | Attributes", RFC 8920, DOI 10.17487/RFC8920, October 2020, | |||
<https://www.rfc-editor.org/info/rfc8920>. | <https://www.rfc-editor.org/info/rfc8920>. | |||
20.2. Informative References | [RFC9352] Psenak, P., Ed., Filsfils, C., Bashandy, A., Decraene, B., | |||
and Z. Hu, "IS-IS Extensions to Support Segment Routing | ||||
[I-D.gulkohegde-routing-planes-using-sr] | over the IPv6 Data Plane", RFC 9352, DOI 10.17487/RFC9352, | |||
Hegde, S. and A. Gulko, "Separating Routing Planes using | February 2023, <https://www.rfc-editor.org/info/rfc9352>. | |||
Segment Routing", Work in Progress, Internet-Draft, draft- | ||||
gulkohegde-routing-planes-using-sr-00, 13 March 2017, | ||||
<https://www.ietf.org/archive/id/draft-gulkohegde-routing- | ||||
planes-using-sr-00.txt>. | ||||
[I-D.ietf-rtgwg-segment-routing-ti-lfa] | 19.2. Informative References | |||
Litkowski, S., Bashandy, A., Filsfils, C., Francois, P., | ||||
Decraene, B., and D. Voyer, "Topology Independent Fast | ||||
Reroute using Segment Routing", Work in Progress, | ||||
Internet-Draft, draft-ietf-rtgwg-segment-routing-ti-lfa- | ||||
08, 21 January 2022, <https://www.ietf.org/archive/id/ | ||||
draft-ietf-rtgwg-segment-routing-ti-lfa-08.txt>. | ||||
[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>. | |||
[RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option", | [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option", | |||
RFC 3101, DOI 10.17487/RFC3101, January 2003, | RFC 3101, DOI 10.17487/RFC3101, January 2003, | |||
<https://www.rfc-editor.org/info/rfc3101>. | <https://www.rfc-editor.org/info/rfc3101>. | |||
[RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering | [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering | |||
skipping to change at page 50, line 31 ¶ | skipping to change at line 2256 ¶ | |||
D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) | D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) | |||
Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March | Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March | |||
2019, <https://www.rfc-editor.org/info/rfc8570>. | 2019, <https://www.rfc-editor.org/info/rfc8570>. | |||
[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>. | |||
[ROUTING-PLANES-USING-SR] | ||||
Hegde, S. and A. Gulko, "Separating Routing Planes using | ||||
Segment Routing", Work in Progress, Internet-Draft, draft- | ||||
gulkohegde-routing-planes-using-sr-00, 13 March 2017, | ||||
<https://datatracker.ietf.org/doc/html/draft-gulkohegde- | ||||
routing-planes-using-sr-00>. | ||||
[RTGWG-SEGMENT-ROUTING-TI-LFA] | ||||
Litkowski, S., Bashandy, A., Filsfils, C., Francois, P., | ||||
Decraene, B., and D. Voyer, "Topology Independent Fast | ||||
Reroute using Segment Routing", Work in Progress, | ||||
Internet-Draft, draft-ietf-rtgwg-segment-routing-ti-lfa- | ||||
09, 23 December 2022, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-rtgwg- | ||||
segment-routing-ti-lfa-09>. | ||||
Acknowledgements | ||||
This document, among other things, addresses the problem that | ||||
[ROUTING-PLANES-USING-SR] was trying to solve. All authors of that | ||||
document agreed to join this document. | ||||
Thanks to Eric Rosen, Tony Przygienda, William Britto A. J., Gunter | ||||
Van de Velde, Dirk Goethals, Manju Sivaji, and Baalajee S. for their | ||||
detailed review and excellent comments. | ||||
Thanks to Cengiz Halit for his review and feedback during the initial | ||||
phase of the solution definition. | ||||
Thanks to Kenji Kumaki for his comments. | ||||
Thanks to Acee Lindem for editorial comments. | ||||
Authors' Addresses | Authors' Addresses | |||
Peter Psenak (editor) | Peter Psenak (editor) | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Apollo Business Center | Apollo Business Center | |||
Mlynske nivy 43 | Mlynske nivy 43 | |||
Bratislava | 82109 Bratislava | |||
Slovakia | Slovakia | |||
Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
Shraddha Hegde | Shraddha Hegde | |||
Juniper Networks, Inc. | Juniper Networks, Inc. | |||
Embassy Business Park | Embassy Business Park | |||
Bangalore, KA | Bangalore 560093 | |||
560093 | KA | |||
India | India | |||
Email: shraddha@juniper.net | Email: shraddha@juniper.net | |||
Clarence Filsfils | Clarence Filsfils | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Brussels | Brussels | |||
Belgium | Belgium | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
Ketan Talaulikar | Ketan Talaulikar | |||
Cisco Systems, Inc | Cisco Systems, Inc | |||
India | India | |||
Email: ketant.ietf@gmail.com | Email: ketant.ietf@gmail.com | |||
End of changes. 414 change blocks. | ||||
1085 lines changed or deleted | 1060 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |