summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9350.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9350.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9350.txt')
-rw-r--r--doc/rfc/rfc9350.txt2328
1 files changed, 2328 insertions, 0 deletions
diff --git a/doc/rfc/rfc9350.txt b/doc/rfc/rfc9350.txt
new file mode 100644
index 0000000..720ffc1
--- /dev/null
+++ b/doc/rfc/rfc9350.txt
@@ -0,0 +1,2328 @@
+
+
+
+
+Internet Engineering Task Force (IETF) P. Psenak, Ed.
+Request for Comments: 9350 Cisco Systems, Inc.
+Category: Standards Track S. Hegde
+ISSN: 2070-1721 Juniper Networks, Inc.
+ C. Filsfils
+ Cisco Systems, Inc.
+ K. Talaulikar
+ Cisco Systems, Inc
+ A. Gulko
+ Edward Jones
+ February 2023
+
+
+ IGP Flexible Algorithm
+
+Abstract
+
+ IGP protocols historically compute the best paths over the network
+ based on the IGP metric assigned to the links. Many network
+ deployments use RSVP-TE or Segment Routing - Traffic Engineering (SR-
+ TE) to steer traffic over a path that is computed using different
+ metrics or constraints than the shortest IGP path. This document
+ specifies a solution that allows IGPs themselves to compute
+ constraint-based paths over the network. This document also
+ specifies a way of using Segment Routing (SR) Prefix-SIDs and SRv6
+ locators to steer packets along the constraint-based paths.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc9350.
+
+Copyright Notice
+
+ Copyright (c) 2023 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Revised BSD License text as described in Section 4.e of the
+ Trust Legal Provisions and are provided without warranty as described
+ in the Revised BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Requirements Language
+ 3. Terminology
+ 4. Flexible Algorithm
+ 5. Flexible Algorithm Definition Advertisement
+ 5.1. IS-IS Flexible Algorithm Definition Sub-TLV
+ 5.2. OSPF Flexible Algorithm Definition TLV
+ 5.3. Common Handling of the Flexible Algorithm Definition TLV
+ 6. Sub-TLVs of IS-IS FAD Sub-TLV
+ 6.1. IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV
+ 6.2. IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV
+ 6.3. IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV
+ 6.4. IS-IS Flexible Algorithm Definition Flags Sub-TLV
+ 6.5. IS-IS Flexible Algorithm Exclude SRLG Sub-TLV
+ 7. Sub-TLVs of the OSPF FAD TLV
+ 7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV
+ 7.2. OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV
+ 7.3. OSPF Flexible Algorithm Include-All Admin Group Sub-TLV
+ 7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV
+ 7.5. OSPF Flexible Algorithm Exclude SRLG Sub-TLV
+ 8. IS-IS Flexible Algorithm Prefix Metric Sub-TLV
+ 9. OSPF Flexible Algorithm Prefix Metric Sub-TLV
+ 10. OSPF Flexible Algorithm ASBR Reachability Advertisement
+ 10.1. OSPFv2 Extended Inter-Area ASBR LSA
+ 10.1.1. OSPFv2 Extended Inter-Area ASBR TLV
+ 10.2. OSPF Flexible Algorithm ASBR Metric Sub-TLV
+ 11. Advertisement of Node Participation in a Flex-Algorithm
+ 11.1. Advertisement of Node Participation for Segment Routing
+ 11.2. Advertisement of Node Participation for Other Data Planes
+ 12. Advertisement of Link Attributes for Flex-Algorithm
+ 13. Calculation of Flexible Algorithm Paths
+ 13.1. Multi-area and Multi-domain Considerations
+ 14. Flex-Algorithm and Forwarding Plane
+ 14.1. Segment Routing MPLS Forwarding for Flex-Algorithm
+ 14.2. SRv6 Forwarding for Flex-Algorithm
+ 14.3. Other Data Planes' Forwarding for Flex-Algorithm
+ 15. Operational Considerations
+ 15.1. Inter-area Considerations
+ 15.2. Usage of the SRLG Exclude Rule with Flex-Algorithm
+ 15.3. Max-Metric Consideration
+ 15.4. Flexible Algorithm Definition and Changes
+ 15.5. Number of Flex-Algorithms
+ 16. Backward Compatibility
+ 17. Security Considerations
+ 18. IANA Considerations
+ 18.1. IGP IANA Considerations
+ 18.1.1. IGP Algorithm Types Registry
+ 18.1.2. IGP Metric-Type Registry
+ 18.2. IGP Flexible Algorithm Definition Flags Registry
+ 18.3. IS-IS IANA Considerations
+ 18.3.1. IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV
+ Registry
+ 18.3.2. IS-IS Sub-TLVs for TLVs Advertising Prefix
+ Reachability Registry
+ 18.3.3. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition
+ Sub-TLV Registry
+ 18.4. OSPF IANA Considerations
+ 18.4.1. OSPF Router Information (RI) TLVs Registry
+ 18.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs Registry
+ 18.4.3. OSPFv3 Extended-LSA Sub-TLVs Registry
+ 18.4.4. OSPF Flex-Algorithm Prefix Metric Bits Registry
+ 18.4.5. Opaque Link-State Advertisements (LSA) Option Types
+ Registry
+ 18.4.6. OSPFv2 Extended Inter-Area ASBR TLVs Registry
+ 18.4.7. OSPFv2 Extended Inter-Area ASBR Sub-TLVs Registry
+ 18.4.8. OSPF Flexible Algorithm Definition TLV Sub-TLVs
+ Registry
+ 18.4.9. Link Attribute Application Identifiers Registry
+ 19. References
+ 19.1. Normative References
+ 19.2. Informative References
+ Acknowledgements
+ Authors' Addresses
+
+1. Introduction
+
+ An IGP-computed path based on the shortest IGP metric is often
+ replaced by a traffic-engineered path due to requirements that are
+ not reflected by the IGP metric. Some networks engineer the IGP
+ metric assignments in a way that the IGP metric reflects the link
+ bandwidth or delay. If, for example, the IGP metric reflects the
+ 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
+ perspective.
+
+ To overcome this limitation, various sorts of Traffic Engineering
+ have been deployed, including RSVP-TE and SR-TE, in which case the TE
+ component is responsible for computing paths based on additional
+ metrics and/or constraints. Such paths need to be installed in the
+ forwarding tables in addition to, or as a replacement for, the
+ original paths computed by IGPs. Tunnels are often used to represent
+ the engineered paths and mechanisms, like the one described in
+ [RFC3906], and are used to replace the original IGP paths with such
+ tunnel paths.
+
+ This document specifies a set of extensions to IS-IS, OSPFv2, and
+ OSPFv3 that enable a router to advertise TLVs that (a) identify a
+ 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
+ best paths along the constrained topology. A given combination of
+ calculation-type, metric-type, and constraints is known as a
+ "Flexible Algorithm Definition". A router that sends such a set of
+ TLVs also assigns a Flex-Algorithm value to the specified combination
+ of calculation-type, metric-type, and constraints.
+
+ 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-
+ MPLS) Prefix-SIDs [RFC8660] or Segment Routing over IPv6 (SRv6)
+ locators [RFC8986] with a particular Flex-Algorithm. Each such
+ Prefix-SID or SRv6 locator then represents a path that is computed
+ according to the identified Flex-Algorithm. In SRv6, it is the
+ locator, not the Segment Identifier (SID), that holds the binding to
+ the algorithm.
+
+2. Requirements Language
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in BCP
+ 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+3. Terminology
+
+ This section defines terms that are often used in this document.
+
+ Flexible Algorithm Definition (FAD): the set consisting of (a) a
+ 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.
+
+ Flexible Algorithm Participation: per the data plane configuration
+ state that expresses whether the node is participating in a
+ particular Flexible Algorithm. Not all routers in a given network
+ need to participate in a given Flexible Algorithm. The Flexible
+ Algorithm(s) that a given router participates in is determined by
+ configuration.
+
+ IGP Algorithm: value from the IANA "IGP Algorithm Types" registry
+ defined under the "Interior Gateway Protocol (IGP) Parameters"
+ registry group. IGP Algorithms represent the triplet
+ (calculation-type, metric-type, and constraints), where the second
+ and third elements of the triplet MAY be unspecified.
+
+ ABR: Area Border Router. In IS-IS terminology, it is also known as
+ the Level 1 (L1) / Level 2 (L2) router.
+
+ ASBR: Autonomous System Border Router.
+
+4. Flexible Algorithm
+
+ Many possible constraints may be used to compute a path over a
+ network. Some networks are deployed as multiple planes. A simple
+ form of constraint may be to use a particular plane. A more
+ sophisticated form of constraint can include some extended metric, as
+ described in [RFC8570]. Constraints that restrict paths to links
+ with specific affinities or avoid links with specific affinities are
+ also possible. Combinations of these are also possible.
+
+ To provide maximum flexibility, a mechanism is provided that allows a
+ router to identify a particular calculation-type and metric-type,
+ describe a particular set of constraints, and assign a numeric
+ identifier, referred to as Flex-Algorithm, to the combination of that
+ calculation-type, metric-type, and those constraints. The mapping
+ between the Flex-Algorithm and its meaning is flexible and defined by
+ the user. As long as all routers in the domain have a common
+ understanding as to what a particular Flex-Algorithm represents, the
+ resulting routing computation is consistent and traffic is not
+ subject to any looping.
+
+ The set consisting of (a) a calculation-type, (b) a metric-type, and
+ (c) a set of constraints is referred to as a Flexible Algorithm
+ Definition.
+
+ The Flex-Algorithm is a numeric identifier in the range 128-255 that
+ is associated via configuration with the Flexible Algorithm
+ Definition.
+
+ The IANA "IGP Algorithm Types" registry defines the set of values for
+ IGP Algorithms. The following values are allocated by IANA from this
+ registry for Flex-Algorithms:
+
+ 128-255 - Flex-Algorithms
+
+5. Flexible Algorithm Definition Advertisement
+
+ To guarantee loop-free forwarding for paths computed for a particular
+ Flex-Algorithm, all routers that (a) are configured to participate in
+ a particular Flex-Algorithm and (b) are in the same Flex-Algorithm
+ Definition advertisement scope MUST agree on the definition of the
+ Flex-Algorithm. The following procedures ensure this condition is
+ fulfilled.
+
+5.1. IS-IS Flexible Algorithm Definition Sub-TLV
+
+ The IS-IS Flexible Algorithm Definition (FAD) sub-TLV is used to
+ advertise the definition of the Flex-Algorithm.
+
+ The IS-IS FAD sub-TLV is advertised as a sub-TLV of the IS-IS Router
+ CAPABILITY TLV-242, which is defined in [RFC7981].
+
+ The IS-IS FAD sub-TLV has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |Flex-Algorithm | Metric-Type |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Calc-Type | Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sub-TLVs |
+ + +
+ | ... |
+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 26
+
+ Length: variable number of octets, dependent on the included sub-
+ TLVs.
+
+ Flex-Algorithm: Flexible Algorithm number. Single octet value
+ between 128 and 255 inclusive.
+
+ Metric-Type: type of metric from the IANA "IGP Metric-Type"
+ registry (Section 18.1.2) to be used during the calculation.
+ The following values are defined:
+
+ 0: IGP Metric
+
+ 1: Min Unidirectional Link Delay, as defined in Section 4.2 of
+ [RFC8570], encoded as an application-specific link
+ attribute, as specified in [RFC8919] and Section 12 of this
+ document.
+
+ 2: Traffic Engineering Default Metric, as defined in
+ Section 3.7 of [RFC5305], encoded as an application-specific
+ link attribute, as specified in [RFC8919] and Section 12 of
+ this document.
+
+ Calc-Type: calculation-type. Value from 0-127 inclusive from the
+ IANA "IGP Algorithm Types" registry defined under the "Interior
+ Gateway Protocol (IGP) Parameters" registry. IGP Algorithms in
+ the range of 0-127 have a defined triplet (calculation-type,
+ metric-type, constraints). When used to specify the
+ calculation-type in the FAD sub-TLV, only the calculation-type
+ defined for the specified IGP Algorithm is used. The Metric/
+ Constraints MUST NOT be inherited. If the required
+ 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 of the advertisement. Numerically greater values are
+ preferred. Usage of the priority is described in Section 5.3.
+
+ Sub-TLVs: optional sub-TLVs.
+
+ The IS-IS FAD sub-TLV MAY be advertised in a Label Switched Path
+ (LSP) of any number. The IS-IS router MAY advertise more than one
+ IS-IS FAD sub-TLV for a given Flexible Algorithm (see Section 6).
+
+ The IS-IS FAD sub-TLV has an area/level scope. The Router Capability
+ 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 regenerate the winning FAD
+ from level 2, without any modification to it, to the level 1 area.
+ The regeneration of the FAD sub-TLV from level 2 to level 1 is
+ determined by the L1/L2 router, not by the originator of the FAD
+ advertisement in level 2. In such a case, the regenerated FAD sub-
+ TLV will be advertised in the level 1 Router Capability TLV
+ originated by the L1/L2 router.
+
+ An L1/L2 router MUST NOT regenerate any FAD sub-TLV from level 1 to
+ level 2.
+
+5.2. OSPF Flexible Algorithm Definition TLV
+
+ The OSPF FAD TLV is advertised as a top-level TLV of the Router
+ Information (RI) Link State Advertisement (LSA), which is defined in
+ [RFC7770].
+
+ The OSPF FAD TLV has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Flex-Algorithm | Metric-Type | Calc-Type | Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sub-TLVs |
+ + +
+ | ... |
+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 16
+
+ Length: variable number of octets, dependent on the included sub-
+ TLVs.
+
+ Flex-Algorithm: Flexible Algorithm number. Single octet value
+ between 128 and 255 inclusive.
+
+ Metric-Type: type of metric from the IANA "IGP Metric-Type"
+ registry (Section 18.1.2) to be used during the calculation.
+ The following values are defined:
+
+ 0: IGP Metric
+
+ 1: Min Unidirectional Link Delay, as defined in Section 4.2 of
+ [RFC7471], encoded as an application-specific link
+ attribute, as specified in [RFC8920] and Section 12 of this
+ document.
+
+ 2: Traffic Engineering Metric, as defined in Section 2.5.5 of
+ [RFC3630], encoded as an application-specific link
+ attribute, as specified in [RFC8920] and Section 12 of this
+ document.
+
+ Calc-Type: as described in Section 5.1.
+
+ Priority: as described in Section 5.1.
+
+ Sub-TLVs: optional sub-TLVs.
+
+ When multiple OSPF FAD TLVs, for the same Flexible Algorithm, are
+ received from a given router, the receiver MUST use the first
+ occurrence of the TLV in the RI LSA. If the OSPF FAD TLV, for the
+ same Flex-Algorithm, appears in multiple RI LSAs that have different
+ flooding scopes, the OSPF FAD TLV in the RI LSA with the area-scoped
+ flooding scope MUST be used. If the OSPF FAD TLV, for the same
+ algorithm, appears in multiple RI LSAs that have the same flooding
+ scope, the OSPF FAD TLV in the RI LSA with the numerically smallest
+ Instance ID MUST be used and subsequent instances of the OSPF FAD TLV
+ MUST be ignored.
+
+ The RI LSA can be advertised at any of the defined opaque flooding
+ scopes (link, area, or Autonomous System (AS)). For the purpose of
+ OSPF FAD TLV advertisement, area-scoped flooding is REQUIRED. The AS
+ flooding scope SHOULD NOT be used unless local configuration policy
+ on the originating router indicates domain-wide flooding.
+
+5.3. Common Handling of the Flexible Algorithm Definition TLV
+
+ 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
+ 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
+ inclusive. If it is not, the FAD TLV MUST be ignored.
+
+ Only a subset of the routers participating in the particular Flex-
+ Algorithm need to advertise the definition of the Flex-Algorithm.
+
+ Every router that is configured to participate in a particular Flex-
+ Algorithm MUST select the Flex-Algorithm Definition based on the
+ following ordered rules. This allows for the consistent Flex-
+ Algorithm Definition selection in cases where different routers
+ advertise different definitions for a given Flex-Algorithm:
+
+ 1. From the advertisements of the FAD in the area (including both
+ locally generated advertisements and received advertisements),
+ select the one(s) with the numerically greatest priority value.
+
+ 2. If there are multiple advertisements of the FAD with the same
+ numerically greatest priority, select the one that is originated
+ 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.
+ For IS-IS, the System-ID is described in [ISO10589]. For OSPFv2
+ and OSPFv3, the standard Router ID is described in [RFC2328] and
+ [RFC5340], respectively.
+
+ The FAD selected according to these rules is also known as the
+ "winning FAD".
+
+ A router that is not configured to participate in a particular Flex-
+ Algorithm MUST ignore FAD sub-TLV advertisements for such Flex-
+ Algorithm.
+
+ A router that is not participating in a particular Flex-Algorithm MAY
+ advertise the FAD for such Flex-Algorithm. Receiving routers MUST
+ consider a received FAD advertisement regardless of the Flex-
+ Algorithm participation of that FAD advertisement's originator.
+
+ Any change in the Flex-Algorithm Definition may result in a temporary
+ disruption of traffic that is forwarded based on such Flex-Algorithm
+ paths. The impact is similar to any other event that requires
+ network-wide convergence.
+
+ If a node is configured to participate in a particular Flexible
+ Algorithm, but there is no valid Flex-Algorithm Definition available
+ for it or the selected Flex-Algorithm Definition includes
+ calculation-type, metric-type, constraint, flag, or sub-TLV that is
+ not supported by the node, it MUST stop participating in such
+ Flexible Algorithm. That implies that it MUST NOT announce
+ participation for such Flexible Algorithm, as specified in
+ Section 11, and it MUST remove any forwarding state associated with
+ it.
+
+ The Flex-Algorithm Definition is topology independent. It applies to
+ all topologies that a router participates in.
+
+6. Sub-TLVs of IS-IS FAD Sub-TLV
+
+ 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, there are a number of sub-sub-TLVs (defined below) that are
+ supported. For a given Flex-Algorithm, it is possible that the total
+ number of octets required to completely define a FAD exceeds 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
+ 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
+ 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
+ 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
+ MUST be used.
+
+ 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
+ of FAD sub-TLVs for a given Flex-Algorithm from a given IS and how to
+ handle them if multiple are allowed.
+
+6.1. IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV
+
+ The Flexible Algorithm Definition can specify "colors" that are used
+ by the operator to exclude links during the Flex-Algorithm path
+ computation.
+
+ The IS-IS Flexible Algorithm Exclude Admin Group (FAEAG) sub-TLV is
+ used to advertise the exclude rule that is used during the Flex-
+ Algorithm path calculation, as specified in Section 13.
+
+ The IS-IS FAEAG sub-TLV is a sub-TLV of the IS-IS FAD sub-TLV. It
+ has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Admin Group |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 1
+
+ Length: variable, dependent on the size of the Extended Admin
+ Group. MUST be a multiple of 4 octets.
+
+ Extended Administrative Group: Extended Administrative Group, as
+ defined in [RFC7308].
+
+ 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-
+ TLV MUST be ignored by the receiver.
+
+ 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
+ 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
+ used, and any other occurrences MUST be ignored.
+
+6.2. IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV
+
+ The Flexible Algorithm Definition can specify "colors" that are used
+ by the operator to include links during the Flex-Algorithm path
+ computation.
+
+ 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-
+ Algorithm path calculation, as specified in Section 13.
+
+ 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:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Admin Group |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 2
+
+ Length: variable, dependent on the size of the Extended Admin
+ Group. MUST be a multiple of 4 octets.
+
+ Extended Administrative Group: Extended Administrative Group, as
+ defined in [RFC7308].
+
+ 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
+ more than once, the IS-IS FAD sub-TLV MUST be ignored by the
+ receiver.
+
+ 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-
+ 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
+ the first occurrence in the lowest-numbered LSP from a given IS MUST
+ be used, and any other occurrences MUST be ignored.
+
+6.3. IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV
+
+ The Flexible Algorithm Definition can specify "colors" that are used
+ by the operator to include links during the Flex-Algorithm path
+ computation.
+
+ 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-
+ Algorithm path calculation, as specified in Section 13.
+
+ 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:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Admin Group |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 3
+
+ Length: variable, dependent on the size of the Extended Admin
+ Group. MUST be a multiple of 4 octets.
+
+ Extended Administrative Group: Extended Administrative Group, as
+ defined in [RFC7308].
+
+ 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
+ more than once, the IS-IS FAD sub-TLV MUST be ignored by the
+ receiver.
+
+ 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-
+ 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
+ the first occurrence in the lowest-numbered LSP from a given IS MUST
+ be used, and any other occurrences MUST be ignored.
+
+6.4. IS-IS Flexible Algorithm Definition Flags Sub-TLV
+
+ The IS-IS Flexible Algorithm Definition Flags (FADF) sub-TLV is a
+ sub-TLV of the IS-IS FAD sub-TLV. It has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 4
+
+ Length: variable, number of octets of the Flags field.
+
+ Flags:
+ 0 1 2 3 4 5 6 7...
+ +-+-+-+-+-+-+-+-+...
+ |M| | | ...
+ +-+-+-+-+-+-+-+-+...
+
+ 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
+ defined for allocation of bits in the Flags field -- see
+ Section 18.2.
+
+ Bits are defined/sent starting with bit 0 defined above. Additional
+ bit definitions that may be defined in the future SHOULD be assigned
+ in ascending bit order to minimize the number of bits that will need
+ to be transmitted.
+
+ Undefined bits MUST be transmitted as 0.
+
+ Bits that are not transmitted MUST be treated as if they are set to 0
+ on receipt.
+
+ 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
+ MUST be ignored by the receiver.
+
+ 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
+ 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
+ used, and any other occurrences MUST be ignored.
+
+ 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.
+
+ If a node is configured to participate in a particular Flexible
+ 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
+ stop participating in such Flexible Algorithm.
+
+ New flag bits may be defined in the future. Implementations MUST
+ check all advertised flag bits in the received IS-IS FADF sub-TLV --
+ not just the subset currently defined.
+
+ The M-flag MUST not be used when calculating prefix reachability for
+ the SRv6 Locator prefix.
+
+6.5. IS-IS Flexible Algorithm Exclude SRLG Sub-TLV
+
+ The Flexible Algorithm Definition can specify Shared Risk Link Groups
+ (SRLGs) that the operator wants to exclude during the Flex-Algorithm
+ path computation.
+
+ The IS-IS Flexible Algorithm Exclude SRLG (FAESRLG) sub-TLV is used
+ to advertise the exclude rule that is used during the Flex-Algorithm
+ 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
+ has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Shared Risk Link Group Value |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 5
+
+ Length: variable, dependent on number of SRLG values. MUST be a
+ multiple of 4 octets.
+
+ 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
+ IS-IS FAD sub-TLV. If it appears more than once, the IS-IS FAD sub-
+ TLV MUST be ignored by the receiver.
+
+ 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
+ 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
+ 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.
+
+7. Sub-TLVs of the OSPF FAD TLV
+
+7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV
+
+ The OSPF Flexible Algorithm Exclude Admin Group (FAEAG) sub-TLV is a
+ sub-TLV of the OSPF FAD TLV. Its usage is described in Section 6.1.
+ It has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Admin Group |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 1
+
+ Length: variable, dependent on the size of the Extended Admin
+ Group. MUST be a multiple of 4 octets.
+
+ Extended Administrative Group: Extended Administrative Group, as
+ defined in [RFC7308].
+
+ 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
+ by the receiver.
+
+7.2. OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV
+
+ The OSPF Flexible Algorithm Include-Any Admin Group sub-TLV is a sub-
+ TLV of the OSPF FAD TLV. The usage of this sub-TLV is described in
+ Section 6.2. It has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Admin Group |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 2
+
+ Length: variable, dependent on the size of the Extended Admin
+ Group. MUST be a multiple of 4 octets.
+
+ Extended Administrative Group: Extended Administrative Group, as
+ defined in [RFC7308].
+
+ 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
+ once, the OSPF FAD TLV MUST be ignored by the receiver.
+
+7.3. OSPF Flexible Algorithm Include-All Admin Group Sub-TLV
+
+ The OSPF Flexible Algorithm Include-All Admin Group sub-TLV is a sub-
+ TLV of the OSPF FAD TLV. The usage of this sub-TLV is described in
+ Section 6.3. It has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Admin Group |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 3
+
+ Length: variable, dependent on the size of the Extended Admin
+ Group. MUST be a multiple of 4 octets.
+
+ Extended Administrative Group: Extended Administrative Group, as
+ defined in [RFC7308].
+
+ 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
+ once, the OSPF FAD TLV MUST be ignored by the receiver.
+
+7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV
+
+ The OSPF Flexible Algorithm Definition Flags (FADF) sub-TLV is a sub-
+ TLV of the OSPF FAD TLV. It has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 4
+
+ Length: variable, dependent on the size of the Flags field. MUST
+ be a multiple of 4 octets.
+
+ Flags:
+ 0 1 2 3 4 5 6 7...
+ +-+-+-+-+-+-+-+-+...
+ |M| | | ...
+ +-+-+-+-+-+-+-+-+...
+
+ 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
+ defined for allocation of bits in the Flags field -- see
+ Section 18.2.
+
+ Bits are defined/sent starting with bit 0 defined above. Additional
+ bit definitions that may be defined in the future SHOULD be assigned
+ in ascending bit order to minimize the number of bits that will need
+ to be transmitted.
+
+ Undefined bits MUST be transmitted as 0.
+
+ Bits that are not transmitted MUST be treated as if they are set to 0
+ on receipt.
+
+ 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
+ by the receiver.
+
+ If the OSPF FADF sub-TLV is not present inside the OSPF FAD TLV, all
+ the bits are assumed to be set to 0.
+
+ If a node is configured to participate in a particular Flexible
+ 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
+ stop participating in such Flexible Algorithm.
+
+ New flag bits may be defined in the future. Implementations MUST
+ check all advertised flag bits in the received OSPF FADF sub-TLV --
+ not just the subset currently defined.
+
+ The M-flag MUST not be used when calculating prefix reachability for
+ the SRv6 Locator prefix.
+
+7.5. OSPF Flexible Algorithm Exclude SRLG Sub-TLV
+
+ The OSPF Flexible Algorithm Exclude SRLG (FAESRLG) sub-TLV is a sub-
+ TLV of the OSPF FAD TLV. Its usage is described in Section 6.5. It
+ has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Shared Risk Link Group Value |
+ +- -+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 5
+
+ Length: variable, dependent on the number of SRLGs. MUST be a
+ multiple of 4 octets.
+
+ 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
+ FAD TLV. If it appears more than once, the OSPF FAD TLV MUST be
+ ignored by the receiver.
+
+8. IS-IS Flexible Algorithm Prefix Metric Sub-TLV
+
+ The IS-IS Flexible Algorithm Prefix Metric (FAPM) sub-TLV supports
+ the advertisement of a Flex-Algorithm-specific prefix metric
+ associated with a given prefix advertisement.
+
+ The IS-IS FAPM sub-TLV is a sub-TLV of TLVs 135, 235, 236, and 237
+ and has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |Flex-Algorithm |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Metric |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 6
+
+ Length: 5 octets
+
+ Flex-Algorithm: single octet value between 128 and 255 inclusive.
+
+ Metric: 4 octets of metric information.
+
+ 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
+ first instance MUST be used and any subsequent instances MUST be
+ ignored.
+
+ 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 considered during the Flexible Algorithm computation.
+
+ The usage of the Flex-Algorithm prefix metric is described in
+ Section 13.
+
+ The IS-IS FAPM sub-TLV MUST NOT be advertised as a sub-TLV of the IS-
+ IS SRv6 Locator TLV [RFC9352]. The IS-IS SRv6 Locator TLV includes
+ the Algorithm and Metric fields, which MUST be used instead. If the
+ FAPM sub-TLV is present as a sub-TLV of the IS-IS SRv6 Locator TLV in
+ the received LSP, such FAPM sub-TLV MUST be ignored.
+
+9. OSPF Flexible Algorithm Prefix Metric Sub-TLV
+
+ The OSPF Flexible Algorithm Prefix Metric (FAPM) sub-TLV supports the
+ advertisement of a Flex-Algorithm-specific prefix metric associated
+ with a given prefix advertisement.
+
+ The OSPF FAPM sub-TLV is a sub-TLV of the:
+
+ * OSPFv2 Extended Prefix TLV [RFC7684] and
+
+ * following OSPFv3 TLVs, as defined in [RFC8362]:
+
+ - Inter-Area Prefix TLV
+
+ - External-Prefix TLV
+
+ The OSPF FAPM sub-TLV has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Flex-Algorithm | Flags | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Metric |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 3 for OSPFv2, and 26 for OSPFv3
+
+ Length: 8 octets
+
+ Flex-Algorithm: single octet value between 128 and 255 inclusive.
+
+ Flags: 1-octet value
+
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ |E| |
+ +-+-+-+-+-+-+-+-+
+
+ E bit: position 0: The type of external metric. If the bit is
+ set, the metric specified is a Type 2 external metric. This
+ bit is applicable only to OSPF external and Not-So-Stubby
+ Area (NSSA) external prefixes. This is semantically the
+ same as the E bit in Appendix A.4.5 of [RFC2328] and
+ Appendix A.4.7 of [RFC5340] for OSPFv2 and OSPFv3,
+ respectively.
+
+ Bits 1 through 7: MUST be cleared by the originator and
+ ignored by the receiver.
+
+ Reserved: MUST be set to 0 and ignored at reception.
+
+ Metric: 4 octets of metric information.
+
+ 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
+ first instance MUST be used and any subsequent instances MUST be
+ ignored.
+
+ The usage of the Flex-Algorithm prefix metric is described in
+ Section 13.
+
+10. OSPF Flexible Algorithm ASBR Reachability Advertisement
+
+ An OSPF ABR advertises the reachability of ASBRs in its attached
+ areas to enable routers within those areas to perform route
+ calculations for external prefixes advertised by the ASBRs. OSPF
+ extensions for advertisement of Flex-Algorithm-specific reachability
+ and the metric for ASBRs is similarly required for Flex-Algorithm
+ external prefix computations, as described further in Section 13.1.
+
+10.1. OSPFv2 Extended Inter-Area ASBR LSA
+
+ The OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) LSA is an OSPF Opaque
+ LSA [RFC5250] that is used to advertise additional attributes related
+ to the reachability of the OSPFv2 ASBR that is external to the area
+ yet internal to the OSPF domain. Semantically, the OSPFv2 EIA-ASBR
+ LSA is equivalent to the fixed format Type 4 summary-LSA [RFC2328].
+ Unlike the Type 4 summary-LSA, the Link State ID (LSID) of the EIA-
+ ASBR LSA does not carry the ASBR Router ID -- the ASBR Router ID is
+ carried in the body of the LSA. The OSPFv2 EIA-ASBR LSA is
+ 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
+ advertising the Type 4 summary-LSA for it and has the need for
+ advertising additional attributes for that ASBR beyond what is
+ 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
+ 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
+ reachability in the base OSPFv2 topology calculation. The OSPFv2 ABR
+ SHOULD NOT advertise the EIA-ASBR LSA for an ASBR when it does not
+ have additional attributes to advertise for that ASBR.
+
+ The OSPFv2 EIA-ASBR LSA has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | LS age | Options | LS Type |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Opaque Type | Opaque ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Advertising Router |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | LS sequence number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | LS checksum | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ +- TLVs -+
+ | ... |
+
+ The LS age and Options fields are as defined in Appendix A.4.1 of
+ [RFC2328].
+
+ The LS Type MUST be 10, indicating that the Opaque LSA flooding scope
+ is area-local [RFC5250].
+
+ 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
+ and is described in Section 3 of [RFC5250].
+
+ 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
+ semantic significance other than to differentiate 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
+ the lowest Opaque ID SHOULD be used.
+
+ The Advertising Router, LS sequence number, and LS checksum fields
+ are as defined in Appendix A.4.1 of [RFC2328].
+
+ 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
+ the LSA header and all TLVs (including padding).
+
+ 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
+ OSPFv2 [RFC3630]. The variable TLV section consists of one or more
+ nested TLV tuples. Nested TLVs are also referred to as sub-TLVs.
+ 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).
+ 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 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
+ 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.
+
+10.1.1. OSPFv2 Extended Inter-Area ASBR 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
+ attributes associated with the reachability of an ASBR.
+
+ The OSPFv2 EIA-ASBR TLV has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ASBR Router ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ . .
+ . Sub-TLVs .
+ . .
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 1
+
+ Length: variable number of octets.
+
+ ASBR Router ID: 4 octets carrying the OSPF Router ID of the ASBR
+ whose information is being carried.
+
+ Sub-TLVs: variable
+
+ 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
+ other than the first one in an LSA.
+
+ The OSPFv2 EIA-ASBR TLV MUST be present inside an OSPFv2 EIA-ASBR LSA
+ and MUST include at least a single sub-TLV; otherwise, the OSPFv2
+ EIA-ASBR LSA MUST be ignored by the receiver.
+
+10.2. OSPF Flexible Algorithm ASBR Metric Sub-TLV
+
+ The OSPF Flexible Algorithm ASBR Metric (FAAM) sub-TLV supports the
+ advertisement of a Flex-Algorithm-specific metric associated with a
+ given ASBR reachability advertisement by an ABR.
+
+ The OSPF FAAM sub-TLV is a sub-TLV of the:
+
+ * OSPFv2 Extended Inter-Area ASBR TLV, as defined in Section 10.1.1,
+ and
+
+ * OSPFv3 Inter-Area-Router TLV, as defined in [RFC8362].
+
+ The OSPF FAAM sub-TLV has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Flex-Algorithm | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Metric |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where:
+ Type: 1 for OSPFv2, and 33 for OSPFv3
+
+ Length: 8 octets
+
+ Flex-Algorithm: single octet value between 128 and 255 inclusive.
+
+ Reserved: 3 octets. MUST be set to 0 and ignored at reception.
+
+ Metric: 4 octets of metric information.
+
+ 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
+ first instance MUST be used and any subsequent instances MUST be
+ ignored.
+
+ The advertisement of the ASBR reachability using the OSPF FAAM sub-
+ TLV inside the OSPFv2 EIA-ASBR LSA follows Section 12.4.3 of
+ [RFC2328] and inside the OSPFv3 E-Inter-Area-Router-LSA follows
+ Section 4.8.5 of [RFC5340]. The reachability of the ASBR is
+ evaluated in the context of the specific Flex-Algorithm.
+
+ 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
+ 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
+ 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.
+
+ An OSPF ABR MUST NOT include the OSPF FAAM sub-TLV with a specific
+ Flex-Algorithm in its reachability advertisement for an ASBR between
+ areas unless that ASBR is reachable for it in the context of that
+ specific Flex-Algorithm.
+
+ An OSPF ABR MUST include the OSPF FAAM sub-TLVs as part of the ASBR
+ reachability advertisement between areas for any Flex-Algorithm for
+ which the winning FAD includes the M-flag and the ASBR is reachable
+ in the context of that specific Flex-Algorithm.
+
+ OSPF routers MUST use the OSPF FAAM sub-TLV to calculate the
+ reachability of the ASBRs if the winning FAD for the specific Flex-
+ Algorithm includes the M-flag. OSPF routers MUST NOT use the OSPF
+ FAAM sub-TLV to calculate the reachability of the ASBRs for the
+ specific Flex-Algorithm if the winning FAD for such Flex-Algorithm
+ does not include the M-flag. Instead, the OSPFv2 Type 4 summary-LSAs
+ or the OSPFv3 Inter-Area-Router-LSAs MUST be used, as specified in
+ Section 16.2 of [RFC2328] and Section 4.8.5 of [RFC5340] for OSPFv2
+ and OSPFv3, respectively.
+
+ The processing of a new or changed OSPF FAAM sub-TLV triggers the
+ processing of external routes similar to what is described in
+ Section 16.5 of [RFC2328] for OSPFv2 and Section 4.8.5 of [RFC5340]
+ for OSPFv3 for the specific Flex-Algorithm. The OSPF external and
+ NSSA external route calculation should be limited to a Flex-
+ 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
+ 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
+ presence of the base LSA is not mandatory for the usage of the
+ extended LSA with the OSPF FAAM sub-TLV.
+
+11. Advertisement of Node Participation in a Flex-Algorithm
+
+ When a router is configured to participate in a particular Flex-
+ Algorithm and is advertising such participation, it is participating
+ in that Flex-Algorithm.
+
+ Paths for various data planes MAY be computed for a specific Flex-
+ Algorithm. Each data plane uses its own specific forwarding over
+ such Flex-Algorithm paths. To guarantee the presence of the data-
+ plane-specific forwarding, associated with a particular Flex-
+ Algorithm, a router MUST advertise its participation for a particular
+ Flex-Algorithm for each data plane. Some data planes may share a
+ common participation advertisement (e.g., SR-MPLS and SRv6).
+
+ Advertisement of the participation for any particular Flex-Algorithm
+ in any data plane is subject to the condition specified in
+ Section 5.3.
+
+11.1. Advertisement of Node Participation for Segment Routing
+
+ [RFC8665], [RFC8666], and [RFC8667] (IGP Segment Routing extensions)
+ describe how the SR-Algorithm is used to compute the IGP best path.
+
+ Routers advertise support for the SR-Algorithm as a node capability,
+ as described in the above-mentioned IGP Segment Routing extensions.
+ To advertise participation for a particular Flex-Algorithm for
+ Segment Routing, including both SR-MPLS and SRv6, the Flex-Algorithm
+ value MUST be advertised in the SR-Algorithm TLV (OSPF) or sub-TLV
+ (IS-IS).
+
+ Segment Routing Flex-Algorithm participation advertisement is
+ topology independent. When a router advertises participation in an
+ SR-Algorithm, the participation applies to all topologies in which
+ the advertising node participates.
+
+11.2. Advertisement of Node Participation for Other Data Planes
+
+ This section describes considerations related to how other data
+ planes can advertise their participation in a specific Flex-
+ Algorithm.
+
+ Data-plane-specific Flex-Algorithm participation advertisements MAY
+ be topology specific or MAY be topology independent, depending on the
+ data plane itself.
+
+ Data-plane-specific advertisement for Flex-Algorithm participation
+ MUST be defined for each data plane and is outside the scope of this
+ document.
+
+12. Advertisement of Link Attributes for Flex-Algorithm
+
+ Various link attributes may be used during the Flex-Algorithm path
+ calculation. For example, include or exclude rules based on link
+ affinities can be part of the Flex-Algorithm Definition, as defined
+ in Sections 6 and 7.
+
+ Application-specific link attributes, as specified in [RFC8919] or
+ [RFC8920], that are to be used during Flex-Algorithm calculation MUST
+ use the Application-Specific Link Attribute (ASLA) advertisements
+ 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,
+ then legacy advertisements MUST be used, subject to the procedures
+ and constraints defined in Section 4.2 of [RFC8919] and Section 6.
+
+ The mandatory use of ASLA advertisements applies to link attributes
+ specifically mentioned in this document (Min Unidirectional Link
+ Delay, TE Default Metric, Administrative Group, Extended
+ Administrative Group, and Shared Risk Link Group) and any other link
+ attributes that may be used in support of Flex-Algorithm in the
+ future.
+
+ A new Application Identifier Bit is defined to indicate that the ASLA
+ advertisement is associated with the Flex-Algorithm application.
+ This bit is set in the Standard Application Bit Mask (SABM) defined
+ in [RFC8919] or [RFC8920]:
+
+ Bit 3: Flexible Algorithm (X-bit)
+
+ ASLA Admin Group Advertisements to be used by the Flexible Algorithm
+ application MAY use either the Administrative Group or Extended
+ Administrative Group encodings.
+
+ A receiver supporting this specification MUST accept both ASLA
+ Administrative Group and Extended Administrative Group TLVs, as
+ defined in [RFC8919] or [RFC8920]. In the case of IS-IS, if the
+ L-flag is set in the ASLA advertisement, as defined in Section 4.2 of
+ [RFC8919], then the receiver MUST be able to accept both the
+ Administrative Group TLV, as defined in [RFC5305], and the Extended
+ Administrative Group TLV, as defined in [RFC7308].
+
+13. Calculation of Flexible Algorithm Paths
+
+ 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
+ before it can compute any path for that Flex-Algorithm.
+
+ No specific two-way connectivity check is performed during the Flex-
+ Algorithm path computation. The result of the existing Flex-
+ Algorithm-agnostic, two-way connectivity check is used during the
+ Flex-Algorithm path computation.
+
+ As described in Section 11, participation for any particular Flex-
+ Algorithm MUST be advertised on a per data plane basis. Calculation
+ of the paths for any particular Flex-Algorithm is data plane
+ specific.
+
+ 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
+ plane will be forwarded based on the data-plane-specific forwarding
+ entries.
+
+ The Flex-Algorithm Definition is data plane independent and is used
+ by all Flex-Algorithm data planes.
+
+ The way various data planes handle nodes that do not participate in
+ Flexible Algorithm is data plane specific. If the data plane only
+ wants to consider participating nodes during the Flex-Algorithm
+ calculation, then when computing paths for a given Flex-Algorithm,
+ all nodes that do not advertise participation for that Flex-Algorithm
+ in their data-plane-specific advertisements MUST be pruned from the
+ topology. Segment Routing, including both SR-MPLS and SRv6, are data
+ planes that MUST use such pruning when computing Flex-Algorithm
+ paths.
+
+ When computing the path for a given Flex-Algorithm, the metric-type
+ that is part of the Flex-Algorithm Definition (Section 5) MUST be
+ used.
+
+ When computing the path for a given Flex-Algorithm, the calculation-
+ type that is part of the Flex-Algorithm Definition (Section 5) MUST
+ be used.
+
+ Various links that include or exclude rules can be part of the Flex-
+ Algorithm Definition. To refer to a particular bit within an Admin
+ Group or Extended Admin Group, we use the term "color".
+
+ Rules, in the order as specified below, MUST be used to prune links
+ from the topology during the Flex-Algorithm computation.
+
+ For all links in the topology:
+
+ 1. Check if any exclude Administrative Group rule is part of the
+ Flex-Algorithm Definition. If such exclude rule exists, check if
+ any color that is part of the exclude rule is also set on the
+ 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
+ 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
+ the link is part of such SRLG, the link MUST be pruned from the
+ computation.
+
+ 3. Check if any include-any Administrative Group rule is part of the
+ Flex-Algorithm Definition. If such include-any rule exists,
+ check if any color that is part of the include-any rule is also
+ set on the link. If no such color is set, the link MUST be
+ pruned from the computation.
+
+ 4. Check if any include-all Administrative Group rule is part of the
+ Flex-Algorithm Definition. If such include-all rule exists,
+ check if all colors that are part of the include-all rule are
+ also set on the link. If all such colors are not set on the
+ link, the link MUST be pruned from the computation.
+
+ 5. If the Flex-Algorithm Definition uses something other than the
+ IGP metric (Section 5), and such metric is not advertised for the
+ particular link in a topology for which the computation is done,
+ such link MUST be pruned from the computation. A metric of value
+ 0 MUST NOT be assumed in such a case.
+
+13.1. Multi-area and Multi-domain Considerations
+
+ Any IGP Shortest Path Tree calculation is limited to a single area.
+ This applies to Flex-Algorithm calculations as well. Given that the
+ 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
+ inter-domain prefix will be computed for the local area only. The
+ 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
+ in the local area, and such egress ABR or ASBR router will be
+ 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
+ suboptimal based on Flex-Algorithm constraints. In cases where the
+ 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
+ the ABR/ASBR.
+
+ 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
+ been defined in Sections 8 and 9. For external route calculation for
+ prefixes originated by ASBRs in remote areas in OSPF, the FAAM has
+ been defined in Section 10.2 for the ABR to indicate its ASBR
+ reachability along with the metric for the specific Flex-Algorithm.
+
+ If the FAD selected based on the rules defined in Section 5.3
+ includes the M-flag, an ABR or an ASBR MUST include the FAPM (see
+ Sections 8 and 9) when advertising the prefix that is reachable in a
+ given Flex-Algorithm between areas or domains. Such metric will be
+ equal to the metric to reach the prefix for that Flex-Algorithm in
+ its source area or domain. This is similar in nature to how the
+ metric is set when prefixes are advertised between areas or domains
+ for the default algorithm. When a prefix is unreachable in its
+ source area or domain in a specific Flex-Algorithm, then an ABR or
+ ASBR MUST NOT include the FAPM for that Flex-Algorithm when
+ advertising the prefix between areas or domains.
+
+ 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
+ prefix reachability for the inter-area and external prefixes. If the
+ FAPM for the Flex-Algorithm is not advertised with the inter-area or
+ external prefix reachability advertisement, the prefix MUST be
+ considered as unreachable for that Flex-Algorithm. Similarly, in the
+ 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
+ unreachable for that Flex-Algorithm, and the external prefix
+ advertisements from such an ASBR are not considered for that Flex-
+ Algorithm.
+
+ The Flex-Algorithm prefix metrics and the OSPF Flex-Algorithm ASBR
+ 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 M-flag, as described in Sections 6.4 or 7.4.
+
+ In the case of OSPF, when calculating external routes in a Flex-
+ 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
+ the following:
+
+ * the FAPM for that Flex-Algorithm advertised with the external
+ route by the ASBR
+
+ * 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 ABR in the local area for that ASBR
+
+ * the Flex-Algorithm-specific metric to reach the local ABR
+
+ This is similar in nature to how the metric is calculated for routes
+ learned from remote ASBRs in the default algorithm using the OSPFv2
+ 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
+ not include the M-flag, then the IGP metrics associated with the
+ prefix reachability advertisements used by the base IS-IS and OSPF
+ protocol MUST be used for the Flex-Algorithm route computation.
+ Similarly, in the case of external route calculations in OSPF, the
+ ASBR reachability is determined based on the base OSPFv2 Type 4
+ summary-LSA and the OSFPv3 Inter-Area-Router-LSA.
+
+ It is NOT RECOMMENDED to use the Flex-Algorithm for inter-area or
+ inter-domain prefix reachability without the M-flag set. The reason
+ is that, without the explicit Flex-Algorithm prefix metric
+ advertisement (and the Flex-Algorithm ASBR metric advertisement in
+ the case of OSPF external route calculation), it is not possible to
+ 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
+ domain. Sending the Flex-Algorithm traffic for such a prefix towards
+ the ABR or ASBR may result in traffic looping or persistent traffic
+ drop.
+
+ During the route computation, it is possible for the Flex-Algorithm-
+ specific metric to exceed the maximum value that can be stored in an
+ unsigned 32-bit variable. In such scenarios, the value MUST be
+ considered to be of value 0xFFFFFFFF during the computation and
+ advertised as such.
+
+ 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
+ advertised for these route-types, it MUST be ignored during the
+ prefix reachability calculation.
+
+ The M-flag in the FAD is not applicable to prefixes advertised as
+ SRv6 locators. The IS-IS SRv6 Locator TLV [RFC9352] includes the
+ Algorithm and Metric fields. When the SRv6 Locator is advertised
+ between areas or domains, the Metric field in the Locator TLV of IS-
+ IS MUST be used irrespective of the M-flag in the FAD advertisement.
+
+ OSPF external and NSSA external prefix advertisements MAY include a
+ non-zero forwarding address in the prefix advertisements in the base
+ protocol. In such a scenario, the Flex-Algorithm-specific
+ reachability of the external prefix is determined by Flex-Algorithm-
+ specific reachability of the forwarding address.
+
+ In OSPF, the procedures for translation of NSSA external prefix
+ advertisements into external prefix advertisements performed by an
+ NSSA ABR [RFC3101] remain unchanged for Flex-Algorithm. An NSSA
+ translator MUST include the OSPF FAPM sub-TLVs for all Flex-
+ Algorithms that are in the original NSSA external prefix
+ advertisement from the NSSA ASBR in the translated external prefix
+ advertisement generated by it, regardless of its participation in
+ those Flex-Algorithms or its having reachability to the NSSA ASBR in
+ those Flex-Algorithms.
+
+ An area could become partitioned from the perspective of the Flex-
+ Algorithm due to the constraints and/or metric being used for it
+ while maintaining the continuity in the base algorithm. When that
+ happens, some destinations inside that area could become unreachable
+ 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
+ inter-area prefix reachability advertisement would not be available
+ for these intra-area destinations within the area. It is RECOMMENDED
+ to minimize the risk of such partitioning by providing enough
+ redundancy inside the area for each Flex-Algorithm being used.
+
+14. Flex-Algorithm and Forwarding Plane
+
+ This section describes how Flex-Algorithm paths are used in
+ forwarding.
+
+14.1. Segment Routing MPLS Forwarding for Flex-Algorithm
+
+ This section describes how Flex-Algorithm paths are used with SR MPLS
+ forwarding.
+
+ Prefix-SID advertisements include an SR-Algorithm value and, as such,
+ are associated with the specified SR-Algorithm. Prefix-SIDs are also
+ associated with a specific topology that is inherited from the
+ associated prefix reachability advertisement. When the algorithm
+ value advertised is a Flex-Algorithm value, the Prefix-SID is
+ associated with paths calculated using that Flex-Algorithm in the
+ associated topology.
+
+ A Flex-Algorithm path MUST be installed in the MPLS forwarding plane
+ using the MPLS label that corresponds to the Prefix-SID that was
+ advertised for that Flex-algorithm. If the Prefix-SID for a given
+ Flex-Algorithm is not known, the Flex-Algorithm-specific path cannot
+ be installed in the MPLS forwarding plane.
+
+ Traffic that is supposed to be routed via Flex-Algorithm-specific
+ paths MUST be dropped when there are no such paths available.
+
+ Loop Free Alternate (LFA) paths ([RFC6571] or its variants) for a
+ given Flex-Algorithm MUST be computed using the same constraints as
+ the calculation of the primary paths for that Flex-Algorithm. LFA
+ paths MUST only use Prefix-SIDs advertised specifically for the given
+ algorithm. LFA paths MUST NOT use an Adjacency SID that belongs to a
+ link that has been pruned from the Flex-Algorithm computation.
+
+ If LFA protection is being used to protect a given Flex-Algorithm
+ path, all routers in the area participating in the given Flex-
+ Algorithm SHOULD advertise at least one Flex-Algorithm-specific Node-
+ SID. These Node-SIDs are used to steer traffic over the LFA-computed
+ backup path.
+
+14.2. SRv6 Forwarding for Flex-Algorithm
+
+ This section describes how Flex-Algorithm paths are used with SRv6
+ forwarding.
+
+ In SRv6, a node is provisioned with a (topology, algorithm) specific
+ locator for each of the topology/algorithm pairs supported by that
+ node. Each locator is an aggregate prefix for all SIDs provisioned
+ on that node that have the matching topology/algorithm.
+
+ The SRv6 locator advertisement in IS-IS [RFC9352] includes the Multi-
+ Topology Identifier (MTID) value that associates the locator with a
+ specific topology. SRv6 locator advertisements also include an
+ algorithm value that explicitly associates the locator with a
+ specific algorithm. When the algorithm value advertised with a
+ locator represents a Flex-Algorithm, the paths to the locator prefix
+ MUST be calculated using the specified Flex-Algorithm in the
+ associated topology.
+
+ Forwarding entries for the locator prefixes advertised in IS-IS MUST
+ be installed in the forwarding plane of the receiving SRv6-capable
+ routers when the associated topology/algorithm is participating in
+ them. Forwarding entries for locators associated with Flex-
+ Algorithms in which the node is not participating MUST NOT be
+ installed in the forwarding plane.
+
+ When the locator is associated with a Flex-Algorithm, LFA paths to
+ the locator prefix MUST be calculated using such Flex-Algorithm in
+ the associated topology to guarantee that they follow the same
+ constraints as the calculation of the primary paths. LFA paths MUST
+ only use SRv6 SIDs advertised specifically for the given Flex-
+ Algorithm.
+
+ 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 SHOULD advertise at least one Flex-Algorithm-
+ 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.
+ These locators and SIDs are used to steer traffic over the LFA-
+ computed backup path.
+
+14.3. Other Data Planes' Forwarding for Flex-Algorithm
+
+ Any data plane that wants to use Flex-Algorithm-specific forwarding
+ needs to install some form of Flex-Algorithm-specific forwarding
+ entries.
+
+ Data-plane-specific forwarding for Flex-Algorithms MUST be defined
+ for each data plane and is outside the scope of this document.
+
+15. Operational Considerations
+
+15.1. Inter-area Considerations
+
+ The scope of the Flex-Algorithm computation and the scope of the FAD
+ is an area. In IS-IS, the Router Capability TLV in which the FAD
+ sub-TLV is advertised MUST have the S bit clear, which prevents it
+ 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
+ has an AS flooding scope, the FAD selection is performed for each
+ individual area in which it is being used.
+
+ There is no requirement for the FAD for a particular Flex-Algorithm
+ 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.,
+ using delay metric) in one area or level while being optimized for
+ available bandwidth (e.g., using IGP metric) in another area or
+ level.
+
+ 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
+ level 1 area. This allows the operator to configure the FAD in one
+ or multiple routers in level 2, without the need to repeat the same
+ task in each level 1 area, if the intent is to have the same FAD for
+ the particular Flex-Algorithm across all levels. This can similarly
+ be achieved in OSPF by using the AS flooding scope of the RI LSA in
+ which the FAD sub-TLV for the particular Flex-Algorithm is
+ advertised.
+
+ 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
+ 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
+ propagated to all routers in the OSPF routing domain by using the AS
+ flooding scope of the RI LSA.
+
+15.2. Usage of the SRLG Exclude Rule with Flex-Algorithm
+
+ There are two different ways in which SRLG information can be used
+ with Flex-Algorithms:
+
+ * In a context of a single Flex-Algorithm, it can be used for
+ computation of backup paths, as described in
+ [RTGWG-SEGMENT-ROUTING-TI-LFA]. This usage does not require
+ association of any specific SRLG constraint with the given Flex-
+ Algorithm Definition.
+
+ * In the context of multiple Flex-Algorithms, it can be used for
+ creating disjoint sets of paths by pruning the links belonging to
+ a specific SRLG from the topology on which a specific Flex-
+ Algorithm computes its paths. This usage:
+
+ - facilitates the usage of already deployed SRLG configurations
+ for the setup of disjoint paths between two or more Flex-
+ Algorithms and
+
+ - requires explicit association of a given Flex-Algorithm with a
+ specific set of SRLG constraints, as defined in Sections 6.5
+ and 7.5.
+
+ The two usages mentioned above are orthogonal.
+
+15.3. Max-Metric Consideration
+
+ 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 unreachable or serve as
+ the link of last resort. Similar functionality would be needed for
+ the Min Unidirectional Link Delay and TE metric, as these can be used
+ to compute Flex-Algorithm paths.
+
+ The link can be made unreachable for all Flex-Algorithms that use the
+ Min Unidirectional Link Delay as a metric, as described in
+ Section 5.1, by removing the Flex-Algorithm ASLA Min Unidirectional
+ Link Delay advertisement for the link. The link can be made the link
+ of last resort by setting the delay value in the Flex-Algorithm ASLA
+ delay advertisement for the link to the value of 16,777,215 (2^24 -
+ 1).
+
+ The link can be made unreachable for all Flex-Algorithms that use the
+ TE metric, as described in Section 5.1, by removing the Flex-
+ Algorithm ASLA TE metric advertisement for the link. The link can be
+ made the link of last resort by setting the TE metric value in the
+ Flex-Algorithm ASLA delay advertisement for the link to the value of
+ (2^24 - 1) in IS-IS and (2^32 - 1) in OSPF.
+
+15.4. Flexible Algorithm Definition and Changes
+
+ When configuring a node to participate in a specific Flex-Algorithm,
+ the components of the FAD (calculation-type, metric-type, and
+ constraints) should be considered carefully. The configuration of
+ participation in a particular Flex-Algorithm doesn't guarantee that
+ the node will actively participate in it, because it may not support
+ the calculation-type, the metric-type, or some constraint advertised
+ by the winning FAD (see Section 5.3). Changes in the FAD
+ configuration should also be considered in light of the capabilities
+ of the participating routers in the scope of the FAD advertisement.
+
+ As Section 5.3 notes, a change in the Flex-Algorithm Definition may
+ require network-wide Shortest Path First (SPF) recomputation and
+ network reconvergence. This potential for disruption should be taken
+ into consideration when planning and making changes to the FAD.
+
+15.5. Number of Flex-Algorithms
+
+ The maximum number of Flex-Algorithms is determined by the algorithm
+ range 128-255, as specified in Section 4. Although possible, it is
+ not expected that all of them will be used simultaneously.
+ Typically, only a limited subset of Flex-Algorithms is expected to be
+ deployed in the network.
+
+16. Backward Compatibility
+
+ This extension brings no new backward-compatibility issues. IS-IS,
+ OSPFv2, and OSPFv3 all have well-defined handling of unrecognized
+ TLVs and sub-TLVs that allows the introduction of new extensions,
+ similar to those defined here, without introducing any
+ interoperability issues.
+
+17. Security Considerations
+
+ This document adds two new ways to disrupt IGP networks:
+
+ * An attacker can hijack a particular Flex-Algorithm by advertising
+ a FAD with a priority of 255 (or any priority higher than that of
+ the legitimate nodes).
+
+ * An attacker could make it look like a router supports a particular
+ Flex-Algorithm when it actually doesn't, or vice versa.
+
+ Both of these attacks can be addressed by the existing security
+ extensions, as described in [RFC5304] and [RFC5310] for IS-IS, in
+ [RFC2328] and [RFC7474] for OSPFv2, and in [RFC4552] and [RFC5340]
+ for OSPFv3.
+
+ 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
+ may result in traffic for such Flex-Algorithm to be misrouted, or not
+ delivered at all, for example, by using an unsupported metric-type,
+ calculation-type, or constraint. Such attack is not preventable
+ through authentication, and it is not different from advertising any
+ other incorrect information through IS-IS or OSPF.
+
+18. IANA Considerations
+
+18.1. IGP IANA Considerations
+
+18.1.1. IGP Algorithm Types Registry
+
+ This document makes the following registration in the "IGP Algorithm
+ Types" registry:
+
+ +=========+=====================+=====================+
+ | Value | Description | Reference |
+ +=========+=====================+=====================+
+ | 128-255 | Flexible Algorithms | RFC 9350, Section 4 |
+ +---------+---------------------+---------------------+
+
+ Table 1: IGP Algorithm Types Registry
+
+18.1.2. IGP Metric-Type Registry
+
+ IANA has created the "IGP Metric-Type" registry within the "Interior
+ Gateway Protocol (IGP) Parameters" registry group. The registration
+ policy is "Standards Action" [RFC8126] [RFC7120]. Values are
+ assigned from the range 0-255 and have been registered as follows.
+
+ +======+======================================+===========+
+ | 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 | |
+ +------+--------------------------------------+-----------+
+
+ Table 2: IGP Metric-Type Registry
+
+18.2. IGP Flexible Algorithm Definition Flags Registry
+
+ IANA has created the "IGP Flexible Algorithm Definition Flags"
+ 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 | Reference |
+ +=====+=============================+====================+
+ | 0 | Prefix Metric Flag (M-flag) | RFC 9350, Sections |
+ | | | 6.4 and 7.4 |
+ +-----+-----------------------------+--------------------+
+
+ Table 3: IGP Flexible Algorithm Definition Flags Registry
+
+18.3. IS-IS IANA Considerations
+
+18.3.1. IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV Registry
+
+ This document makes the following registration in the "IS-IS Sub-TLVs
+ for IS-IS Router CAPABILITY TLV" registry.
+
+ +=======+=====================================+=============+
+ | Value | Description | Reference |
+ +=======+=====================================+=============+
+ | 26 | Flexible Algorithm Definition (FAD) | RFC 9350, |
+ | | | 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
+ Registry
+
+ This document makes the following registration in the "IS-IS Sub-TLVs
+ for TLVs Advertising Prefix Reachability" registry.
+
+ +======+==================+====+=====+=====+=====+=====+===========+
+ | Type | Description | 27 | 135 | 235 | 236 | 237 | Reference |
+ +======+==================+====+=====+=====+=====+=====+===========+
+ | 6 | Flexible | n | y | y | y | y | RFC 9350, |
+ | | Algorithm Prefix | | | | | | Section 8 |
+ | | Metric (FAPM) | | | | | | |
+ +------+------------------+----+-----+-----+-----+-----+-----------+
+
+ Table 5: IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability
+ Registry
+
+18.3.3. IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
+ Registry
+
+ 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).
+
+ The sub-sub-TLVs defined in this document have been assigned as
+ follows.
+
+ +=======+========================================+=============+
+ | 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 | |
+ +-------+----------------------------------------+-------------+
+
+ Table 6: IS-IS Sub-Sub-TLVs for Flexible Algorithm
+ Definition Sub-TLV Registry
+
+18.4. OSPF IANA Considerations
+
+18.4.1. OSPF Router Information (RI) TLVs Registry
+
+ This document makes the following registration in the "OSPF Router
+ Information (RI) TLVs" registry.
+
+ +=======+=========================================+=============+
+ | Value | Description | Reference |
+ +=======+=========================================+=============+
+ | 16 | Flexible Algorithm Definition (FAD) TLV | RFC 9350, |
+ | | | Section 5.2 |
+ +-------+-----------------------------------------+-------------+
+
+ Table 7: OSPF Router Information (RI) TLVs Registry
+
+18.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs Registry
+
+ This document makes the following registration in the "OSPFv2
+ Extended Prefix TLV Sub-TLVs" registry.
+
+ +=======+=========================================+===========+
+ | Value | Description | Reference |
+ +=======+=========================================+===========+
+ | 3 | Flexible Algorithm Prefix Metric (FAPM) | RFC 9350, |
+ | | | Section 9 |
+ +-------+-----------------------------------------+-----------+
+
+ Table 8: OSPFv2 Extended Prefix TLV Sub-TLVs Registry
+
+18.4.3. OSPFv3 Extended-LSA Sub-TLVs Registry
+
+ This document makes the following registrations in the "OSPFv3
+ Extended-LSA Sub-TLVs" registry.
+
+ +=======+=========================================+==============+
+ | Value | Description | Reference |
+ +=======+=========================================+==============+
+ | 26 | Flexible Algorithm Prefix Metric (FAPM) | RFC 9350, |
+ | | | Section 9 |
+ +-------+-----------------------------------------+--------------+
+ | 33 | OSPF Flexible Algorithm ASBR Metric | RFC 9350, |
+ | | | Section 10.2 |
+ +-------+-----------------------------------------+--------------+
+
+ Table 9: OSPFv3 Extended-LSA Sub-TLVs Registry
+
+18.4.4. OSPF Flex-Algorithm Prefix Metric Bits Registry
+
+ 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.
+
+ +============+=======================+=====================+
+ | Bit Number | Description | Reference |
+ +============+=======================+=====================+
+ | 0 | E bit - External Type | RFC 9350, Section 9 |
+ +------------+-----------------------+---------------------+
+
+ Table 10: OSPF Flex-Algorithm Prefix Metric Bits Registry
+
+18.4.5. Opaque Link-State Advertisements (LSA) Option Types Registry
+
+ This document makes the following registration in the "Opaque Link-
+ State Advertisements (LSA) Option Types" registry within the "Open
+ Shortest Path First (OSPF) Opaque Link-State Advertisements (LSA)
+ Option Types" registry group.
+
+ +=======+==========================+==============+
+ | Value | Opaque Type | Reference |
+ +=======+==========================+==============+
+ | 11 | OSPFv2 Extended Inter- | RFC 9350, |
+ | | Area ASBR (EIA-ASBR) LSA | Section 10.1 |
+ +-------+--------------------------+--------------+
+
+ Table 11: Opaque Link-State Advertisements
+ (LSA) Option Types Registry
+
+18.4.6. OSPFv2 Extended Inter-Area ASBR TLVs Registry
+
+ 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.
+
+ +=======+==========================+===========+
+ | Value | Description | Reference |
+ +=======+==========================+===========+
+ | 1 | Extended Inter-Area ASBR | RFC 9350 |
+ +-------+--------------------------+-----------+
+
+ Table 12: OSPFv2 Extended Inter-Area ASBR
+ TLVs Registry
+
+ The values 2-32767 are unassigned, the values 32768-33023 are
+ reserved for Experimental Use, and the values 0 and 33024-65535 are
+ reserved.
+
+18.4.7. OSPFv2 Extended Inter-Area ASBR Sub-TLVs Registry
+
+ IANA has created the "OSPFv2 Extended Inter-Area ASBR Sub-TLVs"
+ registry under the "Open Shortest Path First v2 (OSPFv2) Parameters"
+ registry. The registration procedure is "IETF Review" or "IESG
+ Approval". The initial value has been assigned as follows.
+
+ +=======+=====================================+===========+
+ | Value | Description | Reference |
+ +=======+=====================================+===========+
+ | 1 | OSPF Flexible Algorithm ASBR Metric | RFC 9350 |
+ +-------+-------------------------------------+-----------+
+
+ Table 13: OSPFv2 Extended Inter-Area ASBR Sub-TLVs Registry
+
+ The values 2-32767 are unassigned, the values 32768-33023 are
+ reserved for Experimental Use, and the values 0 and 33024-65535 are
+ reserved.
+
+18.4.8. OSPF Flexible Algorithm Definition TLV Sub-TLVs Registry
+
+ 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-TLVs" registry will
+ define sub-TLVs at any level of nesting for the Flexible Algorithm
+ TLV, and new values can be allocated via the registration procedure.
+
+ This document registers the following sub-TLVs.
+
+ +============+========================================+=============+
+ | 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 |
+ +------------+----------------------------------------+-------------+
+
+ Table 14: OSPF Flexible Algorithm Definition TLV Sub-TLVs Registry
+
+ The values 6-32767 are unassigned, and values 32768-33023 are for
+ Experimental Use; these will not be registered with IANA.
+
+ 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
+ MUST be an IETF specification that specifies IANA considerations that
+ cover the range being assigned.
+
+18.4.9. Link Attribute Application Identifiers Registry
+
+ This document registers the following bit in the "Link Attribute
+ Application Identifiers" registry.
+
+ +=====+============================+======================+
+ | Bit | Description | Reference |
+ +=====+============================+======================+
+ | 3 | Flexible Algorithm (X-bit) | RFC 9350, Section 12 |
+ +-----+----------------------------+----------------------+
+
+ Table 15: Link Attribute Application Identifiers Registry
+
+19. References
+
+19.1. Normative References
+
+ [ISO10589] ISO, "Information technology - Telecommunications and
+ information exchange between systems - Intermediate System
+ to Intermediate System intra-domain routeing information
+ exchange protocol for use in conjunction with the protocol
+ for providing the connectionless-mode network service (ISO
+ 8473)", Second Edition, ISO/IEC 10589:2002, November 2002.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in
+ Support of Generalized Multi-Protocol Label Switching
+ (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005,
+ <https://www.rfc-editor.org/info/rfc4203>.
+
+ [RFC5250] Berger, L., Bryskin, I., Zinin, A., and R. Coltun, "The
+ OSPF Opaque LSA Option", RFC 5250, DOI 10.17487/RFC5250,
+ July 2008, <https://www.rfc-editor.org/info/rfc5250>.
+
+ [RFC5307] Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions
+ in Support of Generalized Multi-Protocol Label Switching
+ (GMPLS)", RFC 5307, DOI 10.17487/RFC5307, October 2008,
+ <https://www.rfc-editor.org/info/rfc5307>.
+
+ [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS
+ Traffic Engineering (MPLS-TE)", RFC 7308,
+ DOI 10.17487/RFC7308, July 2014,
+ <https://www.rfc-editor.org/info/rfc7308>.
+
+ [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W.,
+ Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute
+ Advertisement", RFC 7684, DOI 10.17487/RFC7684, November
+ 2015, <https://www.rfc-editor.org/info/rfc7684>.
+
+ [RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and
+ S. Shaffer, "Extensions to OSPF for Advertising Optional
+ Router Capabilities", RFC 7770, DOI 10.17487/RFC7770,
+ February 2016, <https://www.rfc-editor.org/info/rfc7770>.
+
+ [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions
+ for Advertising Router Information", RFC 7981,
+ DOI 10.17487/RFC7981, October 2016,
+ <https://www.rfc-editor.org/info/rfc7981>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and
+ F. Baker, "OSPFv3 Link State Advertisement (LSA)
+ Extensibility", RFC 8362, DOI 10.17487/RFC8362, April
+ 2018, <https://www.rfc-editor.org/info/rfc8362>.
+
+ [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
+ Decraene, B., Litkowski, S., and R. Shakir, "Segment
+ Routing with the MPLS Data Plane", RFC 8660,
+ DOI 10.17487/RFC8660, December 2019,
+ <https://www.rfc-editor.org/info/rfc8660>.
+
+ [RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler,
+ H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF
+ Extensions for Segment Routing", RFC 8665,
+ DOI 10.17487/RFC8665, December 2019,
+ <https://www.rfc-editor.org/info/rfc8665>.
+
+ [RFC8666] Psenak, P., Ed. and S. Previdi, Ed., "OSPFv3 Extensions
+ for Segment Routing", RFC 8666, DOI 10.17487/RFC8666,
+ December 2019, <https://www.rfc-editor.org/info/rfc8666>.
+
+ [RFC8667] Previdi, S., Ed., Ginsberg, L., Ed., Filsfils, C.,
+ Bashandy, A., Gredler, H., and B. Decraene, "IS-IS
+ Extensions for Segment Routing", RFC 8667,
+ DOI 10.17487/RFC8667, December 2019,
+ <https://www.rfc-editor.org/info/rfc8667>.
+
+ [RFC8919] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and
+ J. Drake, "IS-IS Application-Specific Link Attributes",
+ RFC 8919, DOI 10.17487/RFC8919, October 2020,
+ <https://www.rfc-editor.org/info/rfc8919>.
+
+ [RFC8920] Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura,
+ J., and J. Drake, "OSPF Application-Specific Link
+ Attributes", RFC 8920, DOI 10.17487/RFC8920, October 2020,
+ <https://www.rfc-editor.org/info/rfc8920>.
+
+ [RFC9352] Psenak, P., Ed., Filsfils, C., Bashandy, A., Decraene, B.,
+ and Z. Hu, "IS-IS Extensions to Support Segment Routing
+ over the IPv6 Data Plane", RFC 9352, DOI 10.17487/RFC9352,
+ February 2023, <https://www.rfc-editor.org/info/rfc9352>.
+
+19.2. Informative References
+
+ [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
+ DOI 10.17487/RFC2328, April 1998,
+ <https://www.rfc-editor.org/info/rfc2328>.
+
+ [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option",
+ RFC 3101, DOI 10.17487/RFC3101, January 2003,
+ <https://www.rfc-editor.org/info/rfc3101>.
+
+ [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
+ (TE) Extensions to OSPF Version 2", RFC 3630,
+ DOI 10.17487/RFC3630, September 2003,
+ <https://www.rfc-editor.org/info/rfc3630>.
+
+ [RFC3906] Shen, N. and H. Smit, "Calculating Interior Gateway
+ Protocol (IGP) Routes Over Traffic Engineering Tunnels",
+ RFC 3906, DOI 10.17487/RFC3906, October 2004,
+ <https://www.rfc-editor.org/info/rfc3906>.
+
+ [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality
+ for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006,
+ <https://www.rfc-editor.org/info/rfc4552>.
+
+ [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic
+ Authentication", RFC 5304, DOI 10.17487/RFC5304, October
+ 2008, <https://www.rfc-editor.org/info/rfc5304>.
+
+ [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic
+ Engineering", RFC 5305, DOI 10.17487/RFC5305, October
+ 2008, <https://www.rfc-editor.org/info/rfc5305>.
+
+ [RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R.,
+ and M. Fanto, "IS-IS Generic Cryptographic
+ Authentication", RFC 5310, DOI 10.17487/RFC5310, February
+ 2009, <https://www.rfc-editor.org/info/rfc5310>.
+
+ [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
+ for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
+ <https://www.rfc-editor.org/info/rfc5340>.
+
+ [RFC6571] Filsfils, C., Ed., Francois, P., Ed., Shand, M., Decraene,
+ B., Uttaro, J., Leymann, N., and M. Horneffer, "Loop-Free
+ Alternate (LFA) Applicability in Service Provider (SP)
+ Networks", RFC 6571, DOI 10.17487/RFC6571, June 2012,
+ <https://www.rfc-editor.org/info/rfc6571>.
+
+ [RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code
+ Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, January
+ 2014, <https://www.rfc-editor.org/info/rfc7120>.
+
+ [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S.
+ Previdi, "OSPF Traffic Engineering (TE) Metric
+ Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015,
+ <https://www.rfc-editor.org/info/rfc7471>.
+
+ [RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed.,
+ "Security Extension for OSPFv2 When Using Manual Key
+ Management", RFC 7474, DOI 10.17487/RFC7474, April 2015,
+ <https://www.rfc-editor.org/info/rfc7474>.
+
+ [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
+ Writing an IANA Considerations Section in RFCs", BCP 26,
+ RFC 8126, DOI 10.17487/RFC8126, June 2017,
+ <https://www.rfc-editor.org/info/rfc8126>.
+
+ [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward,
+ D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE)
+ Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March
+ 2019, <https://www.rfc-editor.org/info/rfc8570>.
+
+ [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer,
+ D., Matsushima, S., and Z. Li, "Segment Routing over IPv6
+ (SRv6) Network Programming", RFC 8986,
+ DOI 10.17487/RFC8986, February 2021,
+ <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
+
+ Peter Psenak (editor)
+ Cisco Systems, Inc.
+ Apollo Business Center
+ Mlynske nivy 43
+ 82109 Bratislava
+ Slovakia
+ Email: ppsenak@cisco.com
+
+
+ Shraddha Hegde
+ Juniper Networks, Inc.
+ Embassy Business Park
+ Bangalore 560093
+ KA
+ India
+ Email: shraddha@juniper.net
+
+
+ Clarence Filsfils
+ Cisco Systems, Inc.
+ Brussels
+ Belgium
+ Email: cfilsfil@cisco.com
+
+
+ Ketan Talaulikar
+ Cisco Systems, Inc
+ India
+ Email: ketant.ietf@gmail.com
+
+
+ Arkadiy Gulko
+ Edward Jones
+ Email: arkadiy.gulko@edwardjones.com