rfc9351xml2.original.xml   rfc9351.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> <!DOCTYPE rfc [
<?rfc toc="yes"?> <!ENTITY nbsp "&#160;">
<?rfc tocompact="yes"?> <!ENTITY zwsp "&#8203;">
<?rfc tocdepth="3"?> <!ENTITY nbhy "&#8209;">
<?rfc tocindent="yes"?> <!ENTITY wj "&#8288;">
<?rfc symrefs="yes"?> ]>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-idr-bgp-ls-flex-algo-12"
ipr="trust200902">
<front>
<title abbrev="BGP-LS Extensions for Flexible Algorithm">Flexible
Algorithm Advertisement using BGP Link-State</title>
<author fullname="Ketan Talaulikar" initials="K." role="editor" <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="
surname="Talaulikar"> std" consensus="true" docName="draft-ietf-idr-bgp-ls-flex-algo-12" number="9351"
<organization>Arrcus, Inc</organization> ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDe
pth="3" symRefs="true" sortRefs="true" version="3">
<!-- xml2rfc v2v3 conversion 3.14.2 -->
<front>
<title abbrev="BGP-LS Extensions for Flexible Algorithm">Border Gateway Prot
ocol - Link State (BGP-LS) Extensions
for Flexible Algorithm Advertisement</title>
<seriesInfo name="RFC" value="9351"/>
<author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Tal
aulikar">
<organization>Cisco Systems</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city/> <city/>
<region/> <region/>
<code/> <code/>
<country>India</country> <country>India</country>
</postal> </postal>
<email>ketant.ietf@gmail.com</email> <email>ketant.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Peter Psenak" initials="P." surname="Psenak"> <author fullname="Peter Psenak" initials="P." surname="Psenak">
<organization>Cisco Systems</organization> <organization>Cisco Systems</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city/> <city/>
<region/> <region/>
<code/> <code/>
<country>Slovakia</country> <country>Slovakia</country>
</postal> </postal>
<email>ppsenak@cisco.com</email> <email>ppsenak@cisco.com</email>
</address> </address>
</author> </author>
<author fullname="Shawn Zandi" initials="S" surname="Zandi"> <author fullname="Shawn Zandi" initials="S" surname="Zandi">
<organization>LinkedIn</organization> <organization>LinkedIn</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city/> <city/>
<code/> <code/>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>szandi@linkedin.com</email> <email>szandi@linkedin.com</email>
</address> </address>
</author> </author>
<author fullname="Gaurav Dawra" initials="G" surname="Dawra"> <author fullname="Gaurav Dawra" initials="G" surname="Dawra">
<organization>LinkedIn</organization> <organization>LinkedIn</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city/> <city/>
<code/> <code/>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>gdawra.ietf@gmail.com</email> <email>gdawra.ietf@gmail.com</email>
</address> </address>
</author> </author>
<date year="2023" month="February"/>
<date year=""/> <area>rtg</area>
<workgroup>idr</workgroup>
<area>Routing</area>
<workgroup>Inter-Domain Routing</workgroup>
<keyword>BGP-LS</keyword> <keyword>BGP-LS</keyword>
<keyword>Segment Routing</keyword> <keyword>Segment Routing</keyword>
<keyword>IS-IS</keyword> <keyword>IS-IS</keyword>
<keyword>OSPF</keyword> <keyword>OSPF</keyword>
<keyword>OSPFv3</keyword> <keyword>OSPFv3</keyword>
<abstract> <abstract>
<t>Flexible Algorithm is a solution that allows some routing protocols <t>Flexible Algorithm is a solution that allows some routing protocols
(e.g., OSPF and IS-IS) to compute paths over a network based on (e.g., OSPF and IS-IS) to compute paths over a network based on
user-defined (and hence, flexible) constraints and metrics. The user-defined (and hence, flexible) constraints and metrics. The
computation is performed by routers participating in the specific computation is performed by routers participating in the specific
network in a distributed manner using a Flexible Algorithm Definition. network in a distributed manner using a Flexible Algorithm Definition (FAD
This Definition is provisioned on one or more routers and propagated ).
This definition is provisioned on one or more routers and propagated
through the network by OSPF and IS-IS flooding.</t> through the network by OSPF and IS-IS flooding.</t>
<t>Border Gateway Protocol - Link State (BGP-LS) enables the collection of
<t>BGP Link-State (BGP-LS) enables the collection of various topology various
information from the network. This document defines extensions to the topology information from the network. This document defines extensions to
BGP-LS address family to advertise the Flexible Algorithm Definition as the
BGP-LS address family to advertise the FAD as
a part of the topology information from the network.</t> a part of the topology information from the network.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="INTRO" title="Introduction"> <section anchor="INTRO" numbered="true" toc="default">
<name>Introduction</name>
<t>The classical IGP (e.g., OSPF and IS-IS) computation of best paths <t>The classical IGP (e.g., OSPF and IS-IS) computation of best paths
over the network is based on the IGP metric assigned to the links in the over the network is based on the IGP metric assigned to the links in the
network. Many network deployments use RSVP-TE-based <xref network. Many network deployments use solutions based on RSVP-TE <xref tar
target="RFC3209"/> or Segment Routing (SR) Policy-based <xref get="RFC3209"
target="RFC8402"/> solutions to enforce traffic over a path that is format="default"/> or Segment Routing (SR) Policy <xref target="RFC8402"
format="default"/> to enforce traffic over a path that is
computed using different metrics or constraints than the shortest IGP computed using different metrics or constraints than the shortest IGP
path. <xref target="I-D.ietf-lsr-flex-algo"/> defines the Flexible path. <xref target="RFC9350" format="default"/> defines the Flexible
Algorithm solution that allows IGPs themselves to compute constraint Algorithm solution that allows IGPs themselves to compute constraint-based
based paths over the network.</t> paths over the
network.</t>
<t>Flexible Algorithm is so called because it allows a user the <t>Flexible Algorithm is called so because it allows a user the
flexibility to define <list style="symbols"> flexibility to define:</t>
<t>the type of calculation to be used (e.g., shortest path)</t> <ul spacing="normal">
<li>the type of calculation to be used (e.g., shortest path),</li>
<t>the metric type to be used (e.g., IGP metric or TE metric)</t> <li>the metric type to be used (e.g., IGP metric or TE metric), and</li>
<li>the set of constraints to be used (e.g., inclusion or exclusion
<t>the set of constraints to be used (e.g., inclusion or exclusion of certain links using affinities).</li>
of certain links using affinities)</t> </ul>
</list></t> <t>The operations of the IGP Flexible Algorithm solution are described
in detail in <xref target="RFC9350" format="default"/>.</t>
<t>The operations of the IGP flexible algorithm solution are described <t>The BGP-LS extensions for SR are defined in <xref target="RFC9085" form
in detail in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> at="default"/>
and <xref target="I-D.ietf-idr-bgpls-srv6-ext" format="default"/> for SR-M
<t>The BGP-LS extensions for SR are defined in <xref target="RFC9085"/> PLS and Segment
and <xref target="I-D.ietf-idr-bgpls-srv6-ext"/> for SR-MPLS and Segment
Routing over IPv6 (SRv6), respectively. They include the extensions for Routing over IPv6 (SRv6), respectively. They include the extensions for
advertisement of SR information including various types of Segment advertisement of SR information including various types of Segment
Identifiers (SIDs) as below: <list style="symbols"> Identifiers (SIDs) as below: </t>
<t>SR Algorithm TLV to indicate the participation of a node in a <ul spacing="normal">
flexible algorithm computation</t> <li>SR Algorithm TLV to indicate the participation of a node in a
Flexible Algorithm computation</li>
<t>Prefix-SID TLV to indicate the association of the Prefix-SIDs to <li>Prefix-SID TLV to indicate the association of the Prefix-SIDs to
a specific flexible algorithm for SR-MPLS forwarding</t> a specific Flexible Algorithm for SR-MPLS forwarding</li>
<li>SRv6 Locator TLV to indicate the Locator for a specific Flexible
<t>SRv6 Locator TLV to indicate the Locator for specific flexible Algorithm for SRv6 forwarding</li>
algorithm for SRv6 forwarding</t> </ul>
</list></t>
<t>This document defines extensions to BGP-LS for the advertisement of <t>This document defines extensions to BGP-LS for the advertisement of
the Flexible Algorithm Definition (FAD) information to enable learning the Flexible Algorithm Definition (FAD) information to enable learning
of the mapping of the flexible algorithm number to its Definition in of the mapping of the Flexible Algorithm number to its definition in
each area/domain of the underlying IGP. This Definition indicates the each area/domain of the underlying IGP. This definition indicates the
type of computation used and the constraints for a given flexible type of computation used and the constraints for a given Flexible
algorithm. This information can then be used for setting up SR Policy Algorithm. This information can then be used for setting up SR Policy
paths end to end across domains by using the appropriate flexible paths end to end across domains by using the appropriate Flexible-Algorith
algorithm-specific SIDs in its Segment List <xref target="RFC9256"/>. m-specific
For example, picking the flexible algorithm Prefix SID (in case of SIDs in its segment list <xref target="RFC9256" format="default"/>.
For example, picking the Flexible Algorithm Prefix-SID (in case of
SR-MPLS) or End SID (in case of SRv6) of Area Border Routers (ABRs) or SR-MPLS) or End SID (in case of SRv6) of Area Border Routers (ABRs) or
Autonomous System Border Routers (ASBRs) corresponding to a Definition Autonomous System Border Routers (ASBRs) corresponding to a definition
that optimizes on the delay metric enables the building of an end to end that optimizes on the delay metric enables the building of an end-to-end
low latency path across IGP domains with minimal SIDs in the SID low-latency path across IGP domains with minimal SIDs in the SID
list.</t> list.</t>
<section numbered="true" toc="default">
<section title="Requirements Language"> <name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
"OPTIONAL" in this document are to be interpreted as described in BCP "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDE
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only D</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and
"<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as desc
ribed in BCP
14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" form
at="default"/> when, and only
when, they appear in all capitals, as shown here.</t> when, they appear in all capitals, as shown here.</t>
</section> </section>
</section> </section>
<section anchor="FA" numbered="true" toc="default">
<section anchor="FA" <name>Overview of BGP-LS Extensions for Flexible Algorithm</name>
title="Overview of BGP-LS Extensions for Flexible Algorithm"> <t>BGP-LS <xref target="RFC7752" format="default"/> specifies the Node Net
<t>BGP-LS <xref target="RFC7752"/> specifies the Node Network Layer work Layer
Reachability Information (NLRI) for the advertisement of nodes along Reachability Information (NLRI) for the advertisement of nodes, along
with their attributes using the BGP-LS Attribute, the Link NLRI for the with their attributes using the BGP-LS Attribute; the Link NLRI for the
advertisement of links along with their attributes using the BGP-LS advertisement of links, along with their attributes using the BGP-LS
Attribute and the Prefix NLRI for the advertisement of prefixes along Attribute; and the Prefix NLRI for the advertisement of prefixes, along
with their attributes using the BGP-LS Attribute.</t> with their attributes using the BGP-LS Attribute.</t>
<t>The FADs advertised by a node are considered as a node-level <t>The FADs advertised by a node are considered as a node-level
attribute and advertised as specified in <xref target="FADTLV"/>.</t> attribute and advertised as specified in <xref target="FADTLV" format="def
ault"/>.</t>
<t>Various link attributes like affinities and Shared Risk Link Group <t>Various link attributes, like affinities and Shared Risk Link Group
(SRLG) that are used during the Flexible Algorithm route calculations in (SRLG), that are used during the Flexible Algorithm route calculations in
IS-IS and OSPF are advertised in those protocols using the Application IS-IS and OSPF are advertised in those protocols using the Application-Spe
Specific Link Attribute (ASLA) advertisements as described in <xref cific Link
target="RFC8919"/>, <xref target="RFC8920"/>, and <xref Attribute (ASLA) advertisements, as described in <xref target="RFC8919" fo
target="I-D.ietf-lsr-flex-algo"/>. The BGP-LS extensions for ASLA rmat="default"/>, <xref target="RFC8920" format="default"/>, and <xref target="R
advertisements are specified in <xref target="RFC9294"/>.</t> FC9350" format="default"/>. The BGP-LS extensions for ASLA
advertisements are specified in <xref target="RFC9294" format="default"/>.
</t>
<t>The Flexible Algorithm Prefix Metric (FAPM) is considered as a prefix <t>The Flexible Algorithm Prefix Metric (FAPM) is considered as a prefix
attribute and advertised as specified in <xref target="FAMETRIC"/>.</t> attribute and advertised as specified in <xref target="FAMETRIC" format="d efault"/>.</t>
</section> </section>
<section anchor="FADTLV" numbered="true" toc="default">
<section anchor="FADTLV" title="Flexible Algorithm Definition TLV"> <name>Flexible Algorithm Definition TLV</name>
<t>This document defines a new optional BGP-LS Attribute TLV associated <t>This document defines a new optional BGP-LS Attribute TLV associated
with the Node NLRI called the Flexible Algorithm Definition (FAD) TLV with the Node NLRI called the "Flexible Algorithm Definition TLV" ("FAD TL V" for short),
and its format is as follows:</t> and its format is as follows:</t>
<figure>
<t><figure> <name>Flexible Algorithm Definition TLV </name>
<artwork align="center"><![CDATA[ <artwork align="center" name="" type="" alt=""><![CDATA[
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flex Algo | Metric-Type | Calc-Type | Priority | | Flex Algo | Metric-Type | Calc-Type | Priority |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-TLVs ... // | sub-TLVs ... //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Flexible Algorithm Definition TLV
where:
]]></artwork> ]]></artwork>
</figure><list style="symbols"> </figure>
<t>Type: 1039</t> <dl newline="true" spacing="normal">
<dt>where:</dt>
<t>Length: The total length of the value field (including any <dd>
sub-TLVs) in octets. The length value MUST be 4 or larger.</t> <dl newline="false" spacing="normal">
<dt>Type:</dt><dd> 1039</dd>
<t>Flexible Algorithm (Flex Algo): Single octet value carrying the <dt>Length:</dt><dd> The total length of the value field (including
flexible algorithm number between 128 and 255 inclusive, as defined any
in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> sub-TLVs) in octets. The length value <bcp14>MUST</bcp14> be 4 or la
rger.</dd>
<t>Metric-Type: Single octet value carrying the metric type, as <dt>Flexible Algorithm (Flex Algo):</dt><dd> Single octet value carr
defined in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> ying the
Flexible Algorithm number between 128 and 255 inclusive, as defined
<t>Calc-Type: Single octet value carrying the calculation type, as in <xref target="RFC9350" format="default"/>.</dd>
defined in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> <dt>Metric-Type:</dt><dd> Single octet value carrying the metric typ
e, as
<t>Priority: Single octet value carrying the priority of the FAD defined in <xref target="RFC9350" format="default"/>.</dd>
advertisement, as defined in <xref <dt>Calc-Type:</dt><dd> Single octet value carrying the calculation
target="I-D.ietf-lsr-flex-algo"/>.</t> type, as
defined in <xref target="RFC9350" format="default"/>.</dd>
<t>sub-TLVs: zero or more sub-TLVs may be included as described <dt>Priority:</dt><dd> Single octet value carrying the priority of t
further in this section.</t> he FAD
</list></t> advertisement, as defined in <xref target="RFC9350" format="default"
/>.</dd>
<dt>sub-TLVs:</dt><dd> Zero or more sub-TLVs may be included, as des
cribed
further in this section.</dd>
</dl>
</dd>
</dl>
<t>The FAD TLV that is advertised in the BGP-LS Attribute along with the <t>The FAD TLV that is advertised in the BGP-LS Attribute along with the
Node NLRI of a node is derived from the following IGP protocol-specific Node NLRI of a node is derived from the following IGP protocol-specific
advertisements:<list style="symbols"> advertisements:</t>
<t>In the case of IS-IS, from the IS-IS Flexible Algorithm <ul spacing="normal">
Definition sub-TLV in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> <li>in the case of IS-IS, from the IS-IS Flexible Algorithm
Definition sub-TLV in <xref target="RFC9350" format="default"/></li>
<t>In the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm <li>in the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm
Definition TLV in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> Definition TLV in <xref target="RFC9350" format="default"/></li>
</list></t> </ul>
<t>The BGP-LS Attribute associated with a Node NLRI may include one or <t>The BGP-LS Attribute associated with a Node NLRI may include one or
more FAD TLVs corresponding to the FAD for each algorithm that the more FAD TLVs corresponding to the FAD for each algorithm that the
particular node is advertising.</t> particular node is advertising.</t>
<t>The following subsections define sub-TLVs of the FAD TLV.</t>
<t>The following sub-sections define sub-TLVs of the FAD TLV.</t> <section anchor="FADAFFINITYEXCLANY" numbered="true" toc="default">
<name>Flexible Algorithm Exclude-Any Affinity Sub-TLV</name>
<section anchor="FADAFFINITYEXCLANY" <t>The Flexible Algorithm Exclude-Any Affinity sub-TLV is an optional
title="Flexible Algorithm Exclude Any Affinity Sub-TLV">
<t>The Flexible Algorithm Exclude Any Affinity sub-TLV is an optional
sub-TLV that is used to carry the affinity constraints associated with sub-TLV that is used to carry the affinity constraints associated with
the FAD and enable the exclusion of links carrying any of the the FAD and enable the exclusion of links carrying any of the
specified affinities from the computation of the specific algorithm as specified affinities from the computation of the specific algorithm, as
described in <xref target="I-D.ietf-lsr-flex-algo"/>. The affinity is described in <xref target="RFC9350" format="default"/>. The affinity is
expressed in terms of Extended Admin Group (EAG) as defined in <xref expressed in terms of the Extended Admin Group (EAG), as defined in <xre
target="RFC7308"/>.</t> f
target="RFC7308" format="default"/>.</t>
<t>The sub-TLV has the following format:</t>
<t>The sub-TLV has the following format:<figure align="center"> <figure>
<artwork align="left"><![CDATA[ 0 1 <name>Flexible Algorithm Exclude-Any Affinity Sub-TLV</name>
2 3 <artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Exclude-Any EAG (variable) // | Exclude-Any EAG (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Flexible Algorithm Exclude Any Affinity sub-TLV
where:
]]></artwork> ]]></artwork>
</figure></t> </figure>
<dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>where:</dt>
<t>Type: 1040</t> <dd>
<dl newline="false">
<t>Length: The total length of the value field in octets dependent <dt>Type:</dt><dd>1040</dd>
on the size of the EAG. It MUST be a non-zero value and a multiple <dt>Length:</dt><dd>The total length of the value field in octets
of 4.</t> dependent
on the size of the EAG. It <bcp14>MUST</bcp14> be a non-zero value
<t>Exclude-Any EAG: the EAG value as defined in <xref and a multiple
target="I-D.ietf-lsr-flex-algo"/>.</t> of 4.</dd>
</list></t> <dt>Exclude-Any EAG:</dt><dd>The EAG value, as defined in <xref ta
rget="RFC9350"
<t>The information in the Flexible Algorithm Exclude Any Affinity format="default"/>.</dd>
</dl>
</dd>
</dl>
<t>The information in the Flexible Algorithm Exclude-Any Affinity
sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible
Algorithm Exclude Admin Group sub-TLV as defined in <xref Algorithm Exclude Admin Group sub-TLV, as defined in <xref target="RFC93
target="I-D.ietf-lsr-flex-algo"/>.</t> 50" format="default"/>.</t>
</section> </section>
<section anchor="FADAFFINITYINCLANY" numbered="true" toc="default">
<section anchor="FADAFFINITYINCLANY" <name>Flexible Algorithm Include-Any Affinity Sub-TLV</name>
title="Flexible Algorithm Include Any Affinity Sub-TLV"> <t>The Flexible Algorithm Include-Any Affinity sub-TLV is an optional
<t>The Flexible Algorithm Include Any Affinity sub-TLV is an optional
sub-TLV that is used to carry the affinity constraints associated with sub-TLV that is used to carry the affinity constraints associated with
the FAD and enable the inclusion of links carrying any of the the FAD and enable the inclusion of links carrying any of the
specified affinities in the computation of the specific algorithm as specified affinities in the computation of the specific algorithm, as
described in <xref target="I-D.ietf-lsr-flex-algo"/>. The affinity is described in <xref target="RFC9350" format="default"/>. The affinity is
expressed in terms of Extended Admin Group (EAG) as defined in <xref expressed in terms of the EAG, as defined in <xref
target="RFC7308"/>.</t> target="RFC7308" format="default"/>.</t>
<t>The sub-TLV has the following format:</t>
<t>The sub-TLV has the following format:<figure align="center"> <figure>
<artwork align="left"><![CDATA[ 0 1 <name>Flexible Algorithm Include-Any Affinity Sub-TLV</name>
2 3 <artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-Any EAG (variable) // | Include-Any EAG (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Flexible Algorithm Include Any Affinity sub-TLV
where:
]]></artwork> ]]></artwork>
</figure></t> </figure>
<dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>where:</dt>
<t>Type: 1041</t> <dd>
<dl newline="false" spacing="normal">
<t>Length: The total length of the value field in octets dependent <dt>Type:</dt><dd>1041</dd>
on the size of the EAG. It MUST be a non-zero value and a multiple <dt>Length:</dt><dd>The total length of the value field in octets
of 4.</t> dependent
on the size of the EAG. It <bcp14>MUST</bcp14> be a non-zero value
<t>Include-Any EAG: the EAG value as defined in <xref and a multiple
target="I-D.ietf-lsr-flex-algo"/>.</t> of 4.</dd>
</list></t> <dt>Include-Any EAG:</dt><dd>The EAG value, as defined in <xref ta
rget="RFC9350"
<t>The information in the Flexible Algorithm Include Any Affinity format="default"/>.</dd>
</dl>
</dd>
</dl>
<t>The information in the Flexible Algorithm Include-Any Affinity
sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible
Algorithm Include-Any Admin Group sub-TLV as defined in <xref Algorithm Include-Any Admin Group sub-TLV, as defined in <xref target="R
target="I-D.ietf-lsr-flex-algo"/>.</t> FC9350" format="default"/>.</t>
</section> </section>
<section anchor="FADAFFINITYINCLALL" numbered="true" toc="default">
<section anchor="FADAFFINITYINCLALL" <name>Flexible Algorithm Include-All Affinity Sub-TLV</name>
title="Flexible Algorithm Include All Affinity Sub-TLV"> <t>The Flexible Algorithm Include-All Affinity sub-TLV is an optional
<t>The Flexible Algorithm Include All Affinity sub-TLV is an optional
sub-TLV that is used to carry the affinity constraints associated with sub-TLV that is used to carry the affinity constraints associated with
the FAD and enable the inclusion of links carrying all of the the FAD and enable the inclusion of links carrying all of the
specified affinities in the computation of the specific algorithm as specified affinities in the computation of the specific algorithm, as
described in <xref target="I-D.ietf-lsr-flex-algo"/>. The affinity is described in <xref target="RFC9350" format="default"/>. The affinity is
expressed in terms of Extended Admin Group (EAG) as defined in <xref expressed in terms of the EAG, as defined in <xref target="RFC7308" form
target="RFC7308"/>.</t> at="default"/>.</t>
<t>The sub-TLV has the following format:</t>
<t>The sub-TLV has the following format:<figure align="center"> <figure>
<artwork align="left"><![CDATA[ 0 1 <name>Flexible Algorithm Include-All Affinity Sub-TLV</name>
2 3 <artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-All EAG (variable) // | Include-All EAG (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Flexible Algorithm Include All Affinity sub-TLV
where:
]]></artwork> ]]></artwork>
</figure></t> </figure>
<dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>where:</dt>
<t>Type: 1042</t> <dd>
<dl newline="false" spacing="normal">
<t>Length: The total length of the value field in octets dependent <dt>Type:</dt><dd>1042</dd>
on the size of the EAG. It MUST be a non-zero value and a multiple <dt>Length:</dt><dd>The total length of the value field in octets
of 4.</t> dependent
on the size of the EAG. It <bcp14>MUST</bcp14> be a non-zero value
<t>Include-All EAG: the EAG value as defined in <xref and a multiple
target="I-D.ietf-lsr-flex-algo"/>.</t> of 4.</dd>
</list></t> <dt>Include-All EAG:</dt><dd>The EAG value, as defined in <xref ta
rget="RFC9350"
<t>The information in the Flexible Algorithm Include All Affinity format="default"/>.</dd>
</dl>
</dd>
</dl>
<t>The information in the Flexible Algorithm Include-All Affinity
sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible sub-TLV is derived from the IS-IS and OSPF protocol-specific Flexible
Algorithm Include-All Admin Group sub-TLV as defined in <xref Algorithm Include-All Admin Group sub-TLV, as defined in <xref target="R
target="I-D.ietf-lsr-flex-algo"/>.</t> FC9350" format="default"/>.</t>
</section> </section>
<section anchor="FADFLAGS" numbered="true" toc="default">
<section anchor="FADFLAGS" <name>Flexible Algorithm Definition Flags Sub-TLV</name>
title="Flexible Algorithm Definition Flags Sub-TLV">
<t>The Flexible Algorithm Definition Flags sub-TLV is an optional <t>The Flexible Algorithm Definition Flags sub-TLV is an optional
sub-TLV that is used to carry the flags associated with the FAD that sub-TLV that is used to carry the flags associated with the FAD that
are used in the computation of the specific algorithm as described in are used in the computation of the specific algorithm, as described in
<xref target="I-D.ietf-lsr-flex-algo"/>.</t> <xref target="RFC9350" format="default"/>.</t>
<t>The sub-TLV has the following format:</t>
<t>The sub-TLV has the following format:<figure align="center"> <figure>
<artwork align="left"><![CDATA[ 0 1 <name>Flexible Algorithm Definition Flags Sub-TLV</name>
2 3 <artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags (variable) // | Flags (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Flexible Algorithm Definition Flags sub-TLV
where:
]]></artwork> ]]></artwork>
</figure></t> </figure>
<dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>where:</dt>
<t>Type: 1043</t> <dd>
<dl newline="false" spacing="normal">
<t>Length: The total length of the value field in octets dependent <dt>Type:</dt><dd>1043</dd>
on the size of the Flags. It MUST be a non-zero value and a <dt>Length:</dt><dd>The total length of the value field in octets
multiple of 4.</t> dependent
on the size of the flags. It <bcp14>MUST</bcp14> be a non-zero val
<t>Flags: the bitmask used to represent the flags for the FAD, as ue and a
defined in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> multiple of 4.</dd>
</list></t> <dt>Flags:</dt><dd>The bitmask used to represent the flags for the
FAD, as
defined in <xref target="RFC9350" format="default"/>.</dd>
</dl>
</dd>
</dl>
<t>The information in the Flexible Algorithm Definition Flags sub-TLV <t>The information in the Flexible Algorithm Definition Flags sub-TLV
is derived from the IS-IS and OSPF protocol-specific Flexible is derived from the IS-IS and OSPF protocol-specific Flexible
Algorithm Definition Flags sub-TLV as defined in <xref Algorithm Definition Flags sub-TLV, as defined in <xref target="RFC9350"
target="I-D.ietf-lsr-flex-algo"/>.</t> format="default"/>.</t>
</section> </section>
<section anchor="FADSRLGEXCL" numbered="true" toc="default">
<section anchor="FADSRLGEXCL" <name>Flexible Algorithm Exclude SRLG Sub-TLV</name>
title="Flexible Algorithm Exclude SRLG Sub-TLV">
<t>The Flexible Algorithm Exclude SRLG sub-TLV is an optional sub-TLV <t>The Flexible Algorithm Exclude SRLG sub-TLV is an optional sub-TLV
that is used to carry the Shared Risk Link Group (SRLG) information that is used to carry the Shared Risk Link Group (SRLG) information
associated with the FAD and enable the exclusion of links that are associated with the FAD and enable the exclusion of links that are
associated with any of the specified SRLG in the computation of the associated with any of the specified SRLG in the computation of the
specific algorithm as described in <xref specific algorithm, as described in <xref target="RFC9350" format="defau
target="I-D.ietf-lsr-flex-algo"/>. The SRLGs associated with a link lt"/>. The SRLGs associated with a link
are carried in the BGP-LS Shared Link Risk Group (TLV 1096) <xref are carried in the BGP-LS Shared Risk Link Group (TLV 1096) <xref target
target="RFC7752"/>.</t> ="RFC7752" format="default"/>.</t>
<t>The sub-TLV has the following format:</t>
<t>The sub-TLV has the following format:<figure align="center"> <figure>
<artwork align="left"><![CDATA[ 0 1 <name>Flexible Algorithm Exclude SRLG Sub-TLV</name>
2 3 <artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Shared Risk Link Group Values (variable) // | Shared Risk Link Group Values (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Flexible Algorithm Exclude SRLG sub-TLV
where:
]]></artwork> ]]></artwork>
</figure></t> </figure>
<dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>where:</dt>
<t>Type: 1045</t> <dd>
<dl newline="false" spacing="normal">
<t>Length: The total length of the value field in octets dependent <dt>Type:</dt><dd>1045</dd>
on the number of SRLG values carried. It MUST be a non-zero value <dt>Length:</dt><dd>The total length of the value field in octets
and a multiple of 4.</t> dependent
on the number of SRLG values carried. It <bcp14>MUST</bcp14> be a
<t>Shared Risk Link Group Values: One or more SRLG values, each of non-zero value
4 octet size, as defined in <xref and a multiple of 4.</dd>
target="I-D.ietf-lsr-flex-algo"/>.</t> <dt>Shared Risk Link Group Values:</dt><dd>One or more SRLG values
</list></t> , each with a
size of 4 octets, as defined in <xref target="RFC9350" format="def
<t>The information in the Flexible Algorithm SRLG Exclude sub-TLV is ault"/>.</dd>
</dl>
</dd>
</dl>
<t>The information in the Flexible Algorithm Exclude SRLG sub-TLV is
derived from the IS-IS and OSPF protocol-specific Flexible Algorithm derived from the IS-IS and OSPF protocol-specific Flexible Algorithm
Exclude SRLG sub-TLV as defined in <xref Exclude SRLG sub-TLV, as defined in <xref target="RFC9350" format="defau
target="I-D.ietf-lsr-flex-algo"/>.</t> lt"/>.</t>
</section> </section>
<section anchor="FADUNK" numbered="true" toc="default">
<section anchor="FADUNK" title="Flexible Algorithm Unsupported Sub-TLV"> <name>Flexible Algorithm Unsupported Sub-TLV</name>
<t>The OSPF and IS-IS signaling for FAD allows for extensions via new <t>The OSPF and IS-IS signaling for FAD allows for extensions via new
sub-TLVs under the respective IGP's Flexible Algorithm Definition TLV. sub-TLVs under the respective IGP's Flexible Algorithm Definition TLV.
As specified in section 5.3 of <xref As specified in <xref target="RFC9350" format="default" sectionFormat="o
target="I-D.ietf-lsr-flex-algo"/>, it is important that the entire FAD f"
be understood by anyone using it for computation purpose. Therefore, section="5.3"/>, it is important that the entire FAD
the FAD is different from most other protocol extensions where the be understood by anyone using it for computation purposes. Therefore,
the FAD is different from most other protocol extensions, where the
skipping or ignoring of unsupported sub-TLV information does not skipping or ignoring of unsupported sub-TLV information does not
affect the base behavior.</t> affect the base behavior.</t>
<t>The Flexible Algorithm Unsupported sub-TLV is an optional sub-TLV <t>The Flexible Algorithm Unsupported sub-TLV is an optional sub-TLV
that is used to indicate the presence of unsupported FAD sub-TLVs. The that is used to indicate the presence of unsupported FAD sub-TLVs. The
need for this sub-TLV arises when the BGP-LS implementation on the need for this sub-TLV arises when the BGP-LS implementation on the
advertising node does not support one or more of the FAD sub-TLVs advertising node does not support one or more of the FAD sub-TLVs
present in the IGP advertisement.</t> present in the IGP advertisement.</t>
<t>The sub-TLV has the following format:</t>
<t>The sub-TLV has the following format:<figure align="center"> <figure>
<artwork align="left"><![CDATA[ 0 1 <name>Flexible Algorithm Unsupported Sub-TLV</name>
2 3 <artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol-ID | sub-TLV types (variable) ... // | Protocol-ID | sub-TLV types (variable) ... //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Flexible Algorithm Unsupported sub-TLV
where:
]]></artwork> ]]></artwork>
</figure></t> </figure>
<dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>where:</dt>
<t>Type: TBD (Note to Editor: The code point allocation, once made <dd>
by IANA, needs to be updated here - refer to <xref <dl newline="false" spacing="normal">
target="IANA"/>)</t> <dt>Type:</dt><dd>1046</dd>
<dt>Length:</dt><dd> The total length of the value field in octets
<t>Length: The total length of the value field in octets (including any included sub-TLV types).</dd>
(including any included sub-TLV types).</t> <dt>Protocol-ID:</dt><dd> Indicates the BGP-LS Protocol-ID of the pr
otocol
<t>Protocol-ID: Indicates the BGP-LS Protocol-ID of the protocol
from which the FAD is being advertised via BGP-LS. The values are from which the FAD is being advertised via BGP-LS. The values are
from the "BGP-LS Protocol-IDs" registry from the IANA "BGP-LS Protocol-IDs" subregistry
&lt;https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls-parame under the "Border Gateway Protocol - Link State (BGP-LS) Parameters"
ters.xhtml#protocol-ids&gt; registry <eref target="https://www.iana.org/assignments/bgp-ls-parame
under the IANA BGP-LS Parameters registry.</t> ters/" brackets="angle"/>.</dd>
<dt>sub-TLV types:</dt><dd> Zero or more sub-TLV types that are not
<t>sub-TLV types: Zero or more sub-TLV types that are not
supported by the node originating the BGP-LS advertisement. The supported by the node originating the BGP-LS advertisement. The
size of each sub-TLV type depends on the protocol indicated by the size of each sub-TLV type depends on the protocol indicated by the
Protocol-ID field. For example, for IS-IS each sub-TLV type would Protocol-ID field. For example, for IS-IS, each sub-TLV type would
be of size 1 octet while for OSPF each sub-TLV type would be of be 1 octet in size, while for OSPF, each sub-TLV type would be 2 oct
size 2 octets.</t> ets
</list></t> in size.</dd>
</dl>
<t>The node originating the advertisement MUST include the Flexible </dd>
</dl>
<t>The node originating the advertisement <bcp14>MUST</bcp14> include th
e Flexible
Algorithm Unsupported sub-TLV when it comes across an unsupported Algorithm Unsupported sub-TLV when it comes across an unsupported
sub-TLV in the corresponding FAD in the IS-IS and OSPF advertisement. sub-TLV in the corresponding FAD in the IS-IS and OSPF advertisement.
When advertising the Flexible Algorithm Unsupported sub-TLV, the When advertising the Flexible Algorithm Unsupported sub-TLV, the
protocol-specific sub-TLV types that are not supported SHOULD be protocol-specific sub-TLV types that are not supported <bcp14>SHOULD</bc p14> be
included. This information serves as a diagnostic aid.</t> included. This information serves as a diagnostic aid.</t>
<t>The discussion on the use of the FAD information by the consumers <t>The discussion on the use of the FAD information by the consumers
of the BGP-LS information is beyond the scope of this document. of the BGP-LS information is beyond the scope of this document.
However, it is RECOMMENDED that the choice of the node used for However, it is <bcp14>RECOMMENDED</bcp14> that the choice of the node us ed for
originating the IGP topology information into BGP-LS be made such that originating the IGP topology information into BGP-LS be made such that
the advertising node supports all the FAD extensions in use in its the advertising node supports all the FAD extensions in use in its
part of the network. This avoids the scenario where an incomplete FAD part of the network. This avoids the scenario where an incomplete FAD
gets advertised via BGP-LS.</t> gets advertised via BGP-LS.</t>
</section> </section>
</section> </section>
<section anchor="FAMETRIC" numbered="true" toc="default">
<section anchor="FAMETRIC" title="Flexible Algorithm Prefix Metric TLV"> <name>Flexible Algorithm Prefix Metric TLV</name>
<t>This document defines a new optional BGP-LS Attribute TLV associated <t>This document defines a new optional BGP-LS Attribute TLV associated
with the Prefix NLRI called the Flexible Algorithm Prefix Metric (FAPM) with the Prefix NLRI called the "Flexible Algorithm Prefix Metric TLV
TLV and its format is as follows:</t> ("FAPM TLV" for short), and its format is as follows:</t>
<figure>
<t><figure align="center"> <name>Flexible Algorithm Prefix Metric TLV</name>
<artwork align="left"><![CDATA[ 0 1 <artwork align="left" name="" type="" alt=""><![CDATA[ 0
2 3 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flex Algo | Flags | Reserved | | Flex Algo | Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Metric | | Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Flexible Algorithm Prefix Metric TLV
where:
]]></artwork> ]]></artwork>
</figure></t> </figure>
<dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>where:</dt>
<t>Type: 1044</t> <dd>
<dl newline="false" spacing="normal">
<t>Length: 8 octets.</t> <dt>Type:</dt><dd>1044</dd>
<dt>Length:</dt><dd>8 octets</dd>
<t>Flexible Algorithm (Flex Algo): Single octet value carrying the <dt>Flexible Algorithm (Flex Algo):</dt><dd>Single octet value carry
flexible algorithm number between 128 and 255 inclusive, as defined ing the
in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> Flexible Algorithm number between 128 and 255 inclusive, as defined
in <xref target="RFC9350" format="default"/>.</dd>
<t>Flags: single octet value and only applicable for OSPF as defined <dt>Flags:</dt><dd>Single octet value and only applicable for OSPF,
in <xref target="I-D.ietf-lsr-flex-algo"/>. The value MUST be set to as defined
0 for IS-IS.</t> in <xref target="RFC9350" format="default"/>. The value <bcp14>MUST<
/bcp14> be set
<t>Reserved: 2 octet value that MUST be set to 0 by the originator to 0 for IS-IS.</dd>
and MUST be ignored by the receiver.</t> <dt>Reserved:</dt><dd>2-octet value that <bcp14>MUST</bcp14> be set
to 0 by the
<t>Metric: 4 octets field to carry the metric information.</t> originator and <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
</list></t> <dt>Metric:</dt><dd>4-octet field to carry the metric information.</
dd>
</dl>
</dd>
</dl>
<t>The FAPM TLV that is advertised in the BGP-LS Attribute along with <t>The FAPM TLV that is advertised in the BGP-LS Attribute along with
the Prefix NLRI from a node is derived from the following IGP the Prefix NLRI from a node is derived from the following IGP
protocol-specific advertisements:<list style="symbols"> protocol-specific advertisements:</t>
<t>In the case of IS-IS, from the IS-IS Flexible Algorithm Prefix <ul spacing="normal">
Metric sub-TLV in <xref target="I-D.ietf-lsr-flex-algo"/>.</t> <li>in the case of IS-IS, from the IS-IS Flexible Algorithm Prefix
Metric sub-TLV in <xref target="RFC9350" format="default"/></li>
<t>In the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm <li>in the case of OSPFv2/OSPFv3, from the OSPF Flexible Algorithm
Prefix Metric sub-TLV in <xref Prefix Metric sub-TLV in <xref target="RFC9350" format="default"/></li>
target="I-D.ietf-lsr-flex-algo"/>.</t> </ul>
</list></t>
<t>The BGP-LS Attribute associated with a Prefix NLRI may include one or <t>The BGP-LS Attribute associated with a Prefix NLRI may include one or
more FAPM TLVs corresponding to the Flexible Algorithm Prefix Metric for more FAPM TLVs corresponding to the Flexible Algorithm Prefix Metric for
each algorithm associated with that particular prefix.</t> each algorithm associated with that particular prefix.</t>
</section> </section>
<section anchor="IANA" numbered="true" toc="default">
<section anchor="IANA" title="IANA Considerations"> <name>IANA Considerations</name>
<t>IANA has allocated code points from the registry "BGP-LS Node <t>IANA has allocated code points in the "BGP-LS Node
Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs" Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs" regist
&lt;https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls-parameters.x ry
html#node-descriptor-link-descriptor-prefix-descriptor-attribute-tlv&gt; <eref target="https://www.iana.org/assignments/bgp-ls-parameters" brackets
="angle"/>
based on the table below for the TLVs/sub-TLVs introduced by this based on the table below for the TLVs/sub-TLVs introduced by this
document. This document requests IANA to allocate the pending code point document.</t>
for the Flexible Algorithm Unsupported sub-TLV as suggested below. The
column "IS-IS TLV/Sub-TLV" defined in the registry does not require any
value and should be left empty.</t>
<figure>
<artwork align="center"><![CDATA[
+------------+-----------------------------------------+
| Code Point | Description |
+------------+-----------------------------------------+
| 1039 | Flexible Algorithm Definition |
| 1040 | Flexible Algorithm Exclude Any Affinity |
| 1041 | Flexible Algorithm Include Any Affinity |
| 1042 | Flexible Algorithm Include All Affinity |
| 1043 | Flexible Algorithm Definition Flags |
| 1044 | Flexible Algorithm Prefix Metric |
| 1045 | Flexible Algorithm Exclude SRLG |
| 1046 (Sugg)| Flexible Algorithm Unsupported |
+------------+-----------------------------------------+
Table 1: Flexible Algorithm Code Points
]]></artwork> <table anchor="algorithm">
</figure> <name>Flexible Algorithm Code Points</name>
<thead>
<tr>
<th>TLV Code Point</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>1039</td>
<td>Flexible Algorithm Definition</td>
</tr>
<tr>
<td>1040</td>
<td>Flexible Algorithm Exclude-Any Affinity</td>
</tr>
<tr>
<td>1041</td>
<td>Flexible Algorithm Include-Any Affinity</td>
</tr>
<tr>
<td>1042</td>
<td>Flexible Algorithm Include-All Affinity</td>
</tr>
<tr>
<td>1043</td>
<td>Flexible Algorithm Definition Flags</td>
</tr>
<tr>
<td>1044</td>
<td>Flexible Algorithm Prefix Metric</td>
</tr>
<tr>
<td>1045</td>
<td>Flexible Algorithm Exclude SRLG</td>
</tr>
<tr>
<td>1046</td>
<td>Flexible Algorithm Unsupported</td>
</tr>
</tbody>
</table>
</section> </section>
<section anchor="Manageability" numbered="true" toc="default">
<section anchor="Manageability" title="Manageability Considerations"> <name>Manageability Considerations</name>
<t>The new protocol extensions introduced in this document augment the <t>The new protocol extensions introduced in this document augment the
existing IGP topology information that can be distributed via <xref existing IGP topology information that can be distributed via <xref target
target="RFC7752"/>. Procedures and protocol extensions defined in this ="RFC7752" format="default"/>. Procedures and protocol extensions defined in thi
s
document do not affect the BGP protocol operations and management other document do not affect the BGP protocol operations and management other
than as discussed in the Manageability Considerations section of <xref than what is discussed in the "Manageability Considerations" section of <x
target="RFC7752"/>. Specifically, the malformed NLRIs attribute tests in ref target="RFC7752" format="default"/>. Specifically, the malformed NLRIs attri
the Fault Management section of <xref target="RFC7752"/> now encompass bute tests in
the "Fault Management" section of <xref target="RFC7752" format="default"/
> now encompass
the new TLVs for the BGP-LS NLRI in this document.</t> the new TLVs for the BGP-LS NLRI in this document.</t>
<t>The extensions specified in this document do not specify any new <t>The extensions specified in this document do not specify any new
configuration or monitoring aspects in BGP or BGP-LS. The specification configuration or monitoring aspects in BGP or BGP-LS. The specification
of BGP models is an ongoing work based on <xref of BGP models is an ongoing work based on <xref target="I-D.ietf-idr-bgp-m
target="I-D.ietf-idr-bgp-model"/>.</t> odel" format="default"/>.</t>
</section> </section>
<section anchor="Security" numbered="true" toc="default">
<section anchor="Security" title="Security Considerations"> <name>Security Considerations</name>
<t>Security considerations for acquiring and distributing BGP-LS <t>Security considerations for acquiring and distributing BGP-LS
information are discussed in <xref target="RFC7752"/>.</t> information are discussed in <xref target="RFC7752" format="default"/>.</t
>
<t>The TLVs introduced in this document are used to propagate the IGP <t>The TLVs introduced in this document are used to propagate the IGP
Flexible Algorithm extensions defined in <xref Flexible Algorithm extensions defined in <xref target="RFC9350" format="de
target="I-D.ietf-lsr-flex-algo"/>. It is assumed that the IGP instances fault"/>. It is assumed that the IGP instances
originating these TLVs will support all the required security (as originating these TLVs will support all the required security (as
described in <xref target="I-D.ietf-lsr-flex-algo"/>) for Flexible described in <xref target="RFC9350" format="default"/>) for Flexible
Algorithm deployment.</t> Algorithm deployment.</t>
<t>This document specifies extensions for the advertisement of node and <t>This document specifies extensions for the advertisement of node and
prefix related flexible algorithm information. Tampering with this prefix-related Flexible Algorithm information. Tampering with this
flexible algorithm-related information may affect applications using it, Flexible-Algorithm-related information may affect applications using it,
including impacting route calculation and programming. As the including impacting route calculation and programming. As the
advertisements defined in this document are related to a specific advertisements defined in this document are related to a specific
flexible algorithm topology, the impact of tampering is similarly Flexible Algorithm topology, the impact of tampering is similarly
limited in scope.</t> limited in scope.</t>
</section> </section>
<section anchor="ACK" title="Acknowledgements">
<t>The authors would like to thank Les Ginsberg, Amalesh Maity, Y F Siu,
Vijay Gurbani, and Donald Eastlake III for their reviews and
contributions to this work. The authors would like to thank Jie Dong for
his shepherd review. The authors would like to thank Alvaro Retana for
his detailed AD review and suggestions for improving this document.</t>
</section>
</middle> </middle>
<back> <back>
<references title="Normative References">
<?rfc include="reference.RFC.2119"?>
<?rfc include="reference.RFC.8174"?>
<?rfc include='reference.RFC.7308'?>
<?rfc include='reference.RFC.7752'?>
<?rfc include='reference.I-D.ietf-lsr-flex-algo'?>
</references>
<references title="Informative References">
<?rfc include="reference.RFC.3209"?>
<?rfc include='reference.RFC.8402'?>
<?rfc include='reference.RFC.8919'?> <displayreference target="I-D.ietf-idr-bgpls-srv6-ext" to="IDR-BGPLS-SRV6-EXT"/>
<displayreference target="I-D.ietf-idr-bgp-model" to="IDR-BGP-MODEL"/>
<?rfc include='reference.RFC.8920'?> <references>
<name>References</name>
<references>
<?rfc include='reference.RFC.9294'?> <name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
308.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
752.xml"/>
<?rfc include='reference.RFC.9256'?> <reference anchor='RFC9350' target='https://www.rfc-editor.org/info/rfc9350'>
<front>
<title>IGP Flexible Algorithm</title>
<author initials='P' surname='Psenak' fullname='Peter Psenak' role='editor'>
<organization />
</author>
<author initials='S' surname='Hegde' fullname='Shraddha Hegde'>
<organization />
</author>
<author initials='C' surname='Filsfils' fullname='Clarence Filsfils'>
<organization />
</author>
<author initials='K' surname='Talaulikar' fullname='Ketan Talaulikar'>
<organization />
</author>
<author initials='A' surname='Gulko' fullname='Arkadiy Gulko'>
<organization />
</author>
<date year='2023' month='February'/>
</front>
<seriesInfo name="RFC" value="9350"/>
<seriesInfo name="DOI" value="10.17487/RFC9350"/>
</reference>
<?rfc include='reference.RFC.9085'?> </references>
<references>
<name>Informative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
209.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
402.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
919.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
920.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
294.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
256.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
085.xml"/>
<?rfc include='reference.I-D.ietf-idr-bgpls-srv6-ext'?> <reference anchor="I-D.ietf-idr-bgpls-srv6-ext">
<front>
<title>BGP Link State Extensions for SRv6</title>
<author initials='G' surname='Dawra' fullname='Gaurav Dawra'>
<organization/>
</author>
<author initials='C' surname='Filsfils' fullname='Clarence Filsfils'>
<organization/>
</author>
<author initials='K' surname='Talaulikar' fullname='Ketan Talaulikar' role='edit
or'>
<organization/>
</author>
<author initials='M' surname='Chen' fullname='Mach Chen'>
<organization/>
</author
><author initials='D' surname='Bernier' fullname='Daniel Bernier'>
<organization/>
</author>
<author initials='B' surname='Decraene' fullname='Bruno Decraene'>
<organization/>
</author>
<date month='January' day='14' year='2023'/>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-idr-bgpls-srv6-ext-13'/>
<format type='TXT' target='https://www.ietf.org/archive/id/draft-ietf-idr-bgpls-
srv6-ext-13.txt'/>
</reference>
<?rfc include='reference.I-D.ietf-idr-bgp-model'?> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D
.ietf-idr-bgp-model.xml"/>
</references>
</references> </references>
<section anchor="ACK" numbered="false" toc="default">
<name>Acknowledgements</name>
<t>The authors would like to thank <contact fullname="Les Ginsberg"/>, <co
ntact
fullname="Amalesh Maity"/>, <contact fullname="Y. F. Siu"/>,
<contact fullname="Vijay Gurbani"/>, and <contact fullname="Donald Eastlak
e 3rd"/> for
their reviews and contributions to this work. The authors would like to th
ank <contact
fullname="Jie Dong"/> for his shepherd review. The authors would like to t
hank <contact
fullname="Alvaro Retana"/> for his detailed AD review and suggestions for
improving this
document.</t>
</section>
</back> </back>
</rfc> </rfc>
 End of changes. 121 change blocks. 
498 lines changed or deleted 559 lines changed or added

This html diff was produced by rfcdiff 1.48.