rfc9350xml2.original.xml | rfc9350.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | |||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | nsus="true" docName="draft-ietf-lsr-flex-algo-26" indexInclude="true" ipr="trust | |||
<?rfc toc="yes" ?> | 200902" number="9350" prepTime="2023-02-21T15:23:01" scripts="Common,Latin" sort | |||
<?rfc symrefs="yes" ?> | Refs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" | |||
<?rfc sortrefs="yes"?> | xml:lang="en"> | |||
<?rfc iprnotified="no" ?> | <link href="https://datatracker.ietf.org/doc/draft-ietf-lsr-flex-algo-26" rel= | |||
<?rfc strict="yes" ?> | "prev"/> | |||
<?rfc compact='yes'?> | <link href="https://dx.doi.org/10.17487/rfc9350" rel="alternate"/> | |||
<?rfc subcompact='no'?> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
<rfc category="std" docName="draft-ietf-lsr-flex-algo-26" ipr="trust200902"> | ||||
<front> | <front> | |||
<title abbrev="IGP Flexible Algorithm">IGP Flexible Algorithm</title> | <title abbrev="IGP Flexible Algorithm">IGP Flexible Algorithm</title> | |||
<seriesInfo name="RFC" value="9350" stream="IETF"/> | ||||
<author fullname="Peter Psenak" initials="P." role="editor" | <author fullname="Peter Psenak" initials="P." role="editor" surname="Psenak" | |||
surname="Psenak"> | > | |||
<organization>Cisco Systems, Inc.</organization> | <organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Apollo Business Center</street> | <extaddr>Apollo Business Center</extaddr> | |||
<street>Mlynske nivy 43</street> | <street>Mlynske nivy 43</street> | |||
<city>Bratislava</city> | <city>Bratislava</city> | |||
<code>82109</code> | ||||
<region>82109</region> | ||||
<country>Slovakia</country> | <country>Slovakia</country> | |||
<code/> | <code/> | |||
</postal> | </postal> | |||
<email>ppsenak@cisco.com</email> | <email>ppsenak@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Shraddha Hegde" initials="S" surname="Hegde"> | <author fullname="Shraddha Hegde" initials="S" surname="Hegde"> | |||
<organization>Juniper Networks, Inc.</organization> | <organization showOnFrontPage="true">Juniper Networks, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Embassy Business Park</street> | <extaddr>Embassy Business Park</extaddr> | |||
<street/> | <street/> | |||
<city>Bangalore</city> | ||||
<city>Bangalore, KA</city> | <region>KA</region> | |||
<code>560093</code> | ||||
<region>560093</region> | ||||
<country>India</country> | <country>India</country> | |||
<code/> | <code/> | |||
</postal> | </postal> | |||
<email>shraddha@juniper.net</email> | <email>shraddha@juniper.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | <author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | |||
<organization>Cisco Systems, Inc.</organization> | <organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city>Brussels</city> | <city>Brussels</city> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country>Belgium</country> | <country>Belgium</country> | |||
</postal> | </postal> | |||
<email>cfilsfil@cisco.com</email> | <email>cfilsfil@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar"> | <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar"> | |||
<organization>Cisco Systems, Inc</organization> | <organization showOnFrontPage="true">Cisco Systems, Inc</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city/> | ||||
<city></city> | <code/> | |||
<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="Arkadiy Gulko" initials="A." surname="Gulko"> | <author fullname="Arkadiy Gulko" initials="A." surname="Gulko"> | |||
<organization>Edward Jones</organization> | <organization showOnFrontPage="true">Edward Jones</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city/> | <city/> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country/> | <country/> | |||
</postal> | </postal> | |||
<email>arkadiy.gulko@edwardjones.com</email> | <email>arkadiy.gulko@edwardjones.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="02" year="2023"/> | ||||
<date/> | <area>rtg</area> | |||
<workgroup>lsr</workgroup> | ||||
<abstract> | <abstract pn="section-abstract"> | |||
<t>IGP protocols historically compute best paths over the network based | <t indent="0" pn="section-abstract-1">IGP protocols historically compute t | |||
he best paths over the network based | ||||
on the IGP metric assigned to the links. Many network deployments use | on the IGP metric assigned to the links. Many network deployments use | |||
RSVP-TE based or Segment Routing based Traffic Engineering to steer | RSVP-TE or Segment Routing - Traffic Engineering (SR-TE) to steer | |||
traffic over a path that is computed using different metrics or | traffic over a path that is computed using different metrics or | |||
constraints than the shortest IGP path. This document specifies a | constraints than the shortest IGP path. This document specifies a | |||
solution that allows IGPs themselves to compute constraint-based paths | solution that allows IGPs themselves to compute constraint-based paths | |||
over the network. This document also specifies a way of using Segment | over the network. This document also specifies a way of using Segment | |||
Routing (SR) Prefix-SIDs and SRv6 locators to steer packets along the | Routing (SR) Prefix-SIDs and SRv6 locators to steer packets along the | |||
constraint-based paths.</t> | constraint-based paths.</t> | |||
</abstract> | </abstract> | |||
<boilerplate> | ||||
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
"exclude" pn="section-boilerplate.1"> | ||||
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
> | ||||
<t indent="0" pn="section-boilerplate.1-1"> | ||||
This is an Internet Standards Track document. | ||||
</t> | ||||
<t indent="0" pn="section-boilerplate.1-2"> | ||||
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. | ||||
</t> | ||||
<t indent="0" pn="section-boilerplate.1-3"> | ||||
Information about the current status of this document, any | ||||
errata, and how to provide feedback on it may be obtained at | ||||
<eref target="https://www.rfc-editor.org/info/rfc9350" brackets="non | ||||
e"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
ude" pn="section-boilerplate.2"> | ||||
<name slugifiedName="name-copyright-notice">Copyright Notice</name> | ||||
<t indent="0" pn="section-boilerplate.2-1"> | ||||
Copyright (c) 2023 IETF Trust and the persons identified as the | ||||
document authors. All rights reserved. | ||||
</t> | ||||
<t indent="0" pn="section-boilerplate.2-2"> | ||||
This document is subject to BCP 78 and the IETF Trust's Legal | ||||
Provisions Relating to IETF Documents | ||||
(<eref target="https://trustee.ietf.org/license-info" brackets="none | ||||
"/>) 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. | ||||
</t> | ||||
</section> | ||||
</boilerplate> | ||||
<toc> | ||||
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p | ||||
n="section-toc.1"> | ||||
<name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
c.1-1"> | ||||
<li pn="section-toc.1-1.1"> | ||||
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der | ||||
ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>. <xref | ||||
derivedContent="" format="title" sectionFormat="of" target="name-introduction"> | ||||
Introduction</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.2"> | ||||
<t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref der | ||||
ivedContent="2" format="counter" sectionFormat="of" target="section-2"/>. <xref | ||||
derivedContent="" format="title" sectionFormat="of" target="name-requirements-l | ||||
anguage">Requirements Language</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.3"> | ||||
<t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref der | ||||
ivedContent="3" format="counter" sectionFormat="of" target="section-3"/>. <xref | ||||
derivedContent="" format="title" sectionFormat="of" target="name-terminology">T | ||||
erminology</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4"> | ||||
<t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form | ||||
at="counter" sectionFormat="of" target="section-4"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-flexible-algorithm">Flexible Algor | ||||
ithm</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5"> | ||||
<t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form | ||||
at="counter" sectionFormat="of" target="section-5"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-flexible-algorithm-definiti">Flexi | ||||
ble Algorithm Definition Advertisement</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.5.2"> | ||||
<li pn="section-toc.1-1.5.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent= | ||||
"5.1" format="counter" sectionFormat="of" target="section-5.1"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-is-is-flexible-algorit | ||||
hm-de">IS-IS Flexible Algorithm Definition Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent= | ||||
"5.2" format="counter" sectionFormat="of" target="section-5.2"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-ospf-flexible-algorith | ||||
m-def">OSPF Flexible Algorithm Definition TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent= | ||||
"5.3" format="counter" sectionFormat="of" target="section-5.3"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-common-handling-of-the | ||||
-flex">Common Handling of the Flexible Algorithm Definition TLV</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.6"> | ||||
<t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form | ||||
at="counter" sectionFormat="of" target="section-6"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-sub-tlvs-of-is-is-fad-sub-t">Sub-T | ||||
LVs of IS-IS FAD Sub-TLV</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.6.2"> | ||||
<li pn="section-toc.1-1.6.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent= | ||||
"6.1" format="counter" sectionFormat="of" target="section-6.1"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-is-is-flexible-algorit | ||||
hm-ex">IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent= | ||||
"6.2" format="counter" sectionFormat="of" target="section-6.2"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-is-is-flexible-algorit | ||||
hm-in">IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent= | ||||
"6.3" format="counter" sectionFormat="of" target="section-6.3"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-is-is-flexible-algorit | ||||
hm-inc">IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent= | ||||
"6.4" format="counter" sectionFormat="of" target="section-6.4"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-is-is-flexible-algorit | ||||
hm-def">IS-IS Flexible Algorithm Definition Flags Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.5"> | ||||
<t indent="0" pn="section-toc.1-1.6.2.5.1"><xref derivedContent= | ||||
"6.5" format="counter" sectionFormat="of" target="section-6.5"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-is-is-flexible-algorit | ||||
hm-exc">IS-IS Flexible Algorithm Exclude SRLG Sub-TLV</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.7"> | ||||
<t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form | ||||
at="counter" sectionFormat="of" target="section-7"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-sub-tlvs-of-the-ospf-fad-tl">Sub-T | ||||
LVs of the OSPF FAD TLV</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.7.2"> | ||||
<li pn="section-toc.1-1.7.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent= | ||||
"7.1" format="counter" sectionFormat="of" target="section-7.1"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-ospf-flexible-algorith | ||||
m-exc">OSPF Flexible Algorithm Exclude Admin Group Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent= | ||||
"7.2" format="counter" sectionFormat="of" target="section-7.2"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-ospf-flexible-algorith | ||||
m-inc">OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.7.2.3.1"><xref derivedContent= | ||||
"7.3" format="counter" sectionFormat="of" target="section-7.3"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-ospf-flexible-algorith | ||||
m-incl">OSPF Flexible Algorithm Include-All Admin Group Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.7.2.4.1"><xref derivedContent= | ||||
"7.4" format="counter" sectionFormat="of" target="section-7.4"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-ospf-flexible-algorith | ||||
m-defi">OSPF Flexible Algorithm Definition Flags Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.5"> | ||||
<t indent="0" pn="section-toc.1-1.7.2.5.1"><xref derivedContent= | ||||
"7.5" format="counter" sectionFormat="of" target="section-7.5"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-ospf-flexible-algorith | ||||
m-excl">OSPF Flexible Algorithm Exclude SRLG Sub-TLV</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.8"> | ||||
<t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" form | ||||
at="counter" sectionFormat="of" target="section-8"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-is-is-flexible-algorithm-pr">IS-IS | ||||
Flexible Algorithm Prefix Metric Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.9"> | ||||
<t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" form | ||||
at="counter" sectionFormat="of" target="section-9"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-ospf-flexible-algorithm-pre">OSPF | ||||
Flexible Algorithm Prefix Metric Sub-TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.10"> | ||||
<t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" fo | ||||
rmat="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-ospf-flexible-algorithm-asb">OSP | ||||
F Flexible Algorithm ASBR Reachability Advertisement</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.10.2"> | ||||
<li pn="section-toc.1-1.10.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent | ||||
="10.1" format="counter" sectionFormat="of" target="section-10.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-ospfv2-extended-int | ||||
er-area-">OSPFv2 Extended Inter-Area ASBR LSA</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.10.2.1.2"> | ||||
<li pn="section-toc.1-1.10.2.1.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.10.2.1.2.1.1"><xref derive | ||||
dContent="10.1.1" format="counter" sectionFormat="of" target="section-10.1.1"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv2- | ||||
extended-inter-area-a">OSPFv2 Extended Inter-Area ASBR TLV</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.10.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent | ||||
="10.2" format="counter" sectionFormat="of" target="section-10.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-ospf-flexible-algor | ||||
ithm-asbr">OSPF Flexible Algorithm ASBR Metric Sub-TLV</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.11"> | ||||
<t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" fo | ||||
rmat="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-advertisement-of-node-parti">Adv | ||||
ertisement of Node Participation in a Flex-Algorithm</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.11.2"> | ||||
<li pn="section-toc.1-1.11.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent | ||||
="11.1" format="counter" sectionFormat="of" target="section-11.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-advertisement-of-no | ||||
de-partic">Advertisement of Node Participation for Segment Routing</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.11.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent | ||||
="11.2" format="counter" sectionFormat="of" target="section-11.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-advertisement-of-no | ||||
de-partici">Advertisement of Node Participation for Other Data Planes</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.12"> | ||||
<t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" fo | ||||
rmat="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-advertisement-of-link-attri">Adv | ||||
ertisement of Link Attributes for Flex-Algorithm</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13"> | ||||
<t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" fo | ||||
rmat="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-calculation-of-flexible-alg">Cal | ||||
culation of Flexible Algorithm Paths</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.13.2"> | ||||
<li pn="section-toc.1-1.13.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent | ||||
="13.1" format="counter" sectionFormat="of" target="section-13.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-multi-area-and-mult | ||||
i-domain">Multi-area and Multi-domain Considerations</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.14"> | ||||
<t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" fo | ||||
rmat="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-flex-algorithm-and-forwardi">Fle | ||||
x-Algorithm and Forwarding Plane</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.14.2"> | ||||
<li pn="section-toc.1-1.14.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.14.2.1.1"><xref derivedContent | ||||
="14.1" format="counter" sectionFormat="of" target="section-14.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-segment-routing-mpl | ||||
s-forwar">Segment Routing MPLS Forwarding for Flex-Algorithm</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.14.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.14.2.2.1"><xref derivedContent | ||||
="14.2" format="counter" sectionFormat="of" target="section-14.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-srv6-forwarding-for | ||||
-flex-al">SRv6 Forwarding for Flex-Algorithm</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.14.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.14.2.3.1"><xref derivedContent | ||||
="14.3" format="counter" sectionFormat="of" target="section-14.3"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-other-data-planes-f | ||||
orwardin">Other Data Planes' Forwarding for Flex-Algorithm</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.15"> | ||||
<t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="15" fo | ||||
rmat="counter" sectionFormat="of" target="section-15"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-operational-considerations">Oper | ||||
ational Considerations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.15.2"> | ||||
<li pn="section-toc.1-1.15.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.15.2.1.1"><xref derivedContent | ||||
="15.1" format="counter" sectionFormat="of" target="section-15.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-inter-area-consider | ||||
ations">Inter-area Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.15.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.15.2.2.1"><xref derivedContent | ||||
="15.2" format="counter" sectionFormat="of" target="section-15.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-usage-of-the-srlg-e | ||||
xclude-r">Usage of the SRLG Exclude Rule with Flex-Algorithm</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.15.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.15.2.3.1"><xref derivedContent | ||||
="15.3" format="counter" sectionFormat="of" target="section-15.3"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-max-metric-consider | ||||
ation">Max-Metric Consideration</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.15.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.15.2.4.1"><xref derivedContent | ||||
="15.4" format="counter" sectionFormat="of" target="section-15.4"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-flexible-algorithm- | ||||
definitio">Flexible Algorithm Definition and Changes</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.15.2.5"> | ||||
<t indent="0" pn="section-toc.1-1.15.2.5.1"><xref derivedContent | ||||
="15.5" format="counter" sectionFormat="of" target="section-15.5"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-number-of-flex-algo | ||||
rithms">Number of Flex-Algorithms</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.16"> | ||||
<t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="16" fo | ||||
rmat="counter" sectionFormat="of" target="section-16"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-backward-compatibility">Backward | ||||
Compatibility</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.17"> | ||||
<t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="17" fo | ||||
rmat="counter" sectionFormat="of" target="section-17"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-security-considerations">Securit | ||||
y Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18"> | ||||
<t indent="0" pn="section-toc.1-1.18.1"><xref derivedContent="18" fo | ||||
rmat="counter" sectionFormat="of" target="section-18"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-iana-considerations">IANA Consid | ||||
erations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.18.2"> | ||||
<li pn="section-toc.1-1.18.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.1.1"><xref derivedContent | ||||
="18.1" format="counter" sectionFormat="of" target="section-18.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-igp-iana-considerat | ||||
ions">IGP IANA Considerations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.18.2.1.2"> | ||||
<li pn="section-toc.1-1.18.2.1.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.1.2.1.1"><xref derive | ||||
dContent="18.1.1" format="counter" sectionFormat="of" target="section-18.1.1"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-igp-alg | ||||
orithm-types-registr">IGP Algorithm Types Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.1.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.1.2.2.1"><xref derive | ||||
dContent="18.1.2" format="counter" sectionFormat="of" target="section-18.1.2"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-igp-met | ||||
ric-type-registry">IGP Metric-Type Registry</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.2.1"><xref derivedContent | ||||
="18.2" format="counter" sectionFormat="of" target="section-18.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-igp-flexible-algori | ||||
thm-defi">IGP Flexible Algorithm Definition Flags Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.3.1"><xref derivedContent | ||||
="18.3" format="counter" sectionFormat="of" target="section-18.3"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-is-is-iana-consider | ||||
ations">IS-IS IANA Considerations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.18.2.3.2"> | ||||
<li pn="section-toc.1-1.18.2.3.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.3.2.1.1"><xref derive | ||||
dContent="18.3.1" format="counter" sectionFormat="of" target="section-18.3.1"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-s | ||||
ub-tlvs-for-is-is-ro">IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV Registry</x | ||||
ref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.3.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.3.2.2.1"><xref derive | ||||
dContent="18.3.2" format="counter" sectionFormat="of" target="section-18.3.2"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-s | ||||
ub-tlvs-for-tlvs-adv">IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability Re | ||||
gistry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.3.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.3.2.3.1"><xref derive | ||||
dContent="18.3.3" format="counter" sectionFormat="of" target="section-18.3.3"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-s | ||||
ub-sub-tlvs-for-flex">IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-T | ||||
LV Registry</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.1"><xref derivedContent | ||||
="18.4" format="counter" sectionFormat="of" target="section-18.4"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-ospf-iana-considera | ||||
tions">OSPF IANA Considerations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.18.2.4.2"> | ||||
<li pn="section-toc.1-1.18.2.4.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.1.1"><xref derive | ||||
dContent="18.4.1" format="counter" sectionFormat="of" target="section-18.4.1"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-ro | ||||
uter-information-ri-">OSPF Router Information (RI) TLVs Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.2.1"><xref derive | ||||
dContent="18.4.2" format="counter" sectionFormat="of" target="section-18.4.2"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv2- | ||||
extended-prefix-tlv-">OSPFv2 Extended Prefix TLV Sub-TLVs Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.3.1"><xref derive | ||||
dContent="18.4.3" format="counter" sectionFormat="of" target="section-18.4.3"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv3- | ||||
extended-lsa-sub-tlv">OSPFv3 Extended-LSA Sub-TLVs Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.4.1"><xref derive | ||||
dContent="18.4.4" format="counter" sectionFormat="of" target="section-18.4.4"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-fl | ||||
ex-algorithm-prefix-">OSPF Flex-Algorithm Prefix Metric Bits Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.5"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.5.1"><xref derive | ||||
dContent="18.4.5" format="counter" sectionFormat="of" target="section-18.4.5"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-opaque- | ||||
link-state-advertise">Opaque Link-State Advertisements (LSA) Option Types Regist | ||||
ry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.6"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.6.1"><xref derive | ||||
dContent="18.4.6" format="counter" sectionFormat="of" target="section-18.4.6"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv2- | ||||
extended-inter-area-as">OSPFv2 Extended Inter-Area ASBR TLVs Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.7"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.7.1"><xref derive | ||||
dContent="18.4.7" format="counter" sectionFormat="of" target="section-18.4.7"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv2- | ||||
extended-inter-area-asbr">OSPFv2 Extended Inter-Area ASBR Sub-TLVs Registry</xre | ||||
f></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.8"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.8.1"><xref derive | ||||
dContent="18.4.8" format="counter" sectionFormat="of" target="section-18.4.8"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-fl | ||||
exible-algorithm-defin">OSPF Flexible Algorithm Definition TLV Sub-TLVs Registry | ||||
</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.18.2.4.2.9"> | ||||
<t indent="0" pn="section-toc.1-1.18.2.4.2.9.1"><xref derive | ||||
dContent="18.4.9" format="counter" sectionFormat="of" target="section-18.4.9"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-link-at | ||||
tribute-application-">Link Attribute Application Identifiers Registry</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.19"> | ||||
<t indent="0" pn="section-toc.1-1.19.1"><xref derivedContent="19" fo | ||||
rmat="counter" sectionFormat="of" target="section-19"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-references">References</xref></t | ||||
> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.19.2"> | ||||
<li pn="section-toc.1-1.19.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.19.2.1.1"><xref derivedContent | ||||
="19.1" format="counter" sectionFormat="of" target="section-19.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-normative-reference | ||||
s">Normative References</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.19.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.19.2.2.1"><xref derivedContent | ||||
="19.2" format="counter" sectionFormat="of" target="section-19.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-informative-referen | ||||
ces">Informative References</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.20"> | ||||
<t indent="0" pn="section-toc.1-1.20.1"><xref derivedContent="" form | ||||
at="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent=" | ||||
" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgeme | ||||
nts</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.21"> | ||||
<t indent="0" pn="section-toc.1-1.21.1"><xref derivedContent="" form | ||||
at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent=" | ||||
" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add | ||||
resses</xref></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
</toc> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction"> | <section numbered="true" toc="include" removeInRFC="false" pn="section-1"> | |||
<t>An IGP-computed path based on the shortest IGP metric is often | <name slugifiedName="name-introduction">Introduction</name> | |||
<t indent="0" pn="section-1-1">An IGP-computed path based on the shortest | ||||
IGP metric is often | ||||
replaced by a traffic-engineered path due to requirements | replaced by a traffic-engineered path due to requirements | |||
which are not reflected by the IGP metric. Some networks engineer the | 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 | 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 or delay. If, for example, the IGP metric reflects the | |||
bandwidth on the link and user traffic is delay sensitive, | 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 perspec tive.</t> | the best IGP path may not reflect the best path from such a user's perspec tive.</t> | |||
<t indent="0" pn="section-1-2">To overcome this limitation, various sorts | ||||
<t>To overcome this limitation, various sorts of traffic engineering | of Traffic Engineering | |||
have been deployed, including RSVP-TE and SR-TE, in which case the TE | have been deployed, including RSVP-TE and SR-TE, in which case the TE | |||
component is responsible for computing paths based on additional metrics | component is responsible for computing paths based on additional metrics | |||
and/or constraints. Such paths need to be installed in the forwarding | and/or constraints. Such paths need to be installed in the forwarding | |||
tables in addition to, or as a replacement for, the original paths | tables in addition to, or as a replacement for, the original paths | |||
computed by IGPs. Tunnels are often used to represent the engineered | computed by IGPs. Tunnels are often used to represent the engineered | |||
paths and mechanisms like the one described in <xref target="RFC3906"/> ar e | paths and mechanisms, like the one described in <xref target="RFC3906" for mat="default" sectionFormat="of" derivedContent="RFC3906"/>, and are | |||
used to replace the original IGP paths with such tunnel paths.</t> | used to replace the original IGP paths with such tunnel paths.</t> | |||
<t indent="0" pn="section-1-3">This document specifies a set of extensions | ||||
<t>This document specifies a set of extensions to IS-IS, OSPFv2, and | to IS-IS, OSPFv2, and | |||
OSPFv3 that enable a router to advertise TLVs that (a) identify | OSPFv3 that enable a router to advertise TLVs that (a) identify a | |||
calculation-type, (b) specify a metric-type, and (c) describe a set of | 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 | constraints on the topology that are to be used to compute the best | |||
paths along the constrained topology. A given combination of | paths along the constrained topology. A given combination of | |||
calculation-type, metric-type, and constraints is known as a "Flexible | calculation-type, metric-type, and constraints is known as a "Flexible | |||
Algorithm Definition". A router that sends such a set of TLVs also | Algorithm Definition". A router that sends such a set of TLVs also | |||
assigns a Flex-Algorithm value to the specified combination of | assigns a Flex-Algorithm value to the specified combination of | |||
calculation-type, metric-type, and constraints.</t> | calculation-type, metric-type, and constraints.</t> | |||
<t indent="0" pn="section-1-4">This document also specifies a way for a ro | ||||
<t>This document also specifies a way for a router to use IGPs to | uter to use IGPs to | |||
associate one or more "Segment Routing with the MPLS Data Plane (SR-MPLS) | associate one or more Segment Routing with the MPLS Data Plane (SR-MPLS) | |||
" | Prefix-SIDs <xref target="RFC8660" format="default" sectionFormat="of" der | |||
Prefix-SIDs <xref target="RFC8660"/>, or "Segment Routing over IPv6 (SRv6) | ivedContent="RFC8660"/> or Segment Routing over IPv6 (SRv6) | |||
" | locators <xref target="RFC8986" format="default" sectionFormat="of" derive | |||
locators <xref target="RFC8986"/> with a particular Flex-Algorithm. Each | dContent="RFC8986"/> with a particular Flex-Algorithm. Each | |||
such Prefix-SID or SRv6 locator then represents a path that is computed | 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 SID, | according to the identified Flex-Algorithm. In SRv6, it is the locator, no t the Segment Identifier (SID), | |||
that holds the binding to the algorithm.</t> | that holds the binding to the algorithm.</t> | |||
</section> | </section> | |||
<section anchor="reqlang" numbered="true" toc="include" removeInRFC="false" | ||||
<section anchor="reqlang" title="Requirements Language"> | pn="section-2"> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <name slugifiedName="name-requirements-language">Requirements Language</na | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | me> | |||
"OPTIONAL" in this document are to be interpreted as described in BCP 14 | <t indent="0" pn="section-2-1">The key words "<bcp14>MUST</bcp14>", "<bcp1 | |||
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, | 4>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14> | |||
SHALL NOT</bcp14>", | ||||
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED< | ||||
/bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and | ||||
"<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as descri | ||||
bed in BCP 14 | ||||
<xref target="RFC2119" format="default" sectionFormat="of" derivedContent= | ||||
"RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedCo | ||||
ntent="RFC8174"/> when, and only when, | ||||
they appear in all capitals, as shown here.</t> | they appear in all capitals, as shown here.</t> | |||
</section> | </section> | |||
<section anchor="TERMINOLOGY" numbered="true" toc="include" removeInRFC="fal | ||||
<section anchor="TERMINOLOGY" title="Terminology"> | se" pn="section-3"> | |||
<t>This section defines terms that are often used in this document.</t> | <name slugifiedName="name-terminology">Terminology</name> | |||
<t indent="0" pn="section-3-1">This section defines terms that are often u | ||||
<t>Flexible Algorithm Definition (FAD) - the set consisting of (a) | sed in this document.</t> | |||
calculation-type, (b) metric-type, and (c) a set of constraints.</t> | <dl newline="false" spacing="normal" indent="3" pn="section-3-2"> | |||
<dt pn="section-3-2.1">Flexible Algorithm Definition (FAD):</dt> | ||||
<t>Flex-Algorithm - a numeric identifier in the range 128-255 that | <dd pn="section-3-2.2">the set consisting of (a) a | |||
is associated via configuration with the Flexible Algorithm | calculation-type, (b) a metric-type, and (c) a set of constraints.</dd> | |||
Definition.</t> | <dt pn="section-3-2.3">Flex-Algorithm:</dt> | |||
<dd pn="section-3-2.4">a numeric identifier in the range 128-255 that | ||||
<t>Local Flexible Algorithm Definition - Flexible Algorithm Definition | is associated via configuration with the Flexible Algorithm | |||
defined locally on the node.</t> | Definition.</dd> | |||
<dt pn="section-3-2.5">Flexible Algorithm Participation:</dt> | ||||
<t>Remote Flexible Algorithm Definition - Flexible Algorithm Definition | <dd pn="section-3-2.6">per the data plane configuration | |||
received from other nodes via IGP flooding.</t> | state that expresses whether the node is participating in a particular | |||
Flexible Algorithm. Not all routers in a given network need to participat | ||||
<t>Flexible Algorithm Participation - per data-plane configuration | e | |||
state that expresses whether the node is participating in a particular | in a given Flexible Algorithm. The Flexible Algorithm(s) that a given rou | |||
Flexible Algorithm. Not all routers in a given network need to participate | ter | |||
in a given Flexible Algorithm. The Flexible Algorithm(s) a given router | participates in is determined by configuration.</dd> | |||
participates in is determined by configuration.</t> | <dt pn="section-3-2.7">IGP Algorithm:</dt> | |||
<dd pn="section-3-2.8">value from the IANA "IGP Algorithm Types" registr | ||||
<t>IGP Algorithm - value from the "IGP Algorithm Types" registry | y | |||
defined under "Interior Gateway Protocol (IGP) Parameters" IANA | defined under the "Interior Gateway Protocol (IGP) Parameters" | |||
registry grouping. IGP Algorithms represents the triplet (calculation-type | registry group. IGP Algorithms represent the triplet (calculation-type, | |||
, | metric-type, and constraints), where the second and third elements of the | |||
metric-type, constraints), where the second and third elements of the trip | triplet | |||
le | <bcp14>MAY</bcp14> be unspecified.</dd> | |||
MAY be unspecified.</t> | <dt pn="section-3-2.9">ABR:</dt> | |||
<dd pn="section-3-2.10">Area Border Router. In IS-IS terminology, it is | ||||
<t>ABR - Area Border Router. In IS-IS terminology it is also known as | also known as the | |||
L1/L2 router.</t> | Level 1 (L1) / Level 2 (L2) router.</dd> | |||
<dt pn="section-3-2.11">ASBR:</dt> | ||||
<t>ASBR - Autonomous System Border Router.</t> | <dd pn="section-3-2.12">Autonomous System Border Router.</dd> | |||
</dl> | ||||
</section> | </section> | |||
<section anchor="FLEXALG" numbered="true" toc="include" removeInRFC="false" | ||||
<section anchor="FLEXALG" title="Flexible Algorithm"> | pn="section-4"> | |||
<t>Many possible constraints may be used to compute a path over a | <name slugifiedName="name-flexible-algorithm">Flexible Algorithm</name> | |||
<t indent="0" pn="section-4-1">Many possible constraints may be used to co | ||||
mpute a path over a | ||||
network. Some networks are deployed as multiple planes. A simple form of | network. Some networks are deployed as multiple planes. A simple form of | |||
constraint may be to use a particular plane. A more sophisticated form | constraint may be to use a particular plane. A more sophisticated form | |||
of constraint can include some extended metric as described in <xref | of constraint can include some extended metric, as described in <xref targ | |||
target="RFC8570"/>. Constraints which restrict paths to links with | et="RFC8570" format="default" sectionFormat="of" derivedContent="RFC8570"/>. Con | |||
straints that restrict paths to links with | ||||
specific affinities or avoid links with specific affinities are also | specific affinities or avoid links with specific affinities are also | |||
possible. Combinations of these are also possible.</t> | possible. Combinations of these are also possible.</t> | |||
<t indent="0" pn="section-4-2">To provide maximum flexibility, a mechanism | ||||
<t>To provide maximum flexibility, a mechanism is provided that | is provided that | |||
allows a router to (a) identify a particular calculation-type and (b) | allows a router to identify a particular calculation-type and | |||
metric-type, (c) describe a particular set of constraints, and (d) | metric-type, describe a particular set of constraints, and | |||
assign a numeric identifier, referred to as Flex-Algorithm, to the | assign a numeric identifier, referred to as Flex-Algorithm, to the | |||
combination of that calculation-type, metric-type, and those | combination of that calculation-type, metric-type, and those | |||
constraints. The mapping between the Flex-Algorithm and its | constraints. The mapping between the Flex-Algorithm and its | |||
meaning is flexible and defined by the user. As long as all routers | 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 | in the domain have a common understanding as to what a particular | |||
Flex-Algorithm represents, the resulting routing computation is | Flex-Algorithm represents, the resulting routing computation is | |||
consistent and traffic is not subject to any looping.</t> | consistent and traffic is not subject to any looping.</t> | |||
<t indent="0" pn="section-4-3">The set consisting of (a) a calculation-typ | ||||
<t>The set consisting of (a) calculation-type, (b) metric-type, and (c) | e, (b) a metric-type, and (c) | |||
a set of constraints is referred to as a Flexible Algorithm | a set of constraints is referred to as a Flexible Algorithm | |||
Definition.</t> | Definition.</t> | |||
<t indent="0" pn="section-4-4">The Flex-Algorithm is a numeric identifier | ||||
<t>Flex-Algorithm is a numeric identifier in the range 128-255 that | in the range 128-255 that | |||
is associated via configuration with the Flexible Algorithm | is associated via configuration with the Flexible Algorithm | |||
Definition.</t> | Definition.</t> | |||
<t indent="0" pn="section-4-5">The IANA "IGP Algorithm Types" registry def | ||||
<t>The IANA "IGP Algorithm Types" registry defines the set of values for I | ines the set of values for IGP | |||
GP | Algorithms. The following values are allocated by IANA from this registry | |||
Algorithms. The following values area allocated by IANA from this registry | for | |||
for | Flex-Algorithms: </t> | |||
Flex-Algorithms: <list style="hanging"> | <t indent="3" pn="section-4-6">128-255 - Flex-Algorithms</t> | |||
<t>128-255 - Flex-Algorithms</t> | ||||
</list></t> | ||||
</section> | </section> | |||
<section anchor="FLEXALGDEF" numbered="true" toc="include" removeInRFC="fals | ||||
<section anchor="FLEXALGDEF" | e" pn="section-5"> | |||
title="Flexible Algorithm Definition Advertisement"> | <name slugifiedName="name-flexible-algorithm-definiti">Flexible Algorithm | |||
<t>To guarantee loop-free forwarding for paths computed for a | Definition Advertisement</name> | |||
<t indent="0" pn="section-5-1">To guarantee loop-free forwarding for paths | ||||
computed for a | ||||
particular Flex-Algorithm, all routers that (a) are configured to | particular Flex-Algorithm, all routers that (a) are configured to | |||
participate in a particular Flex-Algorithm, and (b) are in the same | participate in a particular Flex-Algorithm and (b) are in the same | |||
Flex-Algorithm definition advertisement scope MUST agree on the | Flex-Algorithm Definition advertisement scope <bcp14>MUST</bcp14> agree on | |||
the | ||||
definition of the Flex-Algorithm. The following procedures | definition of the Flex-Algorithm. The following procedures | |||
ensure this condition is fulfilled.</t> | ensure this condition is fulfilled.</t> | |||
<section anchor="ISISFLEXALGTLV" numbered="true" toc="include" removeInRFC | ||||
<section anchor="ISISFLEXALGTLV" | ="false" pn="section-5.1"> | |||
title="IS-IS Flexible Algorithm Definition Sub-TLV"> | <name slugifiedName="name-is-is-flexible-algorithm-de">IS-IS Flexible Al | |||
<t>The IS-IS Flexible Algorithm Definition Sub-TLV (FAD Sub-TLV) is | gorithm Definition Sub-TLV</name> | |||
<t indent="0" pn="section-5.1-1">The IS-IS Flexible Algorithm Definition | ||||
(FAD) sub-TLV is | ||||
used to advertise the definition of the Flex-Algorithm.</t> | used to advertise the definition of the Flex-Algorithm.</t> | |||
<t indent="0" pn="section-5.1-2">The IS-IS FAD sub-TLV is advertised as | ||||
<t>The IS-IS FAD Sub-TLV is advertised as a Sub-TLV of the IS-IS Router | a sub-TLV of the IS-IS Router | |||
Capability TLV-242 that is defined in <xref target="RFC7981"/>.</t> | CAPABILITY TLV-242, which is defined in <xref target="RFC7981" format="d | |||
efault" sectionFormat="of" derivedContent="RFC7981"/>.</t> | ||||
<t>IS-IS FAD Sub-TLV has the following format: <figure> | <t indent="0" pn="section-5.1-3">The IS-IS FAD sub-TLV has the following | |||
<artwork><![CDATA[ | format: </t> | |||
<artwork name="" type="" align="left" alt="" pn="section-5.1-4"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length |Flex-Algorithm | Metric-Type | | | Type | Length |Flex-Algorithm | Metric-Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Calc-Type | Priority | | | Calc-Type | Priority | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs | | | Sub-TLVs | | |||
+ + | + + | |||
| ... | | | ... | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</artwork> | ||||
where: | <dl newline="true" spacing="normal" indent="3" pn="section-5.1-5"> | |||
]]></artwork> | <dt pn="section-5.1-5.1">where:</dt> | |||
</figure> <list style="hanging"> | <dd pn="section-5.1-5.2"> | |||
<t>Type: 26</t> | <dl newline="false" spacing="normal" indent="3" pn="section-5.1-5.2. | |||
1"> | ||||
<t>Length: variable number of octets, dependent on the included Sub- | <dt pn="section-5.1-5.2.1.1">Type:</dt> | |||
TLVs</t> | <dd pn="section-5.1-5.2.1.2">26</dd> | |||
<dt pn="section-5.1-5.2.1.3">Length:</dt> | ||||
<t>Flex-Algorithm: Flexible Algorithm number. Single octet value bet | <dd pn="section-5.1-5.2.1.4">variable number of octets, dependent | |||
ween | on the included sub-TLVs.</dd> | |||
128 and 255 inclusive.</t> | <dt pn="section-5.1-5.2.1.5">Flex-Algorithm:</dt> | |||
<dd pn="section-5.1-5.2.1.6">Flexible Algorithm number. Single oct | ||||
<t>Metric-Type: Type of metric from the "IGP Metric-Type Registry" | et value between | |||
(<xref target="IGPMETRICTYPE"/>) to be used during the calculation. | 128 and 255 inclusive.</dd> | |||
The following values are defined: <list style="hanging"> | <dt pn="section-5.1-5.2.1.7">Metric-Type:</dt> | |||
<t>0: IGP Metric</t> | <dd pn="section-5.1-5.2.1.8"> | |||
<t indent="0" pn="section-5.1-5.2.1.8.1">type of metric from the | ||||
<t>1: Min Unidirectional Link Delay as defined in <xref | IANA "IGP Metric-Type" registry | |||
target="RFC8570"/>, section 4.2, encoded as application | (<xref target="IGPMETRICTYPE" format="default" sectionFormat="of" | |||
specific link attribute as specified in <xref | derivedContent="Section 18.1.2"/>) to be used during the | |||
target="RFC8919"/> and <xref target="FLEXALGLINKATTR"/> of | calculation. The following values are defined: </t> | |||
this document.</t> | <dl newline="false" spacing="normal" indent="3" pn="section-5.1- | |||
5.2.1.8.2"> | ||||
<t>2: Traffic Engineering Default Metric as defined in <xref | <dt pn="section-5.1-5.2.1.8.2.1">0:</dt> | |||
target="RFC5305"/>, section 3.7, encoded as application | <dd pn="section-5.1-5.2.1.8.2.2">IGP Metric</dd> | |||
specific link attribute as specified in <xref | <dt pn="section-5.1-5.2.1.8.2.3">1:</dt> | |||
target="RFC8919"/> and <xref target="FLEXALGLINKATTR"/> of | <dd pn="section-5.1-5.2.1.8.2.4">Min Unidirectional Link Delay | |||
this document.</t> | , as defined in <xref target="RFC8570" section="4.2" sectionFormat="of" format=" | |||
</list></t> | default" derivedLink="https://rfc-editor.org/rfc/rfc8570#section-4.2" derivedCon | |||
tent="RFC8570"/>, encoded as an application-specific link attribute, as specifie | ||||
<t>Calc-Type: calculation-type, value from 0 to 127 inclusive from t | d in <xref target="RFC8919" format="default" sectionFormat="of" derivedContent=" | |||
he "IGP | RFC8919"/> and <xref target="FLEXALGLINKATTR" format="default" sectionFormat="of | |||
Algorithm Types" registry defined under "Interior Gateway Protocol | " derivedContent="Section 12"/> of this document.</dd> | |||
(IGP) Parameters" IANA registries. IGP algorithms in the range of | <dt pn="section-5.1-5.2.1.8.2.5">2:</dt> | |||
0-127 have a defined triplet (calculation-type, metric-type, | <dd pn="section-5.1-5.2.1.8.2.6">Traffic Engineering Default M | |||
constraints). When used to specify the calculation-type in the FAD | etric, as defined in <xref target="RFC5305" section="3.7" sectionFormat="of" for | |||
Sub-TLV, only the calculation-type defined for the specified IGP | mat="default" derivedLink="https://rfc-editor.org/rfc/rfc5305#section-3.7" deriv | |||
Algorithm is used. The Metric/Constraints MUST NOT be inherited. | edContent="RFC5305"/>, encoded as an | |||
If the required calculation-type is Shortest Path First, the value | application-specific link attribute, as specified in <xref targ | |||
0 MUST appear in this field.</t> | et="RFC8919" format="default" sectionFormat="of" derivedContent="RFC8919"/> and | |||
<xref target="FLEXALGLINKATTR" format="default" sectionFormat="of" derivedConten | ||||
<t>Priority: Value between 0 and 255 inclusive that specifies the | t="Section 12"/> of this document.</dd> | |||
priority of the advertisement. Numerically greater values are prefer | </dl> | |||
red. | </dd> | |||
Usage fo the priority is described in <xref target="COMMONLEXALGTLV" | <dt pn="section-5.1-5.2.1.9">Calc-Type:</dt> | |||
/>.</t> | <dd pn="section-5.1-5.2.1.10">calculation-type. Value from 0-127 i | |||
nclusive from the IANA "IGP | ||||
<t>Sub-TLVs - optional sub-TLVs.</t> | Algorithm Types" registry defined under the "Interior Gateway Prot | |||
</list></t> | ocol | |||
(IGP) Parameters" registry. IGP Algorithms in the range of | ||||
<t>The IS-IS FAD Sub-TLV MAY be advertised in an LSP of any number. | 0-127 have a defined triplet (calculation-type, metric-type, | |||
IS-IS router MAY advertise more than one IS-IS FAD Sub-TLV for a given | constraints). When used to specify the calculation-type in the FAD | |||
Flexible Algorithm (see <xref target="ISISFADLTLVS"/>).</t> | sub-TLV, only the calculation-type defined for the specified IGP | |||
Algorithm is used. The Metric/Constraints <bcp14>MUST NOT</bcp14> | ||||
<t>The IS-IS FAD Sub-TLV has an area scope. The Router Capability TLV | be | |||
in which the FAD Sub-TLV is present MUST have the S-bit clear.</t> | inherited. | |||
If the required calculation-type is Shortest Path First, the value | ||||
<t>An IS-IS L1/L2 router MAY be configured to re-generate the winning FA | 0 <bcp14>MUST</bcp14> appear in this field.</dd> | |||
D | <dt pn="section-5.1-5.2.1.11">Priority:</dt> | |||
<dd pn="section-5.1-5.2.1.12">value between 0 and 255 inclusive th | ||||
at specifies the | ||||
priority of the advertisement. Numerically greater values are pref | ||||
erred. | ||||
Usage of the priority is described in <xref target="COMMONLEXALGTL | ||||
V" format="default" sectionFormat="of" derivedContent="Section 5.3"/>.</dd> | ||||
<dt pn="section-5.1-5.2.1.13">Sub-TLVs:</dt> | ||||
<dd pn="section-5.1-5.2.1.14">optional sub-TLVs.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-5.1-6">The IS-IS FAD sub-TLV <bcp14>MAY</bcp14 | ||||
> be advertised in a Label Switched Path (LSP) of any number. | ||||
The IS-IS router <bcp14>MAY</bcp14> advertise more than one IS-IS FAD su | ||||
b-TLV for a given | ||||
Flexible Algorithm (see <xref target="ISISFADLTLVS" format="default" sec | ||||
tionFormat="of" derivedContent="Section 6"/>).</t> | ||||
<t indent="0" pn="section-5.1-7">The IS-IS FAD sub-TLV has an area/level | ||||
scope. The Router Capability TLV | ||||
in which the FAD sub-TLV is present <bcp14>MUST</bcp14> have the S bit c | ||||
lear.</t> | ||||
<t indent="0" pn="section-5.1-8">An IS-IS L1/L2 router <bcp14>MAY</bcp14 | ||||
> be configured to regenerate the winning FAD | ||||
from level 2, without any modification to it, to the level 1 area. The | from level 2, without any modification to it, to the level 1 area. The | |||
re-generation of the FAD Sub-TLV from level 2 to level 1 is determined | 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 | by the L1/L2 router, not by the originator of the FAD advertisement in | |||
the level 2. In such a case, the re-generated FAD Sub-TLV will be | level 2. In such a case, the regenerated FAD sub-TLV will be | |||
advertised in the level 1 Router Capability TLV originated by the | advertised in the level 1 Router Capability TLV originated by the | |||
L1/L2 router.</t> | L1/L2 router.</t> | |||
<t indent="0" pn="section-5.1-9">An L1/L2 router <bcp14>MUST NOT</bcp14> | ||||
<t>An L1/L2 router MUST NOT re-generate any FAD Sub-TLV from level 1 to | regenerate any FAD sub-TLV from level 1 to | |||
level 2.</t> | level 2.</t> | |||
</section> | </section> | |||
<section anchor="OSPFFLEXALGTLV" numbered="true" toc="include" removeInRFC | ||||
="false" pn="section-5.2"> | ||||
<name slugifiedName="name-ospf-flexible-algorithm-def">OSPF Flexible Alg | ||||
orithm Definition TLV</name> | ||||
<t indent="0" pn="section-5.2-1">The OSPF FAD TLV is advertised as a top | ||||
-level TLV of the Router Information (RI) | ||||
Link State Advertisement (LSA), which is defined in <xref target="RFC777 | ||||
0" format="default" sectionFormat="of" derivedContent="RFC7770"/>.</t> | ||||
<t indent="0" pn="section-5.2-2">The OSPF FAD TLV has the following form | ||||
at: </t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-5.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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|Flex-Algorithm | Metric-Type | Calc-Type | Priority | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Sub-TLVs | | ||||
+ + | ||||
| ... | | ||||
<section anchor="OSPFFLEXALGTLV" | | | | |||
title="OSPF Flexible Algorithm Definition TLV"> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
<t>The OSPF FAD TLV is advertised as a top-level TLV of the Router Infor | </artwork> | |||
mation (RI) | <dl newline="true" spacing="normal" indent="3" pn="section-5.2-4"> | |||
LSA that is defined in <xref target="RFC7770"/>.</t> | <dt pn="section-5.2-4.1">where:</dt> | |||
<dd pn="section-5.2-4.2"> | ||||
<t>The OSPF FAD TLV has the following format: <figure> | <dl newline="false" spacing="normal" indent="3" pn="section-5.2-4.2. | |||
<artwork><![CDATA[ | 1"> | |||
<dt pn="section-5.2-4.2.1.1">Type:</dt> | ||||
0 1 2 3 | <dd pn="section-5.2-4.2.1.2">16</dd> | |||
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 | <dt pn="section-5.2-4.2.1.3">Length:</dt> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | <dd pn="section-5.2-4.2.1.4">variable number of octets, dependent | |||
| Type | Length | | on the included sub-TLVs.</dd> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | <dt pn="section-5.2-4.2.1.5">Flex-Algorithm:</dt> | |||
|Flex-Algorithm | Metric-Type | Calc-Type | Priority | | <dd pn="section-5.2-4.2.1.6">Flexible Algorithm number. Single oct | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | et value between | |||
| Sub-TLVs | | 128 and 255 inclusive.</dd> | |||
+ + | <dt pn="section-5.2-4.2.1.7">Metric-Type: </dt> | |||
| ... | | <dd pn="section-5.2-4.2.1.8"> | |||
<t indent="0" pn="section-5.2-4.2.1.8.1">type of metric from the | ||||
| | | IANA "IGP Metric-Type" registry | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (<xref target="IGPMETRICTYPE" format="default" sectionFormat="of" | |||
derivedContent="Section 18.1.2"/>) to be used during the | ||||
where: | calculation. The following values are defined: </t> | |||
]]></artwork> | <dl newline="false" spacing="normal" indent="3" pn="section-5.2- | |||
</figure> <list style="hanging"> | 4.2.1.8.2"> | |||
<t>Type: 16</t> | <dt pn="section-5.2-4.2.1.8.2.1">0:</dt> | |||
<dd pn="section-5.2-4.2.1.8.2.2">IGP Metric</dd> | ||||
<t>Length: variable number of octets, dependent on the included Sub- | <dt pn="section-5.2-4.2.1.8.2.3">1:</dt> | |||
TLVs</t> | <dd pn="section-5.2-4.2.1.8.2.4">Min Unidirectional Link Delay | |||
, as defined in <xref target="RFC7471" section="4.2" sectionFormat="of" format=" | ||||
<t>Flex-Algorithm: Flexible Algorithm number. Single octet value bet | default" derivedLink="https://rfc-editor.org/rfc/rfc7471#section-4.2" derivedCon | |||
ween | tent="RFC7471"/>, encoded as an | |||
128 and 255 inclusive.</t> | application-specific link attribute, as specified in <xref target=" | |||
RFC8920" format="default" sectionFormat="of" derivedContent="RFC8920"/> and <xre | ||||
<t>Metric-Type: Type of metric from the "IGP Metric-Type Registry" | f target="FLEXALGLINKATTR" format="default" sectionFormat="of" derivedContent="S | |||
(<xref target="IGPMETRICTYPE"/>) to be used during the calculation. | ection 12"/> of | |||
The following values are defined: <list style="hanging"> | this document.</dd> | |||
<t>0: IGP Metric</t> | <dt pn="section-5.2-4.2.1.8.2.5">2:</dt> | |||
<dd pn="section-5.2-4.2.1.8.2.6">Traffic Engineering Metric, a | ||||
<t>1: Min Unidirectional Link Delay as defined in <xref | s defined in <xref target="RFC3630" section="2.5.5" sectionFormat="of" format="d | |||
target="RFC7471"/>, section 4.2, encoded as application | efault" derivedLink="https://rfc-editor.org/rfc/rfc3630#section-2.5.5" derivedCo | |||
specific link attribute as specified in <xref | ntent="RFC3630"/>, encoded as an | |||
target="RFC8920"/> and <xref target="FLEXALGLINKATTR"/> of | application-specific link attribute, as specified in <xref target=" | |||
this document.</t> | RFC8920" format="default" sectionFormat="of" derivedContent="RFC8920"/> and <xre | |||
f target="FLEXALGLINKATTR" format="default" sectionFormat="of" derivedContent="S | ||||
<t>2: Traffic Engineering metric as defined in <xref | ection 12"/> of | |||
target="RFC3630"/>, section 2.5.5, encoded as application | this document.</dd> | |||
specific link attribute as specified in <xref | </dl> | |||
target="RFC8920"/> and <xref target="FLEXALGLINKATTR"/> of | </dd> | |||
this document.</t> | <dt pn="section-5.2-4.2.1.9">Calc-Type:</dt> | |||
</list></t> | <dd pn="section-5.2-4.2.1.10">as described in <xref target="ISISFL | |||
EXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1"/>.</d | ||||
<t>Calc-Type: as described in <xref target="ISISFLEXALGTLV"/></t> | d> | |||
<dt pn="section-5.2-4.2.1.11">Priority: </dt> | ||||
<t>Priority: as described in <xref target="ISISFLEXALGTLV"/></t> | <dd pn="section-5.2-4.2.1.12">as described in <xref target="ISISFL | |||
EXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1"/>.</d | ||||
<t>Sub-TLVs - optional sub-TLVs.</t> | d> | |||
</list></t> | <dt pn="section-5.2-4.2.1.13">Sub-TLVs:</dt> | |||
<dd pn="section-5.2-4.2.1.14">optional sub-TLVs.</dd> | ||||
<t>When multiple OSPF FAD TLVs, for the same Flexible Algorithm, are | </dl> | |||
received from a given router, the receiver MUST use the first | </dd> | |||
occurrence of the TLV in the Router Information LSA. If the OSPF FAD | </dl> | |||
TLV, for the same Flex-Algorithm, appears in multiple Router | <t indent="0" pn="section-5.2-5">When multiple OSPF FAD TLVs, for the sa | |||
Information LSAs that have different flooding scopes, the OSPF FAD TLV | me Flexible Algorithm, are | |||
in the Router Information LSA with the area-scoped flooding scope MUST | received from a given router, the receiver <bcp14>MUST</bcp14> use the f | |||
irst | ||||
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 <bcp14>MUST</bcp14> | ||||
be used. If the OSPF FAD TLV, for the same algorithm, appears in | be used. If the OSPF FAD TLV, for the same algorithm, appears in | |||
multiple Router Information LSAs that have the same flooding scope, | multiple RI LSAs that have the same flooding scope, | |||
the OSPF FAD TLV in the Router Information (RI) LSA with the | the OSPF FAD TLV in the RI LSA with the | |||
numerically smallest Instance ID MUST be used and subsequent instances | numerically smallest Instance ID <bcp14>MUST</bcp14> be used and subsequ | |||
of the OSPF FAD TLV MUST be ignored.</t> | ent | |||
instances of the OSPF FAD TLV <bcp14>MUST</bcp14> be ignored.</t> | ||||
<t>The RI LSA can be advertised at any of the defined opaque flooding | <t indent="0" pn="section-5.2-6">The RI LSA can be advertised at any of | |||
the defined opaque flooding | ||||
scopes (link, area, or Autonomous System (AS)). For the purpose of | scopes (link, area, or Autonomous System (AS)). For the purpose of | |||
OSPF FAD TLV advertisement, area-scoped flooding is REQUIRED. The | OSPF FAD TLV advertisement, area-scoped flooding is <bcp14>REQUIRED</bcp | |||
Autonomous System flooding scope SHOULD NOT be used unless | 14>. The | |||
local configuration policy on the originating router indicates domain | AS flooding scope <bcp14>SHOULD NOT</bcp14> be used unless | |||
wide flooding.</t> | local configuration policy on the originating router indicates domain-wi | |||
de | ||||
flooding.</t> | ||||
</section> | </section> | |||
<section anchor="COMMONLEXALGTLV" numbered="true" toc="include" removeInRF | ||||
<section anchor="COMMONLEXALGTLV" | C="false" pn="section-5.3"> | |||
title="Common Handling of Flexible Algorithm Definition TLV"> | <name slugifiedName="name-common-handling-of-the-flex">Common Handling o | |||
<t>This section describes the protocol-independent handling of the FAD | f the Flexible Algorithm Definition TLV</name> | |||
TLV (OSPF) or FAD Sub-TLV (IS-IS). We will refer to it as FAD TLV in | <t indent="0" pn="section-5.3-1">This section describes the protocol-ind | |||
this section, even though in the case of IS-IS it is a Sub-TLV.</t> | ependent handling of the FAD | |||
TLV (OSPF) or FAD sub-TLV (IS-IS). We will refer to it as FAD TLV in | ||||
<t>The value of the Flex-Algorithm MUST be between 128 and 255 | this section, even though, in the case of IS-IS, it is a sub-TLV.</t> | |||
inclusive. If it is not, the FAD TLV MUST be ignored.</t> | <t indent="0" pn="section-5.3-2">The value of the Flex-Algorithm <bcp14> | |||
MUST</bcp14> be between 128 and 255 | ||||
<t>Only a subset of the routers participating in the particular | inclusive. If it is not, the FAD TLV <bcp14>MUST</bcp14> be ignored.</t> | |||
<t indent="0" pn="section-5.3-3">Only a subset of the routers participat | ||||
ing in the particular | ||||
Flex-Algorithm need to advertise the definition of the | Flex-Algorithm need to advertise the definition of the | |||
Flex-Algorithm.</t> | Flex-Algorithm.</t> | |||
<t indent="0" pn="section-5.3-4">Every router that is configured to part | ||||
<t>Every router, that is configured to participate in a particular | icipate in a particular | |||
Flex-Algorithm, MUST select the Flex-Algorithm definition based on the | Flex-Algorithm <bcp14>MUST</bcp14> select the Flex-Algorithm Definition | |||
based on the | ||||
following ordered rules. This allows for the consistent Flex-Algorithm | following ordered rules. This allows for the consistent Flex-Algorithm | |||
definition selection in cases where different routers advertise | Definition selection in cases where different routers advertise | |||
different definitions for a given Flex-Algorithm: <list> | different definitions for a given Flex-Algorithm: </t> | |||
<t>1. From the advertisements of the FAD in the area (including | <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5. | |||
both locally generated advertisements and received advertisements) | 3-5"> | |||
select the one(s) with the numerically greatest priority value.</t> | <li pn="section-5.3-5.1" derivedCounter="1.">From the advertisements o | |||
f the FAD in the area (including | ||||
<t>2. If there are multiple advertisements of the FAD with the | both locally generated advertisements and received advertisements), | |||
same numerically greatest priority, select the one that is originate | select the one(s) with the numerically greatest priority value.</li> | |||
d from the | <li pn="section-5.3-5.2" derivedCounter="2.">If there are multiple adv | |||
router with the numerically greatest System-ID, in the case of IS-IS | ertisements of the FAD with the | |||
, or Router | same numerically greatest priority, select the one that is originated | |||
ID, in the case of OSPFv2 and OSPFv3. For IS-IS, the System-ID is | from | |||
described in <xref target="ISO10589"/>. For OSPFv2 and OSPFv3, | the router with the numerically greatest System-ID, in the case of IS-I | |||
standard Router ID is described in <xref target="RFC2328"/> and | S, or | |||
<xref target="RFC5340"/> respectively.</t> | Router ID, in the case of OSPFv2 and OSPFv3. For IS-IS, the System-ID i | |||
</list></t> | s | |||
described in <xref target="ISO10589" format="default" sectionFormat="o | ||||
<t>The FAD selected according to these rules is also known as the | f" derivedContent="ISO10589"/>. For OSPFv2 and OSPFv3, | |||
the standard Router ID is described in <xref target="RFC2328" format=" | ||||
default" sectionFormat="of" derivedContent="RFC2328"/> and <xref target="RFC5340 | ||||
" format="default" sectionFormat="of" derivedContent="RFC5340"/>, | ||||
respectively.</li> | ||||
</ol> | ||||
<t indent="0" pn="section-5.3-6">The FAD selected according to these rul | ||||
es is also known as the | ||||
"winning FAD".</t> | "winning FAD".</t> | |||
<t indent="0" pn="section-5.3-7">A router that is not configured to part | ||||
<t>A router that is not configured to participate in a particular | icipate in a particular | |||
Flex-Algorithm MUST ignore FAD Sub-TLVs advertisements for such | Flex-Algorithm <bcp14>MUST</bcp14> ignore FAD sub-TLV advertisements for | |||
such | ||||
Flex-Algorithm.</t> | Flex-Algorithm.</t> | |||
<t indent="0" pn="section-5.3-8">A router that is not participating in a | ||||
<t>A router that is not participating in a particular Flex-Algorithm | particular Flex-Algorithm | |||
MAY advertise FAD for such Flex-Algorithm. Receiving routers | <bcp14>MAY</bcp14> advertise the FAD for such Flex-Algorithm. Receiving | |||
MUST consider a received FAD advertisement regardless of the Flex-Algori | routers | |||
thm | <bcp14>MUST</bcp14> consider a received FAD advertisement regardless of | |||
the Flex-Algorithm | ||||
participation of that FAD advertisement's originator.</t> | participation of that FAD advertisement's originator.</t> | |||
<t indent="0" pn="section-5.3-9">Any change in the Flex-Algorithm Defini | ||||
<t>Any change in the Flex-Algorithm definition may result in temporary | tion may result in a temporary | |||
disruption of traffic that is forwarded based on such Flex-Algorithm | disruption of traffic that is forwarded based on such Flex-Algorithm | |||
paths. The impact is similar to any other event that requires | paths. The impact is similar to any other event that requires | |||
network-wide convergence.</t> | network-wide convergence.</t> | |||
<t indent="0" pn="section-5.3-10">If a node is configured to participate | ||||
<t>If a node is configured to participate in a particular | in a particular | |||
Flexible Algorithm, but there is no valid Flex-Algorithm definition avai | Flexible Algorithm, but there is no valid Flex-Algorithm Definition avai | |||
lable for | lable for | |||
it, or the selected Flex-Algorithm definition includes calculation-type, | it or the selected Flex-Algorithm Definition includes calculation-type, | |||
metric-type, | metric-type, | |||
constraint, flag, or Sub-TLV that is not supported by the node, it MUST | constraint, flag, or sub-TLV that is not supported by the node, it <bcp1 | |||
stop | 4>MUST</bcp14> stop | |||
participating in such Flexible Algorithm. That implies that it MUST NOT | participating in such Flexible Algorithm. That implies that it <bcp14>MU | |||
announce | ST NOT</bcp14> announce | |||
participation for such Flexible Algorithm as specified in <xref | participation for such Flexible Algorithm, as specified in <xref target= | |||
target="FLEXALGPART"/> and it MUST remove any forwarding state | "FLEXALGPART" format="default" sectionFormat="of" derivedContent="Section 11"/>, | |||
and it <bcp14>MUST</bcp14> remove any forwarding state | ||||
associated with it.</t> | associated with it.</t> | |||
<t indent="0" pn="section-5.3-11">The Flex-Algorithm Definition is topol | ||||
<t>Flex-Algorithm definition is topology independent. It applies to | ogy independent. It applies to | |||
all topologies that a router participates in.</t> | all topologies that a router participates in.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="ISISFADLTLVS" numbered="true" toc="include" removeInRFC="fa | ||||
<section anchor="ISISFADLTLVS" title="Sub-TLVs of IS-IS FAD Sub-TLV"> | lse" pn="section-6"> | |||
<name slugifiedName="name-sub-tlvs-of-is-is-fad-sub-t">Sub-TLVs of IS-IS F | ||||
<t>One of the limitations of IS-IS <xref target="ISO10589"/> is that the len | AD Sub-TLV</name> | |||
gth of | <t indent="0" pn="section-6-1">One of the limitations of IS-IS <xref targe | |||
t="ISO10589" format="default" sectionFormat="of" derivedContent="ISO10589"/> is | ||||
that the length of | ||||
a TLV/sub-TLV is limited to a maximum of 255 octets. For the FAD sub-TLV, th ere are | a TLV/sub-TLV is limited to a maximum of 255 octets. For the FAD sub-TLV, th ere are | |||
a number of sub-sub-TLVs (defined below) which are supported. For a given | 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 | 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. | 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 cont | In such cases, the FAD <bcp14>MAY</bcp14> be split into multiple such sub-TL | |||
ent of | Vs, and the content of | |||
the multiple FAD sub-TLVs combined to provide a complete FAD for the Flex-Al | the multiple FAD sub-TLVs are combined to provide a complete FAD for the Fle | |||
gorithm. | x-Algorithm. | |||
In such a case, the fixed portion of the FAD (see <xref target="ISISFLEXALGT | In such a case, the fixed portion of the FAD (see <xref target="ISISFLEXALGT | |||
LV"/>) | LV" format="default" sectionFormat="of" derivedContent="Section 5.1"/>) | |||
MUST be identical in all FAD sub-TLVs for a given Flex-Algorithm from a give | <bcp14>MUST</bcp14> be identical in all FAD sub-TLVs for a given Flex-Algori | |||
n IS. | thm from a given IS. | |||
In case the fixed portion of such FAD Sub-TLVs differ, the values | 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 lowes | in the fixed portion in the FAD sub-TLV in the first occurrence in the lowes | |||
t | t-numbered LSP from a given IS <bcp14>MUST</bcp14> be used.</t> | |||
numbered LSP from a given IS MUST be used.</t> | <t indent="0" pn="section-6-2">Any specification that introduces a new IS- | |||
IS FAD sub-sub-TLV <bcp14>MUST</bcp14> specify whether | ||||
<t>Any specification that introduces a new IS-IS FAD sub-sub-TLV MUST specif | ||||
y whether | ||||
the FAD sub-TLV may appear multiple times in the set of FAD sub-TLVs for a g iven | the FAD sub-TLV may appear multiple times in the set of FAD sub-TLVs for a g iven | |||
Flex-Algorithm from a given IS and how to handle them if multiple are allowe d.</t> | Flex-Algorithm from a given IS and how to handle them if multiple are allowe d.</t> | |||
<section anchor="ISISFLEXALGEXLTLV" numbered="true" toc="include" removeIn | ||||
<section anchor="ISISFLEXALGEXLTLV" | RFC="false" pn="section-6.1"> | |||
title="IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV"> | <name slugifiedName="name-is-is-flexible-algorithm-ex">IS-IS Flexible Al | |||
<t>The Flexible Algorithm definition can specify 'colors' that are | gorithm Exclude Admin Group Sub-TLV</name> | |||
<t indent="0" pn="section-6.1-1">The Flexible Algorithm Definition can s | ||||
pecify "colors" that are | ||||
used by the operator to exclude links during the Flex-Algorithm path | used by the operator to exclude links during the Flex-Algorithm path | |||
computation.</t> | computation.</t> | |||
<t indent="0" pn="section-6.1-2">The IS-IS Flexible Algorithm Exclude Ad | ||||
<t>The IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV is used to | min Group (FAEAG) sub-TLV is used to | |||
advertise the exclude rule that is used during the Flex-Algorithm path | advertise the exclude rule that is used during the Flex-Algorithm path | |||
calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | calculation, as specified in <xref target="FLEXALGPATHCALC" format="defa | |||
ult" sectionFormat="of" derivedContent="Section 13"/>.</t> | ||||
<t>The IS-IS Flexible Algorithm Exclude Admin Group Sub-TLV (FAEAG | <t indent="0" pn="section-6.1-3">The IS-IS FAEAG sub-TLV | |||
Sub-TLV) is a Sub-TLV of the IS-IS FAD Sub-TLV. It has the following | is a sub-TLV of the IS-IS FAD sub-TLV. It has the following | |||
format: <figure> | format: </t> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt="" pn="section-6.1-4"> | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-6.1-5"> | |||
</figure> <list style="hanging"> | <dt pn="section-6.1-5.1">where:</dt> | |||
<t>Type: 1</t> | <dd pn="section-6.1-5.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-6.1-5.2. | ||||
<t>Length: variable, dependent on the size of the Extended Admin | 1"> | |||
Group. MUST be a multiple of 4 octets.</t> | <dt pn="section-6.1-5.2.1.1">Type:</dt> | |||
<dd pn="section-6.1-5.2.1.2">1</dd> | ||||
<t>Extended Administrative Group: Extended Administrative Group as | <dt pn="section-6.1-5.2.1.3">Length:</dt> | |||
defined in <xref target="RFC7308"/>.</t> | <dd pn="section-6.1-5.2.1.4">variable, dependent on the size of th | |||
</list></t> | e Extended Admin | |||
Group. <bcp14>MUST</bcp14> be a multiple of 4 octets.</dd> | ||||
<t>The IS-IS FAEAG Sub-TLV MUST NOT appear more than once in a single IS | <dt pn="section-6.1-5.2.1.5">Extended Administrative Group:</dt> | |||
-IS | <dd pn="section-6.1-5.2.1.6">Extended Administrative Group, as | |||
FAD Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV MUST | defined in <xref target="RFC7308" format="default" sectionFormat=" | |||
of" derivedContent="RFC7308"/>.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-6.1-6">The IS-IS FAEAG sub-TLV <bcp14>MUST NOT | ||||
</bcp14> appear more than once in a single IS-IS | ||||
FAD sub-TLV. If it appears more than once, the IS-IS FAD sub-TLV <bcp14> | ||||
MUST</bcp14> | ||||
be ignored by the receiver.</t> | be ignored by the receiver.</t> | |||
<t indent="0" pn="section-6.1-7">The IS-IS FAEAG sub-TLV <bcp14>MUST NOT | ||||
<t>The IS-IS FAEAG Sub-TLV MUST NOT appear more than once in the set of | </bcp14> appear more than once in the set of FAD | |||
FAD | ||||
sub-TLVs for a given Flex-Algorithm from a given IS. If it appears more than once | 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 lo | in such a set, the IS-IS FAEAG sub-TLV in the first occurrence in the lo | |||
west numbered | west-numbered | |||
LSP from a given IS MUST be used and any other occurrences MUST be ignor | LSP from a given IS <bcp14>MUST</bcp14> be used, and any other occurrenc | |||
ed.</t> | es <bcp14>MUST</bcp14> be ignored.</t> | |||
</section> | </section> | |||
<section anchor="ISISFLEXALGINCANYTLV" numbered="true" toc="include" remov | ||||
<section anchor="ISISFLEXALGINCANYTLV" | eInRFC="false" pn="section-6.2"> | |||
title="IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV"> | <name slugifiedName="name-is-is-flexible-algorithm-in">IS-IS Flexible Al | |||
<t>The Flexible Algorithm definition can specify 'colors' that are | gorithm Include-Any Admin Group Sub-TLV</name> | |||
<t indent="0" pn="section-6.2-1">The Flexible Algorithm Definition can s | ||||
pecify "colors" that are | ||||
used by the operator to include links during the Flex-Algorithm path | used by the operator to include links during the Flex-Algorithm path | |||
computation.</t> | computation.</t> | |||
<t indent="0" pn="section-6.2-2">The IS-IS Flexible Algorithm Include-An | ||||
<t>The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV is used | y Admin Group sub-TLV is used | |||
to advertise the include-any rule that is used during the Flex-Algorithm | to advertise the include-any rule that is used during the Flex-Algorithm | |||
path calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | path calculation, as specified in <xref target="FLEXALGPATHCALC" format= | |||
"default" sectionFormat="of" derivedContent="Section 13"/>.</t> | ||||
<t>The IS-IS Flexible Algorithm Include-Any Admin Group | <t indent="0" pn="section-6.2-3">The IS-IS Flexible Algorithm Include-An | |||
Sub-TLV is a Sub-TLV of the IS-IS FAD Sub-TLV. It has the following | y Admin Group | |||
format: <figure> | sub-TLV is a sub-TLV of the IS-IS FAD sub-TLV. It has the following | |||
<artwork><![CDATA[ | format: </t> | |||
<artwork name="" type="" align="left" alt="" pn="section-6.2-4"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-6.2-5"> | |||
</figure> <list style="hanging"> | <dt pn="section-6.2-5.1">where:</dt> | |||
<t>Type: 2</t> | <dd pn="section-6.2-5.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-6.2-5.2. | ||||
<t>Length: variable, dependent on the size of the Extended Admin | 1"> | |||
Group. MUST be a multiple of 4 octets.</t> | <dt pn="section-6.2-5.2.1.1">Type: </dt> | |||
<dd pn="section-6.2-5.2.1.2">2</dd> | ||||
<t>Extended Administrative Group: Extended Administrative Group as | <dt pn="section-6.2-5.2.1.3">Length:</dt> | |||
defined in <xref target="RFC7308"/>.</t> | <dd pn="section-6.2-5.2.1.4">variable, dependent on the size of th | |||
</list></t> | e Extended Admin | |||
Group. <bcp14>MUST</bcp14> be a multiple of 4 octets.</dd> | ||||
<t>The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV MUST | <dt pn="section-6.2-5.2.1.5">Extended Administrative Group:</dt> | |||
NOT appear more than once in a single IS-IS FAD Sub-TLV. If it appears m | <dd pn="section-6.2-5.2.1.6">Extended Administrative Group, as | |||
ore | defined in <xref target="RFC7308" format="default" sectionFormat=" | |||
than once, the IS-IS FAD Sub-TLV MUST be ignored by the receiver.</t> | of" derivedContent="RFC7308"/>.</dd> | |||
</dl> | ||||
<t>The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV MUST NOT | </dd> | |||
appear | </dl> | |||
<t indent="0" pn="section-6.2-6">The IS-IS Flexible Algorithm Include-An | ||||
y Admin Group sub-TLV <bcp14>MUST NOT</bcp14> appear more than once in a single | ||||
IS-IS FAD sub-TLV. If it appears more | ||||
than once, the IS-IS FAD sub-TLV <bcp14>MUST</bcp14> be ignored by the r | ||||
eceiver.</t> | ||||
<t indent="0" pn="section-6.2-7">The IS-IS Flexible Algorithm Include-An | ||||
y Admin Group sub-TLV <bcp14>MUST NOT</bcp14> appear | ||||
more than once in the set of FAD sub-TLVs for a given Flex-Algorithm fro m a given IS. | more than once in the set of FAD sub-TLVs for a given Flex-Algorithm fro m a given IS. | |||
If it appears more than once in such a set, the IS-IS Flexible Algorithm | 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 nu | Include-Any Admin Group sub-TLV in the first occurrence in the lowest-nu | |||
mbered | mbered | |||
LSP from a given IS MUST be used and any other occurrences MUST be ignor | LSP from a given IS <bcp14>MUST</bcp14> be used, and any other occurrenc | |||
ed.</t> | es <bcp14>MUST</bcp14> be ignored.</t> | |||
</section> | </section> | |||
<section anchor="ISISFLEXALGINCALLTLV" numbered="true" toc="include" remov | ||||
<section anchor="ISISFLEXALGINCALLTLV" | eInRFC="false" pn="section-6.3"> | |||
title="IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV"> | <name slugifiedName="name-is-is-flexible-algorithm-inc">IS-IS Flexible A | |||
<t>The Flexible Algorithm definition can specify 'colors' that are | lgorithm Include-All Admin Group Sub-TLV</name> | |||
<t indent="0" pn="section-6.3-1">The Flexible Algorithm Definition can s | ||||
pecify "colors" that are | ||||
used by the operator to include links during the Flex-Algorithm path | used by the operator to include links during the Flex-Algorithm path | |||
computation.</t> | computation.</t> | |||
<t indent="0" pn="section-6.3-2">The IS-IS Flexible Algorithm Include-Al | ||||
<t>The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV is used | l Admin Group sub-TLV is used | |||
to advertise the include-all rule that is used during the Flex-Algorithm | to advertise the include-all rule that is used during the Flex-Algorithm | |||
path calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | path calculation, as specified in <xref target="FLEXALGPATHCALC" format= | |||
"default" sectionFormat="of" derivedContent="Section 13"/>.</t> | ||||
<t>The IS-IS Flexible Algorithm Include-All Admin Group | <t indent="0" pn="section-6.3-3">The IS-IS Flexible Algorithm Include-Al | |||
Sub-TLV is is a Sub-TLV of the IS-IS FAD Sub-TLV. It has the following | l Admin Group | |||
format: <figure> | sub-TLV is a sub-TLV of the IS-IS FAD sub-TLV. It has the following | |||
<artwork><![CDATA[ | format: </t> | |||
<artwork name="" type="" align="left" alt="" pn="section-6.3-4"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-6.3-5"> | |||
</figure> <list style="hanging"> | <dt pn="section-6.3-5.1">where:</dt> | |||
<t>Type: 3</t> | <dd pn="section-6.3-5.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-6.3-5.2. | ||||
<t>Length: variable, dependent on the size of the Extended Admin | 1"> | |||
Group. MUST be a multiple of 4 octets.</t> | <dt pn="section-6.3-5.2.1.1">Type:</dt> | |||
<dd pn="section-6.3-5.2.1.2">3</dd> | ||||
<t>Extended Administrative Group: Extended Administrative Group as | <dt pn="section-6.3-5.2.1.3">Length:</dt> | |||
defined in <xref target="RFC7308"/>.</t> | <dd pn="section-6.3-5.2.1.4">variable, dependent on the size of th | |||
</list></t> | e Extended Admin | |||
Group. <bcp14>MUST</bcp14> be a multiple of 4 octets.</dd> | ||||
<t>The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV MUST | <dt pn="section-6.3-5.2.1.5">Extended Administrative Group:</dt> | |||
NOT appear more than once in a single IS-IS FAD Sub-TLV. If it appears m | <dd pn="section-6.3-5.2.1.6">Extended Administrative Group, as | |||
ore | defined in <xref target="RFC7308" format="default" sectionFormat=" | |||
than once, the IS-IS FAD Sub-TLV MUST be ignored by the receiver.</t> | of" derivedContent="RFC7308"/>.</dd> | |||
</dl> | ||||
<t>The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV MUST NOT | </dd> | |||
appear | </dl> | |||
<t indent="0" pn="section-6.3-6">The IS-IS Flexible Algorithm Include-Al | ||||
l Admin Group sub-TLV <bcp14>MUST NOT</bcp14> appear more than once in a single | ||||
IS-IS FAD sub-TLV. If it appears more | ||||
than once, the IS-IS FAD sub-TLV <bcp14>MUST</bcp14> be ignored by the r | ||||
eceiver.</t> | ||||
<t indent="0" pn="section-6.3-7">The IS-IS Flexible Algorithm Include-Al | ||||
l Admin Group sub-TLV <bcp14>MUST NOT</bcp14> appear | ||||
more than once in the set of FAD sub-TLVs for a given Flex-Algorithm fro m a given IS. | more than once in the set of FAD sub-TLVs for a given Flex-Algorithm fro m a given IS. | |||
If it appears more than once in such a set, the IS-IS Flexible Algorithm Include-All Admin Group | 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 | sub-TLV in the first occurrence in the lowest-numbered LSP from a given | |||
IS MUST | IS <bcp14>MUST</bcp14> | |||
be used and any other occurrences MUST be ignored.</t> | be used, and any other occurrences <bcp14>MUST</bcp14> be ignored.</t> | |||
</section> | </section> | |||
<section anchor="ISISFLEXALGFLAG" numbered="true" toc="include" removeInRF | ||||
<section anchor="ISISFLEXALGFLAG" | C="false" pn="section-6.4"> | |||
title="IS-IS Flexible Algorithm Definition Flags Sub-TLV"> | <name slugifiedName="name-is-is-flexible-algorithm-def">IS-IS Flexible A | |||
<t>The IS-IS Flexible Algorithm Definition Flags Sub-TLV (FADF Sub-TLV) | lgorithm Definition Flags Sub-TLV</name> | |||
is a Sub-TLV of the IS-IS FAD Sub-TLV. It has the following format: | <t indent="0" pn="section-6.4-1">The IS-IS Flexible Algorithm Definition | |||
<figure> | Flags (FADF) sub-TLV | |||
<artwork><![CDATA[ | is a sub-TLV of the IS-IS FAD sub-TLV. It has the following format: | |||
</t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-6.4-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | | | Flags | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-6.4-3"> | |||
</figure> <list style="hanging"> | <dt pn="section-6.4-3.1">where:</dt> | |||
<t>Type: 4</t> | <dd pn="section-6.4-3.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-6.4-3.2. | ||||
<t>Length: variable, number of octets of the Flags field</t> | 1"> | |||
<dt pn="section-6.4-3.2.1.1">Type:</dt> | ||||
<t>Flags: <figure> | <dd pn="section-6.4-3.2.1.2">4</dd> | |||
<artwork><![CDATA[ | <dt pn="section-6.4-3.2.1.3">Length:</dt> | |||
<dd pn="section-6.4-3.2.1.4">variable, number of octets of the Fla | ||||
gs field.</dd> | ||||
<dt pn="section-6.4-3.2.1.5">Flags:</dt> | ||||
<dd pn="section-6.4-3.2.1.6"> | ||||
<artwork name="" type="" align="left" alt="" pn="section-6.4-3.2 | ||||
.1.6.1"> | ||||
0 1 2 3 4 5 6 7... | 0 1 2 3 4 5 6 7... | |||
+-+-+-+-+-+-+-+-+... | +-+-+-+-+-+-+-+-+... | |||
|M| | | ... | |M| | | ... | |||
+-+-+-+-+-+-+-+-+... | +-+-+-+-+-+-+-+-+... | |||
]]></artwork> | </artwork> | |||
</figure> <list style="hanging"> | <dl newline="false" spacing="normal" indent="3" pn="section-6.4- | |||
<t>M-flag: when set, the Flex-Algorithm specific prefix metric | 3.2.1.6.2"> | |||
MUST be used for inter-area and external prefix calculation. | <dt pn="section-6.4-3.2.1.6.2.1">M-flag:</dt> | |||
This flag is not applicable to prefixes advertised as SRv6 | <dd pn="section-6.4-3.2.1.6.2.2">when set, the Flex-Algorithm- | |||
locators.</t> | specific prefix metric | |||
</list></t> | <bcp14>MUST</bcp14> be used for inter-area and external prefix cal | |||
</list></t> | culation. | |||
This flag is not applicable to prefixes advertised as SRv6 | ||||
<t>A new IANA "IGP Flexible Algorithm Definition Flags Registry" is | locators.</dd> | |||
defined for allocation of bits in the Flags field - | </dl> | |||
see <xref target="IANAFADFLGAS"/>.</t> | </dd> | |||
</dl> | ||||
<t>Bits are defined/sent starting with Bit 0 defined above. Additional | </dd> | |||
bit definitions that may be defined in the future SHOULD be assigned | </dl> | |||
in ascending bit order so as to minimize the number of bits that will | <t indent="0" pn="section-6.4-4">A new IANA "IGP Flexible Algorithm Defi | |||
nition Flags" registry is | ||||
defined for allocation of bits in the Flags field -- | ||||
see <xref target="IANAFADFLGAS" format="default" sectionFormat="of" deri | ||||
vedContent="Section 18.2"/>.</t> | ||||
<t indent="0" pn="section-6.4-5">Bits are defined/sent starting with bit | ||||
0 defined above. Additional | ||||
bit definitions that may be defined in the future <bcp14>SHOULD</bcp14> | ||||
be assigned | ||||
in ascending bit order to minimize the number of bits that will | ||||
need to be transmitted.</t> | need to be transmitted.</t> | |||
<t indent="0" pn="section-6.4-6">Undefined bits <bcp14>MUST</bcp14> be t | ||||
<t>Undefined bits MUST be transmitted as 0.</t> | ransmitted as 0.</t> | |||
<t indent="0" pn="section-6.4-7">Bits that are not transmitted <bcp14>MU | ||||
<t>Bits that are not transmitted MUST be treated as if they are set to | ST</bcp14> be treated as if they are set to | |||
0 on receipt.</t> | 0 on receipt.</t> | |||
<t indent="0" pn="section-6.4-8">The IS-IS FADF sub-TLV <bcp14>MUST NOT< | ||||
<t>The IS-IS FADF Sub-TLV MUST NOT appear more than once in a single IS- | /bcp14> appear more than once in a single IS-IS FAD | |||
IS FAD | sub-TLV. If it appears more than once, the IS-IS FAD sub-TLV <bcp14>MUST | |||
Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV MUST be | </bcp14> be | |||
ignored by the receiver.</t> | ignored by the receiver.</t> | |||
<t indent="0" pn="section-6.4-9">The IS-IS FADF sub-TLV <bcp14>MUST NOT< | ||||
<t>The IS-IS FADF Sub-TLV MUST NOT appear more than once in the set of F | /bcp14> appear more than once in the set of FAD | |||
AD | ||||
sub-TLVs for a given Flex-Algorithm from a given IS. If it appears more than once | 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 low | in such a set, the IS-IS FADF sub-TLV in the first occurrence in the low | |||
est | est-numbered LSP from a given IS <bcp14>MUST</bcp14> be used, and any other occu | |||
numbered LSP from a given IS MUST be used and any other occurrences MUST | rrences <bcp14>MUST</bcp14> be ignored.</t> | |||
be ignored.</t> | <t indent="0" pn="section-6.4-10">If the IS-IS FADF sub-TLV is not prese | |||
nt inside the IS-IS FAD | ||||
<t>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.</t> | |||
Sub-TLV, all the bits are assumed to be set to 0.</t> | <t indent="0" pn="section-6.4-11">If a node is configured to participate | |||
in a particular Flexible Algorithm, | ||||
<t>If a node is configured to participate in a particular Flexible Algor | but the selected Flex-Algorithm Definition includes a bit in the IS-IS F | |||
ithm, | ADF sub-TLV | |||
but the selected Flex-Algorithm definition includes a bit in the IS-IS F | that is not supported by the node, it <bcp14>MUST</bcp14> stop participa | |||
ADF Sub-TLV | ting in such | |||
that is not supported by the node, it MUST stop participating in such | ||||
Flexible Algorithm.</t> | Flexible Algorithm.</t> | |||
<t indent="0" pn="section-6.4-12">New flag bits may be defined in the fu | ||||
<t>New flag bits may be defined in the future. Implementations MUST chec | ture. Implementations <bcp14>MUST</bcp14> check all | |||
k all | advertised flag bits in the received IS-IS FADF sub-TLV -- not just the | |||
advertised flag bits in the received IS-IS FADF Sub-TLV - not just the s | subset | |||
ubset | ||||
currently defined.</t> | currently defined.</t> | |||
<t indent="0" pn="section-6.4-13">The M-flag <bcp14>MUST</bcp14> not be | ||||
<t>M-flag MUST not be used when calculating prefix reachability for SRv6 | used when calculating prefix reachability for the SRv6 | |||
Locator prefix.</t> | Locator prefix.</t> | |||
</section> | </section> | |||
<section anchor="ISISFLEXALGEXSRLGTLV" numbered="true" toc="include" remov | ||||
<section anchor="ISISFLEXALGEXSRLGTLV" | eInRFC="false" pn="section-6.5"> | |||
title="IS-IS Flexible Algorithm Exclude SRLG Sub-TLV"> | <name slugifiedName="name-is-is-flexible-algorithm-exc">IS-IS Flexible A | |||
<t>The Flexible Algorithm definition can specify Shared Risk Link | lgorithm Exclude SRLG Sub-TLV</name> | |||
<t indent="0" pn="section-6.5-1">The Flexible Algorithm Definition can s | ||||
pecify Shared Risk Link | ||||
Groups (SRLGs) that the operator wants to exclude during the | Groups (SRLGs) that the operator wants to exclude during the | |||
Flex-Algorithm path computation.</t> | Flex-Algorithm path computation.</t> | |||
<t indent="0" pn="section-6.5-2">The IS-IS Flexible Algorithm Exclude SR | ||||
<t>The IS-IS Flexible Algorithm Exclude SRLG Sub-TLV (FAESRLG) is used | LG (FAESRLG) sub-TLV is used | |||
to advertise the exclude rule that is used during the Flex-Algorithm | to advertise the exclude rule that is used during the Flex-Algorithm | |||
path calculation as specified in <xref target="FLEXALGPATHCALC"/>.</t> | path calculation, as specified in <xref target="FLEXALGPATHCALC" format= | |||
"default" sectionFormat="of" derivedContent="Section 13"/>.</t> | ||||
<t>The IS-IS FAESRLG Sub-TLV is a Sub-TLV of the IS-IS FAD Sub-TLV. It | <t indent="0" pn="section-6.5-3">The IS-IS FAESRLG sub-TLV is a sub-TLV | |||
has the following format: <figure> | of the IS-IS FAD sub-TLV. It | |||
<artwork><![CDATA[ | has the following format: </t> | |||
<artwork name="" type="" align="left" alt="" pn="section-6.5-4"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-6.5-5"> | |||
</figure> <list style="hanging"> | <dt pn="section-6.5-5.1">where:</dt> | |||
<t>Type: 5</t> | <dd pn="section-6.5-5.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-6.5-5.2. | ||||
<t>Length: variable, dependent on number of SRLG values. MUST be a | 1"> | |||
multiple of 4 octets.</t> | <dt pn="section-6.5-5.2.1.1">Type:</dt> | |||
<dd pn="section-6.5-5.2.1.2">5</dd> | ||||
<t>Shared Risk Link Group Value: SRLG value as defined in <xref | <dt pn="section-6.5-5.2.1.3">Length:</dt> | |||
target="RFC5307"/>.</t> | <dd pn="section-6.5-5.2.1.4">variable, dependent on number of SRLG | |||
</list></t> | values. <bcp14>MUST</bcp14> be a | |||
multiple of 4 octets.</dd> | ||||
<t>The IS-IS FAESRLG Sub-TLV MUST NOT appear more than once in a single | <dt pn="section-6.5-5.2.1.5">Shared Risk Link Group Value:</dt> | |||
IS-IS FAD | <dd pn="section-6.5-5.2.1.6">SRLG value, as defined in <xref targe | |||
Sub-TLV. If it appears more than once, the IS-IS FAD Sub-TLV MUST be | t="RFC5307" format="default" sectionFormat="of" derivedContent="RFC5307"/>.</dd> | |||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-6.5-6">The IS-IS FAESRLG sub-TLV <bcp14>MUST N | ||||
OT</bcp14> appear more than once in a single IS-IS FAD | ||||
sub-TLV. If it appears more than once, the IS-IS FAD sub-TLV <bcp14>MUST | ||||
</bcp14> be | ||||
ignored by the receiver.</t> | ignored by the receiver.</t> | |||
<t indent="0" pn="section-6.5-7">The IS-IS FAESRLG sub-TLV <bcp14>MAY</b | ||||
<t>The IS-IS FAESRLG Sub-TLV MAY appear more than once in the set of FAD | cp14> appear more than once in the set of FAD | |||
sub-TLVs for a given Flex-Algorithm from a given IS. This may be necessa ry in cases | sub-TLVs for a given Flex-Algorithm from a given IS. This may be necessa ry in cases | |||
where the total number of SRLG values which are specified cause the FAD | where the total number of SRLG values that are specified cause the FAD s | |||
sub-TLV to | ub-TLV to | |||
exceed the maximum length of a single FAD sub-TLV. In such a case the re | exceed the maximum length of a single FAD sub-TLV. In such a case, the r | |||
ceiver MUST | eceiver <bcp14>MUST</bcp14> | |||
use the union of all values across all IS-IS FAESRLG Sub-TLVs from such | use the union of all values across all IS-IS FAESRLG sub-TLVs from such | |||
set.</t> | set.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="OSPFFADLTLVS" numbered="true" toc="include" removeInRFC="fa | ||||
<section anchor="OSPFFADLTLVS" title="Sub-TLVs of OSPF FAD TLV"> | lse" pn="section-7"> | |||
<section anchor="OSPFFLEXALGEXLTLV" | <name slugifiedName="name-sub-tlvs-of-the-ospf-fad-tl">Sub-TLVs of the OSP | |||
title="OSPF Flexible Algorithm Exclude Admin Group Sub-TLV"> | F FAD TLV</name> | |||
<t>The Flexible Algorithm Exclude Admin Group Sub-TLV (FAEAG Sub-TLV) | <section anchor="OSPFFLEXALGEXLTLV" numbered="true" toc="include" removeIn | |||
is a Sub-TLV of the OSPF FAD TLV. Its usage is described in <xref | RFC="false" pn="section-7.1"> | |||
target="ISISFLEXALGEXLTLV"/>. It has the following format: <figure> | <name slugifiedName="name-ospf-flexible-algorithm-exc">OSPF Flexible Alg | |||
<artwork><![CDATA[ | orithm Exclude Admin Group Sub-TLV</name> | |||
<t indent="0" pn="section-7.1-1">The OSPF Flexible Algorithm Exclude Adm | ||||
in Group (FAEAG) sub-TLV | ||||
is a sub-TLV of the OSPF FAD TLV. Its usage is described in <xref target | ||||
="ISISFLEXALGEXLTLV" format="default" sectionFormat="of" derivedContent="Section | ||||
6.1"/>. It has the following format: </t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-7.1-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-7.1-3"> | |||
</figure> <list style="hanging"> | <dt pn="section-7.1-3.1">where:</dt> | |||
<t>Type: 1</t> | <dd pn="section-7.1-3.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-7.1-3.2. | ||||
<t>Length: variable, dependent on the size of the Extended Admin | 1"> | |||
Group. MUST be a multiple of 4 octets.</t> | <dt pn="section-7.1-3.2.1.1">Type:</dt> | |||
<dd pn="section-7.1-3.2.1.2">1</dd> | ||||
<t>Extended Administrative Group: Extended Administrative Group as | <dt pn="section-7.1-3.2.1.3">Length:</dt> | |||
defined in <xref target="RFC7308"/>.</t> | <dd pn="section-7.1-3.2.1.4">variable, dependent on the size of th | |||
</list></t> | e Extended Admin | |||
Group. <bcp14>MUST</bcp14> be a multiple of 4 octets.</dd> | ||||
<t>The OSPF FAEAG Sub-TLV MUST NOT appear more than once in an OSPF | <dt pn="section-7.1-3.2.1.5">Extended Administrative Group:</dt> | |||
FAD TLV. If it appears more than once, the OSPF FAD TLV MUST be | <dd pn="section-7.1-3.2.1.6">Extended Administrative Group, as | |||
defined in <xref target="RFC7308" format="default" sectionFormat= | ||||
"of" derivedContent="RFC7308"/>.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-7.1-4">The OSPF FAEAG sub-TLV <bcp14>MUST NOT< | ||||
/bcp14> appear more than once in an OSPF | ||||
FAD TLV. If it appears more than once, the OSPF FAD TLV <bcp14>MUST</bcp | ||||
14> be | ||||
ignored by the receiver.</t> | ignored by the receiver.</t> | |||
</section> | </section> | |||
<section anchor="OSPFFLEXALGINCANYTLV" numbered="true" toc="include" remov | ||||
<section anchor="OSPFFLEXALGINCANYTLV" | eInRFC="false" pn="section-7.2"> | |||
title="OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV"> | <name slugifiedName="name-ospf-flexible-algorithm-inc">OSPF Flexible Alg | |||
orithm Include-Any Admin Group Sub-TLV</name> | ||||
<t>The OSPF Flexible Algorithm Include-Any Admin Group | <t indent="0" pn="section-7.2-1">The OSPF Flexible Algorithm Include-Any | |||
Sub-TLV is a Sub-TLV of the OSPF FAD TLV. The usage of this Sub-TLVs is | Admin Group | |||
described in <xref | sub-TLV is a sub-TLV of the OSPF FAD TLV. The usage of this sub-TLV is d | |||
target="ISISFLEXALGINCANYTLV"/>. It has the following format: <figure> | escribed in <xref target="ISISFLEXALGINCANYTLV" format="default" sectionFormat=" | |||
<artwork><![CDATA[ | of" derivedContent="Section 6.2"/>. It has the following format: </t> | |||
<artwork name="" type="" align="left" alt="" pn="section-7.2-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-7.2-3"> | |||
</figure> <list style="hanging"> | <dt pn="section-7.2-3.1">where:</dt> | |||
<t>Type: 2</t> | <dd pn="section-7.2-3.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-7.2-3.2. | ||||
<t>Length: variable, dependent on the size of the Extended Admin | 1"> | |||
Group. MUST be a multiple of 4 octets.</t> | <dt pn="section-7.2-3.2.1.1">Type: </dt> | |||
<dd pn="section-7.2-3.2.1.2">2</dd> | ||||
<t>Extended Administrative Group: Extended Administrative Group as | <dt pn="section-7.2-3.2.1.3">Length:</dt> | |||
defined in <xref target="RFC7308"/>.</t> | <dd pn="section-7.2-3.2.1.4">variable, dependent on the size of th | |||
</list></t> | e Extended Admin | |||
Group. <bcp14>MUST</bcp14> be a multiple of 4 octets.</dd> | ||||
<t>The OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV MUST | <dt pn="section-7.2-3.2.1.5">Extended Administrative Group:</dt> | |||
NOT appear more than once in an OSPF FAD TLV. If it appears more than | <dd pn="section-7.2-3.2.1.6">Extended Administrative Group, as | |||
once, the OSPF FAD TLV MUST be ignored by the receiver.</t> | defined in <xref target="RFC7308" format="default" sectionFormat=" | |||
of" derivedContent="RFC7308"/>.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-7.2-4">The OSPF Flexible Algorithm Include-Any | ||||
Admin Group sub-TLV <bcp14>MUST NOT</bcp14> appear more than once in an OSPF FA | ||||
D TLV. If it appears more than | ||||
once, the OSPF FAD TLV <bcp14>MUST</bcp14> be ignored by the receiver.</ | ||||
t> | ||||
</section> | </section> | |||
<section anchor="OSPFFLEXALGINCALLTLV" numbered="true" toc="include" remov | ||||
<section anchor="OSPFFLEXALGINCALLTLV" | eInRFC="false" pn="section-7.3"> | |||
title="OSPF Flexible Algorithm Include-All Admin Group Sub-TLV"> | <name slugifiedName="name-ospf-flexible-algorithm-incl">OSPF Flexible Al | |||
gorithm Include-All Admin Group Sub-TLV</name> | ||||
<t>The OSPF Flexible Algorithm Include-All Admin Group | <t indent="0" pn="section-7.3-1">The OSPF Flexible Algorithm Include-All | |||
Sub-TLV is a Sub-TLV of the OSPF FAD TLV. The usage of this Sub-TLVs is | Admin Group | |||
described in <xref target="ISISFLEXALGINCALLTLV"/>. It has the following | sub-TLV is a sub-TLV of the OSPF FAD TLV. The usage of this sub-TLV is | |||
format: <figure> | described in <xref target="ISISFLEXALGINCALLTLV" format="default" sectio | |||
<artwork><![CDATA[ | nFormat="of" derivedContent="Section 6.3"/>. It has the following format: </t> | |||
<artwork name="" type="" align="left" alt="" pn="section-7.3-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Admin Group | | | Extended Admin Group | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-7.3-3"> | |||
</figure> <list style="hanging"> | <dt pn="section-7.3-3.1">where:</dt> | |||
<t>Type: 3</t> | <dd pn="section-7.3-3.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-7.3-3.2. | ||||
<t>Length: variable, dependent on the size of the Extended Admin | 1"> | |||
Group. MUST be a multiple of 4 octets.</t> | <dt pn="section-7.3-3.2.1.1">Type:</dt> | |||
<dd pn="section-7.3-3.2.1.2">3</dd> | ||||
<t>Extended Administrative Group: Extended Administrative Group as | <dt pn="section-7.3-3.2.1.3">Length: </dt> | |||
defined in <xref target="RFC7308"/>.</t> | <dd pn="section-7.3-3.2.1.4">variable, dependent on the size of th | |||
</list></t> | e Extended Admin | |||
Group. <bcp14>MUST</bcp14> be a multiple of 4 octets.</dd> | ||||
<t>The OSPF Flexible Algorithm Include-All Admin Group Sub-TLV MUST | <dt pn="section-7.3-3.2.1.5">Extended Administrative Group:</dt> | |||
NOT appear more than once in an OSPF FAD TLV. If it appears more than | <dd pn="section-7.3-3.2.1.6">Extended Administrative Group, as | |||
once, the OSPF FAD TLV MUST be ignored by the receiver.</t> | defined in <xref target="RFC7308" format="default" sectionFormat=" | |||
of" derivedContent="RFC7308"/>.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-7.3-4">The OSPF Flexible Algorithm Include-All | ||||
Admin Group sub-TLV <bcp14>MUST NOT</bcp14> appear more than once in an OSPF FA | ||||
D TLV. If it appears more than | ||||
once, the OSPF FAD TLV <bcp14>MUST</bcp14> be ignored by the receiver.</ | ||||
t> | ||||
</section> | </section> | |||
<section anchor="OSPFFLEXALGFLAG" numbered="true" toc="include" removeInRF | ||||
<section anchor="OSPFFLEXALGFLAG" | C="false" pn="section-7.4"> | |||
title="OSPF Flexible Algorithm Definition Flags Sub-TLV"> | <name slugifiedName="name-ospf-flexible-algorithm-defi">OSPF Flexible Al | |||
<t>The OSPF Flexible Algorithm Definition Flags Sub-TLV (FADF Sub-TLV) | gorithm Definition Flags Sub-TLV</name> | |||
is a Sub-TLV of the OSPF FAD TLV. It has the following format: <figure> | <t indent="0" pn="section-7.4-1">The OSPF Flexible Algorithm Definition | |||
<artwork><![CDATA[ | Flags (FADF) sub-TLV | |||
is a sub-TLV of the OSPF FAD TLV. It has the following format: </t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-7.4-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | | | Flags | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-7.4-3"> | |||
</figure> <list style="hanging"> | <dt pn="section-7.4-3.1">where:</dt> | |||
<t>Type: 4</t> | <dd pn="section-7.4-3.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-7.4-3.2. | ||||
<t>Length: variable, dependent on the size of the Flags field. | 1"> | |||
MUST be a multiple of 4 octets.</t> | <dt pn="section-7.4-3.2.1.1">Type:</dt> | |||
<dd pn="section-7.4-3.2.1.2">4</dd> | ||||
<t>Flags: <figure> | <dt pn="section-7.4-3.2.1.3">Length:</dt> | |||
<artwork><![CDATA[ | <dd pn="section-7.4-3.2.1.4">variable, dependent on the size of th | |||
e Flags field. | ||||
<bcp14>MUST</bcp14> be a multiple of 4 octets.</dd> | ||||
<dt pn="section-7.4-3.2.1.5">Flags:</dt> | ||||
<dd pn="section-7.4-3.2.1.6"> | ||||
<artwork name="" type="" align="left" alt="" pn="section-7.4-3.2 | ||||
.1.6.1"> | ||||
0 1 2 3 4 5 6 7... | 0 1 2 3 4 5 6 7... | |||
+-+-+-+-+-+-+-+-+... | +-+-+-+-+-+-+-+-+... | |||
|M| | | ... | |M| | | ... | |||
+-+-+-+-+-+-+-+-+... | +-+-+-+-+-+-+-+-+... | |||
]]></artwork> | </artwork> | |||
</figure> <list style="hanging"> | <dl newline="false" spacing="normal" indent="3" pn="section-7.4- | |||
<t>M-flag: when set, the Flex-Algorithm specific prefix and | 3.2.1.6.2"> | |||
ASBR metric MUST be used for inter-area and external prefix | <dt pn="section-7.4-3.2.1.6.2.1">M-flag:</dt> | |||
calculation. This flag is not applicable to prefixes | <dd pn="section-7.4-3.2.1.6.2.2">when set, the Flex-Algorithm- | |||
advertised as SRv6 locators.</t> | specific prefix and | |||
</list></t> | ASBR metric <bcp14>MUST</bcp14> be used for inter-area and externa | |||
</list></t> | l | |||
prefix calculation. This flag is not applicable to prefixes | ||||
<t>A new IANA "IGP Flexible Algorithm Definition Flags Registry" is | advertised as SRv6 locators.</dd> | |||
defined for allocation of bits in the Flags field - | </dl> | |||
see <xref target="IANAFADFLGAS"/>.</t> | </dd> | |||
</dl> | ||||
<t>Bits are defined/sent starting with Bit 0 defined above. Additional | </dd> | |||
bit definitions that may be defined in the future SHOULD be assigned | </dl> | |||
in ascending bit order so as to minimize the number of bits that will | <t indent="0" pn="section-7.4-4">A new IANA "IGP Flexible Algorithm Defi | |||
nition Flags" registry is | ||||
defined for allocation of bits in the Flags field -- | ||||
see <xref target="IANAFADFLGAS" format="default" sectionFormat="of" deri | ||||
vedContent="Section 18.2"/>.</t> | ||||
<t indent="0" pn="section-7.4-5">Bits are defined/sent starting with bit | ||||
0 defined above. Additional | ||||
bit definitions that may be defined in the future <bcp14>SHOULD</bcp14> | ||||
be assigned | ||||
in ascending bit order to minimize the number of bits that will | ||||
need to be transmitted.</t> | need to be transmitted.</t> | |||
<t indent="0" pn="section-7.4-6">Undefined bits <bcp14>MUST</bcp14> be t | ||||
<t>Undefined bits MUST be transmitted as 0.</t> | ransmitted as 0.</t> | |||
<t indent="0" pn="section-7.4-7">Bits that are not transmitted <bcp14>MU | ||||
<t>Bits that are not transmitted MUST be treated as if they are set to | ST</bcp14> be treated as if they are set to | |||
0 on receipt.</t> | 0 on receipt.</t> | |||
<t indent="0" pn="section-7.4-8">The OSPF FADF sub-TLV <bcp14>MUST NOT</ | ||||
<t>The OSPF FADF Sub-TLV MUST NOT appear more than once in an OSPF FAD | bcp14> appear more than once in an OSPF FAD | |||
TLV. If it appears more than once, the OSPF FAD TLV MUST be ignored by | TLV. If it appears more than once, the OSPF FAD TLV <bcp14>MUST</bcp14> | |||
be ignored by | ||||
the receiver.</t> | the receiver.</t> | |||
<t indent="0" pn="section-7.4-9">If the OSPF FADF sub-TLV is not present | ||||
<t>If the OSPF FADF Sub-TLV is not present inside the OSPF FAD TLV, | inside the OSPF FAD TLV, | |||
all the bits are assumed to be set to 0.</t> | all the bits are assumed to be set to 0.</t> | |||
<t indent="0" pn="section-7.4-10">If a node is configured to participate | ||||
<t>If a node is configured to participate in a particular Flexible Algor | in a particular Flexible Algorithm, | |||
ithm, | but the selected Flex-Algorithm Definition includes a bit in the OSPF FA | |||
but the selected Flex-Algorithm definition includes a bit in the OSPF FA | DF sub-TLV | |||
DF Sub-TLV | that is not supported by the node, it <bcp14>MUST</bcp14> stop participa | |||
that is not supported by the node, it MUST stop participating in such | ting in such | |||
Flexible Algorithm.</t> | Flexible Algorithm.</t> | |||
<t indent="0" pn="section-7.4-11">New flag bits may be defined in the fu | ||||
<t>New flag bits may be defined in the future. Implementations MUST chec | ture. Implementations <bcp14>MUST</bcp14> check all | |||
k all | advertised flag bits in the received OSPF FADF sub-TLV -- not just the s | |||
advertised flag bits in the received OSPF FADF Sub-TLV - not just the su | ubset | |||
bset | ||||
currently defined.</t> | currently defined.</t> | |||
<t indent="0" pn="section-7.4-12">The M-flag <bcp14>MUST</bcp14> not be | ||||
<t>M-flag MUST not be used when calculating prefix reachability for SRv6 | used when calculating prefix reachability for the SRv6 | |||
Locator prefix.</t> | Locator prefix.</t> | |||
</section> | </section> | |||
<section anchor="OSPFFLEXALGEXSRLGTLV" numbered="true" toc="include" remov | ||||
<section anchor="OSPFFLEXALGEXSRLGTLV" | eInRFC="false" pn="section-7.5"> | |||
title="OSPF Flexible Algorithm Exclude SRLG Sub-TLV"> | <name slugifiedName="name-ospf-flexible-algorithm-excl">OSPF Flexible Al | |||
<t>The OSPF Flexible Algorithm Exclude SRLG Sub-TLV (FAESRLG Sub-TLV) | gorithm Exclude SRLG Sub-TLV</name> | |||
is a Sub-TLV of the OSPF FAD TLV. Its usage is described in <xref | <t indent="0" pn="section-7.5-1">The OSPF Flexible Algorithm Exclude SRL | |||
target="ISISFLEXALGEXSRLGTLV"/>. It has the following format: <figure> | G (FAESRLG) sub-TLV | |||
<artwork><![CDATA[ | is a sub-TLV of the OSPF FAD TLV. Its usage is described in <xref target | |||
="ISISFLEXALGEXSRLGTLV" format="default" sectionFormat="of" derivedContent="Sect | ||||
ion 6.5"/>. It has the following format: </t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-7.5-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
+- -+ | +- -+ | |||
| ... | | | ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-7.5-3"> | |||
</figure> <list style="hanging"> | <dt pn="section-7.5-3.1">where:</dt> | |||
<t>Type: 5</t> | <dd pn="section-7.5-3.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-7.5-3.2. | ||||
<t>Length: variable, dependent on the number of SRLGs. MUST be a | 1"> | |||
multiple of 4 octets.</t> | <dt pn="section-7.5-3.2.1.1">Type:</dt> | |||
<dd pn="section-7.5-3.2.1.2">5</dd> | ||||
<t>Shared Risk Link Group Value: SRLG value as defined in <xref | <dt pn="section-7.5-3.2.1.3">Length:</dt> | |||
target="RFC4203"/>.</t> | <dd pn="section-7.5-3.2.1.4">variable, dependent on the number of | |||
</list></t> | SRLGs. <bcp14>MUST</bcp14> be a | |||
multiple of 4 octets.</dd> | ||||
<t>The OSPF FAESRLG Sub-TLV MUST NOT appear more than once in an OSPF | <dt pn="section-7.5-3.2.1.5">Shared Risk Link Group Value:</dt> | |||
FAD TLV. If it appears more than once, the OSPF FAD TLV MUST be | <dd pn="section-7.5-3.2.1.6"> SRLG value, as defined in <xref targ | |||
et="RFC4203" format="default" sectionFormat="of" derivedContent="RFC4203"/>.</dd | ||||
> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-7.5-4">The OSPF FAESRLG sub-TLV <bcp14>MUST NO | ||||
T</bcp14> appear more than once in an OSPF | ||||
FAD TLV. If it appears more than once, the OSPF FAD TLV <bcp14>MUST</bcp | ||||
14> be | ||||
ignored by the receiver.</t> | ignored by the receiver.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="ISISFLEXMETRIC" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="ISISFLEXMETRIC" | false" pn="section-8"> | |||
title="IS-IS Flexible Algorithm Prefix Metric Sub-TLV"> | <name slugifiedName="name-is-is-flexible-algorithm-pr">IS-IS Flexible Algo | |||
<t>The IS-IS Flexible Algorithm Prefix Metric (FAPM) Sub-TLV supports the | rithm Prefix Metric Sub-TLV</name> | |||
advertisement of a Flex-Algorithm specific prefix metric associated with | <t indent="0" pn="section-8-1">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.</t> | a given prefix advertisement.</t> | |||
<t indent="0" pn="section-8-2">The IS-IS FAPM sub-TLV is a sub-TLV of TLVs | ||||
<t>The IS-IS FAPM Sub-TLV is a sub-TLV of TLVs 135, 235, 236, and 237 and | 135, 235, 236, and 237 and | |||
has the following format: <figure> | has the following format: </t> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt="" pn="section-8-3"> | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length |Flex-Algorithm | | | Type | Length |Flex-Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | </artwork> | |||
]]></artwork> | <dl newline="true" spacing="normal" indent="3" pn="section-8-4"> | |||
</figure> <list style="hanging"> | <dt pn="section-8-4.1">where:</dt> | |||
<t>Type: 6</t> | <dd pn="section-8-4.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-8-4.2.1"> | ||||
<t>Length: 5 octets</t> | <dt pn="section-8-4.2.1.1">Type:</dt> | |||
<dd pn="section-8-4.2.1.2">6</dd> | ||||
<t>Flex-Algorithm: Single octet value between 128 and 255 | <dt pn="section-8-4.2.1.3">Length:</dt> | |||
inclusive.</t> | <dd pn="section-8-4.2.1.4">5 octets</dd> | |||
<dt pn="section-8-4.2.1.5">Flex-Algorithm:</dt> | ||||
<t>Metric: 4 octets of metric information</t> | <dd pn="section-8-4.2.1.6">single octet value between 128 and 255 | |||
</list></t> | inclusive.</dd> | |||
<dt pn="section-8-4.2.1.7">Metric:</dt> | ||||
<t>The IS-IS FAPM Sub-TLV MAY appear multiple times in its parent TLV. If | <dd pn="section-8-4.2.1.8">4 octets of metric information.</dd> | |||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-8-5">The IS-IS FAPM sub-TLV <bcp14>MAY</bcp14> a | ||||
ppear multiple times in its parent TLV. If | ||||
it appears more than once with the same Flex-Algorithm value, the first | it appears more than once with the same Flex-Algorithm value, the first | |||
instance MUST be used and any subsequent instances MUST be ignored.</t> | instance <bcp14>MUST</bcp14> be used and any subsequent instances <bcp14>M | |||
UST</bcp14> be ignored.</t> | ||||
<t>If a prefix is advertised with a Flex-Algorithm prefix metric larger | <t indent="0" pn="section-8-6">If a prefix is advertised with a Flex-Algor | |||
than MAX_PATH_METRIC as defined in <xref target="RFC5305"/> this prefix | ithm prefix metric larger | |||
MUST NOT be considered during the Flexible Algorithm computation.</t> | than MAX_PATH_METRIC, as defined in <xref target="RFC5305" format="default | |||
" sectionFormat="of" derivedContent="RFC5305"/>, this prefix | ||||
<t>The usage of the Flex-Algorithm prefix metric is described in <xref | <bcp14>MUST NOT</bcp14> be considered during the Flexible Algorithm comput | |||
target="FLEXALGPATHCALC"/>.</t> | ation.</t> | |||
<t indent="0" pn="section-8-7">The usage of the Flex-Algorithm prefix metr | ||||
<t>The IS-IS FAPM Sub-TLV MUST NOT be advertised as a sub-TLV of the IS-IS | ic is described in <xref target="FLEXALGPATHCALC" format="default" sectionFormat | |||
SRv6 Locator TLV <xref target="I-D.ietf-lsr-isis-srv6-extensions"/>. The | ="of" derivedContent="Section 13"/>.</t> | |||
IS-IS SRv6 Locator TLV includes the Algorithm and Metric fields which | <t indent="0" pn="section-8-8">The IS-IS FAPM sub-TLV <bcp14>MUST NOT</bcp | |||
MUST be used instead. If the FAPM Sub-TLV is present as a sub-TLV of the | 14> be advertised as a sub-TLV of the IS-IS | |||
IS-IS SRv6 Locator TLV in the received LSP, such FAPM Sub-TLV MUST be | SRv6 Locator TLV <xref target="RFC9352" format="default" sectionFormat="of | |||
" derivedContent="RFC9352"/>. The | ||||
IS-IS SRv6 Locator TLV includes the Algorithm and Metric fields, which | ||||
<bcp14>MUST</bcp14> be used instead. If the FAPM sub-TLV is present as a s | ||||
ub-TLV of the | ||||
IS-IS SRv6 Locator TLV in the received LSP, such FAPM sub-TLV <bcp14>MUST< | ||||
/bcp14> be | ||||
ignored.</t> | ignored.</t> | |||
</section> | </section> | |||
<section anchor="OSPFFLEXMETRIC" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="OSPFFLEXMETRIC" | false" pn="section-9"> | |||
title="OSPF Flexible Algorithm Prefix Metric Sub-TLV"> | <name slugifiedName="name-ospf-flexible-algorithm-pre">OSPF Flexible Algor | |||
<t>The OSPF Flexible Algorithm Prefix Metric (FAPM) Sub-TLV supports the | ithm Prefix Metric Sub-TLV</name> | |||
advertisement of a Flex-Algorithm specific prefix metric associated with | <t indent="0" pn="section-9-1">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.</t> | a given prefix advertisement.</t> | |||
<t indent="0" pn="section-9-2">The OSPF FAPM sub-TLV is a sub-TLV of the:< | ||||
<t>The OSPF Flex-Algorithm Prefix Metric (FAPM) Sub-TLV is a Sub-TLV of | /t> | |||
the: <list style="hanging"> | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9-3 | |||
<t>- OSPFv2 Extended Prefix TLV <xref target="RFC7684"/></t> | "> | |||
<li pn="section-9-3.1">OSPFv2 Extended Prefix TLV <xref target="RFC7684" | ||||
<t>- Following OSPFv3 TLVs as defined in <xref target="RFC8362"/>: | format="default" sectionFormat="of" derivedContent="RFC7684"/> | |||
<list style="hanging"> | and</li> | |||
<t>Inter-Area Prefix TLV</t> | <li pn="section-9-3.2"> | |||
<t indent="0" pn="section-9-3.2.1">following OSPFv3 TLVs, as defined i | ||||
<t>External Prefix TLV</t> | n <xref target="RFC8362" format="default" sectionFormat="of" derivedContent="RFC | |||
</list></t> | 8362"/>:</t> | |||
</list></t> | <ul bare="false" empty="false" indent="3" spacing="normal" pn="section | |||
-9-3.2.2"> | ||||
<t>OSPF FAPM Sub-TLV has the following format: <figure> | <li pn="section-9-3.2.2.1">Inter-Area Prefix TLV</li> | |||
<artwork><![CDATA[ | <li pn="section-9-3.2.2.2">External-Prefix TLV</li> | |||
</ul> | ||||
</li> | ||||
</ul> | ||||
<t indent="0" pn="section-9-4">The OSPF FAPM sub-TLV has the following for | ||||
mat: </t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-9-5"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Flex-Algorithm | Flags | Reserved | | |Flex-Algorithm | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</artwork> | ||||
where: | <dl newline="true" spacing="normal" indent="3" pn="section-9-6"> | |||
]]></artwork> | <dt pn="section-9-6.1">where:</dt> | |||
</figure> <list style="hanging"> | <dd pn="section-9-6.2"> | |||
<t>Type: 3 for OSPFv2, 26 for OSPFv3</t> | <dl newline="false" spacing="normal" indent="3" pn="section-9-6.2.1"> | |||
<dt pn="section-9-6.2.1.1">Type:</dt> | ||||
<t>Length: 8 octets</t> | <dd pn="section-9-6.2.1.2">3 for OSPFv2, and 26 for OSPFv3</dd> | |||
<dt pn="section-9-6.2.1.3">Length:</dt> | ||||
<t>Flex-Algorithm: Single octet value between 128 and 255 | <dd pn="section-9-6.2.1.4">8 octets</dd> | |||
inclusive.</t> | <dt pn="section-9-6.2.1.5">Flex-Algorithm:</dt> | |||
<dd pn="section-9-6.2.1.6">single octet value between 128 and 255 | ||||
<t>Flags: One octet value <figure> | inclusive.</dd> | |||
<artwork><![CDATA[ | <dt pn="section-9-6.2.1.7">Flags:</dt> | |||
<dd pn="section-9-6.2.1.8"> | ||||
<t indent="0" pn="section-9-6.2.1.8.1">1-octet value</t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-9-6.2.1.8 | ||||
.2"> | ||||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|E| | | |E| | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
]]></artwork> | </artwork> | |||
</figure> <list style="hanging"> | <dl newline="false" spacing="normal" indent="3" pn="section-9-6.2. | |||
<t>E bit : position 0: The type of external metric. If bit is | 1.8.3"> | |||
set, the metric specified is a Type 2 external metric. This bit | <dt pn="section-9-6.2.1.8.3.1">E bit:</dt> | |||
is applicable only to OSPF External and NSSA external prefixes. | <dd pn="section-9-6.2.1.8.3.2">position 0: The type of external | |||
This is semantically the same as the E bit in section A.4.5 of <xr | metric. If the bit is | |||
ef | set, the metric specified is a Type 2 external metric. This bit | |||
target="RFC2328"/> and section A.4.7 of <xref target="RFC5340"/> | is applicable only to OSPF external and Not-So-Stubby Area (NSSA) ex | |||
for OSPFv2 and OSPFv3 respectively.</t> | ternal prefixes. | |||
This is semantically the same as the E bit in <xref target="RFC2328" | ||||
<t>Bits 1 through 7: MUST be cleared by originator and ignored by | format="default" sectionFormat="of" section="A.4.5" derivedLink="https://rfc-ed | |||
receiver.</t> | itor.org/rfc/rfc2328#appendix-A.4.5" derivedContent="RFC2328"/> and <xref target | |||
</list></t> | ="RFC5340" format="default" sectionFormat="of" section="A.4.7" derivedLink="http | |||
s://rfc-editor.org/rfc/rfc5340#appendix-A.4.7" derivedContent="RFC5340"/> for OS | ||||
<t>Reserved: MUST be set to 0, ignored at reception.</t> | PFv2 and OSPFv3, respectively.</dd> | |||
<dt pn="section-9-6.2.1.8.3.3">Bits 1 through 7:</dt> | ||||
<t>Metric: 4 octets of metric information</t> | <dd pn="section-9-6.2.1.8.3.4"> | |||
</list></t> | <bcp14>MUST</bcp14> be cleared by the originator and ignored b | |||
y | ||||
<t>The OSPF FAPM Sub-TLV MAY appear multiple times in its parent TLV. If | the receiver.</dd> | |||
</dl> | ||||
</dd> | ||||
<dt pn="section-9-6.2.1.9">Reserved:</dt> | ||||
<dd pn="section-9-6.2.1.10"> | ||||
<bcp14>MUST</bcp14> be set to 0 and ignored at reception.</dd> | ||||
<dt pn="section-9-6.2.1.11">Metric:</dt> | ||||
<dd pn="section-9-6.2.1.12">4 octets of metric information.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-9-7">The OSPF FAPM sub-TLV <bcp14>MAY</bcp14> ap | ||||
pear multiple times in its parent TLV. If | ||||
it appears more than once with the same Flex-Algorithm value, the first | it appears more than once with the same Flex-Algorithm value, the first | |||
instance MUST be used and any subsequent instances MUST be ignored.</t> | instance <bcp14>MUST</bcp14> be used and any subsequent instances <bcp14>M | |||
UST</bcp14> be ignored.</t> | ||||
<t>The usage of the Flex-Algorithm prefix metric is described in <xref | <t indent="0" pn="section-9-8">The usage of the Flex-Algorithm prefix metr | |||
target="FLEXALGPATHCALC"/>.</t> | ic is described in <xref target="FLEXALGPATHCALC" format="default" sectionFormat | |||
="of" derivedContent="Section 13"/>.</t> | ||||
</section> | </section> | |||
<section anchor="OSPFASBR" numbered="true" toc="include" removeInRFC="false" | ||||
<section anchor="OSPFASBR" | pn="section-10"> | |||
title="OSPF Flexible Algorithm ASBR Reachability Advertisement"> | <name slugifiedName="name-ospf-flexible-algorithm-asb">OSPF Flexible Algor | |||
<t>An OSPF ABR advertises the reachability of ASBRs in its attached | ithm ASBR Reachability Advertisement</name> | |||
<t indent="0" pn="section-10-1">An OSPF ABR advertises the reachability of | ||||
ASBRs in its attached | ||||
areas to enable routers within those areas to perform route calculations | areas to enable routers within those areas to perform route calculations | |||
for external prefixes advertised by the ASBRs. OSPF extensions for | for external prefixes advertised by the ASBRs. OSPF extensions for | |||
advertisement of Flex-Algorithm specific reachability and metric for | advertisement of Flex-Algorithm-specific reachability and the metric for | |||
ASBRs is similarly required for Flex-Algorithm external prefix | ASBRs is similarly required for Flex-Algorithm external prefix | |||
computations as described further in <xref | computations, as described further in <xref target="FLEXALGPATHCALCINTER" | |||
target="FLEXALGPATHCALCINTER"/>.</t> | format="default" sectionFormat="of" derivedContent="Section 13.1"/>.</t> | |||
<section anchor="OSPFEXTASBRLSA" numbered="true" toc="include" removeInRFC | ||||
<section anchor="OSPFEXTASBRLSA" | ="false" pn="section-10.1"> | |||
title="OSPFv2 Extended Inter-Area ASBR LSA"> | <name slugifiedName="name-ospfv2-extended-inter-area-">OSPFv2 Extended I | |||
<t>The OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) LSA is an OSPF | nter-Area ASBR LSA</name> | |||
Opaque LSA <xref target="RFC5250"/> that is used to advertise | <t indent="0" pn="section-10.1-1">The OSPFv2 Extended Inter-Area ASBR (E | |||
IA-ASBR) LSA is an OSPF | ||||
Opaque LSA <xref target="RFC5250" format="default" sectionFormat="of" de | ||||
rivedContent="RFC5250"/> that is used to advertise | ||||
additional attributes related to the reachability of the OSPFv2 ASBR | additional attributes related to the reachability of the OSPFv2 ASBR | |||
that is external to the area yet internal to the OSPF domain. | that is external to the area yet internal to the OSPF domain. | |||
Semantically, the OSPFv2 EIA-ASBR LSA is equivalent to the fixed | Semantically, the OSPFv2 EIA-ASBR LSA is equivalent to the fixed | |||
format Type 4 Summary LSA <xref target="RFC2328"/>. Unlike the Type 4 | format Type 4 summary-LSA <xref target="RFC2328" format="default" sectio | |||
Summary LSA, the LSID of the EIA-ASBR LSA does not carry the ASBR | nFormat="of" derivedContent="RFC2328"/>. Unlike the Type 4 | |||
Router-ID - the ASBR Router-ID is carried in the body of the LSA. | summary-LSA, the Link State ID (LSID) of the EIA-ASBR LSA does not carry | |||
The OSPFv2 EIA-ASBR LSA is advertised by an OSPFv2 ABR and its flooding | the ASBR | |||
is | 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.</t> | defined to be area-scoped only.</t> | |||
<t indent="0" pn="section-10.1-2">An OSPFv2 ABR generates the EIA-ASBR L | ||||
<t>An OSPFv2 ABR generates the EIA-ASBR LSA for an ASBR when it is | SA for an ASBR when it is | |||
advertising the Type-4 Summary LSA for it and has the need for | advertising the Type 4 summary-LSA for it and has the need for | |||
advertising additional attributes for that ASBR beyond what is | advertising additional attributes for that ASBR beyond what is | |||
conveyed in the fixed format Type-4 Summary LSA. An OSPFv2 ABR MUST | conveyed in the fixed-format Type 4 summary-LSA. An OSPFv2 ABR <bcp14>MU | |||
NOT advertise the EIA-ASBR LSA for an ASBR for which it is not | ST NOT</bcp14> 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 | 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 | generate the EIA-ASBR LSA for an ASBR to which it does not have | |||
reachability in the base OSPFv2 topology calculation. The OSPFv2 ABR | reachability in the base OSPFv2 topology calculation. The OSPFv2 ABR | |||
SHOULD NOT advertise the EIA-ASBR LSA for an ASBR when it does not | <bcp14>SHOULD NOT</bcp14> advertise the EIA-ASBR LSA for an ASBR when it does not | |||
have additional attributes to advertise for that ASBR.</t> | have additional attributes to advertise for that ASBR.</t> | |||
<t indent="0" pn="section-10.1-3">The OSPFv2 EIA-ASBR LSA has the follow | ||||
<t>The OSPFv2 EIA-ASBR LSA has the following format: <figure> | ing format: </t> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt="" pn="section-10.1-4"> | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS age | Options | LS Type | | | LS age | Options | LS Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Opaque Type | Opaque ID | | | Opaque Type | Opaque ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Advertising Router | | | Advertising Router | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS sequence number | | | LS sequence number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LS checksum | Length | | | LS checksum | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+- TLVs -+ | +- TLVs -+ | |||
| ... | | | ... | | |||
</artwork> | ||||
]]></artwork> | <t indent="0" pn="section-10.1-5">The LS age and Options fields are as d | |||
</figure></t> | efined in | |||
<xref target="RFC2328" format="default" sectionFormat="of" section="A.4. | ||||
<t>LS age and Options fields are as defined in Section A.4.1. of | 1" derivedLink="https://rfc-editor.org/rfc/rfc2328#appendix-A.4.1" derivedConten | |||
<xref target="RFC2328"/>.</t> | t="RFC2328"/>.</t> | |||
<t indent="0" pn="section-10.1-6">The LS Type <bcp14>MUST</bcp14> be 10, | ||||
<t>The LS Type MUST be 10, indicating that the Opaque | indicating that the Opaque | |||
LSA flooding scope is area-local <xref target="RFC5250"/>.</t> | LSA flooding scope is area-local <xref target="RFC5250" format="default" | |||
sectionFormat="of" derivedContent="RFC5250"/>.</t> | ||||
<t>The Opaque Type used by the OSPFv2 EIA-ASBR LSA is 11. | <t indent="0" pn="section-10.1-7">The Opaque Type used by the OSPFv2 EIA | |||
-ASBR LSA is 11. | ||||
The Opaque Type is used to differentiate the various types | The Opaque Type is used to differentiate the various types | |||
of OSPFv2 Opaque LSAs and is described in Section 3 of <xref | of OSPFv2 Opaque LSAs and is described in <xref target="RFC5250" section | |||
target="RFC5250"/>.</t> | ="3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc | |||
/rfc5250#section-3" derivedContent="RFC5250"/>.</t> | ||||
<t>The Opaque ID field is an arbitrary value used to maintain multiple | <t indent="0" pn="section-10.1-8">The Opaque ID field is an arbitrary va | |||
lue used to maintain multiple | ||||
OSPFv2 EIA-ASBR LSAs. For OSPFv2 EIA-ASBR LSAs, the Opaque ID has no | OSPFv2 EIA-ASBR LSAs. For OSPFv2 EIA-ASBR LSAs, the Opaque ID has no | |||
semantic significance other than to differentiate OSPFv2 EIA-ASBR LSAs | semantic significance other than to differentiate OSPFv2 EIA-ASBR LSAs | |||
originated by the same OSPFv2 ABR. If multiple OSPFv2 EIA-ASBR LSAs | originated by the same OSPFv2 ABR. If multiple OSPFv2 EIA-ASBR LSAs | |||
specify the same ASBR, the attributes from the Opaque LSA with the | specify the same ASBR, the attributes from the Opaque LSA with the | |||
lowest Opaque ID SHOULD be used.</t> | lowest Opaque ID <bcp14>SHOULD</bcp14> be used.</t> | |||
<t indent="0" pn="section-10.1-9">The Advertising Router, LS sequence nu | ||||
<t>Advertising Router, LS sequence number, and LS checksum fields are as | mber, and LS checksum fields are as defined in | |||
defined in | <xref target="RFC2328" format="default" sectionFormat="of" section="A.4. | |||
Section A.4.1. of <xref target="RFC2328"/>.</t> | 1" derivedLink="https://rfc-editor.org/rfc/rfc2328#appendix-A.4.1" derivedConten | |||
t="RFC2328"/>.</t> | ||||
<t>The Length field is as defined in Section A.4.1. of <xref target="RFC | <t indent="0" pn="section-10.1-10">The Length field is as defined in <xr | |||
5250"/>. | ef target="RFC2328" format="default" sectionFormat="of" section="A.4.1" derivedL | |||
ink="https://rfc-editor.org/rfc/rfc2328#appendix-A.4.1" derivedContent="RFC2328" | ||||
/>. | ||||
It represents the total length (in octets) of the Opaque LSA, including the | It represents the total length (in octets) of the Opaque LSA, including the | |||
LSA header and all TLVs (including padding).</t> | LSA header and all TLVs (including padding).</t> | |||
<t indent="0" pn="section-10.1-11">The format of the TLVs within the bod | ||||
<t>The format of the TLVs within the body of the OSPFv2 EIA-ASBR LSA | y of the OSPFv2 EIA-ASBR LSA | |||
is the same as the format used by the Traffic Engineering Extensions | is the same as the format used by the Traffic Engineering Extensions | |||
to OSPFv2 <xref target="RFC3630"/>. The variable TLV section consists | to OSPFv2 <xref target="RFC3630" format="default" sectionFormat="of" der ivedContent="RFC3630"/>. The variable TLV section consists | |||
of one or more nested TLV tuples. Nested TLVs are also referred to as | 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 | sub-TLVs. The TLV Length field defines the length of the value portion i n | |||
octets (thus, a TLV with no value portion would have a length of 0). | octets (thus, a TLV with no value portion would have a length of 0). | |||
The TLV is padded to 4-octet alignment; padding is not included in the | The TLV is padded to 4-octet alignment; padding is not included in the | |||
Length field (so a 3-octet value would have a length of 3, but the | Length field (so a 3-octet value would have a length of 3, but the | |||
total size of the TLV would be 8 octets). Nested TLVs are also 32-bit | 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 | 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 | 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.</t> | portion of the TLV. The padding is composed of zeros.</t> | |||
<section anchor="OSPFEXTASBRTLV" numbered="true" toc="include" removeInR | ||||
<section anchor="OSPFEXTASBRTLV" | FC="false" pn="section-10.1.1"> | |||
title="OSPFv2 Extended Inter-Area ASBR TLV"> | <name slugifiedName="name-ospfv2-extended-inter-area-a">OSPFv2 Extende | |||
<t>The OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) TLV is a top-level | d Inter-Area ASBR TLV</name> | |||
<t indent="0" pn="section-10.1.1-1">The OSPFv2 Extended Inter-Area ASB | ||||
R (EIA-ASBR) TLV is a top-level | ||||
TLV of the OSPFv2 EIA-ASBR LSA and is used to advertise additional | TLV of the OSPFv2 EIA-ASBR LSA and is used to advertise additional | |||
attributes associated with the reachability of an ASBR.</t> | attributes associated with the reachability of an ASBR.</t> | |||
<t indent="0" pn="section-10.1.1-2">The OSPFv2 EIA-ASBR TLV has the fo | ||||
<t>The OSPFv2 EIA-ASBR TLV has the following format:</t> | llowing format:</t> | |||
<artwork name="" type="" align="left" alt="" pn="section-10.1.1-3"> | ||||
<t><figure> | 0 1 2 3 | |||
<artwork><![CDATA[ 0 1 2 | 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 | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | ASBR Router ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ASBR Router ID | | . . | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . Sub-TLVs . | |||
. . | . . | |||
. Sub-TLVs . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
. . | </artwork> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | <dl newline="true" spacing="normal" indent="3" pn="section-10.1.1-4"> | |||
<dt pn="section-10.1.1-4.1">where:</dt> | ||||
where: | <dd pn="section-10.1.1-4.2"> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-10.1.1 | ||||
]]></artwork> | -4.2.1"> | |||
</figure></t> | <dt pn="section-10.1.1-4.2.1.1">Type:</dt> | |||
<dd pn="section-10.1.1-4.2.1.2">1</dd> | ||||
<t><list style="hanging"> | <dt pn="section-10.1.1-4.2.1.3">Length:</dt> | |||
<t>Type: 1</t> | <dd pn="section-10.1.1-4.2.1.4">variable number of octets.</dd> | |||
<dt pn="section-10.1.1-4.2.1.5">ASBR Router ID:</dt> | ||||
<t>Length: variable number of octets</t> | <dd pn="section-10.1.1-4.2.1.6">4 octets carrying the OSPF Route | |||
r ID of | ||||
<t>ASBR Router ID: four octets carrying the OSPF Router ID of | the ASBR whose information is being carried.</dd> | |||
the ASBR whose information is being carried.</t> | <dt pn="section-10.1.1-4.2.1.7">Sub-TLVs:</dt> | |||
<dd pn="section-10.1.1-4.2.1.8">variable</dd> | ||||
<t>Sub-TLVs : variable</t> | </dl> | |||
</list></t> | </dd> | |||
</dl> | ||||
<t>Only a single OSPFv2 EIA-ASBR TLV MUST be advertised in each | <t indent="0" pn="section-10.1.1-5">Only a single OSPFv2 EIA-ASBR TLV | |||
OSPFv2 EIA-ASBR LSA and the receiver MUST ignore all instances of | <bcp14>MUST</bcp14> be advertised in each | |||
OSPFv2 EIA-ASBR LSA, and the receiver <bcp14>MUST</bcp14> ignore all i | ||||
nstances of | ||||
this TLV other than the first one in an LSA.</t> | this TLV other than the first one in an LSA.</t> | |||
<t indent="0" pn="section-10.1.1-6">The OSPFv2 EIA-ASBR TLV <bcp14>MUS | ||||
<t>OSPFv2 EIA-ASBR TLV MUST be present inside an OSPFv2 EIA-ASBR LSA | T</bcp14> be present inside an OSPFv2 EIA-ASBR LSA | |||
and MUST include at least a single sub-TLV, otherwise the OSPFv2 | and <bcp14>MUST</bcp14> include at least a single sub-TLV; otherwise, | |||
EIA-ASBR LSA MUST be ignored by the receiver.</t> | the OSPFv2 | |||
EIA-ASBR LSA <bcp14>MUST</bcp14> be ignored by the receiver.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="OSPFFAASBRMETRIC" numbered="true" toc="include" removeInR | ||||
<section anchor="OSPFFAASBRMETRIC" | FC="false" pn="section-10.2"> | |||
title="OSPF Flexible Algorithm ASBR Metric Sub-TLV"> | <name slugifiedName="name-ospf-flexible-algorithm-asbr">OSPF Flexible Al | |||
<t>The OSPF Flexible Algorithm ASBR Metric (FAAM) Sub-TLV supports the | gorithm ASBR Metric Sub-TLV</name> | |||
advertisement of a Flex-Algorithm specific metric associated with a | <t indent="0" pn="section-10.2-1">The OSPF Flexible Algorithm ASBR Metri | |||
c (FAAM) sub-TLV supports the | ||||
advertisement of a Flex-Algorithm-specific metric associated with a | ||||
given ASBR reachability advertisement by an ABR.</t> | given ASBR reachability advertisement by an ABR.</t> | |||
<t indent="0" pn="section-10.2-2">The OSPF FAAM sub-TLV is a sub-TLV of | ||||
<t>The OSPF Flex-Algorithm ASBR Metric (FAAM) Sub-TLV is a Sub-TLV of | the: </t> | |||
the: <list style="hanging"> | <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-1 | |||
<t>- OSPFv2 Extended Inter-Area ASBR TLV as defined in <xref | 0.2-3"> | |||
target="OSPFEXTASBRTLV"/></t> | <li pn="section-10.2-3.1">OSPFv2 Extended Inter-Area ASBR TLV, as defi | |||
ned in <xref target="OSPFEXTASBRTLV" format="default" sectionFormat="of" derived | ||||
<t>- OSPFv3 Inter-Area-Router TLV defined in <xref | Content="Section 10.1.1"/>, and</li> | |||
target="RFC8362"/></t> | <li pn="section-10.2-3.2">OSPFv3 Inter-Area-Router TLV, as defined in | |||
</list></t> | <xref target="RFC8362" format="default" sectionFormat="of" derivedContent="RFC83 | |||
62"/>.</li> | ||||
<t>OSPF FAAM Sub-TLV has the following format: <figure> | </ul> | |||
<artwork><![CDATA[ | <t indent="0" pn="section-10.2-4">The OSPF FAAM sub-TLV has the followin | |||
g format: </t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-10.2-5"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Flex-Algorithm | Reserved | | |Flex-Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</artwork> | ||||
where: | <dl newline="true" spacing="normal" indent="3" pn="section-10.2-6"> | |||
]]></artwork> | <dt pn="section-10.2-6.1">where:</dt> | |||
</figure> <list style="hanging"> | <dd pn="section-10.2-6.2"> | |||
<t>Type: 1 for OSPFv2, 33 for OSPFv3</t> | <dl newline="false" spacing="normal" indent="3" pn="section-10.2-6.2 | |||
.1"> | ||||
<t>Length: 8 octets</t> | <dt pn="section-10.2-6.2.1.1">Type:</dt> | |||
<dd pn="section-10.2-6.2.1.2">1 for OSPFv2, and 33 for OSPFv3</dd> | ||||
<t>Flex-Algorithm: Single octet value between 128 and 255 | <dt pn="section-10.2-6.2.1.3">Length:</dt> | |||
inclusive.</t> | <dd pn="section-10.2-6.2.1.4">8 octets</dd> | |||
<dt pn="section-10.2-6.2.1.5">Flex-Algorithm:</dt> | ||||
<t>Reserved: Three octets. MUST be set to 0, ignored at reception.</ | <dd pn="section-10.2-6.2.1.6">single octet value between 128 and 2 | |||
t> | 55 | |||
inclusive.</dd> | ||||
<t>Metric: 4 octets of metric information</t> | <dt pn="section-10.2-6.2.1.7">Reserved:</dt> | |||
</list></t> | <dd pn="section-10.2-6.2.1.8">3 octets. <bcp14>MUST</bcp14> be set | |||
to 0 and ignored at | ||||
<t>The OSPF FAAM Sub-TLV MAY appear multiple times in its parent TLV. | reception.</dd> | |||
<dt pn="section-10.2-6.2.1.9">Metric:</dt> | ||||
<dd pn="section-10.2-6.2.1.10">4 octets of metric information.</dd | ||||
> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t indent="0" pn="section-10.2-7">The OSPF FAAM sub-TLV <bcp14>MAY</bcp1 | ||||
4> appear multiple times in its parent TLV. | ||||
If it appears more than once with the same Flex-Algorithm value, the | If it appears more than once with the same Flex-Algorithm value, the | |||
first instance MUST be used and any subsequent instances MUST be | first instance <bcp14>MUST</bcp14> be used and any subsequent instances <bcp14>MUST</bcp14> be | |||
ignored.</t> | ignored.</t> | |||
<t indent="0" pn="section-10.2-8">The advertisement of the ASBR reachabi | ||||
<t>The advertisement of the ASBR reachability using the OSPF FAAM | lity using the OSPF FAAM | |||
Sub-TLV inside the OSPFv2 EIA-ASBR LSA follows Section 12.4.3 of | sub-TLV inside the OSPFv2 EIA-ASBR LSA follows <xref target="RFC2328" se | |||
<xref target="RFC2328"/> and inside the OSPFv3 E-Inter-Area-Router LSA | ction="12.4.3" sectionFormat="of" format="default" derivedLink="https://rfc-edit | |||
follows Section 4.8.5 of <xref target="RFC5340"/>. The | or.org/rfc/rfc2328#section-12.4.3" derivedContent="RFC2328"/> and inside the OSP | |||
Fv3 E-Inter-Area-Router-LSA | ||||
follows <xref target="RFC5340" section="4.8.5" sectionFormat="of" format | ||||
="default" derivedLink="https://rfc-editor.org/rfc/rfc5340#section-4.8.5" derive | ||||
dContent="RFC5340"/>. The | ||||
reachability of the ASBR is evaluated in the context of the specific | reachability of the ASBR is evaluated in the context of the specific | |||
Flex-Algorithm.</t> | Flex-Algorithm.</t> | |||
<t indent="0" pn="section-10.2-9">The FAAM computed by the ABR will be e | ||||
<t>The FAAM computed by the ABR will be equal to the metric to reach | qual to the metric to reach | |||
the ASBR for a given Flex-Algorithm in a source area or the cumulative | the ASBR for a given Flex-Algorithm in a source area or the cumulative | |||
metric via other ABR(s) when the ASBR is in a remote area. This is | metric via an ABR(s) when the ASBR is in a remote area. This is | |||
similar in nature to how the metric is set when the ASBR reachability | similar in nature to how the metric is set when the ASBR reachability | |||
metric is computed in the default algorithm for the metric in the | metric is computed in the default algorithm for the metric in the | |||
OSPFv2 Type 4 ASBR Summary LSA and the OSPFv3 Inter-Area-Router | OSPFv2 Type 4 ASBR summary-LSA and the OSPFv3 Inter-Area-Router-LSA.</t> | |||
LSA.</t> | <t indent="0" pn="section-10.2-10">An OSPF ABR <bcp14>MUST NOT</bcp14> i | |||
nclude the OSPF FAAM sub-TLV with a specific | ||||
<t>An OSPF ABR MUST NOT include the OSPF FAAM Sub-TLV with a specific | ||||
Flex-Algorithm in its reachability advertisement for an ASBR between | Flex-Algorithm in its reachability advertisement for an ASBR between | |||
areas unless that ASBR is reachable for it in the context of that | areas unless that ASBR is reachable for it in the context of that | |||
specific Flex-Algorithm.</t> | specific Flex-Algorithm.</t> | |||
<t indent="0" pn="section-10.2-11">An OSPF ABR <bcp14>MUST</bcp14> inclu | ||||
<t>An OSPF ABR MUST include the OSPF FAAM Sub-TLVs as part of the ASBR | de the OSPF FAAM sub-TLVs as part of the ASBR | |||
reachability advertisement between areas for any Flex-Algorithm for | reachability advertisement between areas for any Flex-Algorithm for | |||
which the winning FAD includes the M-flag and the ASBR is reachable | which the winning FAD includes the M-flag and the ASBR is reachable | |||
in the context of that specific Flex-Algorithm.</t> | in the context of that specific Flex-Algorithm.</t> | |||
<t indent="0" pn="section-10.2-12">OSPF routers <bcp14>MUST</bcp14> use | ||||
<t>OSPF routers MUST use the OSPF FAAM Sub-TLV to calculate the | the OSPF FAAM sub-TLV to calculate the | |||
reachability of the ASBRs if the winning FAD for the specific Flex- | reachability of the ASBRs if the winning FAD for the specific Flex- | |||
Algorithm includes the M-flag. OSPF routers MUST NOT use the OSPF FAAM | Algorithm includes the M-flag. OSPF routers <bcp14>MUST NOT</bcp14> use | |||
Sub-TLV to calculate the reachability of the ASBRs for the specific | 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 | 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 | include the M-flag. Instead, the OSPFv2 Type 4 summary-LSAs or the | |||
OSPFv3 Inter-Area-Router-LSAs MUST be used instead as specified in | OSPFv3 Inter-Area-Router-LSAs <bcp14>MUST</bcp14> be used, as specified | |||
section 16.2 of <xref target="RFC2328"/> and section 4.8.5 of <xref | in | |||
target="RFC5340"/> for OSPFv2 and OSPFv3 respectively.</t> | <xref target="RFC2328" section="16.2" sectionFormat="of" format="default | |||
" derivedLink="https://rfc-editor.org/rfc/rfc2328#section-16.2" derivedContent=" | ||||
<t>The processing of a new or changed OSPF FAAM Sub-TLV triggers the | RFC2328"/> and <xref target="RFC5340" section="4.8.5" sectionFormat="of" format= | |||
processing of External routes similar to what is described in | "default" derivedLink="https://rfc-editor.org/rfc/rfc5340#section-4.8.5" derived | |||
section 16.5 of the <xref target="RFC2328"/> for OSPFv2 and section | Content="RFC5340"/> for OSPFv2 and OSPFv3, respectively.</t> | |||
4.8.5 of <xref target="RFC5340"/> for OSPFv3 for the specific | <t indent="0" pn="section-10.2-13">The processing of a new or changed OS | |||
Flex-Algorithm. The External and NSSA External route calculation | PF FAAM sub-TLV triggers the | |||
should be limited to Flex-Algorithm(s) for which the winning FAD(s) | processing of external routes similar to what is described in | |||
<xref target="RFC2328" format="default" sectionFormat="of" section="16.5 | ||||
" derivedLink="https://rfc-editor.org/rfc/rfc2328#section-16.5" derivedContent=" | ||||
RFC2328"/> for OSPFv2 and <xref target="RFC5340" section="4.8.5" sectionFormat=" | ||||
of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5340#section-4.8 | ||||
.5" derivedContent="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.</t> | includes the M-flag.</t> | |||
<t indent="0" pn="section-10.2-14">Processing of the OSPF FAAM sub-TLV d | ||||
<t>Processing of the OSPF FAAM Sub-TLV does not require the existence | oes not require the existence | |||
of the equivalent OSPFv2 Type 4 Summary LSA or the OSPFv3 | of the equivalent OSPFv2 Type 4 summary-LSA or the OSPFv3 | |||
Inter-Area-Router-LSA that is advertised by the same ABR inside the | 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 | area. The presence of the base LSA is not mandatory for the usage of the | |||
extended LSA with the OSPF FAAM Sub-TLV.</t> | extended LSA with the OSPF FAAM sub-TLV.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="FLEXALGPART" numbered="true" toc="include" removeInRFC="fal | ||||
<section anchor="FLEXALGPART" | se" pn="section-11"> | |||
title="Advertisement of Node Participation in a Flex-Algorithm"> | <name slugifiedName="name-advertisement-of-node-parti">Advertisement of No | |||
<t>When a router is configured to participate in a particular Flex-Algorit | de Participation in a Flex-Algorithm</name> | |||
hm and | <t indent="0" pn="section-11-1">When a router is configured to participate | |||
in a particular Flex-Algorithm and | ||||
is advertising such participation, it is participating in that Flex-Algori thm.</t> | is advertising such participation, it is participating in that Flex-Algori thm.</t> | |||
<t indent="0" pn="section-11-2">Paths for various data planes <bcp14>MAY</ | ||||
<t>Paths for various data-planes MAY be computed for a specific Flex-Algor | bcp14> be computed for a specific Flex-Algorithm. | |||
ithm. | Each data plane uses its own specific forwarding over such Flex-Algorithm | |||
Each data-plane uses its own specific forwarding over such Flex-Algorithm | paths. | |||
paths. | To guarantee the presence of the data-plane-specific forwarding, associate | |||
To guarantee the presence of the data-plane specific forwarding, associate | d with | |||
d with | a particular Flex-Algorithm, a router <bcp14>MUST</bcp14> advertise its pa | |||
a particular Flex-Algorithm, a router MUST advertise its participation for | rticipation for a | |||
a | particular Flex-Algorithm for each data plane. Some data planes may share | |||
particular Flex-Algorithm for each data-plane. Some data-planes may share | a common | |||
a common | participation advertisement (e.g., SR-MPLS and SRv6).</t> | |||
participation advertisement (e.g. SR-MPLS and SRv6).</t> | <t indent="0" pn="section-11-3">Advertisement of the participation for any | |||
particular Flex-Algorithm in any | ||||
<t>Advertisement of the participation for any particular Flex-Algorithm in | data plane is subject to the condition specified in | |||
any | <xref target="COMMONLEXALGTLV" format="default" sectionFormat="of" deriv | |||
data-plane is subject to the condition specified in | edContent="Section 5.3"/>.</t> | |||
<xref target="COMMONLEXALGTLV"/>.</t> | <section anchor="FLEXALGPARTSR" numbered="true" toc="include" removeInRFC= | |||
"false" pn="section-11.1"> | ||||
<section anchor="FLEXALGPARTSR" | <name slugifiedName="name-advertisement-of-node-partic">Advertisement of | |||
title="Advertisement of Node Participation for Segment Routing"> | Node Participation for Segment Routing</name> | |||
<t><xref target="RFC8667"/>, <xref target="RFC8665"/>, and <xref | <t indent="0" pn="section-11.1-1"><xref target="RFC8665" format="default | |||
target="RFC8666"/> (IGP Segment Routing extensions) describe how the | " sectionFormat="of" derivedContent="RFC8665"/>, <xref target="RFC8666" format=" | |||
default" sectionFormat="of" derivedContent="RFC8666"/>, and <xref target="RFC866 | ||||
7" format="default" sectionFormat="of" derivedContent="RFC8667"/> (IGP Segment R | ||||
outing extensions) describe how the | ||||
SR-Algorithm is used to compute the IGP best path.</t> | SR-Algorithm is used to compute the IGP best path.</t> | |||
<t indent="0" pn="section-11.1-2">Routers advertise support for the SR-A | ||||
<t>Routers advertise support for the SR-Algorithm as a node | lgorithm as a node | |||
capability as described in the above-mentioned IGP Segment Routing | capability, as described in the above-mentioned IGP Segment Routing | |||
extensions. To advertise participation for a particular Flex-Algorithm | extensions. To advertise participation for a particular Flex-Algorithm | |||
for Segment Routing, including both SR-MPLS and SRv6, the | for Segment Routing, including both SR-MPLS and SRv6, the | |||
Flex-Algorithm value MUST be advertised in the SR-Algorithm TLV (OSPF) | Flex-Algorithm value <bcp14>MUST</bcp14> be advertised in the SR-Algorit hm TLV (OSPF) | |||
or sub-TLV (IS-IS).</t> | or sub-TLV (IS-IS).</t> | |||
<t indent="0" pn="section-11.1-3">Segment Routing Flex-Algorithm partici | ||||
<t>Segment Routing Flex-Algorithm participation advertisement is | pation advertisement is | |||
topology independent. When a router advertises participation in an | topology independent. When a router advertises participation in an | |||
SR-Algorithm, the participation applies to all topologies in which the | SR-Algorithm, the participation applies to all topologies in which the | |||
advertising node participates.</t> | advertising node participates.</t> | |||
</section> | </section> | |||
<section anchor="FLEXALGPARTOTHER" numbered="true" toc="include" removeInR | ||||
<section anchor="FLEXALGPARTOTHER" | FC="false" pn="section-11.2"> | |||
title="Advertisement of Node Participation for Other Data-planes" | <name slugifiedName="name-advertisement-of-node-partici">Advertisement o | |||
> | f Node Participation for Other Data Planes</name> | |||
<t>This section describes considerations related to how other | <t indent="0" pn="section-11.2-1">This section describes considerations | |||
data-planes can advertise their participation in a specific | related to how other | |||
data planes can advertise their participation in a specific | ||||
Flex-Algorithm.</t> | Flex-Algorithm.</t> | |||
<t indent="0" pn="section-11.2-2">Data-plane-specific Flex-Algorithm par | ||||
<t>Data-plane specific Flex-Algorithm participation advertisements | ticipation advertisements | |||
MAY be topology specific or MAY be topology independent, depending on | <bcp14>MAY</bcp14> be topology specific or <bcp14>MAY</bcp14> be topolog | |||
the data-plane itself.</t> | y independent, depending on | |||
the data plane itself.</t> | ||||
<t>Data-plane specific advertisement for Flex-Algorithm participation | <t indent="0" pn="section-11.2-3">Data-plane-specific advertisement for | |||
MUST be defined for each data-plane and is outside the scope of | Flex-Algorithm participation | |||
<bcp14>MUST</bcp14> be defined for each data plane and is outside the sc | ||||
ope of | ||||
this document.</t> | this document.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="FLEXALGLINKATTR" numbered="true" toc="include" removeInRFC= | ||||
<section anchor="FLEXALGLINKATTR" | "false" pn="section-12"> | |||
title="Advertisement of Link Attributes for Flex-Algorithm"> | <name slugifiedName="name-advertisement-of-link-attri">Advertisement of Li | |||
<t>Various link attributes may be used during the Flex-Algorithm path | nk Attributes for Flex-Algorithm</name> | |||
<t indent="0" pn="section-12-1">Various link attributes may be used during | ||||
the Flex-Algorithm path | ||||
calculation. For example, include or exclude rules based on link | calculation. For example, include or exclude rules based on link | |||
affinities can be part of the Flex-Algorithm definition as defined in | affinities can be part of the Flex-Algorithm Definition, as defined in Sec | |||
<xref target="ISISFADLTLVS"/> and <xref target="OSPFFADLTLVS"/>.</t> | tions | |||
<xref target="ISISFADLTLVS" format="counter" sectionFormat="of" derivedCon | ||||
<t>Application-specific link attributes, as specified in | tent="6"/> and <xref target="OSPFFADLTLVS" format="counter" sectionFormat="of" d | |||
<xref target="RFC8919"/> or <xref target="RFC8920"/>, | erivedContent="7"/>.</t> | |||
that are to be used during Flex-Algorithm calculation MUST use the | <t indent="0" pn="section-12-2">Application-specific link attributes, as s | |||
pecified in | ||||
<xref target="RFC8919" format="default" sectionFormat="of" derivedContent= | ||||
"RFC8919"/> or <xref target="RFC8920" format="default" sectionFormat="of" derive | ||||
dContent="RFC8920"/>, | ||||
that are to be used during Flex-Algorithm calculation <bcp14>MUST</bcp14> | ||||
use the | ||||
Application-Specific Link Attribute (ASLA) advertisements defined in | Application-Specific Link Attribute (ASLA) advertisements defined in | |||
<xref target="RFC8919"/> or <xref target="RFC8920"/>, unless, in the case | <xref target="RFC8919" format="default" sectionFormat="of" derivedContent= | |||
of IS-IS, | "RFC8919"/> or <xref target="RFC8920" format="default" sectionFormat="of" deriv | |||
the L-Flag is set in the ASLA advertisement. When the L-Flag is set, then | edContent="RFC8920"/> unless, in the case of IS-IS, | |||
legacy | the L-flag is set in the ASLA advertisement. When the L-flag is set, then | |||
advertisements MUST be used, subject to the procedures and constraints def | legacy | |||
ined in | advertisements <bcp14>MUST</bcp14> be used, subject to the procedures and | |||
[<xref target="RFC8919"/> Section 4.2 and Section 6.</t> | constraints defined in | |||
<xref target="RFC8919" section="4.2" sectionFormat="of" format="default" d | ||||
<t>The mandatory use of ASLA advertisements applies to link attributes | erivedLink="https://rfc-editor.org/rfc/rfc8919#section-4.2" derivedContent="RFC8 | |||
919"/> and <xref target="ISISFADLTLVS" format="default" sectionFormat="of" deriv | ||||
edContent="Section 6"/>.</t> | ||||
<t indent="0" pn="section-12-3">The mandatory use of ASLA advertisements a | ||||
pplies to link attributes | ||||
specifically mentioned in this document (Min Unidirectional Link Delay, | specifically mentioned in this document (Min Unidirectional Link Delay, | |||
TE Default Metric, Administrative Group, Extended Administrative Group | TE Default Metric, Administrative Group, Extended Administrative Group, | |||
and Shared Risk Link Group) and any other link attributes that may be | and Shared Risk Link Group) and any other link attributes that may be | |||
used in support of Flex-Algorithm in the future.</t> | used in support of Flex-Algorithm in the future.</t> | |||
<t indent="0" pn="section-12-4">A new Application Identifier Bit is define | ||||
<t>A new Application Identifier Bit is defined to indicate that the ASLA | d to indicate that the ASLA | |||
advertisement is associated with the Flex-Algorithm application. This | advertisement is associated with the Flex-Algorithm application. This | |||
bit is set in the Standard Application Bit Mask (SABM) defined in <xref | bit is set in the Standard Application Bit Mask (SABM) defined in <xref ta | |||
target="RFC8919"/> or <xref target="RFC8920"/>: <list style="hanging"> | rget="RFC8919" format="default" sectionFormat="of" derivedContent="RFC8919"/> or | |||
<t>Bit-3: Flexible Algorithm (X-bit)</t> | <xref target="RFC8920" format="default" sectionFormat="of" derivedContent="RFC8 | |||
</list></t> | 920"/>: </t> | |||
<dl newline="false" spacing="normal" indent="3" pn="section-12-5"> | ||||
<t>ASLA Admin Group Advertisements to be used by the Flexible Algorithm | <dt pn="section-12-5.1">Bit 3:</dt> | |||
application MAY use either the Administrative Group or Extended | <dd pn="section-12-5.2">Flexible Algorithm (X-bit)</dd> | |||
</dl> | ||||
<t indent="0" pn="section-12-6">ASLA Admin Group Advertisements to be used | ||||
by the Flexible Algorithm | ||||
application <bcp14>MAY</bcp14> use either the Administrative Group or Exte | ||||
nded | ||||
Administrative Group encodings.</t> | Administrative Group encodings.</t> | |||
<t indent="0" pn="section-12-7">A receiver supporting this specification < | ||||
<t>A receiver supporting this specification MUST accept both ASLA | bcp14>MUST</bcp14> accept both ASLA | |||
Administrative Group and Extended Administrative Group TLVs as defined in | Administrative Group and Extended Administrative Group TLVs, as defined in | |||
<xref target="RFC8919"/> or <xref target="RFC8920"/>. In the case of IS-IS | <xref target="RFC8919" format="default" sectionFormat="of" derivedContent= | |||
, if | "RFC8919"/> or <xref target="RFC8920" format="default" sectionFormat="of" derive | |||
the L-Flag is set in ASLA advertisement, as defined in <xref target="RFC89 | dContent="RFC8920"/>. In the case of IS-IS, if | |||
19"/> | the L-flag is set in the ASLA advertisement, as defined in <xref target="R | |||
Section 4.2, then the receiver MUST be able to accept both Administrative | FC8919" section="4.2" sectionFormat="of" format="default" derivedLink="https://r | |||
Group TLV | fc-editor.org/rfc/rfc8919#section-4.2" derivedContent="RFC8919"/>, then the rece | |||
as defined in <xref target="RFC5305"/> and Extended Administrative Group T | iver <bcp14>MUST</bcp14> be able to accept both the Administrative Group TLV, | |||
LV as | as defined in <xref target="RFC5305" format="default" sectionFormat="of" d | |||
defined in <xref target="RFC7308"/>.</t> | erivedContent="RFC5305"/>, and the Extended Administrative Group TLV, as | |||
defined in <xref target="RFC7308" format="default" sectionFormat="of" deri | ||||
</section> | vedContent="RFC7308"/>.</t> | |||
</section> | ||||
<section anchor="FLEXALGPATHCALC" | <section anchor="FLEXALGPATHCALC" numbered="true" toc="include" removeInRFC= | |||
title="Calculation of Flexible Algorithm Paths"> | "false" pn="section-13"> | |||
<t>A router MUST be configured to participate in a given Flex-Algorithm | <name slugifiedName="name-calculation-of-flexible-alg">Calculation of Flex | |||
K and MUST select the FAD based on the rules defined in <xref | ible Algorithm Paths</name> | |||
target="COMMONLEXALGTLV"/> before it can compute any path for that | <t indent="0" pn="section-13-1">A router <bcp14>MUST</bcp14> be configured | |||
to participate in a given Flex-Algorithm | ||||
K and <bcp14>MUST</bcp14> select the FAD based on the rules defined in <xr | ||||
ef target="COMMONLEXALGTLV" format="default" sectionFormat="of" derivedContent=" | ||||
Section 5.3"/> before it can compute any path for that | ||||
Flex-Algorithm.</t> | Flex-Algorithm.</t> | |||
<t indent="0" pn="section-13-2">No specific two-way connectivity check is | ||||
<t>No specific two-way connectivity check is performed during the Flex-Alg | performed during the Flex-Algorithm | |||
orithm | path computation. The result of the existing Flex-Algorithm-agnostic, two- | |||
path computation. The result of the existing, Flex-Algorithm agnostic, two | way | |||
-way | ||||
connectivity check is used during the Flex-Algorithm path computation.</t> | connectivity check is used during the Flex-Algorithm path computation.</t> | |||
<t indent="0" pn="section-13-3">As described in <xref target="FLEXALGPART" | ||||
<t>As described in <xref target="FLEXALGPART"/>, participation for any | format="default" sectionFormat="of" derivedContent="Section 11"/>, participatio | |||
particular Flex-Algorithm MUST be advertised on a per data-plane basis. | n for any | |||
particular Flex-Algorithm <bcp14>MUST</bcp14> be advertised on a per data | ||||
plane basis. | ||||
Calculation of the paths for any particular Flex-Algorithm is | Calculation of the paths for any particular Flex-Algorithm is | |||
data-plane specific.</t> | data plane specific.</t> | |||
<t indent="0" pn="section-13-4">Multiple data planes <bcp14>MAY</bcp14> us | ||||
<t>Multiple data-planes MAY use the same Flex-Algorithm value at the | e the same Flex-Algorithm value at the | |||
same time, and as such, share the FAD for it. Traffic for each data-plane | 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.</t> | will be forwarded based on the data-plane-specific forwarding entries.</t> | |||
<t indent="0" pn="section-13-5">The Flex-Algorithm Definition is data plan | ||||
<t>Flex-Algorithm definition is data-plane independent and is used by | e independent and is used by | |||
all Flex-Algorithm data-planes.</t> | all Flex-Algorithm data planes.</t> | |||
<t indent="0" pn="section-13-6">The way various data planes handle nodes t | ||||
<t>The way various data-planes handle nodes that do not participate in | hat do not participate in | |||
Flexible Algorithm is data-plane specific. If the data-plane only | Flexible Algorithm is data plane specific. If the data plane only | |||
wants to consider participating nodes during the Flex-Algorithm | wants to consider participating nodes during the Flex-Algorithm | |||
calculation, then when computing paths for a given Flex-Algorithm, all | calculation, then when computing paths for a given Flex-Algorithm, all | |||
nodes that do not advertise participation for that Flex-Algorithm in | nodes that do not advertise participation for that Flex-Algorithm in | |||
their data-plane specific advertisements MUST be pruned from the | their data-plane-specific advertisements <bcp14>MUST</bcp14> be pruned fro m the | |||
topology. Segment Routing, including both SR-MPLS and SRv6, are | topology. Segment Routing, including both SR-MPLS and SRv6, are | |||
data-planes that MUST use such pruning when computing Flex-Algorithm | data planes that <bcp14>MUST</bcp14> use such pruning when computing Flex- Algorithm | |||
paths.</t> | paths.</t> | |||
<t indent="0" pn="section-13-7">When computing the path for a given Flex-A | ||||
<t>When computing the path for a given Flex-Algorithm, the metric-type | lgorithm, the metric-type | |||
that is part of the Flex-Algorithm definition (<xref | that is part of the Flex-Algorithm Definition (<xref target="FLEXALGDEF" f | |||
target="FLEXALGDEF"/>) MUST be used.</t> | ormat="default" sectionFormat="of" derivedContent="Section 5"/>) <bcp14>MUST</bc | |||
p14> be used.</t> | ||||
<t>When computing the path for a given Flex-Algorithm, the | <t indent="0" pn="section-13-8">When computing the path for a given Flex-A | |||
calculation-type that is part of the Flex-Algorithm definition (<xref | lgorithm, the | |||
target="FLEXALGDEF"/>) MUST be used.</t> | calculation-type that is part of the Flex-Algorithm Definition (<xref targ | |||
et="FLEXALGDEF" format="default" sectionFormat="of" derivedContent="Section 5"/> | ||||
<t>Various link include or exclude rules can be part of the | ) <bcp14>MUST</bcp14> be used.</t> | |||
Flex-Algorithm definition. To refer to a particular bit within an Admin Gr | <t indent="0" pn="section-13-9">Various links that include or exclude rule | |||
oup or | s can be part of the | |||
Extended Admin Group we use the term 'color'.</t> | Flex-Algorithm Definition. To refer to a particular bit within an Admin Gr | |||
oup or | ||||
<t>Rules, in the order as specified below, MUST be used to prune links | Extended Admin Group, we use the term "color".</t> | |||
<t indent="0" pn="section-13-10">Rules, in the order as specified below, < | ||||
bcp14>MUST</bcp14> be used to prune links | ||||
from the topology during the Flex-Algorithm computation.</t> | from the topology during the Flex-Algorithm computation.</t> | |||
<t indent="0" pn="section-13-11">For all links in the topology: </t> | ||||
<t>For all links in the topology: <list style="hanging"> | <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-13-1 | |||
<t>1. Check if any exclude AG rule is part of the Flex-Algorithm | 2"> | |||
definition. If such exclude rule exists, check if any color that is | <li pn="section-13-12.1" derivedCounter="1.">Check if any exclude Admini | |||
part of the exclude rule is also set on the link. If such a color is | strative Group rule is part of the Flex-Algorithm | |||
set, the link MUST be pruned from the computation.</t> | 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 | ||||
<t>2. Check if any exclude SRLG rule is part of the Flex-Algorithm | set, the link <bcp14>MUST</bcp14> be pruned from the computation.</li> | |||
definition. If such exclude rule exists, check if the link is part | <li pn="section-13-12.2" derivedCounter="2.">Check if any exclude SRLG r | |||
of any SRLG that is also part of the SRLG exclude rule. If the link | ule is part of the Flex-Algorithm | |||
is part of such SRLG, the link MUST be pruned from the | Definition. If such exclude rule exists, check if the link is part | |||
computation.</t> | of any SRLG that is also part of the SRLG exclude rule. If the link | |||
is part of such SRLG, the link <bcp14>MUST</bcp14> be pruned from the | ||||
<t>3. Check if any include-any AG rule is part of the Flex-Algorithm | computation.</li> | |||
definition. If such include-any rule exists, check if any color that | <li pn="section-13-12.3" derivedCounter="3.">Check if any include-any Ad | |||
is part of the include-any rule is also set on the link. If no such | ministrative Group rule is part of the Flex-Algorithm | |||
color is set, the link MUST be pruned from the computation.</t> | 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 | ||||
<t>4. Check if any include-all AG rule is part of the Flex-Algorithm | color is set, the link <bcp14>MUST</bcp14> be pruned from the computatio | |||
definition. If such include-all rule exists, check if all colors | n.</li> | |||
that are part of the include-all rule are also set on the link. If | <li pn="section-13-12.4" derivedCounter="4.">Check if any include-all Ad | |||
all such colors are not set on the link, the link MUST be pruned | ministrative Group rule is part of the Flex-Algorithm | |||
from the computation.</t> | 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 | ||||
<t>5. If the Flex-Algorithm definition uses other than IGP metric | all such colors are not set on the link, the link <bcp14>MUST</bcp14> be | |||
(<xref target="FLEXALGDEF"/>), and such metric is not advertised for | pruned | |||
the particular link in a topology for which the computation is done, | from the computation.</li> | |||
such link MUST be pruned from the computation. A metric of value 0 | <li pn="section-13-12.5" derivedCounter="5.">If the Flex-Algorithm Defin | |||
MUST NOT be assumed in such a case.</t> | ition uses something other than the IGP metric | |||
</list></t> | (<xref target="FLEXALGDEF" format="default" sectionFormat="of" derivedCo | |||
ntent="Section 5"/>), and such metric is not | ||||
<section anchor="FLEXALGPATHCALCINTER" | advertised for the particular link in a topology for which the computatio | |||
title="Multi-area and Multi-domain Considerations"> | n is | |||
<t>Any IGP Shortest Path Tree calculation is limited to a single area. | done, such link <bcp14>MUST</bcp14> be pruned from the computation. A met | |||
ric of | ||||
value 0 <bcp14>MUST NOT</bcp14> be assumed in such a case.</li> | ||||
</ol> | ||||
<section anchor="FLEXALGPATHCALCINTER" numbered="true" toc="include" remov | ||||
eInRFC="false" pn="section-13.1"> | ||||
<name slugifiedName="name-multi-area-and-multi-domain">Multi-area and Mu | ||||
lti-domain Considerations</name> | ||||
<t indent="0" pn="section-13.1-1">Any IGP Shortest Path Tree calculation | ||||
is limited to a single area. | ||||
This applies to Flex-Algorithm calculations as well. Given that the | This applies to Flex-Algorithm calculations as well. Given that the | |||
computing router does not have visibility of the topology of the next | computing router does not have visibility of the topology of the next | |||
areas or domain, the Flex-Algorithm specific path to an inter-area or | areas or domain, the Flex-Algorithm-specific path to an inter-area or | |||
inter-domain prefix will be computed for the local area only. The | inter-domain prefix will be computed for the local area only. The | |||
egress L1/L2 router (ABR in OSPF), or ASBR for inter-domain case, will | egress L1/L2 router (ABR in OSPF), or ASBR for an inter-domain case, wil l | |||
be selected based on the best path for the given Flex-Algorithm in the | 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 | 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 | compute the best Flex-Algorithm-specific path over the next area or | |||
domain. This may produce an end-to-end path, which is suboptimal | domain. This may produce an end-to-end path, which is suboptimal | |||
based on Flex-Algorithm constraints. In cases where the ABR or ASBR | 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 | 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.</t> | area or domain, the traffic could be dropped by the ABR/ASBR.</t> | |||
<t indent="0" pn="section-13.1-2">To allow the optimal end-to-end path f | ||||
<t>To allow the optimal end-to-end path for an inter-area or | or an inter-area or | |||
inter-domain prefix for any Flex-Algorithm to be computed, the FAPM | inter-domain prefix for any Flex-Algorithm to be computed, the FAPM | |||
has been defined in <xref target="ISISFLEXMETRIC"/> and <xref | has been defined in Sections <xref target="ISISFLEXMETRIC" format="count | |||
target="OSPFFLEXMETRIC"/>. For external route calculation for prefixes | er" sectionFormat="of" derivedContent="8"/> | |||
originated by ASBRs in remote areas in OSPF, the FAAM has been defined | and <xref target="OSPFFLEXMETRIC" format="counter" sectionFormat="of" der | |||
in <xref target="OSPFFAASBRMETRIC"/> for the ABR to indicate its ASBR | ivedContent="9"/>. For external route | |||
reachability along with the metric for the specific | calculation for prefixes originated by ASBRs in remote areas in OSPF, the | |||
FAAM | ||||
has been defined in <xref target="OSPFFAASBRMETRIC" format="default" sect | ||||
ionFormat="of" derivedContent="Section 10.2"/> for the | ||||
ABR to indicate its ASBR reachability along with the metric for the speci | ||||
fic | ||||
Flex-Algorithm.</t> | Flex-Algorithm.</t> | |||
<t indent="0" pn="section-13.1-3">If the FAD selected based on the rules | ||||
<t>If the FAD selected based on the rules defined in <xref | defined in <xref target="COMMONLEXALGTLV" format="default" sectionFormat="of" d | |||
target="COMMONLEXALGTLV"/> includes the M-flag, an ABR or ASBR MUST | erivedContent="Section 5.3"/> includes the M-flag, an ABR or an ASBR | |||
include the FAPM (<xref target="ISISFLEXMETRIC"/>, <xref | <bcp14>MUST</bcp14> include the FAPM (see Sections <xref target="ISISFLEX | |||
target="OSPFFLEXMETRIC"/>) when advertising the prefix, that is | METRIC" format="counter" sectionFormat="of" derivedContent="8"/> and <xref targe | |||
reachable in a given Flex-Algorithm, between areas or domains. Such | t="OSPFFLEXMETRIC" format="counter" sectionFormat="of" derivedContent="9"/>) whe | |||
n | ||||
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 | 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 | 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 | 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 | 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 | source area or domain in a specific Flex-Algorithm, then an ABR or | |||
ASBR MUST NOT include the FAPM for that Flex-Algorithm when | ASBR <bcp14>MUST NOT</bcp14> include the FAPM for that Flex-Algorithm wh en | |||
advertising the prefix between areas or domains.</t> | advertising the prefix between areas or domains.</t> | |||
<t indent="0" pn="section-13.1-4">If the FAD selected based on the rules | ||||
<t>If the FAD selected based on the rules defined in <xref | defined in <xref target="COMMONLEXALGTLV" format="default" sectionFormat="of" d | |||
target="COMMONLEXALGTLV"/> includes the M-flag, the FAPM MUST be used | erivedContent="Section 5.3"/> includes the M-flag, the FAPM <bcp14>MUST</bcp14> | |||
be used | ||||
during the calculation of prefix reachability for the inter-area and | during the calculation of prefix reachability for the inter-area and | |||
external prefixes. If the FAPM for the Flex-Algorithm is not | external prefixes. If the FAPM for the Flex-Algorithm is not | |||
advertised with the inter-area or external prefix reachability | advertised with the inter-area or external prefix reachability | |||
advertisement, the prefix MUST be considered as unreachable for that | advertisement, the prefix <bcp14>MUST</bcp14> be considered as unreachab le for that | |||
Flex-Algorithm. Similarly, in the case of OSPF, for ASBRs in remote | 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 | 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 | <bcp14>MUST</bcp14> be considered as unreachable for that Flex-Algorithm , and the | |||
external prefix advertisements from such an ASBR are not considered | external prefix advertisements from such an ASBR are not considered | |||
for that Flex-Algorithm.</t> | for that Flex-Algorithm.</t> | |||
<t indent="0" pn="section-13.1-5">The Flex-Algorithm prefix metrics and | ||||
<t>Flex-Algorithm prefix metrics and the OSPF Flex-Algorithm ASBR | the OSPF Flex-Algorithm ASBR | |||
metrics MUST NOT be used during the Flex-Algorithm computation unless | metrics <bcp14>MUST NOT</bcp14> be used during the Flex-Algorithm comput | |||
the FAD selected based on the rules defined in <xref | ation | |||
target="COMMONLEXALGTLV"/> includes the M-Flag, as described in (<xref | unless the FAD selected based on the rules defined in <xref target="COMMO | |||
target="ISISFLEXALGFLAG"/> or <xref target="OSPFFLEXALGFLAG"/>).</t> | NLEXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.3"/> i | |||
ncludes the M-flag, as described in | ||||
<t>In the case of OSPF, when calculating external routes in a | Sections <xref target="ISISFLEXALGFLAG" format="counter" sectionFormat="o | |||
Flex-Algorithm, if the winning FAD includes the M-Flag, and where the | f" derivedContent="6.4"/> or <xref target="OSPFFLEXALGFLAG" format="counter" sec | |||
tionFormat="of" derivedContent="7.4"/>.</t> | ||||
<t indent="0" pn="section-13.1-6">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 | advertising ASBR is in a remote area, the metric will be the sum of | |||
the following:<list style="symbols"> | the following:</t> | |||
<t>the FAPM for that Flex-Algorithm advertised with the external | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | |||
route by the ASBR</t> | 3.1-7"> | |||
<li pn="section-13.1-7.1">the FAPM for that Flex-Algorithm advertised | ||||
<t>the metric to reach the ASBR for that Flex-Algorithm from the | with the external | |||
local ABR i.e., the FAAM for that Flex-Algorithm advertised by the | route by the ASBR</li> | |||
ABR in the local area for that ASBR</t> | <li pn="section-13.1-7.2">the metric to reach the ASBR for that Flex-A | |||
lgorithm from the | ||||
<t>the Flex-Algorithm specific metric to reach the local ABR</t> | local ABR, i.e., the FAAM for that Flex-Algorithm advertised by the | |||
</list>This is similar in nature to how the metric is calculated for | ABR in the local area for that ASBR</li> | |||
<li pn="section-13.1-7.3">the Flex-Algorithm-specific metric to reach | ||||
the local ABR</li> | ||||
</ul> | ||||
<t indent="0" pn="section-13.1-8">This is similar in nature to how the m | ||||
etric is calculated for | ||||
routes learned from remote ASBRs in the default algorithm using the | routes learned from remote ASBRs in the default algorithm using the | |||
OSPFv2 Type 4 ASBR Summary LSA and the OSPFv3 Inter-Area-Router | OSPFv2 Type 4 ASBR summary-LSA and the OSPFv3 Inter-Area-Router-LSA.</t> | |||
LSA.</t> | <t indent="0" pn="section-13.1-9">If the FAD selected based on the rules | |||
defined in <xref target="COMMONLEXALGTLV" format="default" sectionFormat="of" d | ||||
<t>If the FAD selected based on the rules defined in <xref | erivedContent="Section 5.3"/> does not include the M-flag, then the IGP | |||
target="COMMONLEXALGTLV"/> does not include the M-flag, then the IGP | ||||
metrics associated with the prefix reachability advertisements used by | metrics associated with the prefix reachability advertisements used by | |||
the base IS-IS and OSPF protocol MUST be used for the Flex-Algorithm | the base IS-IS and OSPF protocol <bcp14>MUST</bcp14> be used for the Fle x-Algorithm | |||
route computation. Similarly, in the case of external route | route computation. Similarly, in the case of external route | |||
calculations in OSPF, the ASBR reachability is determined based on the | calculations in OSPF, the ASBR reachability is determined based on the | |||
base OSPFv2 Type 4 Summary LSA and the OSFPv3 Inter-Area-Router | base OSPFv2 Type 4 summary-LSA and the OSFPv3 Inter-Area-Router-LSA.</t> | |||
LSA.</t> | <t indent="0" pn="section-13.1-10">It is <bcp14>NOT RECOMMENDED</bcp14> | |||
to use the Flex-Algorithm for inter-area or | ||||
<t>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 | inter-domain prefix reachability without the M-flag set. The reason is | |||
that without the explicit Flex-Algorithm Prefix Metric advertisement | that, without the explicit Flex-Algorithm prefix metric advertisement | |||
(and the Flex-Algorithm ASBR metric advertisement in the case of OSPF | (and the Flex-Algorithm ASBR metric advertisement in the case of OSPF | |||
external route calculation), it is not possible to conclude whether | external route calculation), it is not possible to conclude whether | |||
the ABR or ASBR has reachability to the inter-area or inter-domain | 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 | 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 | the Flex-Algorithm traffic for such a prefix towards the ABR or ASBR may | |||
result in traffic looping or persistent traffic drop.</t> | result in traffic looping or persistent traffic drop.</t> | |||
<t indent="0" pn="section-13.1-11">During the route computation, it is p | ||||
<t>During the route computation, it is possible for the Flex-Algorithm | ossible for the Flex-Algorithm-specific | |||
specific metric to exceed the maximum value that can be stored in an | metric to exceed the maximum value that can be stored in an | |||
unsigned 32-bit variable. In such scenarios, the value MUST be | unsigned 32-bit variable. In such scenarios, the value <bcp14>MUST</bcp1 | |||
4> be | ||||
considered to be of value 0xFFFFFFFF during the computation and | considered to be of value 0xFFFFFFFF during the computation and | |||
advertised as such.</t> | advertised as such.</t> | |||
<t indent="0" pn="section-13.1-12">The FAPM <bcp14>MUST NOT</bcp14> be a | ||||
<t>The FAPM MUST NOT be advertised with IS-IS L1 or L2 intra-area, | dvertised with IS-IS L1 or L2 intra-area, | |||
OSPFv2 intra-area, or OSPFv3 intra-area routes. If the FAPM is | OSPFv2 intra-area, or OSPFv3 intra-area routes. If the FAPM is | |||
advertised for these route-types, it MUST be ignored during the prefix | advertised for these route-types, it <bcp14>MUST</bcp14> be ignored duri ng the prefix | |||
reachability calculation.</t> | reachability calculation.</t> | |||
<t indent="0" pn="section-13.1-13">The M-flag in the FAD is not applicab | ||||
<t>The M-flag in the FAD is not applicable to prefixes advertised as SRv | le to prefixes advertised as SRv6 | |||
6 | locators. The IS-IS SRv6 Locator TLV <xref target="RFC9352" format="defa | |||
locators. The IS-IS SRv6 Locator TLV <xref | ult" sectionFormat="of" derivedContent="RFC9352"/> includes the Algorithm | |||
target="I-D.ietf-lsr-isis-srv6-extensions"/> includes the Algorithm | ||||
and Metric fields. When the SRv6 Locator is advertised between areas | 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 | or domains, the Metric field in the Locator TLV of IS-IS <bcp14>MUST</bc p14> be used | |||
irrespective of the M-flag in the FAD advertisement.</t> | irrespective of the M-flag in the FAD advertisement.</t> | |||
<t indent="0" pn="section-13.1-14">OSPF external and NSSA external prefi | ||||
<t>OSPF external and NSSA external prefix advertisements MAY include a | x advertisements <bcp14>MAY</bcp14> include a | |||
non-zero forwarding address in the prefix advertisements in the base | non-zero forwarding address in the prefix advertisements in the base | |||
protocol. In such a scenario, the Flex-Algorithm specific reachability | protocol. In such a scenario, the Flex-Algorithm-specific reachability | |||
of the external prefix is determined by Flex-Algorithm specific | of the external prefix is determined by Flex-Algorithm-specific | |||
reachability of the forwarding address.</t> | reachability of the forwarding address.</t> | |||
<t indent="0" pn="section-13.1-15">In OSPF, the procedures for translati | ||||
<t>In OSPF, the procedures for translation of NSSA external prefix | on of NSSA external prefix | |||
advertisements into external prefix advertisements performed by an | advertisements into external prefix advertisements performed by an | |||
NSSA ABR <xref target="RFC3101"/> remain unchanged for Flex-Algorithm. | NSSA ABR <xref target="RFC3101" format="default" sectionFormat="of" deri | |||
An NSSA translator MUST include the OSPF FAPM Sub-TLVs for all | vedContent="RFC3101"/> remain unchanged for Flex-Algorithm. | |||
An NSSA translator <bcp14>MUST</bcp14> include the OSPF FAPM sub-TLVs fo | ||||
r all | ||||
Flex-Algorithms that are in the original NSSA external prefix | Flex-Algorithms that are in the original NSSA external prefix | |||
advertisement from the NSSA ASBR in the translated external prefix | advertisement from the NSSA ASBR in the translated external prefix | |||
advertisement generated by it regardless of its participation in those | advertisement generated by it, regardless of its participation in those | |||
Flex-Algorithms or its having reachability to the NSSA ASBR in those | Flex-Algorithms or its having reachability to the NSSA ASBR in those | |||
Flex-Algorithms.</t> | Flex-Algorithms.</t> | |||
<t indent="0" pn="section-13.1-16">An area could become partitioned from | ||||
<t>An area could become partitioned from the perspective of the Flex-Alg | the perspective of the Flex-Algorithm | |||
orithm | due to the constraints and/or metric being used for it while maintaining | |||
due to the constraints and/or metric being used for it, while maintainin | the | |||
g the | ||||
continuity in the base algorithm. When that happens, some destinations i nside that area | continuity in the base algorithm. When that happens, some destinations i nside that area | |||
could become unreachable in that Flex-Algorithm. These destinations will not be able | 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 | 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 | inter-area prefix reachability advertisement would not be available for these | |||
intra-area destinations within the area. It is RECOMMENDED to minimize t he risk of | intra-area destinations within the area. It is <bcp14>RECOMMENDED</bcp14 > to minimize the risk of | |||
such partitioning by providing enough redundancy inside the area for eac h | such partitioning by providing enough redundancy inside the area for eac h | |||
Flex-Algorithm being used.</t> | Flex-Algorithm being used.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="FLEXALFORW" numbered="true" toc="include" removeInRFC="fals | ||||
<section anchor="FLEXALFORW" title="Flex-Algorithm and Forwarding Plane"> | e" pn="section-14"> | |||
<t>This section describes how Flex-Algorithm paths are used in | <name slugifiedName="name-flex-algorithm-and-forwardi">Flex-Algorithm and | |||
Forwarding Plane</name> | ||||
<t indent="0" pn="section-14-1">This section describes how Flex-Algorithm | ||||
paths are used in | ||||
forwarding.</t> | forwarding.</t> | |||
<section anchor="FLEXALGPSRFORW" numbered="true" toc="include" removeInRFC | ||||
<section anchor="FLEXALGPSRFORW" | ="false" pn="section-14.1"> | |||
title="Segment Routing MPLS Forwarding for Flex-Algorithm"> | <name slugifiedName="name-segment-routing-mpls-forwar">Segment Routing M | |||
<t>This section describes how Flex-Algorithm paths are used with SR | PLS Forwarding for Flex-Algorithm</name> | |||
<t indent="0" pn="section-14.1-1">This section describes how Flex-Algori | ||||
thm paths are used with SR | ||||
MPLS forwarding.</t> | MPLS forwarding.</t> | |||
<t indent="0" pn="section-14.1-2">Prefix-SID advertisements include an S | ||||
<t>Prefix SID advertisements include an SR-Algorithm value and, as | R-Algorithm value and, as | |||
such, are associated with the specified SR-Algorithm. Prefix-SIDs are | such, are associated with the specified SR-Algorithm. Prefix-SIDs are | |||
also associated with a specific topology which is inherited from the | also associated with a specific topology that is inherited from the | |||
associated prefix reachability advertisement. When the algorithm value | associated prefix reachability advertisement. When the algorithm value | |||
advertised is a Flex-Algorithm value, the Prefix SID is associated | advertised is a Flex-Algorithm value, the Prefix-SID is associated | |||
with paths calculated using that Flex-Algorithm in the associated | with paths calculated using that Flex-Algorithm in the associated | |||
topology.</t> | topology.</t> | |||
<t indent="0" pn="section-14.1-3">A Flex-Algorithm path <bcp14>MUST</bcp | ||||
<t>A Flex-Algorithm path MUST be installed in the MPLS forwarding | 14> be installed in the MPLS forwarding | |||
plane using the MPLS label that corresponds to the Prefix-SID that was | 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 | advertised for that Flex-algorithm. If the Prefix-SID for a given | |||
Flex-algorithm is not known, the Flex-Algorithm specific path cannot | Flex-Algorithm is not known, the Flex-Algorithm-specific path cannot | |||
be installed in the MPLS forwarding plane.</t> | be installed in the MPLS forwarding plane.</t> | |||
<t indent="0" pn="section-14.1-4">Traffic that is supposed to be routed | ||||
<t>Traffic that is supposed to be routed via Flex-Algorithm specific | via Flex-Algorithm-specific | |||
paths MUST be dropped when there are no such paths available.</t> | paths <bcp14>MUST</bcp14> be dropped when there are no such paths availa | |||
ble.</t> | ||||
<t>Loop Free Alternate (LFA) paths (<xref target="RFC6571"/> or its vari | <t indent="0" pn="section-14.1-5">Loop Free Alternate (LFA) paths (<xref | |||
ants) | target="RFC6571" format="default" sectionFormat="of" derivedContent="RFC6571"/> | |||
for a given Flex-Algorithm MUST be computed using the same constraints a | or its variants) | |||
s the | for a given Flex-Algorithm <bcp14>MUST</bcp14> be computed using the sam | |||
calculation of the primary paths for that Flex-Algorithm. LFA paths MUST | e constraints as the | |||
only | calculation of the primary paths for that Flex-Algorithm. LFA paths <bcp | |||
use Prefix-SIDs advertised specifically for the given algorithm. LFA pat | 14>MUST</bcp14> only | |||
hs MUST NOT | use Prefix-SIDs advertised specifically for the given algorithm. LFA pat | |||
use an Adjacency-SID that belongs to a link that has been pruned from | hs <bcp14>MUST NOT</bcp14> | |||
use an Adjacency SID that belongs to a link that has been pruned from | ||||
the Flex-Algorithm computation.</t> | the Flex-Algorithm computation.</t> | |||
<t indent="0" pn="section-14.1-6">If LFA protection is being used to pro | ||||
<t>If LFA protection is being used to protect a given Flex-Algorithm | tect a given Flex-Algorithm | |||
paths, all routers in the area participating in the given | path, all routers in the area participating in the given | |||
Flex-Algorithm SHOULD advertise at least one Flex-Algorithm specific | Flex-Algorithm <bcp14>SHOULD</bcp14> advertise at least one | |||
Node-SID. These Node-SIDs are used to steer traffic over the LFA | Flex-Algorithm-specific Node-SID. These Node-SIDs are used to steer traff | |||
computed backup path.</t> | ic over | |||
the LFA-computed backup path.</t> | ||||
</section> | </section> | |||
<section anchor="FLEXALGPSRV6FORW" numbered="true" toc="include" removeInR | ||||
<section anchor="FLEXALGPSRV6FORW" | FC="false" pn="section-14.2"> | |||
title="SRv6 Forwarding for Flex-Algorithm"> | <name slugifiedName="name-srv6-forwarding-for-flex-al">SRv6 Forwarding f | |||
<t>This section describes how Flex-Algorithm paths are used with SRv6 | or Flex-Algorithm</name> | |||
<t indent="0" pn="section-14.2-1">This section describes how Flex-Algori | ||||
thm paths are used with SRv6 | ||||
forwarding.</t> | forwarding.</t> | |||
<t indent="0" pn="section-14.2-2">In SRv6, a node is provisioned with a | ||||
<t>In SRv6 a node is provisioned with a (topology, algorithm) specific | (topology, algorithm) specific | |||
locator for each of the topology/algorithm pairs supported by that | locator for each of the topology/algorithm pairs supported by that | |||
node. Each locator is an aggregate prefix for all SIDs provisioned on | node. Each locator is an aggregate prefix for all SIDs provisioned on | |||
that node which have the matching topology/algorithm.</t> | that node that have the matching topology/algorithm.</t> | |||
<t indent="0" pn="section-14.2-3">The SRv6 locator advertisement in IS-I | ||||
<t>The SRv6 locator advertisement in IS-IS <xref | S <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC | |||
target="I-D.ietf-lsr-isis-srv6-extensions"/> includes the MTID value | 9352"/> includes the Multi-Topology Identifier (MTID) value | |||
that associates the locator with a specific topology. SRv6 locator | that associates the locator with a specific topology. SRv6 locator | |||
advertisements also includes an Algorithm value that explicitly | advertisements also include an algorithm value that explicitly | |||
associates the locator with a specific algorithm. When the algorithm | associates the locator with a specific algorithm. When the algorithm | |||
value advertised with a locator represents a Flex-Algorithm, the paths | value advertised with a locator represents a Flex-Algorithm, the paths | |||
to the locator prefix MUST be calculated using the specified | to the locator prefix <bcp14>MUST</bcp14> be calculated using the specif ied | |||
Flex-Algorithm in the associated topology.</t> | Flex-Algorithm in the associated topology.</t> | |||
<t indent="0" pn="section-14.2-4">Forwarding entries for the locator pre | ||||
<t>Forwarding entries for the locator prefixes advertised in IS-IS MUST | fixes advertised in IS-IS <bcp14>MUST</bcp14> | |||
be installed in the forwarding plane of the receiving SRv6 capable | be installed in the forwarding plane of the receiving SRv6-capable | |||
routers when the associated topology/algorithm is participating in | routers when the associated topology/algorithm is participating in | |||
them. Forwarding entries for locators associated with Flex-Algorithms | them. Forwarding entries for locators associated with Flex-Algorithms | |||
in which the node is not participating MUST NOT be installed in the | in which the node is not participating <bcp14>MUST NOT</bcp14> be instal led in the | |||
forwarding plane.</t> | forwarding plane.</t> | |||
<t indent="0" pn="section-14.2-5">When the locator is associated with a | ||||
<t>When the locator is associated with a Flex-Algorithm, LFA paths to | Flex-Algorithm, LFA paths to | |||
the locator prefix MUST be calculated using such Flex-Algorithm in the | the locator prefix <bcp14>MUST</bcp14> be calculated using such Flex-Alg | |||
associated topology, to guarantee that they follow the same | orithm in the | |||
constraints as the calculation of the primary paths. LFA paths MUST | associated topology to guarantee that they follow the same | |||
constraints as the calculation of the primary paths. LFA paths <bcp14>MU | ||||
ST</bcp14> | ||||
only use SRv6 SIDs advertised specifically for the given | only use SRv6 SIDs advertised specifically for the given | |||
Flex-Algorithm.</t> | Flex-Algorithm.</t> | |||
<t indent="0" pn="section-14.2-6">If LFA protection is being used to pro | ||||
<t>If LFA protection is being used to protect locators associated with | tect locators associated with | |||
a given Flex-Algorithm, all routers in the area participating in the | a given Flex-Algorithm, all routers in the area participating in the | |||
given Flex-Algorithm SHOULD advertise at least one Flex-Algorithm | given Flex-Algorithm <bcp14>SHOULD</bcp14> advertise at least one | |||
specific locator and END SID per node and one END.X SID for every link | Flex-Algorithm-specific locator and END SID per node and one END.X SID fo | |||
that has not been pruned from such Flex-Algorithm computation. These | r 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 | locators and SIDs are used to steer traffic over the LFA-computed | |||
backup path.</t> | backup path.</t> | |||
</section> | </section> | |||
<section anchor="FLEXALGPSRFORWOTHER" numbered="true" toc="include" remove | ||||
<section anchor="FLEXALGPSRFORWOTHER" | InRFC="false" pn="section-14.3"> | |||
title="Other Data-planes' Forwarding for Flex-Algorithm"> | <name slugifiedName="name-other-data-planes-forwardin">Other Data Planes | |||
<t>Any data-plane that wants to use Flex-Algorithm specific | ' Forwarding for Flex-Algorithm</name> | |||
forwarding needs to install some form of Flex-Algorithm specific | <t indent="0" pn="section-14.3-1">Any data plane that wants to use Flex- | |||
Algorithm-specific | ||||
forwarding needs to install some form of Flex-Algorithm-specific | ||||
forwarding entries.</t> | forwarding entries.</t> | |||
<t indent="0" pn="section-14.3-2">Data-plane-specific forwarding for Fle | ||||
<t>Data-plane specific forwarding for Flex-Algorithm MUST be defined | x-Algorithms <bcp14>MUST</bcp14> be defined | |||
for each data-plane and is outside the scope of this document.</t> | for each data plane and is outside the scope of this document.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-15"> | ||||
<section title="Operational Considerations"> | <name slugifiedName="name-operational-considerations">Operational Consider | |||
<section title="Inter-area Considerations"> | ations</name> | |||
<t>The scope of the Flex-Algorithm computation is an area, so is the sco | <section numbered="true" toc="include" removeInRFC="false" pn="section-15. | |||
pe of the | 1"> | |||
FAD. In IS-IS, the Router Capability TLV in which the FAD Sub-TLV is | <name slugifiedName="name-inter-area-considerations">Inter-area Consider | |||
advertised MUST have the S-bit clear, which prevents it from being flood | ations</name> | |||
ed | <t indent="0" pn="section-15.1-1">The scope of the Flex-Algorithm comput | |||
ation and the scope of the | ||||
FAD is an area. In IS-IS, the Router Capability TLV in which the FAD sub | ||||
-TLV is | ||||
advertised <bcp14>MUST</bcp14> have the S bit clear, which prevents it f | ||||
rom being flooded | ||||
outside the level in which it was originated. Even though in OSPF | 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 AS flooding | 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 | scope, the FAD selection is performed for each individual area in | |||
which it is being used.</t> | which it is being used.</t> | |||
<t indent="0" pn="section-15.1-2">There is no requirement for the FAD fo | ||||
<t>There is no requirement for the FAD for a particular Flex-Algorithm | r a particular Flex-Algorithm | |||
to be identical in all areas in the network. For example, traffic for | 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., | the same Flex-Algorithm may be optimized for minimal delay (e.g., | |||
using delay metric) in one area or level, while being optimized for | using delay metric) in one area or level while being optimized for | |||
available bandwidth (e.g., using IGP metric) in another area or | available bandwidth (e.g., using IGP metric) in another area or | |||
level.</t> | level.</t> | |||
<t indent="0" pn="section-15.1-3">As described in <xref target="ISISFLEX | ||||
<t>As described in <xref target="ISISFLEXALGTLV"/>, IS-IS allows the | ALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1"/>, IS-I | |||
re-generation of the winning FAD from level 2, without any | S 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 | modification to it, into a level 1 area. This allows the operator to | |||
configure the FAD in one or multiple routers in the level 2, without | 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 | 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 | 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 | 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 | flooding scope of the RI LSA in which the FAD sub-TLV for the | |||
particular Flex-Algoritm is advertised.</t> | particular Flex-Algorithm is advertised.</t> | |||
<t indent="0" pn="section-15.1-4">Regeneration of the FAD from a level 1 | ||||
<t>Re-generation of the FAD from a level 1 area to the level 2 area is n | area to the level 2 area is not | |||
ot | ||||
supported in IS-IS, so if the intent is to regenerate the FAD between | supported in IS-IS, so if the intent is to regenerate the FAD between | |||
IS-IS levels, the FAD MUST be defined on router(s) that are in level 2. | IS-IS levels, the FAD <bcp14>MUST</bcp14> be defined on a router(s) that | |||
In OSPF, the FAD definition can be done in any area and be propagated | 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 | to all routers in the OSPF routing domain by using the AS flooding | |||
scope of the RI LSA.</t> | scope of the RI LSA.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-15. | ||||
<section title="Usage of SRLG Exclude Rule with Flex-Algorithm"> | 2"> | |||
<t>There are two different ways in which SRLG information can be used | <name slugifiedName="name-usage-of-the-srlg-exclude-r">Usage of the SRLG | |||
with Flex-Algorithm: <list style="hanging"> | Exclude Rule with Flex-Algorithm</name> | |||
<t>In a context of a single Flex-Algorithm, it can be used for | <t indent="0" pn="section-15.2-1">There are two different ways in which | |||
computation of backup paths, as described in <xref | SRLG information can be used | |||
target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/>. This usage does | with Flex-Algorithms: </t> | |||
not require association of any specific SRLG constraint with the | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | |||
given Flex-Algorithm definition.</t> | 5.2-2"> | |||
<li pn="section-15.2-2.1">In a context of a single Flex-Algorithm, it | ||||
<t>In the context of multiple Flex-Algorithms, it can be used for | can be used for | |||
computation of backup paths, as described in <xref target="I-D.ietf-rt | ||||
gwg-segment-routing-ti-lfa" format="default" sectionFormat="of" derivedContent=" | ||||
RTGWG-SEGMENT-ROUTING-TI-LFA"/>. This usage | ||||
does not require association of any specific SRLG constraint with the | ||||
given Flex-Algorithm Definition.</li> | ||||
<li pn="section-15.2-2.2"> | ||||
<t indent="0" pn="section-15.2-2.2.1">In the context of multiple Fle | ||||
x-Algorithms, it can be used for | ||||
creating disjoint sets of paths by pruning the links belonging to | creating disjoint sets of paths by pruning the links belonging to | |||
a specific SRLG from the topology on which a specific | a specific SRLG from the topology on which a specific | |||
Flex-Algorithm computes its paths. This usage: <list | Flex-Algorithm computes its paths. This usage: </t> | |||
style="hanging"> | <ul spacing="normal" bare="false" empty="false" indent="3" pn="secti | |||
<t>Facilitates the usage of already deployed SRLG | on-15.2-2.2.2"> | |||
configurations for setup of disjoint paths between two or more | <li pn="section-15.2-2.2.2.1">facilitates the usage of already dep | |||
Flex-Algorithms.</t> | loyed SRLG | |||
configurations for the setup of disjoint paths between two or more | ||||
<t>Requires explicit association of a given Flex-Algorithm | Flex-Algorithms and</li> | |||
with a specific set of SRLG constraints as defined in <xref | <li pn="section-15.2-2.2.2.2">requires explicit association of a g | |||
target="ISISFLEXALGEXSRLGTLV"/> and <xref | iven Flex-Algorithm | |||
target="OSPFFLEXALGEXSRLGTLV"/>.</t> | with a specific set of SRLG constraints, as defined in Sections <x | |||
</list></t> | ref target="ISISFLEXALGEXSRLGTLV" format="counter" sectionFormat="of" derivedCon | |||
</list></t> | tent="6.5"/> and <xref target="OSPFFLEXALGEXSRLGTLV" format="counter" sectionFor | |||
mat="of" derivedContent="7.5"/>.</li> | ||||
<t>The two usages mentioned above are orthogonal.</t> | </ul> | |||
</li> | ||||
</ul> | ||||
<t indent="0" pn="section-15.2-3">The two usages mentioned above are ort | ||||
hogonal.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-15. | ||||
<section title="Max-metric consideration"> | 3"> | |||
<t>Both IS-IS and OSPF have a mechanism to set the IGP metric on a link | <name slugifiedName="name-max-metric-consideration">Max-Metric Considera | |||
to a value that would make the link either non-reachable or to serve | tion</name> | |||
<t indent="0" pn="section-15.3-1">Both IS-IS and OSPF have a mechanism t | ||||
o 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 | 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 | the Min Unidirectional Link Delay and TE metric, as these can be used | |||
to compute Flex-Algorithm paths.</t> | to compute Flex-Algorithm paths.</t> | |||
<t indent="0" pn="section-15.3-2">The link can be made unreachable for a | ||||
<t>The link can be made un-reachable for all Flex-Algorithms that use | ll Flex-Algorithms that use the | |||
Min Unidirectional Link Delay as metric, as described in <xref | Min Unidirectional Link Delay as a metric, as described in <xref target= | |||
target="ISISFLEXALGTLV"/>, by removing the Flex-Algorithm ASLA Min | "ISISFLEXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1 | |||
"/>, by removing the Flex-Algorithm ASLA Min | ||||
Unidirectional Link Delay advertisement for the link. The link can be | Unidirectional Link Delay advertisement for the link. The link can be | |||
made the link of last resort by setting the delay value in the | 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 | Flex-Algorithm ASLA delay advertisement for the link to the value of | |||
16,777,215 (2^24 - 1).</t> | 16,777,215 (2<sup>24</sup> - 1).</t> | |||
<t indent="0" pn="section-15.3-3">The link can be made unreachable for a | ||||
<t>The link can be made un-reachable for all Flex-Algorithms that use | ll Flex-Algorithms that use the | |||
TE metric, as described in <xref target="ISISFLEXALGTLV"/>, by | TE metric, as described in <xref target="ISISFLEXALGTLV" format="default | |||
" sectionFormat="of" derivedContent="Section 5.1"/>, by | ||||
removing the Flex-Algorithm ASLA TE metric advertisement for the link. | 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 | 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 | 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.</t> | the value of (2<sup>24</sup> - 1) in IS-IS and (2<sup>32</sup> - 1) in O SPF.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-15. | ||||
<section title="FAD Definition and Changes"> | 4"> | |||
<name slugifiedName="name-flexible-algorithm-definitio">Flexible Algorit | ||||
<t>When configuring a node to participate in a specific Flex-Algorithm, | hm Definition and Changes</name> | |||
the components of the FAD (calculation-type, metric-type, constraints) | <t indent="0" pn="section-15.4-1">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 pa rticular | should be considered carefully. The configuration of participation in a pa rticular | |||
Flex-Algorithm doesn't guarantee that the node will actively participate i n it, | Flex-Algorithm doesn't guarantee that the node will actively participate i n it, | |||
because it may not support the calculation-type, metric type or some const | because it may not support the calculation-type, the metric-type, or some | |||
raint | constraint advertised by the winning FAD (see <xref target="COMMONLEXALGTL | |||
advertised by the winning FAD (see <xref target="COMMONLEXALGTLV"/>). Chan | V" format="default" sectionFormat="of" derivedContent="Section 5.3"/>). Changes | |||
ges in | in | |||
the FAD configuration should also be considered in light of the capabiliti es of | the FAD configuration should also be considered in light of the capabiliti es of | |||
the participating routers in the scope of the FAD advertisement.</t> | the participating routers in the scope of the FAD advertisement.</t> | |||
<t indent="0" pn="section-15.4-2">As <xref target="COMMONLEXALGTLV" form | ||||
<t>As <xref target="COMMONLEXALGTLV"/> notes, a change in the Flex-Algorit | at="default" sectionFormat="of" derivedContent="Section 5.3"/> notes, a change i | |||
hm | n the Flex-Algorithm | |||
definition may require network-wide SPF re-computation and network re-conv | Definition may require network-wide Shortest Path First (SPF) recomputatio | |||
ergence. | n and network reconvergence. | |||
This potential for disruption should be taken into consideration when plan ning | This potential for disruption should be taken into consideration when plan ning | |||
and making changes to the FAD.</t> | and making changes to the FAD.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-15. | ||||
<section title="Number of Flex-Algorithms"> | 5"> | |||
<t>The maximum number of Flex-Algorithms is determined by the algorithm ra | <name slugifiedName="name-number-of-flex-algorithms">Number of Flex-Algo | |||
nge | rithms</name> | |||
that is (128-255), as specified in <xref target="FLEXALG"/>. Although poss | <t indent="0" pn="section-15.5-1">The maximum number of Flex-Algorithms | |||
ible, | is determined by the algorithm range | |||
128-255, as specified in <xref target="FLEXALG" format="default" sectionFo | ||||
rmat="of" derivedContent="Section 4"/>. Although possible, | ||||
it is not expected that all of them will be used simultaneously. Typically , | 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.</t> | only a limited subset of Flex-Algorithms is expected to be deployed in the network.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-16"> | ||||
<section title="Backward Compatibility"> | <name slugifiedName="name-backward-compatibility">Backward Compatibility</ | |||
<t>This extension brings no new backward compatibility issues. IS-IS, | name> | |||
OSPFv2 and OSPFv3 all have well-defined handling of unrecognized TLVs | <t indent="0" pn="section-16-1">This extension brings no new backward-comp | |||
atibility 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 | and sub-TLVs that allows the introduction of new extensions, similar | |||
to those defined here, without introducing any interoperability | to those defined here, without introducing any interoperability | |||
issues.</t> | issues.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-17"> | ||||
<section title="Security Considerations"> | <name slugifiedName="name-security-considerations">Security Considerations | |||
<t>This draft adds two new ways to disrupt IGP networks: <list | </name> | |||
style="hanging"> | <t indent="0" pn="section-17-1">This document adds two new ways to disrupt | |||
<t>An attacker can hijack a particular Flex-Algorithm by advertising | IGP networks: </t> | |||
a FAD with a priority of 255 (or any priority higher than that of | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-17- | |||
the legitimate nodes).</t> | 2"> | |||
<li pn="section-17-2.1">An attacker can hijack a particular Flex-Algorit | ||||
<t>An attacker could make it look like a router supports a | hm by advertising | |||
particular Flex-Algorithm when it actually doesn't, or vice | a FAD with a priority of 255 (or any priority higher than that of | |||
versa.</t> | the legitimate nodes).</li> | |||
</list></t> | <li pn="section-17-2.2">An attacker could make it look like a router sup | |||
ports a | ||||
<t>Both of these attacks can be addressed by the existing security | particular Flex-Algorithm when it actually doesn't, or vice | |||
extensions as described in <xref target="RFC5304"/> and <xref | versa.</li> | |||
target="RFC5310"/> for IS-IS, in <xref target="RFC2328"/> and <xref | </ul> | |||
target="RFC7474"/> for OSPFv2, and in <xref target="RFC5340"/> and <xref | <t indent="0" pn="section-17-3">Both of these attacks can be addressed by | |||
target="RFC4552"/> for OSPFv3.</t> | the existing security | |||
extensions, as described in <xref target="RFC5304" format="default" sectio | ||||
<t>If the node that is authenticated is taken over by an attacker, such ro | nFormat="of" derivedContent="RFC5304"/> and <xref target="RFC5310" format="defau | |||
gue | lt" sectionFormat="of" derivedContent="RFC5310"/> for IS-IS, in <xref target="RF | |||
C2328" format="default" sectionFormat="of" derivedContent="RFC2328"/> and <xref | ||||
target="RFC7474" format="default" sectionFormat="of" derivedContent="RFC7474"/> | ||||
for OSPFv2, and in <xref target="RFC4552" format="default" sectionFormat="of" de | ||||
rivedContent="RFC4552"/> and <xref target="RFC5340" format="default" sectionForm | ||||
at="of" derivedContent="RFC5340"/> for OSPFv3.</t> | ||||
<t indent="0" pn="section-17-4">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 | node can advertise the FAD for any Flex-Algorithm. Doing so may result in | |||
traffic for such Flex-Algorithm to be misrouted, or not being delivered | traffic for such Flex-Algorithm to be misrouted, or not delivered | |||
at all, for example, by using an unsupported metric-type, calculation-type , | at all, for example, by using an unsupported metric-type, calculation-type , | |||
or constraint. Such attack is not preventable through authentication, and it is | or constraint. Such attack is not preventable through authentication, and it is | |||
not different from advertising any other incorrect information through IS- IS or | not different from advertising any other incorrect information through IS- IS or | |||
OSPF.</t> | OSPF.</t> | |||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn= | ||||
<section anchor="IANA" title="IANA Considerations"> | "section-18"> | |||
<section anchor="IANAIGP" title="IGP IANA Considerations"> | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
<section anchor="IANAIGPIGPALGTYPE" | <section anchor="IANAIGP" numbered="true" toc="include" removeInRFC="false | |||
title="IGP Algorithm Types Registry"> | " pn="section-18.1"> | |||
<t>This document makes the following registrations in the "IGP | <name slugifiedName="name-igp-iana-considerations">IGP IANA Consideratio | |||
Algorithm Types" registry: <list style="hanging"> | ns</name> | |||
<t>Type: 128-255.</t> | <section anchor="IANAIGPIGPALGTYPE" numbered="true" toc="include" remove | |||
InRFC="false" pn="section-18.1.1"> | ||||
<t>Description: Flexible Algorithms.</t> | <name slugifiedName="name-igp-algorithm-types-registr">IGP Algorithm T | |||
ypes Registry</name> | ||||
<t>Reference: This document (<xref target="FLEXALG"/>).</t> | <t indent="0" pn="section-18.1.1-1">This document makes the following | |||
</list></t> | registration in the "IGP | |||
Algorithm Types" registry: </t> | ||||
<table align="center" pn="table-1"> | ||||
<name slugifiedName="name-igp-algorithm-types-registry">IGP Algorith | ||||
m Types Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left" colspan="1" rowspan="1">Value</th> | ||||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">128-255</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithms</td | ||||
> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"FLEXALG" format="default" sectionFormat="of" derivedContent="Section 4"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="IGPMETRICTYPE" numbered="true" toc="include" removeInRF | ||||
<section anchor="IGPMETRICTYPE" title="IGP Metric-Type Registry"> | C="false" pn="section-18.1.2"> | |||
<t>IANA is requested to set up a registry called "IGP Metric-Type | <name slugifiedName="name-igp-metric-type-registry">IGP Metric-Type Re | |||
Registry" under the "Interior Gateway Protocol (IGP) Parameters" IANA | gistry</name> | |||
grouping. The registration policy for this registry is "Standards | <t indent="0" pn="section-18.1.2-1">IANA has created the "IGP Metric-T | |||
Action" (<xref target="RFC8126"/> and <xref target="RFC7120"/>).</t> | ype" registry | |||
within the "Interior Gateway Protocol (IGP) Parameters" registry group | ||||
<t>Values in this registry come from the range 0-255.</t> | . The registration policy is "Standards | |||
Action" <xref target="RFC8126" format="default" sectionFormat="of" der | ||||
<t>This document registers following values in the "IGP Metric-Type | ivedContent="RFC8126"/> <xref target="RFC7120" format="default" sectionFormat="o | |||
Registry": <list style="hanging"> | f" derivedContent="RFC7120"/>. Values are assigned from the range 0-255 and have | |||
<t>Type: 0</t> | been registered as follows. </t> | |||
<table align="center" pn="table-2"> | ||||
<t>Description: IGP metric</t> | <name slugifiedName="name-igp-metric-type-registry-2">IGP Metric-Typ | |||
e Registry</name> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGTLV"/>)</t> | <thead> | |||
<tr> | ||||
<t>Type: 1</t> | <th align="left" colspan="1" rowspan="1">Type</th> | |||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<t>Description: Min Unidirectional Link Delay as defined in | <th align="left" colspan="1" rowspan="1">Reference</th> | |||
<xref target="RFC8570"/>, section 4.2, and <xref | </tr> | |||
target="RFC7471"/>, section 4.2.</t> | </thead> | |||
<tbody> | ||||
<t>Reference: This document (<xref | <tr> | |||
target="ISISFLEXALGTLV"/>)</t> | <td align="left" colspan="1" rowspan="1">0</td> | |||
<td align="left" colspan="1" rowspan="1">IGP Metric</td> | ||||
<t>Type: 2</t> | <td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | |||
"ISISFLEXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1 | ||||
<t>Description: Traffic Engineering Default Metric as defined in | "/></td> | |||
<xref target="RFC5305"/>, section 3.7, and Traffic engineering | </tr> | |||
metric as defined in <xref target="RFC3630"/>, section 2.5.5</t> | <tr> | |||
<td align="left" colspan="1" rowspan="1">1</td> | ||||
<t>Reference: This document (<xref | <td align="left" colspan="1" rowspan="1">Min Unidirectional Link | |||
target="ISISFLEXALGTLV"/>)</t> | Delay as defined in <xref target="RFC8570" section="4.2" sectionFormat="comma" | |||
</list></t> | format="default" derivedLink="https://rfc-editor.org/rfc/rfc8570#section-4.2" de | |||
rivedContent="RFC8570"/> and <xref target="RFC7471" section="4.2" sectionFormat= | ||||
"comma" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7471#section | ||||
-4.2" derivedContent="RFC7471"/></td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1 | ||||
"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">2</td> | ||||
<td align="left" colspan="1" rowspan="1">Traffic Engineering Def | ||||
ault Metric as defined in <xref target="RFC5305" section="3.7" sectionFormat="co | ||||
mma" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5305#section-3. | ||||
7" derivedContent="RFC5305"/> and Traffic Engineering Metric as defined in <xref | ||||
target="RFC3630" section="2.5.5" sectionFormat="comma" format="default" derived | ||||
Link="https://rfc-editor.org/rfc/rfc3630#section-2.5.5" derivedContent="RFC3630" | ||||
/></td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1 | ||||
"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="IANAFADFLGAS" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="IANAFADFLGAS" | false" pn="section-18.2"> | |||
title="Flexible Algorithm Definition Flags Registry"> | <name slugifiedName="name-igp-flexible-algorithm-defi">IGP Flexible Algo | |||
<t>IANA is requested to set up a registry called "IGP Flexible | rithm Definition Flags Registry</name> | |||
Algorithm Definition Flags Registry" under the "Interior Gateway | <t indent="0" pn="section-18.2-1">IANA has created the "IGP Flexible | |||
Protocol (IGP) Parameters" IANA grouping. The registration policy | Algorithm Definition Flags" registry within the "Interior Gateway | |||
for this registry is "Standards Action" (<xref target="RFC8126"/> and | Protocol (IGP) Parameters" registry group. The registration policy | |||
<xref target="RFC7120"/>). New registrations should be assigned in | is "Standards Action". New registrations should be assigned in | |||
ascending bit order (see <xref target="ISISFLEXALGFLAG"/>).</t> | ascending bit order (see <xref target="ISISFLEXALGFLAG" format="default" | |||
sectionFormat="of" derivedContent="Section 6.4"/>); the following single bit ha | ||||
<t>This document defines the following single bit in Flexible | s been assigned as follows.</t> | |||
Algorithm Definition Flags registry: <figure> | <table align="center" pn="table-3"> | |||
<artwork><![CDATA[ | <name slugifiedName="name-igp-flexible-algorithm-defin">IGP Flexible A | |||
Bit # Name | lgorithm Definition Flags Registry</name> | |||
----- ------------------------------ | <thead> | |||
0 Prefix Metric Flag (M-flag) | <tr> | |||
<th align="left" colspan="1" rowspan="1">Bit</th> | ||||
]]></artwork> | <th align="left" colspan="1" rowspan="1">Name</th> | |||
</figure></t> | <th align="left" colspan="1" rowspan="1">Reference</th> | |||
</tr> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGFLAG"/>, <xref | </thead> | |||
target="OSPFFLEXALGFLAG"/>).</t> | <tbody> | |||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">0</td> | ||||
<td align="left" colspan="1" rowspan="1">Prefix Metric Flag (M-fla | ||||
g)</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, Sections <xref | ||||
target="ISISFLEXALGFLAG" format="counter" sectionFormat="of" derivedContent="6.4 | ||||
"/> and <xref target="OSPFFLEXALGFLAG" format="counter" sectionFormat="of" deri | ||||
vedContent="7.4"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="IANAISIS" numbered="true" toc="include" removeInRFC="fals | ||||
<section anchor="IANAISIS" title="IS-IS IANA Considerations"> | e" pn="section-18.3"> | |||
<section anchor="SUBTLVS" title="IS-IS Sub-TLVs for IS-IS Router CAPABIL | <name slugifiedName="name-is-is-iana-considerations">IS-IS IANA Consider | |||
ITY TLV"> | ations</name> | |||
<t>This document makes the following registrations in the | <section anchor="SUBTLVS" numbered="true" toc="include" removeInRFC="fal | |||
"IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV" registry. <list style | se" pn="section-18.3.1"> | |||
="hanging"> | <name slugifiedName="name-is-is-sub-tlvs-for-is-is-ro">IS-IS Sub-TLVs | |||
<t>Type: 26.</t> | for IS-IS Router CAPABILITY TLV Registry</name> | |||
<t indent="0" pn="section-18.3.1-1">This document makes the following | ||||
<t>Description: Flexible Algorithm Definition (FAD)</t> | registration in the | |||
"IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV" registry. </t> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGTLV"/>).</t> | <table align="center" pn="table-4"> | |||
</list></t> | <name slugifiedName="name-is-is-sub-tlvs-for-is-is-rou">IS-IS Sub-TL | |||
Vs for IS-IS Router CAPABILITY TLV Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left" colspan="1" rowspan="1">Value</th> | ||||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">26</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Defi | ||||
nition (FAD)</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.1 | ||||
"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="SUBTLVS135" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="SUBTLVS135" | false" pn="section-18.3.2"> | |||
title="IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability" | <name slugifiedName="name-is-is-sub-tlvs-for-tlvs-adv">IS-IS Sub-TLVs | |||
> | for TLVs Advertising Prefix Reachability Registry</name> | |||
<t>This document makes the following registrations in the | <t indent="0" pn="section-18.3.2-1">This document makes the following | |||
"IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability" registry. <l | registration in the | |||
ist style="hanging"> | "IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability" registry. </ | |||
<t>Type: 6</t> | t> | |||
<table align="center" pn="table-5"> | ||||
<t>Description: Flexible Algorithm Prefix Metric (FAPM).</t> | <name slugifiedName="name-is-is-sub-tlvs-for-tlvs-adve">IS-IS Sub-TL | |||
Vs for TLVs Advertising Prefix Reachability Registry</name> | ||||
<t>Reference: This document (<xref target="ISISFLEXMETRIC"/>).</t> | <thead> | |||
</list></t> | <tr> | |||
<th align="left" colspan="1" rowspan="1">Type</th> | ||||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<th align="left" colspan="1" rowspan="1">27</th> | ||||
<th align="left" colspan="1" rowspan="1">135</th> | ||||
<th align="left" colspan="1" rowspan="1">235</th> | ||||
<th align="left" colspan="1" rowspan="1">236</th> | ||||
<th align="left" colspan="1" rowspan="1">237</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">6</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Pref | ||||
ix Metric (FAPM)</td> | ||||
<td align="left" colspan="1" rowspan="1">n</td> | ||||
<td align="left" colspan="1" rowspan="1">y</td> | ||||
<td align="left" colspan="1" rowspan="1">y</td> | ||||
<td align="left" colspan="1" rowspan="1">y</td> | ||||
<td align="left" colspan="1" rowspan="1">y</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXMETRIC" format="default" sectionFormat="of" derivedContent="Section 8"/ | ||||
></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="SUBTLVREGISTRY" numbered="true" toc="include" removeInR | ||||
FC="false" pn="section-18.3.3"> | ||||
<name slugifiedName="name-is-is-sub-sub-tlvs-for-flex">IS-IS Sub-Sub-T | ||||
LVs for Flexible Algorithm Definition Sub-TLV Registry</name> | ||||
<t indent="0" pn="section-18.3.3-1">IANA has created the "IS-IS Sub-Su | ||||
b-TLVs for Flexible Algorithm Definition Sub-TLV" registry within the | ||||
"IS-IS TLV Codepoints" registry group. The registration procedure is "E | ||||
xpert Review" (note that the "IS-IS TLV | ||||
Codepoints" registry group includes Expert Review guidance that applies | ||||
to all registries thereunder).</t> | ||||
<t indent="0" pn="section-18.3.3-2">The sub-sub-TLVs defined in this d | ||||
ocument have been assigned as follows. | ||||
</t> | ||||
<table align="center" pn="table-6"> | ||||
<name slugifiedName="name-is-is-sub-sub-tlvs-for-flexi">IS-IS Sub-Su | ||||
b-TLVs for Flexible Algorithm Definition Sub-TLV Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left" colspan="1" rowspan="1">Type</th> | ||||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">0</td> | ||||
<td align="left" colspan="1" rowspan="1">Reserved</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">1</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Excl | ||||
ude Admin Group</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGEXLTLV" format="default" sectionFormat="of" derivedContent="Section | ||||
6.1"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">2</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Incl | ||||
ude-Any Admin Group</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGINCANYTLV" format="default" sectionFormat="of" derivedContent="Secti | ||||
on 6.2"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">3</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Incl | ||||
ude-All Admin Group</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGINCALLTLV" format="default" sectionFormat="of" derivedContent="Secti | ||||
on 6.3"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">4</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Defi | ||||
nition Flags</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGFLAG" format="default" sectionFormat="of" derivedContent="Section 6. | ||||
4"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">5</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Excl | ||||
ude SRLG</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"ISISFLEXALGEXSRLGTLV" format="default" sectionFormat="of" derivedContent="Secti | ||||
on 6.5"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">6-255</td> | ||||
<td align="left" colspan="1" rowspan="1">Unassigned</td> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="SUBTLVREGISTRY" | ||||
title="Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV"> | ||||
<t>This document creates the following Sub-Sub-TLV Registry, under the | ||||
IS-IS TLV Codepoints grouping. <list style="hanging"> | ||||
<t>Registry: Sub-Sub-TLVs for Flexible Algorithm Definition | ||||
Sub-TLV</t> | ||||
<t>Registration Procedure: Expert review. (Note that the IS-IS TLV | ||||
Codepoints grouping includes Expert Review guidance that applies t | ||||
o | ||||
all registries thereunder.) </t> | ||||
<t>Reference: This document (<xref | ||||
target="ISISFLEXALGTLV"/>)</t> | ||||
</list></t> | ||||
<t>This document defines the following Sub-Sub-TLVs in the | ||||
"Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV" registry: | ||||
<list style="hanging"> | ||||
<t>Type: 0</t> | ||||
<t>Description: Reserved</t> | ||||
<t>Reference: This document.</t> | ||||
</list> <list style="hanging"> | ||||
<t>Type: 1</t> | ||||
<t>Description: Flexible Algorithm Exclude Admin Group</t> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGEXLTLV"/>).< | ||||
/t> | ||||
</list> <list style="hanging"> | ||||
<t>Type: 2</t> | ||||
<t>Description: Flexible Algorithm Include-Any Admin Group</t> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGINCANYTLV"/> | ||||
).</t> | ||||
</list> <list style="hanging"> | ||||
<t>Type: 3</t> | ||||
<t>Description: Flexible Algorithm Include-All Admin Group</t> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGINCALLTLV"/> | ||||
).</t> | ||||
</list> <list style="hanging"> | ||||
<t>Type: 4</t> | ||||
<t>Description: Flexible Algorithm Definition Flags</t> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGFLAG"/>).</t | ||||
> | ||||
</list> <list style="hanging"> | ||||
<t>Type: 5</t> | ||||
<t>Description: Flexible Algorithm Exclude SRLG</t> | ||||
<t>Reference: This document (<xref target="ISISFLEXALGEXSRLGTLV"/> | ||||
).</t> | ||||
</list> <list style="hanging"> | ||||
<t>Type: 6-255</t> | ||||
<t>Description: Unassigned</t> | ||||
<t>Reference: This document.</t> | ||||
</list></t> | ||||
</section> | ||||
</section> | </section> | |||
<section anchor="IANAOSPF" numbered="true" toc="include" removeInRFC="fals | ||||
<section anchor="IANAOSPF" title="OSPF IANA Considerations"> | e" pn="section-18.4"> | |||
<section anchor="RITLVREG" | <name slugifiedName="name-ospf-iana-considerations">OSPF IANA Considerat | |||
title="OSPF Router Information (RI) TLVs Registry"> | ions</name> | |||
<t>This specification makes the following registration in the OSPF | <section anchor="RITLVREG" numbered="true" toc="include" removeInRFC="fa | |||
Router Information (RI) TLVs Registry. <list style="hanging"> | lse" pn="section-18.4.1"> | |||
<t>Type: 16</t> | <name slugifiedName="name-ospf-router-information-ri-">OSPF Router Inf | |||
ormation (RI) TLVs Registry</name> | ||||
<t>Description: Flexible Algorithm Definition (FAD) TLV.</t> | <t indent="0" pn="section-18.4.1-1">This document makes the following | |||
registration in the "OSPF | ||||
<t>Reference: This document (<xref | Router Information (RI) TLVs" registry. </t> | |||
target="OSPFFLEXALGTLV"/>).</t> | <table align="center" pn="table-7"> | |||
</list></t> | <name slugifiedName="name-ospf-router-information-ri-t">OSPF Router | |||
Information (RI) TLVs Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left" colspan="1" rowspan="1">Value</th> | ||||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">16</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Defi | ||||
nition (FAD) TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"OSPFFLEXALGTLV" format="default" sectionFormat="of" derivedContent="Section 5.2 | ||||
"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="SUBTLVEXTPFX" numbered="true" toc="include" removeInRFC | ||||
<section anchor="SUBTLVEXTPFX" | ="false" pn="section-18.4.2"> | |||
title="OSPFv2 Extended Prefix TLV Sub-TLVs"> | <name slugifiedName="name-ospfv2-extended-prefix-tlv-">OSPFv2 Extended | |||
<t>This document makes the following registrations in the "OSPFv2 | Prefix TLV Sub-TLVs Registry</name> | |||
Extended Prefix TLV Sub-TLVs" registry. <list style="hanging"> | <t indent="0" pn="section-18.4.2-1">This document makes the following | |||
<t>Type: 3</t> | registration in the "OSPFv2 | |||
Extended Prefix TLV Sub-TLVs" registry. </t> | ||||
<t>Description: Flexible Algorithm Prefix Metric (FAPM).</t> | <table align="center" pn="table-8"> | |||
<name slugifiedName="name-ospfv2-extended-prefix-tlv-s">OSPFv2 Exten | ||||
<t>Reference: This document (<xref | ded Prefix TLV Sub-TLVs Registry</name> | |||
target="OSPFFLEXMETRIC"/>).</t> | <thead> | |||
</list></t> | <tr> | |||
<th align="left" colspan="1" rowspan="1">Value</th> | ||||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">3</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Pref | ||||
ix Metric (FAPM)</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"OSPFFLEXMETRIC" format="default" sectionFormat="of" derivedContent="Section 9"/ | ||||
></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="SUBTLVV3EXTLSA" numbered="true" toc="include" removeInR | ||||
<section anchor="SUBTLVV3EXTLSA" title="OSPFv3 Extended-LSA Sub-TLVs"> | FC="false" pn="section-18.4.3"> | |||
<t>This document makes the following registrations in the "OSPFv3 | <name slugifiedName="name-ospfv3-extended-lsa-sub-tlv">OSPFv3 Extended | |||
Extended-LSA Sub-TLVs" registry. <list style="hanging"> | -LSA Sub-TLVs Registry</name> | |||
<t>Type: 26</t> | <t indent="0" pn="section-18.4.3-1">This document makes the following | |||
registrations in the "OSPFv3 | ||||
<t>Description: Flexible Algorithm Prefix Metric (FAPM).</t> | Extended-LSA Sub-TLVs" registry. </t> | |||
<table align="center" pn="table-9"> | ||||
<t>Reference: This document (<xref | <name slugifiedName="name-ospfv3-extended-lsa-sub-tlvs">OSPFv3 Exten | |||
target="OSPFFLEXMETRIC"/>).</t> | ded-LSA Sub-TLVs Registry</name> | |||
<thead> | ||||
<t>Type: 33</t> | <tr> | |||
<th align="left" colspan="1" rowspan="1">Value</th> | ||||
<t>Description: OSPF Flexible Algorithm ASBR Metric</t> | <th align="left" colspan="1" rowspan="1">Description</th> | |||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
<t>Reference: This document (<xref target="OSPFFAASBRMETRIC"/>).</ | </tr> | |||
t> | </thead> | |||
</list></t> | <tbody> | |||
<tr> | ||||
<t>For both of these sub-TLVs the column L2BN in the registry is set | <td align="left" colspan="1" rowspan="1">26</td> | |||
to "X" - | <td align="left" colspan="1" rowspan="1">Flexible Algorithm Pref | |||
meaning "sub-TLV is not a Router Link sub-TLV; it MUST NOT appear | ix Metric (FAPM)</td> | |||
in L2 Bundle Member sub-TLV".</t> | <td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | |||
"OSPFFLEXMETRIC" format="default" sectionFormat="of" derivedContent="Section 9"/ | ||||
></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">33</td> | ||||
<td align="left" colspan="1" rowspan="1">OSPF Flexible Algorithm | ||||
ASBR Metric</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"OSPFFAASBRMETRIC" format="default" sectionFormat="of" derivedContent="Section 1 | ||||
0.2"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="FAPMFLAGS" numbered="true" toc="include" removeInRFC="f | ||||
<section anchor="FAPMFLAGS" | alse" pn="section-18.4.4"> | |||
title="OSPF Flex-Algorithm Prefix Metric Bits"> | <name slugifiedName="name-ospf-flex-algorithm-prefix-">OSPF Flex-Algor | |||
<t>This specification requests creation of the "OSPF Flex-Algorithm | ithm Prefix Metric Bits Registry</name> | |||
<t indent="0" pn="section-18.4.4-1">IANA has created the "OSPF Flex-Al | ||||
gorithm | ||||
Prefix Metric Bits" registry under the "Open Shortest Path First | Prefix Metric Bits" registry under the "Open Shortest Path First | |||
(OSPF) Parameters" with the following initial values:</t> | (OSPF) Parameters" registry. The registration procedure | |||
is "IETF Review". Bits 1-7 are unassigned, and the initial value has b | ||||
<t><list style="hanging"> | een assigned as follows.</t> | |||
<t>Bit Number: 0</t> | <table align="center" pn="table-10"> | |||
<name slugifiedName="name-ospf-flex-algorithm-prefix-m">OSPF Flex-Al | ||||
<t>Description: E bit - External Type</t> | gorithm Prefix Metric Bits Registry</name> | |||
<thead> | ||||
<t>Reference: this document (<xref target="OSPFFLEXMETRIC"/>).</t> | <tr> | |||
</list>The bits 1-7 are unassigned and the registration procedure | <th align="left" colspan="1" rowspan="1">Bit Number</th> | |||
to be followed for this registry is IETF Review.</t> | <th align="left" colspan="1" rowspan="1">Description</th> | |||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">0</td> | ||||
<td align="left" colspan="1" rowspan="1">E bit - External Type</ | ||||
td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"OSPFFLEXMETRIC" format="default" sectionFormat="of" derivedContent="Section 9"/ | ||||
></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="OPQLSAOPTS" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="OPQLSAOPTS" title="OSPFv2 Opaque LSA Option Types "> | false" pn="section-18.4.5"> | |||
<t>This document makes the following registrations in the "Opaque Link | <name slugifiedName="name-opaque-link-state-advertise">Opaque Link-Sta | |||
-State | te Advertisements (LSA) Option Types Registry</name> | |||
Advertisements (LSA) Option Types" registry under the "Open Shortest P | <t indent="0" pn="section-18.4.5-1">This document makes the following | |||
ath First | registration in the "Opaque Link-State | |||
(OSPF) Opaque Link-State Advertisements (LSA) Option Types" grouping. | Advertisements (LSA) Option Types" registry within the "Open Shortest | |||
<list style="hanging"> | Path First | |||
(OSPF) Opaque Link-State Advertisements (LSA) Option Types" registry g | ||||
<t>Value: 11</t> | roup. </t> | |||
<table align="center" pn="table-11"> | ||||
<t>Description: OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) LSA</t> | <name slugifiedName="name-opaque-link-state-advertisem">Opaque Link- | |||
State Advertisements (LSA) Option Types Registry</name> | ||||
<t>Reference: This document (<xref | <thead> | |||
target="OSPFEXTASBRLSA"/>).</t> | <tr> | |||
</list></t> | <th align="left" colspan="1" rowspan="1">Value</th> | |||
<th align="left" colspan="1" rowspan="1">Opaque Type</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">11</td> | ||||
<td align="left" colspan="1" rowspan="1">OSPFv2 Extended Inter-A | ||||
rea ASBR (EIA-ASBR) LSA</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"OSPFEXTASBRLSA" format="default" sectionFormat="of" derivedContent="Section 10. | ||||
1"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="IAASBRTLV" numbered="true" toc="include" removeInRFC="f | ||||
<section anchor="IAASBRTLV" | alse" pn="section-18.4.6"> | |||
title="OSPFv2 Extended Inter-Area ASBR TLVs"> | <name slugifiedName="name-ospfv2-extended-inter-area-as">OSPFv2 Extend | |||
<t>This specification requests creation of "OSPFv2 Extended | ed Inter-Area ASBR TLVs Registry</name> | |||
Inter-Area ASBR TLVs" registry under the OSPFv2 Parameters Registry | <t indent="0" pn="section-18.4.6-1">IANA has created the "OSPFv2 Exten | |||
with the following initial values.</t> | ded | |||
Inter-Area ASBR TLVs" registry within the "Open Shortest Path First v2 | ||||
<t><list style="hanging"> | (OSPFv2) Parameters" registry group. The registration procedure is "IETF Review | |||
<t>Value: 1</t> | " or "IESG Approval". The initial value has been assigned as follows.</t> | |||
<table align="center" pn="table-12"> | ||||
<t>Description : Extended Inter-Area ASBR</t> | <name slugifiedName="name-ospfv2-extended-inter-area-asb">OSPFv2 Ext | |||
ended Inter-Area ASBR TLVs Registry</name> | ||||
<t>Reference: this document</t> | <thead> | |||
</list>The values 2 to 32767 are unassigned, values 32768 to 33023 | <tr> | |||
are reserved for experimental use while the values 0 and 33024 to | <th align="left" colspan="1" rowspan="1">Value</th> | |||
65535 are reserved. The registration procedure to be followed for | <th align="left" colspan="1" rowspan="1">Description</th> | |||
this registry is IETF Review or IESG Approval.</t> | <th align="left" colspan="1" rowspan="1">Reference</th> | |||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">1</td> | ||||
<td align="left" colspan="1" rowspan="1">Extended Inter-Area ASB | ||||
R</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t indent="0" pn="section-18.4.6-3">The values 2-32767 are unassigned, | ||||
the values 32768-33023 | ||||
are reserved for Experimental Use, and the values 0 and 33024-65535 ar | ||||
e | ||||
reserved.</t> | ||||
</section> | </section> | |||
<section anchor="IAASBRSTLV" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="IAASBRSTLV" title="OSPFv2 Inter-Area ASBR Sub-TLVs"> | false" pn="section-18.4.7"> | |||
<t>This specification requests creation of "OSPFv2 Extended | <name slugifiedName="name-ospfv2-extended-inter-area-asbr">OSPFv2 Exte | |||
nded Inter-Area ASBR Sub-TLVs Registry</name> | ||||
<t indent="0" pn="section-18.4.7-1">IANA has created the "OSPFv2 Exten | ||||
ded | ||||
Inter-Area ASBR Sub-TLVs" registry under the "Open Shortest Path | Inter-Area ASBR Sub-TLVs" registry under the "Open Shortest Path | |||
First v2 (OSPFv2) Parameters" grouping, with the following initial val | First v2 (OSPFv2) Parameters" registry. The registration procedure is | |||
ues.</t> | "IETF Review" or "IESG Approval". The initial value has been assigned as follows | |||
.</t> | ||||
<t><list style="hanging"> | <table align="center" pn="table-13"> | |||
<t>Value: 1</t> | <name slugifiedName="name-ospfv2-extended-inter-area-asbr-">OSPFv2 E | |||
xtended Inter-Area ASBR Sub-TLVs Registry</name> | ||||
<t>Description : OSPF Flexible Algorithm ASBR Metric</t> | <thead> | |||
<tr> | ||||
<t>Reference: this document</t> | <th align="left" colspan="1" rowspan="1">Value</th> | |||
</list>The values 2 to 32767 are unassigned, values 32768 to 33023 | <th align="left" colspan="1" rowspan="1">Description</th> | |||
are reserved for experimental use while the values 0 and 33024 to | <th align="left" colspan="1" rowspan="1">Reference</th> | |||
65535 are reserved. The registration procedure to be followed for | </tr> | |||
this registry is IETF Review or IESG Approval.</t> | </thead> | |||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">1</td> | ||||
<td align="left" colspan="1" rowspan="1">OSPF Flexible Algorithm | ||||
ASBR Metric</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t indent="0" pn="section-18.4.7-3">The values 2-32767 are unassigned, | ||||
the values 32768-33023 | ||||
are reserved for Experimental Use, and the values 0 and 33024-65535 ar | ||||
e | ||||
reserved.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-1 | ||||
<section title="OSPF Flexible Algorithm Definition TLV Sub-TLV Registry" | 8.4.8"> | |||
> | <name slugifiedName="name-ospf-flexible-algorithm-defin">OSPF Flexible | |||
<t>This document creates the following registry under the "Open Shorte | Algorithm Definition TLV Sub-TLVs Registry</name> | |||
st | <t indent="0" pn="section-18.4.8-1">IANA has created the "OSPF Flexibl | |||
Path First (OSPF) Parameters" grouping: | e Algorithm Definition TLV Sub-TLVs" registry within the "Open Shortest Path Fir | |||
<list style="hanging"> | st (OSPF) Parameters" registry group. The registration procedure is "IETF Review | |||
<t>Registry: OSPF Flexible Algorithm Definition TLV sub-TLVs</t> | " or "IESG Approval". | |||
</t> | ||||
<t>Registration Procedure: IETF Review or IESG Approval</t> | <t indent="0" pn="section-18.4.8-2">The "OSPF Flexible Algorithm Defin | |||
ition TLV Sub-TLVs" registry | ||||
<t>Reference: This document (<xref | ||||
target="OSPFFLEXALGTLV"/>)</t> | ||||
</list></t> | ||||
<t>The "OSPF Flexible Algorithm Definition TLV sub-TLV" registry | ||||
will define sub-TLVs at any level of nesting for the Flexible | will define sub-TLVs at any level of nesting for the Flexible | |||
Algorithm TLV New values can be allocated via IETF Review or IESG App | Algorithm TLV, and new values can be allocated via the registration pr | |||
roval.</t> | ocedure.</t> | |||
<t indent="0" pn="section-18.4.8-3">This document registers the follow | ||||
<t>This document registers following Sub-TLVs in the "OSPF Flexible Al | ing sub-TLVs. </t> | |||
gorithm | <table align="center" pn="table-14"> | |||
Definition TLV sub-TLV" registry: <list style="hanging"> | <name slugifiedName="name-ospf-flexible-algorithm-defini">OSPF Flexi | |||
<t>Type: 0</t> | ble Algorithm Definition TLV Sub-TLVs Registry</name> | |||
<thead> | ||||
<t>Description: Reserved</t> | <tr> | |||
<th align="left" colspan="1" rowspan="1">Bit Number</th> | ||||
<t>Reference: This document (<xref | <th align="left" colspan="1" rowspan="1">Description</th> | |||
target="OSPFFLEXALGEXLTLV"/>).</t> | <th align="left" colspan="1" rowspan="1">Reference</th> | |||
</tr> | ||||
</list><list style="hanging"> | </thead> | |||
<t>Type: 1</t> | <tbody> | |||
<tr> | ||||
<t>Description: Flexible Algorithm Exclude Admin Group</t> | <td align="left" colspan="1" rowspan="1">0</td> | |||
<td align="left" colspan="1" rowspan="1">Reserved</td> | ||||
<t>Reference: This document (<xref | <td align="left" colspan="1" rowspan="1">RFC 9350</td> | |||
target="OSPFFLEXALGEXLTLV"/>).</t> | </tr> | |||
</list> <list style="hanging"> | <tr> | |||
<t>Type: 2</t> | <td align="left" colspan="1" rowspan="1">1</td> | |||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Excl | ||||
<t>Description: Flexible Algorithm Include-Any Admin Group</t> | ude Admin Group</td> | |||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
<t>Reference: This document (<xref | "OSPFFLEXALGEXLTLV" format="default" sectionFormat="of" derivedContent="Section | |||
target="OSPFFLEXALGINCANYTLV"/>).</t> | 7.1"/></td> | |||
</list> <list style="hanging"> | </tr> | |||
<t>Type: 3</t> | <tr> | |||
<td align="left" colspan="1" rowspan="1">2</td> | ||||
<t>Description: Flexible Algorithm Include-All Admin Group</t> | <td align="left" colspan="1" rowspan="1">Flexible Algorithm Incl | |||
ude-Any Admin Group</td> | ||||
<t>Reference: This document (<xref | <td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | |||
target="OSPFFLEXALGINCALLTLV"/>).</t> | "OSPFFLEXALGINCANYTLV" format="default" sectionFormat="of" derivedContent="Secti | |||
</list> <list style="hanging"> | on 7.2"/></td> | |||
<t>Type: 4</t> | </tr> | |||
<tr> | ||||
<t>Description: Flexible Algorithm Definition Flags</t> | <td align="left" colspan="1" rowspan="1">3</td> | |||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Incl | ||||
<t>Reference: This document (<xref | ude-All Admin Group</td> | |||
target="OSPFFLEXALGFLAG"/>).</t> | <td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | |||
</list> <list style="hanging"> | "OSPFFLEXALGINCALLTLV" format="default" sectionFormat="of" derivedContent="Secti | |||
<t>Type: 5</t> | on 7.3"/></td> | |||
</tr> | ||||
<t>Description: Flexible Algorithm Exclude SRLG</t> | <tr> | |||
<td align="left" colspan="1" rowspan="1">4</td> | ||||
<t>Reference: This document (<xref | <td align="left" colspan="1" rowspan="1">Flexible Algorithm Defi | |||
target="OSPFFLEXALGEXSRLGTLV"/>).</t> | nition Flags</td> | |||
</list></t> | <td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | |||
"OSPFFLEXALGFLAG" format="default" sectionFormat="of" derivedContent="Section 7. | ||||
<t>The values 6 to 32767 are unassigned, values 32768-33023 are for | 4"/></td> | |||
experimental use; these will not be registered with IANA.</t> | </tr> | |||
<tr> | ||||
<t>Types in the range 33024-65535 are not to be assigned at this | <td align="left" colspan="1" rowspan="1">5</td> | |||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm Excl | ||||
ude SRLG</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"OSPFFLEXALGEXSRLGTLV" format="default" sectionFormat="of" derivedContent="Secti | ||||
on 7.5"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t indent="0" pn="section-18.4.8-5">The values 6-32767 are unassigned, | ||||
and values 32768-33023 are for | ||||
Experimental Use; these will not be registered with IANA.</t> | ||||
<t indent="0" pn="section-18.4.8-6">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, | time. Before any assignments can be made in the 33024-65535 range, | |||
there MUST be an IETF specification that specifies IANA | there <bcp14>MUST</bcp14> be an IETF specification that specifies IANA | |||
Considerations that covers the range being assigned.</t> | considerations that cover the range being assigned.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-1 | ||||
<section title="Link Attribute Applications Registry"> | 8.4.9"> | |||
<t>This document registers following bit in the Link Attribute | <name slugifiedName="name-link-attribute-application-">Link Attribute | |||
Applications Registry: <list style="hanging"> | Application Identifiers Registry</name> | |||
<t>Bit-3</t> | <t indent="0" pn="section-18.4.9-1">This document registers the follow | |||
ing bit in the "Link Attribute | ||||
<t>Description: Flexible Algorithm (X-bit)</t> | Application Identifiers" registry.</t> | |||
<table align="center" pn="table-15"> | ||||
<t>Reference: This document (<xref | <name slugifiedName="name-link-attribute-application-i">Link Attribu | |||
target="FLEXALGLINKATTR"/>).</t> | te Application Identifiers Registry</name> | |||
</list></t> | <thead> | |||
<tr> | ||||
<th align="left" colspan="1" rowspan="1">Bit</th> | ||||
<th align="left" colspan="1" rowspan="1">Description</th> | ||||
<th align="left" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">3</td> | ||||
<td align="left" colspan="1" rowspan="1">Flexible Algorithm (X-b | ||||
it)</td> | ||||
<td align="left" colspan="1" rowspan="1">RFC 9350, <xref target= | ||||
"FLEXALGLINKATTR" format="default" sectionFormat="of" derivedContent="Section 12 | ||||
"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="ACK" title="Acknowledgements"> | ||||
<t>This draft, among other things, is also addressing the problem that | ||||
the <xref target="I-D.gulkohegde-routing-planes-using-sr"/> was trying | ||||
to solve. All authors of that draft agreed to join this draft.</t> | ||||
<t>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.</t> | ||||
<t>Thanks to Cengiz Halit for his review and feedback during initial | ||||
phase of the solution definition.</t> | ||||
<t>Thanks to Kenji Kumaki for his comments.</t> | ||||
<t>Thanks to Acee Lindem for editorial comments.</t> | ||||
</section> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | <displayreference target="I-D.gulkohegde-routing-planes-using-sr" to="ROUTIN | |||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | G-PLANES-USING-SR"/> | |||
FC.2119.xml"?> | <displayreference target="I-D.ietf-rtgwg-segment-routing-ti-lfa" to="RTGWG-S | |||
EGMENT-ROUTING-TI-LFA"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <references pn="section-19"> | |||
FC.4203.xml"?> | <name slugifiedName="name-references">References</name> | |||
<references pn="section-19.1"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <name slugifiedName="name-normative-references">Normative References</na | |||
FC.5307.xml"?> | me> | |||
<reference anchor="ISO10589" quoteTitle="true" derivedAnchor="ISO10589"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <front> | |||
FC.7308.xml"?> | <title>Information technology - Telecommunications and information e | |||
xchange between systems - Intermediate System to Intermediate System intra-domai | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | n routeing information exchange protocol for use in conjunction with the protoco | |||
FC.5250.xml"?> | l for providing the connectionless-mode network service (ISO 8473)</title> | |||
<author> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <organization abbrev="ISO" showOnFrontPage="true">International Or | |||
FC.8920.xml"?> | ganization for Standardization</organization> | |||
</author> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <date month="November" year="2002"/> | |||
FC.8919.xml"?> | </front> | |||
<seriesInfo name="ISO/IEC" value="10589:2002"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <refcontent>Second Edition</refcontent> | |||
FC.7770.xml"?> | </reference> | |||
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | 119" quoteTitle="true" derivedAnchor="RFC2119"> | |||
FC.7981.xml"?> | <front> | |||
<title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | le> | |||
FC.8174.xml"?> | <author fullname="S. Bradner" initials="S." surname="Bradner"/> | |||
<date month="March" year="1997"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <abstract> | |||
FC.7684.xml"?> | <t indent="0">In many standards track documents several words are | |||
used to signify the requirements in the specification. These words are often ca | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | pitalized. This document defines these words as they should be interpreted in I | |||
FC.8362.xml"?> | ETF documents. This document specifies an Internet Best Current Practices for t | |||
he Internet Community, and requests discussion and suggestions for improvements. | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | </t> | |||
FC.8660.xml"?> | </abstract> | |||
</front> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <seriesInfo name="BCP" value="14"/> | |||
FC.8665.xml"?> | <seriesInfo name="RFC" value="2119"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | </reference> | |||
FC.8666.xml"?> | <reference anchor="RFC4203" target="https://www.rfc-editor.org/info/rfc4 | |||
203" quoteTitle="true" derivedAnchor="RFC4203"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <front> | |||
FC.8667.xml"?> | <title>OSPF Extensions in Support of Generalized Multi-Protocol Labe | |||
l Switching (GMPLS)</title> | ||||
<reference anchor="ISO10589"> | <author fullname="K. Kompella" initials="K." role="editor" surname=" | |||
<front> | Kompella"/> | |||
<title>Intermediate system to Intermediate system intra-domain | <author fullname="Y. Rekhter" initials="Y." role="editor" surname="R | |||
routeing information exchange protocol for use in conjunction with | ekhter"/> | |||
the protocol for providing the connectionless-mode Network Service | <date month="October" year="2005"/> | |||
(ISO 8473)</title> | <abstract> | |||
<t indent="0">This document specifies encoding of extensions to th | ||||
<author> | e OSPF routing protocol in support of Generalized Multi-Protocol Label Switching | |||
<organization abbrev="ISO">International Organization for | (GMPLS). [STANDARDS-TRACK]</t> | |||
Standardization</organization> | </abstract> | |||
</author> | </front> | |||
<seriesInfo name="RFC" value="4203"/> | ||||
<date month="Nov" year="2002"/> | <seriesInfo name="DOI" value="10.17487/RFC4203"/> | |||
</front> | </reference> | |||
<reference anchor="RFC5250" target="https://www.rfc-editor.org/info/rfc5 | ||||
<seriesInfo name="ISO/IEC" value="10589:2002, Second Edition"/> | 250" quoteTitle="true" derivedAnchor="RFC5250"> | |||
</reference> | <front> | |||
<title>The OSPF Opaque LSA Option</title> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference. | <author fullname="L. Berger" initials="L." surname="Berger"/> | |||
I-D.ietf-lsr-isis-srv6-extensions.xml"?> | <author fullname="I. Bryskin" initials="I." surname="Bryskin"/> | |||
</references> | <author fullname="A. Zinin" initials="A." surname="Zinin"/> | |||
<author fullname="R. Coltun" initials="R." surname="Coltun"/> | ||||
<references title="Informative References"> | <date month="July" year="2008"/> | |||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <abstract> | |||
FC.2328.xml"?> | <t indent="0">This document defines enhancements to the OSPF proto | |||
col to support a new class of link state advertisements (LSAs) called Opaque LSA | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | s. Opaque LSAs provide a generalized mechanism to allow for the future extensibi | |||
FC.3630.xml"?> | lity of OSPF. Opaque LSAs consist of a standard LSA header followed by applicati | |||
on-specific information. The information field may be used directly by OSPF or b | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | y other applications. Standard OSPF link-state database flooding mechanisms are | |||
FC.3101.xml"?> | used to distribute Opaque LSAs to all or some limited portion of the OSPF topolo | |||
gy.</t> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <t indent="0">This document replaces RFC 2370 and adds to it a mec | |||
FC.3906.xml"?> | hanism to enable an OSPF router to validate Autonomous System (AS)-scope Opaque | |||
LSAs originated outside of the router's OSPF area. [STANDARDS-TRACK]</t> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | </abstract> | |||
FC.4552.xml"?> | </front> | |||
<seriesInfo name="RFC" value="5250"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <seriesInfo name="DOI" value="10.17487/RFC5250"/> | |||
FC.5304.xml"?> | </reference> | |||
<reference anchor="RFC5307" target="https://www.rfc-editor.org/info/rfc5 | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | 307" quoteTitle="true" derivedAnchor="RFC5307"> | |||
FC.5305.xml"?> | <front> | |||
<title>IS-IS Extensions in Support of Generalized Multi-Protocol Lab | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | el Switching (GMPLS)</title> | |||
FC.5310.xml"?> | <author fullname="K. Kompella" initials="K." role="editor" surname=" | |||
Kompella"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <author fullname="Y. Rekhter" initials="Y." role="editor" surname="R | |||
FC.5340.xml"?> | ekhter"/> | |||
<date month="October" year="2008"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <abstract> | |||
FC.6571.xml"?> | <t indent="0">This document specifies encoding of extensions to th | |||
e IS-IS routing protocol in support of Generalized Multi-Protocol Label Switchin | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | g (GMPLS). [STANDARDS-TRACK]</t> | |||
FC.7120.xml"?> | </abstract> | |||
</front> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <seriesInfo name="RFC" value="5307"/> | |||
FC.7471.xml"?> | <seriesInfo name="DOI" value="10.17487/RFC5307"/> | |||
</reference> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <reference anchor="RFC7308" target="https://www.rfc-editor.org/info/rfc7 | |||
FC.7474.xml"?> | 308" quoteTitle="true" derivedAnchor="RFC7308"> | |||
<front> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <title>Extended Administrative Groups in MPLS Traffic Engineering (M | |||
FC.8570.xml"?> | PLS-TE)</title> | |||
<author fullname="E. Osborne" initials="E." surname="Osborne"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <date month="July" year="2014"/> | |||
FC.8126.xml"?> | <abstract> | |||
<t indent="0">MPLS Traffic Engineering (MPLS-TE) advertises 32 adm | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | inistrative groups (commonly referred to as "colors" or "link colors") using the | |||
FC.8986.xml"?> | Administrative Group sub-TLV. This is defined for OSPFv2 (RFC 3630), OSPFv3 (RF | |||
C 5329) and IS-IS (RFC 5305).</t> | ||||
<t indent="0">This document adds a sub-TLV to the IGP TE extension | ||||
s, "Extended Administrative Group". This sub-TLV provides for additional adminis | ||||
trative groups (link colors) beyond the current limit of 32.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7308"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7308"/> | ||||
</reference> | ||||
<reference anchor="RFC7684" target="https://www.rfc-editor.org/info/rfc7 | ||||
684" quoteTitle="true" derivedAnchor="RFC7684"> | ||||
<front> | ||||
<title>OSPFv2 Prefix/Link Attribute Advertisement</title> | ||||
<author fullname="P. Psenak" initials="P." surname="Psenak"/> | ||||
<author fullname="H. Gredler" initials="H." surname="Gredler"/> | ||||
<author fullname="R. Shakir" initials="R." surname="Shakir"/> | ||||
<author fullname="W. Henderickx" initials="W." surname="Henderickx"/ | ||||
> | ||||
<author fullname="J. Tantsura" initials="J." surname="Tantsura"/> | ||||
<author fullname="A. Lindem" initials="A." surname="Lindem"/> | ||||
<date month="November" year="2015"/> | ||||
<abstract> | ||||
<t indent="0">OSPFv2 requires functional extension beyond what can | ||||
readily be done with the fixed-format Link State Advertisements (LSAs) as descr | ||||
ibed in RFC 2328. This document defines OSPFv2 Opaque LSAs based on Type-Length | ||||
-Value (TLV) tuples that can be used to associate additional attributes with pre | ||||
fixes or links. Depending on the application, these prefixes and links may or m | ||||
ay not be advertised in the fixed-format LSAs. The OSPFv2 Opaque LSAs are optio | ||||
nal and fully backward compatible.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7684"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7684"/> | ||||
</reference> | ||||
<reference anchor="RFC7770" target="https://www.rfc-editor.org/info/rfc7 | ||||
770" quoteTitle="true" derivedAnchor="RFC7770"> | ||||
<front> | ||||
<title>Extensions to OSPF for Advertising Optional Router Capabiliti | ||||
es</title> | ||||
<author fullname="A. Lindem" initials="A." role="editor" surname="Li | ||||
ndem"/> | ||||
<author fullname="N. Shen" initials="N." surname="Shen"/> | ||||
<author fullname="JP. Vasseur" initials="JP." surname="Vasseur"/> | ||||
<author fullname="R. Aggarwal" initials="R." surname="Aggarwal"/> | ||||
<author fullname="S. Shaffer" initials="S." surname="Shaffer"/> | ||||
<date month="February" year="2016"/> | ||||
<abstract> | ||||
<t indent="0">It is useful for routers in an OSPFv2 or OSPFv3 rout | ||||
ing domain to know the capabilities of their neighbors and other routers in the | ||||
routing domain. This document proposes extensions to OSPFv2 and OSPFv3 for adve | ||||
rtising optional router capabilities. The Router Information (RI) Link State Ad | ||||
vertisement (LSA) is defined for this purpose. In OSPFv2, the RI LSA will be im | ||||
plemented with an Opaque LSA type ID. In OSPFv3, the RI LSA will be implemented | ||||
with a unique LSA type function code. In both protocols, the RI LSA can be adv | ||||
ertised at any of the defined flooding scopes (link, area, or autonomous system | ||||
(AS)). This document obsoletes RFC 4970 by providing a revised specification th | ||||
at includes support for advertisement of multiple instances of the RI LSA and a | ||||
TLV for functional capabilities.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7770"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7770"/> | ||||
</reference> | ||||
<reference anchor="RFC7981" target="https://www.rfc-editor.org/info/rfc7 | ||||
981" quoteTitle="true" derivedAnchor="RFC7981"> | ||||
<front> | ||||
<title>IS-IS Extensions for Advertising Router Information</title> | ||||
<author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/> | ||||
<author fullname="S. Previdi" initials="S." surname="Previdi"/> | ||||
<author fullname="M. Chen" initials="M." surname="Chen"/> | ||||
<date month="October" year="2016"/> | ||||
<abstract> | ||||
<t indent="0">This document defines a new optional Intermediate Sy | ||||
stem to Intermediate System (IS-IS) TLV named CAPABILITY, formed of multiple sub | ||||
-TLVs, which allows a router to announce its capabilities within an IS-IS level | ||||
or the entire routing domain. This document obsoletes RFC 4971.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7981"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7981"/> | ||||
</reference> | ||||
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
174" quoteTitle="true" derivedAnchor="RFC8174"> | ||||
<front> | ||||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
tle> | ||||
<author fullname="B. Leiba" initials="B." surname="Leiba"/> | ||||
<date month="May" year="2017"/> | ||||
<abstract> | ||||
<t indent="0">RFC 2119 specifies common key words that may be used | ||||
in protocol specifications. This document aims to reduce the ambiguity by clar | ||||
ifying that only UPPERCASE usage of the key words have the defined special meani | ||||
ngs.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="14"/> | ||||
<seriesInfo name="RFC" value="8174"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
</reference> | ||||
<reference anchor="RFC8362" target="https://www.rfc-editor.org/info/rfc8 | ||||
362" quoteTitle="true" derivedAnchor="RFC8362"> | ||||
<front> | ||||
<title>OSPFv3 Link State Advertisement (LSA) Extensibility</title> | ||||
<author fullname="A. Lindem" initials="A." surname="Lindem"/> | ||||
<author fullname="A. Roy" initials="A." surname="Roy"/> | ||||
<author fullname="D. Goethals" initials="D." surname="Goethals"/> | ||||
<author fullname="V. Reddy Vallem" initials="V." surname="Reddy Vall | ||||
em"/> | ||||
<author fullname="F. Baker" initials="F." surname="Baker"/> | ||||
<date month="April" year="2018"/> | ||||
<abstract> | ||||
<t indent="0">OSPFv3 requires functional extension beyond what can | ||||
readily be done with the fixed-format Link State Advertisement (LSA) as describ | ||||
ed in RFC 5340. Without LSA extension, attributes associated with OSPFv3 links a | ||||
nd advertised IPv6 prefixes must be advertised in separate LSAs and correlated t | ||||
o the fixed-format LSAs. This document extends the LSA format by encoding the ex | ||||
isting OSPFv3 LSA information in Type-Length-Value (TLV) tuples and allowing adv | ||||
ertisement of additional information with additional TLVs. Backward-compatibilit | ||||
y mechanisms are also described.</t> | ||||
<t indent="0">This document updates RFC 5340, "OSPF for IPv6", and | ||||
RFC 5838, "Support of Address Families in OSPFv3", by providing TLV-based encod | ||||
ings for the base OSPFv3 unicast support and OSPFv3 address family support.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8362"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8362"/> | ||||
</reference> | ||||
<reference anchor="RFC8660" target="https://www.rfc-editor.org/info/rfc8 | ||||
660" quoteTitle="true" derivedAnchor="RFC8660"> | ||||
<front> | ||||
<title>Segment Routing with the MPLS Data Plane</title> | ||||
<author fullname="A. Bashandy" initials="A." role="editor" surname=" | ||||
Bashandy"/> | ||||
<author fullname="C. Filsfils" initials="C." role="editor" surname=" | ||||
Filsfils"/> | ||||
<author fullname="S. Previdi" initials="S." surname="Previdi"/> | ||||
<author fullname="B. Decraene" initials="B." surname="Decraene"/> | ||||
<author fullname="S. Litkowski" initials="S." surname="Litkowski"/> | ||||
<author fullname="R. Shakir" initials="R." surname="Shakir"/> | ||||
<date month="December" year="2019"/> | ||||
<abstract> | ||||
<t indent="0">Segment Routing (SR) leverages the source-routing pa | ||||
radigm. A node steers a packet through a controlled set of instructions, called | ||||
segments, by prepending the packet with an SR header. In the MPLS data plane, | ||||
the SR header is instantiated through a label stack. This document specifies th | ||||
e forwarding behavior to allow instantiating SR over the MPLS data plane (SR-MPL | ||||
S).</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8660"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8660"/> | ||||
</reference> | ||||
<reference anchor="RFC8665" target="https://www.rfc-editor.org/info/rfc8 | ||||
665" quoteTitle="true" derivedAnchor="RFC8665"> | ||||
<front> | ||||
<title>OSPF Extensions for Segment Routing</title> | ||||
<author fullname="P. Psenak" initials="P." role="editor" surname="Ps | ||||
enak"/> | ||||
<author fullname="S. Previdi" initials="S." role="editor" surname="P | ||||
revidi"/> | ||||
<author fullname="C. Filsfils" initials="C." surname="Filsfils"/> | ||||
<author fullname="H. Gredler" initials="H." surname="Gredler"/> | ||||
<author fullname="R. Shakir" initials="R." surname="Shakir"/> | ||||
<author fullname="W. Henderickx" initials="W." surname="Henderickx"/ | ||||
> | ||||
<author fullname="J. Tantsura" initials="J." surname="Tantsura"/> | ||||
<date month="December" year="2019"/> | ||||
<abstract> | ||||
<t indent="0">Segment Routing (SR) allows a flexible definition of | ||||
end-to-end paths within IGP topologies by encoding paths as sequences of topolo | ||||
gical subpaths called "segments". These segments are advertised by the link-stat | ||||
e routing protocols (IS-IS and OSPF).</t> | ||||
<t indent="0">This document describes the OSPFv2 extensions requir | ||||
ed for Segment Routing.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8665"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8665"/> | ||||
</reference> | ||||
<reference anchor="RFC8666" target="https://www.rfc-editor.org/info/rfc8 | ||||
666" quoteTitle="true" derivedAnchor="RFC8666"> | ||||
<front> | ||||
<title>OSPFv3 Extensions for Segment Routing</title> | ||||
<author fullname="P. Psenak" initials="P." role="editor" surname="Ps | ||||
enak"/> | ||||
<author fullname="S. Previdi" initials="S." role="editor" surname="P | ||||
revidi"/> | ||||
<date month="December" year="2019"/> | ||||
<abstract> | ||||
<t indent="0">Segment Routing (SR) allows a flexible definition of | ||||
end-to-end paths within IGP topologies by encoding paths as sequences of topolo | ||||
gical subpaths called "segments". These segments are advertised by the link-stat | ||||
e routing protocols (IS-IS and OSPF).</t> | ||||
<t indent="0">This document describes the OSPFv3 extensions requir | ||||
ed for Segment Routing with the MPLS data plane.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8666"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8666"/> | ||||
</reference> | ||||
<reference anchor="RFC8667" target="https://www.rfc-editor.org/info/rfc8 | ||||
667" quoteTitle="true" derivedAnchor="RFC8667"> | ||||
<front> | ||||
<title>IS-IS Extensions for Segment Routing</title> | ||||
<author fullname="S. Previdi" initials="S." role="editor" surname="P | ||||
revidi"/> | ||||
<author fullname="L. Ginsberg" initials="L." role="editor" surname=" | ||||
Ginsberg"/> | ||||
<author fullname="C. Filsfils" initials="C." surname="Filsfils"/> | ||||
<author fullname="A. Bashandy" initials="A." surname="Bashandy"/> | ||||
<author fullname="H. Gredler" initials="H." surname="Gredler"/> | ||||
<author fullname="B. Decraene" initials="B." surname="Decraene"/> | ||||
<date month="December" year="2019"/> | ||||
<abstract> | ||||
<t indent="0">Segment Routing (SR) allows for a flexible definitio | ||||
n of end-to-end paths within IGP topologies by encoding paths as sequences of to | ||||
pological sub-paths, called "segments". These segments are advertised by the lin | ||||
k-state routing protocols (IS-IS and OSPF).</t> | ||||
<t indent="0">This document describes the IS-IS extensions that ne | ||||
ed to be introduced for Segment Routing operating on an MPLS data plane.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8667"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8667"/> | ||||
</reference> | ||||
<reference anchor="RFC8919" target="https://www.rfc-editor.org/info/rfc8 | ||||
919" quoteTitle="true" derivedAnchor="RFC8919"> | ||||
<front> | ||||
<title>IS-IS Application-Specific Link Attributes</title> | ||||
<author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/> | ||||
<author fullname="P. Psenak" initials="P." surname="Psenak"/> | ||||
<author fullname="S. Previdi" initials="S." surname="Previdi"/> | ||||
<author fullname="W. Henderickx" initials="W." surname="Henderickx"/ | ||||
> | ||||
<author fullname="J. Drake" initials="J." surname="Drake"/> | ||||
<date month="October" year="2020"/> | ||||
<abstract> | ||||
<t indent="0">Existing traffic-engineering-related link attribute | ||||
advertisements have been defined and are used in RSVP-TE deployments. Since the | ||||
original RSVP-TE use case was defined, additional applications (e.g., Segment R | ||||
outing Policy and Loop-Free Alternates) that also make use of the link attribute | ||||
advertisements have been defined. In cases where multiple applications wish to | ||||
make use of these link attributes, the current advertisements do not support ap | ||||
plication-specific values for a given attribute, nor do they support indication | ||||
of which applications are using the advertised value for a given link. This doc | ||||
ument introduces new link attribute advertisements that address both of these sh | ||||
ortcomings.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8919"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8919"/> | ||||
</reference> | ||||
<reference anchor="RFC8920" target="https://www.rfc-editor.org/info/rfc8 | ||||
920" quoteTitle="true" derivedAnchor="RFC8920"> | ||||
<front> | ||||
<title>OSPF Application-Specific Link Attributes</title> | ||||
<author fullname="P. Psenak" initials="P." role="editor" surname="Ps | ||||
enak"/> | ||||
<author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/> | ||||
<author fullname="W. Henderickx" initials="W." surname="Henderickx"/ | ||||
> | ||||
<author fullname="J. Tantsura" initials="J." surname="Tantsura"/> | ||||
<author fullname="J. Drake" initials="J." surname="Drake"/> | ||||
<date month="October" year="2020"/> | ||||
<abstract> | ||||
<t indent="0">Existing traffic-engineering-related link attribute | ||||
advertisements have been defined and are used in RSVP-TE deployments. Since the | ||||
original RSVP-TE use case was defined, additional applications (e.g., Segment R | ||||
outing Policy and Loop-Free Alternates) that also make use of the link attribute | ||||
advertisements have been defined. In cases where multiple applications wish to | ||||
make use of these link attributes, the current advertisements do not support ap | ||||
plication-specific values for a given attribute, nor do they support indication | ||||
of which applications are using the advertised value for a given link. This doc | ||||
ument introduces new link attribute advertisements in OSPFv2 and OSPFv3 that add | ||||
ress both of these shortcomings.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8920"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8920"/> | ||||
</reference> | ||||
<reference anchor="RFC9352" target="https://www.rfc-editor.org/info/rfc9 | ||||
352" quoteTitle="true" derivedAnchor="RFC9352"> | ||||
<front> | ||||
<title>IS-IS Extensions to Support Segment Routing over the IPv6 Dat | ||||
a Plane</title> | ||||
<author initials="P" surname="Psenak" fullname="Peter Psenak" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A" surname="Bashandy" fullname="Ahmed Bashandy"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="Z" surname="Hu" fullname="Zhibo Hu"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2023" month="February"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9352"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9352"/> | ||||
</reference> | ||||
</references> | ||||
<references pn="section-19.2"> | ||||
<name slugifiedName="name-informative-references">Informative References | ||||
</name> | ||||
<reference anchor="RFC2328" target="https://www.rfc-editor.org/info/rfc2 | ||||
328" quoteTitle="true" derivedAnchor="RFC2328"> | ||||
<front> | ||||
<title>OSPF Version 2</title> | ||||
<author fullname="J. Moy" initials="J." surname="Moy"/> | ||||
<date month="April" year="1998"/> | ||||
<abstract> | ||||
<t indent="0">This memo documents version 2 of the OSPF protocol. | ||||
OSPF is a link- state routing protocol. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="STD" value="54"/> | ||||
<seriesInfo name="RFC" value="2328"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC2328"/> | ||||
</reference> | ||||
<reference anchor="RFC3101" target="https://www.rfc-editor.org/info/rfc3 | ||||
101" quoteTitle="true" derivedAnchor="RFC3101"> | ||||
<front> | ||||
<title>The OSPF Not-So-Stubby Area (NSSA) Option</title> | ||||
<author fullname="P. Murphy" initials="P." surname="Murphy"/> | ||||
<date month="January" year="2003"/> | ||||
<abstract> | ||||
<t indent="0">This memo documents an optional type of Open Shortes | ||||
t Path First (OSPF) area that is somewhat humorously referred to as a "not-so-st | ||||
ubby" area (or NSSA). NSSAs are similar to the existing OSPF stub area configur | ||||
ation option but have the additional capability of importing AS external routes | ||||
in a limited fashion. The OSPF NSSA Option was originally defined in RFC 1587. | ||||
The functional differences between this memo and RFC 1587 are explained in Appe | ||||
ndix F. All differences, while expanding capability, are backward-compatible in | ||||
nature. Implementations of this memo and of RFC 1587 will interoperate. [STAND | ||||
ARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3101"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3101"/> | ||||
</reference> | ||||
<reference anchor="RFC3630" target="https://www.rfc-editor.org/info/rfc3 | ||||
630" quoteTitle="true" derivedAnchor="RFC3630"> | ||||
<front> | ||||
<title>Traffic Engineering (TE) Extensions to OSPF Version 2</title> | ||||
<author fullname="D. Katz" initials="D." surname="Katz"/> | ||||
<author fullname="K. Kompella" initials="K." surname="Kompella"/> | ||||
<author fullname="D. Yeung" initials="D." surname="Yeung"/> | ||||
<date month="September" year="2003"/> | ||||
<abstract> | ||||
<t indent="0">This document describes extensions to the OSPF proto | ||||
col version 2 to support intra-area Traffic Engineering (TE), using Opaque Link | ||||
State Advertisements.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3630"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3630"/> | ||||
</reference> | ||||
<reference anchor="RFC3906" target="https://www.rfc-editor.org/info/rfc3 | ||||
906" quoteTitle="true" derivedAnchor="RFC3906"> | ||||
<front> | ||||
<title>Calculating Interior Gateway Protocol (IGP) Routes Over Traff | ||||
ic Engineering Tunnels</title> | ||||
<author fullname="N. Shen" initials="N." surname="Shen"/> | ||||
<author fullname="H. Smit" initials="H." surname="Smit"/> | ||||
<date month="October" year="2004"/> | ||||
<abstract> | ||||
<t indent="0">This document describes how conventional hop-by-hop | ||||
link-state routing protocols interact with new Traffic Engineering capabilities | ||||
to create Interior Gateway Protocol (IGP) shortcuts. In particular, this docume | ||||
nt describes how Dijkstra's Shortest Path First (SPF) algorithm can be adapted s | ||||
o that link-state IGPs will calculate IP routes to forward traffic over tunnels | ||||
that are set up by Traffic Engineering. This memo provides information for the | ||||
Internet community.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3906"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3906"/> | ||||
</reference> | ||||
<reference anchor="RFC4552" target="https://www.rfc-editor.org/info/rfc4 | ||||
552" quoteTitle="true" derivedAnchor="RFC4552"> | ||||
<front> | ||||
<title>Authentication/Confidentiality for OSPFv3</title> | ||||
<author fullname="M. Gupta" initials="M." surname="Gupta"/> | ||||
<author fullname="N. Melam" initials="N." surname="Melam"/> | ||||
<date month="June" year="2006"/> | ||||
<abstract> | ||||
<t indent="0">This document describes means and mechanisms to prov | ||||
ide authentication/confidentiality to OSPFv3 using an IPv6 Authentication Header | ||||
/Encapsulating Security Payload (AH/ESP) extension header. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4552"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4552"/> | ||||
</reference> | ||||
<reference anchor="RFC5304" target="https://www.rfc-editor.org/info/rfc5 | ||||
304" quoteTitle="true" derivedAnchor="RFC5304"> | ||||
<front> | ||||
<title>IS-IS Cryptographic Authentication</title> | ||||
<author fullname="T. Li" initials="T." surname="Li"/> | ||||
<author fullname="R. Atkinson" initials="R." surname="Atkinson"/> | ||||
<date month="October" year="2008"/> | ||||
<abstract> | ||||
<t indent="0">This document describes the authentication of Interm | ||||
ediate System to Intermediate System (IS-IS) Protocol Data Units (PDUs) using th | ||||
e Hashed Message Authentication Codes - Message Digest 5 (HMAC-MD5) algorithm as | ||||
found in RFC 2104. IS-IS is specified in International Standards Organization ( | ||||
ISO) 10589, with extensions to support Internet Protocol version 4 (IPv4) descri | ||||
bed in RFC 1195. The base specification includes an authentication mechanism tha | ||||
t allows for multiple authentication algorithms. The base specification only spe | ||||
cifies the algorithm for cleartext passwords. This document replaces RFC 3567.</ | ||||
t> | ||||
<t indent="0">This document proposes an extension to that specific | ||||
ation that allows the use of the HMAC-MD5 authentication algorithm to be used in | ||||
conjunction with the existing authentication mechanisms. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5304"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5304"/> | ||||
</reference> | ||||
<reference anchor="RFC5305" target="https://www.rfc-editor.org/info/rfc5 | ||||
305" quoteTitle="true" derivedAnchor="RFC5305"> | ||||
<front> | ||||
<title>IS-IS Extensions for Traffic Engineering</title> | ||||
<author fullname="T. Li" initials="T." surname="Li"/> | ||||
<author fullname="H. Smit" initials="H." surname="Smit"/> | ||||
<date month="October" year="2008"/> | ||||
<abstract> | ||||
<t indent="0">This document describes extensions to the Intermedia | ||||
te System to Intermediate System (IS-IS) protocol to support Traffic Engineering | ||||
(TE). This document extends the IS-IS protocol by specifying new information t | ||||
hat an Intermediate System (router) can place in Link State Protocol Data Units | ||||
(LSP). This information describes additional details regarding the state of the | ||||
network that are useful for traffic engineering computations. [STANDARDS-TRACK] | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5305"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5305"/> | ||||
</reference> | ||||
<reference anchor="RFC5310" target="https://www.rfc-editor.org/info/rfc5 | ||||
310" quoteTitle="true" derivedAnchor="RFC5310"> | ||||
<front> | ||||
<title>IS-IS Generic Cryptographic Authentication</title> | ||||
<author fullname="M. Bhatia" initials="M." surname="Bhatia"/> | ||||
<author fullname="V. Manral" initials="V." surname="Manral"/> | ||||
<author fullname="T. Li" initials="T." surname="Li"/> | ||||
<author fullname="R. Atkinson" initials="R." surname="Atkinson"/> | ||||
<author fullname="R. White" initials="R." surname="White"/> | ||||
<author fullname="M. Fanto" initials="M." surname="Fanto"/> | ||||
<date month="February" year="2009"/> | ||||
<abstract> | ||||
<t indent="0">This document proposes an extension to Intermediate | ||||
System to Intermediate System (IS-IS) to allow the use of any cryptographic auth | ||||
entication algorithm in addition to the already-documented authentication scheme | ||||
s, described in the base specification and RFC 5304. IS-IS is specified in Inter | ||||
national Standards Organization (ISO) 10589, with extensions to support Internet | ||||
Protocol version 4 (IPv4) described in RFC 1195.</t> | ||||
<t indent="0">Although this document has been written specifically | ||||
for using the Hashed Message Authentication Code (HMAC) construct along with th | ||||
e Secure Hash Algorithm (SHA) family of cryptographic hash functions, the method | ||||
described in this document is generic and can be used to extend IS-IS to suppor | ||||
t any cryptographic hash function in the future. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5310"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5310"/> | ||||
</reference> | ||||
<reference anchor="RFC5340" target="https://www.rfc-editor.org/info/rfc5 | ||||
340" quoteTitle="true" derivedAnchor="RFC5340"> | ||||
<front> | ||||
<title>OSPF for IPv6</title> | ||||
<author fullname="R. Coltun" initials="R." surname="Coltun"/> | ||||
<author fullname="D. Ferguson" initials="D." surname="Ferguson"/> | ||||
<author fullname="J. Moy" initials="J." surname="Moy"/> | ||||
<author fullname="A. Lindem" initials="A." surname="Lindem"/> | ||||
<date month="July" year="2008"/> | ||||
<abstract> | ||||
<t indent="0">This document describes the modifications to OSPF to | ||||
support version 6 of the Internet Protocol (IPv6). The fundamental mechanisms o | ||||
f OSPF (flooding, Designated Router (DR) election, area support, Short Path Firs | ||||
t (SPF) calculations, etc.) remain unchanged. However, some changes have been ne | ||||
cessary, either due to changes in protocol semantics between IPv4 and IPv6, or s | ||||
imply to handle the increased address size of IPv6. These modifications will nec | ||||
essitate incrementing the protocol version from version 2 to version 3. OSPF for | ||||
IPv6 is also referred to as OSPF version 3 (OSPFv3).</t> | ||||
<t indent="0">Changes between OSPF for IPv4, OSPF Version 2, and O | ||||
SPF for IPv6 as described herein include the following. Addressing semantics hav | ||||
e been removed from OSPF packets and the basic Link State Advertisements (LSAs). | ||||
New LSAs have been created to carry IPv6 addresses and prefixes. OSPF now runs | ||||
on a per-link basis rather than on a per-IP-subnet basis. Flooding scope for LSA | ||||
s has been generalized. Authentication has been removed from the OSPF protocol a | ||||
nd instead relies on IPv6's Authentication Header and Encapsulating Security Pay | ||||
load (ESP).</t> | ||||
<t indent="0">Even with larger IPv6 addresses, most packets in OSP | ||||
F for IPv6 are almost as compact as those in OSPF for IPv4. Most fields and pack | ||||
et- size limitations present in OSPF for IPv4 have been relaxed. In addition, op | ||||
tion handling has been made more flexible.</t> | ||||
<t indent="0">All of OSPF for IPv4's optional capabilities, includ | ||||
ing demand circuit support and Not-So-Stubby Areas (NSSAs), are also supported i | ||||
n OSPF for IPv6. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5340"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5340"/> | ||||
</reference> | ||||
<reference anchor="RFC6571" target="https://www.rfc-editor.org/info/rfc6 | ||||
571" quoteTitle="true" derivedAnchor="RFC6571"> | ||||
<front> | ||||
<title>Loop-Free Alternate (LFA) Applicability in Service Provider ( | ||||
SP) Networks</title> | ||||
<author fullname="C. Filsfils" initials="C." role="editor" surname=" | ||||
Filsfils"/> | ||||
<author fullname="P. Francois" initials="P." role="editor" surname=" | ||||
Francois"/> | ||||
<author fullname="M. Shand" initials="M." surname="Shand"/> | ||||
<author fullname="B. Decraene" initials="B." surname="Decraene"/> | ||||
<author fullname="J. Uttaro" initials="J." surname="Uttaro"/> | ||||
<author fullname="N. Leymann" initials="N." surname="Leymann"/> | ||||
<author fullname="M. Horneffer" initials="M." surname="Horneffer"/> | ||||
<date month="June" year="2012"/> | ||||
<abstract> | ||||
<t indent="0">In this document, we analyze the applicability of th | ||||
e Loop-Free Alternate (LFA) method of providing IP fast reroute in both the core | ||||
and access parts of Service Provider networks. We consider both the link and n | ||||
ode failure cases, and provide guidance on the applicability of LFAs to differen | ||||
t network topologies, with special emphasis on the access parts of the network. | ||||
This document is not an Internet Standards Track specification; it is published | ||||
for informational purposes.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6571"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6571"/> | ||||
</reference> | ||||
<reference anchor="RFC7120" target="https://www.rfc-editor.org/info/rfc7 | ||||
120" quoteTitle="true" derivedAnchor="RFC7120"> | ||||
<front> | ||||
<title>Early IANA Allocation of Standards Track Code Points</title> | ||||
<author fullname="M. Cotton" initials="M." surname="Cotton"/> | ||||
<date month="January" year="2014"/> | ||||
<abstract> | ||||
<t indent="0">This memo describes the process for early allocation | ||||
of code points by IANA from registries for which "Specification Required", "RFC | ||||
Required", "IETF Review", or "Standards Action" policies apply. This process c | ||||
an be used to alleviate the problem where code point allocation is needed to fac | ||||
ilitate desired or required implementation and deployment experience prior to pu | ||||
blication of an RFC, which would normally trigger code point allocation. The pr | ||||
ocedures in this document are intended to apply only to IETF Stream documents.</ | ||||
t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="100"/> | ||||
<seriesInfo name="RFC" value="7120"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7120"/> | ||||
</reference> | ||||
<reference anchor="RFC7471" target="https://www.rfc-editor.org/info/rfc7 | ||||
471" quoteTitle="true" derivedAnchor="RFC7471"> | ||||
<front> | ||||
<title>OSPF Traffic Engineering (TE) Metric Extensions</title> | ||||
<author fullname="S. Giacalone" initials="S." surname="Giacalone"/> | ||||
<author fullname="D. Ward" initials="D." surname="Ward"/> | ||||
<author fullname="J. Drake" initials="J." surname="Drake"/> | ||||
<author fullname="A. Atlas" initials="A." surname="Atlas"/> | ||||
<author fullname="S. Previdi" initials="S." surname="Previdi"/> | ||||
<date month="March" year="2015"/> | ||||
<abstract> | ||||
<t indent="0">In certain networks, such as, but not limited to, fi | ||||
nancial information networks (e.g., stock market data providers), network perfor | ||||
mance information (e.g., link propagation delay) is becoming critical to data pa | ||||
th selection.</t> | ||||
<t indent="0">This document describes common extensions to RFC 363 | ||||
0 "Traffic Engineering (TE) Extensions to OSPF Version 2" and RFC 5329 "Traffic | ||||
Engineering Extensions to OSPF Version 3" to enable network performance informat | ||||
ion to be distributed in a scalable fashion. The information distributed using O | ||||
SPF TE Metric Extensions can then be used to make path selection decisions based | ||||
on network performance.</t> | ||||
<t indent="0">Note that this document only covers the mechanisms b | ||||
y which network performance information is distributed. The mechanisms for measu | ||||
ring network performance information or using that information, once distributed | ||||
, are outside the scope of this document.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7471"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7471"/> | ||||
</reference> | ||||
<reference anchor="RFC7474" target="https://www.rfc-editor.org/info/rfc7 | ||||
474" quoteTitle="true" derivedAnchor="RFC7474"> | ||||
<front> | ||||
<title>Security Extension for OSPFv2 When Using Manual Key Managemen | ||||
t</title> | ||||
<author fullname="M. Bhatia" initials="M." surname="Bhatia"/> | ||||
<author fullname="S. Hartman" initials="S." surname="Hartman"/> | ||||
<author fullname="D. Zhang" initials="D." surname="Zhang"/> | ||||
<author fullname="A. Lindem" initials="A." role="editor" surname="Li | ||||
ndem"/> | ||||
<date month="April" year="2015"/> | ||||
<abstract> | ||||
<t indent="0">The current OSPFv2 cryptographic authentication mech | ||||
anism as defined in RFCs 2328 and 5709 is vulnerable to both inter-session and i | ||||
ntra- session replay attacks when using manual keying. Additionally, the existin | ||||
g cryptographic authentication mechanism does not cover the IP header. This omis | ||||
sion can be exploited to carry out various types of attacks.</t> | ||||
<t indent="0">This document defines changes to the authentication | ||||
sequence number mechanism that will protect OSPFv2 from both inter-session and i | ||||
ntra- session replay attacks when using manual keys for securing OSPFv2 protocol | ||||
packets. Additionally, we also describe some changes in the cryptographic hash | ||||
computation that will eliminate attacks resulting from OSPFv2 not protecting the | ||||
IP header.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7474"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7474"/> | ||||
</reference> | ||||
<reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8 | ||||
126" quoteTitle="true" derivedAnchor="RFC8126"> | ||||
<front> | ||||
<title>Guidelines for Writing an IANA Considerations Section in RFCs | ||||
</title> | ||||
<author fullname="M. Cotton" initials="M." surname="Cotton"/> | ||||
<author fullname="B. Leiba" initials="B." surname="Leiba"/> | ||||
<author fullname="T. Narten" initials="T." surname="Narten"/> | ||||
<date month="June" year="2017"/> | ||||
<abstract> | ||||
<t indent="0">Many protocols make use of points of extensibility t | ||||
hat use constants to identify various protocol parameters. To ensure that the va | ||||
lues in these fields do not have conflicting uses and to promote interoperabilit | ||||
y, their allocations are often coordinated by a central record keeper. For IETF | ||||
protocols, that role is filled by the Internet Assigned Numbers Authority (IANA) | ||||
.</t> | ||||
<t indent="0">To make assignments in a given registry prudently, g | ||||
uidance describing the conditions under which new values should be assigned, as | ||||
well as when and how modifications to existing values can be made, is needed. Th | ||||
is document defines a framework for the documentation of these guidelines by spe | ||||
cification authors, in order to assure that the provided guidance for the IANA C | ||||
onsiderations is clear and addresses the various issues that are likely in the o | ||||
peration of a registry.</t> | ||||
<t indent="0">This is the third edition of this document; it obsol | ||||
etes RFC 5226.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="26"/> | ||||
<seriesInfo name="RFC" value="8126"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8126"/> | ||||
</reference> | ||||
<reference anchor="RFC8570" target="https://www.rfc-editor.org/info/rfc8 | ||||
570" quoteTitle="true" derivedAnchor="RFC8570"> | ||||
<front> | ||||
<title>IS-IS Traffic Engineering (TE) Metric Extensions</title> | ||||
<author fullname="L. Ginsberg" initials="L." role="editor" surname=" | ||||
Ginsberg"/> | ||||
<author fullname="S. Previdi" initials="S." role="editor" surname="P | ||||
revidi"/> | ||||
<author fullname="S. Giacalone" initials="S." surname="Giacalone"/> | ||||
<author fullname="D. Ward" initials="D." surname="Ward"/> | ||||
<author fullname="J. Drake" initials="J." surname="Drake"/> | ||||
<author fullname="Q. Wu" initials="Q." surname="Wu"/> | ||||
<date month="March" year="2019"/> | ||||
<abstract> | ||||
<t indent="0">In certain networks, such as, but not limited to, fi | ||||
nancial information networks (e.g., stock market data providers), network-perfor | ||||
mance criteria (e.g., latency) are becoming as critical to data-path selection a | ||||
s other metrics.</t> | ||||
<t indent="0">This document describes extensions to IS-IS Traffic | ||||
Engineering Extensions (RFC 5305). These extensions provide a way to distribute | ||||
and collect network-performance information in a scalable fashion. The informati | ||||
on distributed using IS-IS TE Metric Extensions can then be used to make path-se | ||||
lection decisions based on network performance.</t> | ||||
<t indent="0">Note that this document only covers the mechanisms w | ||||
ith which network-performance information is distributed. The mechanisms for mea | ||||
suring network performance or acting on that information, once distributed, are | ||||
outside the scope of this document.</t> | ||||
<t indent="0">This document obsoletes RFC 7810.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8570"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8570"/> | ||||
</reference> | ||||
<reference anchor="RFC8986" target="https://www.rfc-editor.org/info/rfc8 | ||||
986" quoteTitle="true" derivedAnchor="RFC8986"> | ||||
<front> | ||||
<title>Segment Routing over IPv6 (SRv6) Network Programming</title> | ||||
<author fullname="C. Filsfils" initials="C." role="editor" surname=" | ||||
Filsfils"/> | ||||
<author fullname="P. Camarillo" initials="P." role="editor" surname= | ||||
"Camarillo"/> | ||||
<author fullname="J. Leddy" initials="J." surname="Leddy"/> | ||||
<author fullname="D. Voyer" initials="D." surname="Voyer"/> | ||||
<author fullname="S. Matsushima" initials="S." surname="Matsushima"/ | ||||
> | ||||
<author fullname="Z. Li" initials="Z." surname="Li"/> | ||||
<date month="February" year="2021"/> | ||||
<abstract> | ||||
<t indent="0">The Segment Routing over IPv6 (SRv6) Network Program | ||||
ming framework enables a network operator or an application to specify a packet | ||||
processing program by encoding a sequence of instructions in the IPv6 packet hea | ||||
der.</t> | ||||
<t indent="0">Each instruction is implemented on one or several no | ||||
des in the network and identified by an SRv6 Segment Identifier in the packet.</ | ||||
t> | ||||
<t indent="0">This document defines the SRv6 Network Programming c | ||||
oncept and specifies the base set of SRv6 behaviors that enables the creation of | ||||
interoperable overlays with underlay optimization.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8986"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8986"/> | ||||
</reference> | ||||
<reference anchor="I-D.gulkohegde-routing-planes-using-sr" target="https | ||||
://datatracker.ietf.org/doc/html/draft-gulkohegde-routing-planes-using-sr-00" qu | ||||
oteTitle="true" derivedAnchor="ROUTING-PLANES-USING-SR"> | ||||
<front> | ||||
<title>Separating Routing Planes using Segment Routing</title> | ||||
<author initials="S." surname="Hegde" fullname="Shraddha Hegde"> | ||||
<organization showOnFrontPage="true">Juniper Networks</organizatio | ||||
n> | ||||
</author> | ||||
<author initials="A." surname="Gulko" fullname="Arkadiy Gulko"> | ||||
<organization showOnFrontPage="true">Thomson Reuters</organization | ||||
> | ||||
</author> | ||||
<date month="March" day="13" year="2017"/> | ||||
<abstract> | ||||
<t indent="0"> Many network deployments arrange the network topo | ||||
logies in two or | ||||
more planes. The traffic generally uses one of the planes and fails | ||||
over to the other plane when there are link or node failure. Certain | ||||
applications require the traffic to be strictly restricted to a | ||||
particular plane and should not failover to the other plane. This | ||||
document proposes a solution for the strict planar routing using | ||||
Segment Routing. | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference. | </t> | |||
I-D.gulkohegde-routing-planes-using-sr.xml"?> | </abstract> | |||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-gulkohegde-routing-plan | ||||
es-using-sr-00"/> | ||||
<refcontent>Work in Progress</refcontent> | ||||
</reference> | ||||
<reference anchor="I-D.ietf-rtgwg-segment-routing-ti-lfa" target="https: | ||||
//datatracker.ietf.org/doc/html/draft-ietf-rtgwg-segment-routing-ti-lfa-09" quot | ||||
eTitle="true" derivedAnchor="RTGWG-SEGMENT-ROUTING-TI-LFA"> | ||||
<front> | ||||
<title>Topology Independent Fast Reroute using Segment Routing</titl | ||||
e> | ||||
<author initials="S." surname="Litkowski" fullname="Stephane Litkows | ||||
ki"> | ||||
<organization showOnFrontPage="true">Cisco Systems</organization> | ||||
</author> | ||||
<author initials="A." surname="Bashandy" fullname="Ahmed Bashandy"> | ||||
<organization showOnFrontPage="true">Individual</organization> | ||||
</author> | ||||
<author initials="C." surname="Filsfils" fullname="Clarence Filsfils | ||||
"> | ||||
<organization showOnFrontPage="true">Cisco Systems</organization> | ||||
</author> | ||||
<author initials="P." surname="Francois" fullname="Pierre Francois"> | ||||
<organization showOnFrontPage="true">INSA Lyon</organization> | ||||
</author> | ||||
<author initials="B." surname="Decraene" fullname="Bruno Decraene"> | ||||
<organization showOnFrontPage="true">Orange</organization> | ||||
</author> | ||||
<author initials="D." surname="Voyer" fullname="Daniel Voyer"> | ||||
<organization showOnFrontPage="true">Bell Canada</organization> | ||||
</author> | ||||
<date month="December" day="23" year="2022"/> | ||||
<abstract> | ||||
<t indent="0"> This document presents Topology Independent Loop- | ||||
free Alternate Fast | ||||
Re-route (TI-LFA), aimed at providing protection of node and | ||||
adjacency segments within the Segment Routing (SR) framework. This | ||||
Fast Re-route (FRR) behavior builds on proven IP-FRR concepts being | ||||
LFAs, remote LFAs (RLFA), and remote LFAs with directed forwarding | ||||
(DLFA). It extends these concepts to provide guaranteed coverage in | ||||
any two connected network using a link-state IGP. A key aspect of | ||||
TI-LFA is the FRR path selection approach establishing protection | ||||
over the expected post-convergence paths from the point of local | ||||
repair, reducing the operational need to control the tie-breaks among | ||||
various FRR options. | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference. | </t> | |||
I-D.ietf-rtgwg-segment-routing-ti-lfa.xml"?> | </abstract> | |||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-segment-rout | ||||
ing-ti-lfa-09"/> | ||||
<refcontent>Work in Progress</refcontent> | ||||
</reference> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="ACK" numbered="false" toc="include" removeInRFC="false" pn= | ||||
"section-appendix.a"> | ||||
<name slugifiedName="name-acknowledgements">Acknowledgements</name> | ||||
<t indent="0" pn="section-appendix.a-1">This document, among other things, | ||||
addresses the problem that | ||||
<xref target="I-D.gulkohegde-routing-planes-using-sr" format="default" sec | ||||
tionFormat="of" derivedContent="ROUTING-PLANES-USING-SR"/> was trying | ||||
to solve. All authors of that document agreed to join this document.</t> | ||||
<t indent="0" pn="section-appendix.a-2">Thanks to <contact fullname="Eric | ||||
Rosen"/>, <contact fullname="Tony Przygienda"/>, <contact fullname="William Brit | ||||
to A. J."/>, <contact fullname="Gunter Van de Velde"/>, <contact fullname= | ||||
"Dirk Goethals"/>, <contact fullname="Manju Sivaji"/>, and <contact fullname="Ba | ||||
alajee S."/> for their detailed | ||||
review and excellent comments.</t> | ||||
<t indent="0" pn="section-appendix.a-3">Thanks to <contact fullname="Cengi | ||||
z Halit"/> for his review and feedback during | ||||
the initial phase of the solution definition.</t> | ||||
<t indent="0" pn="section-appendix.a-4">Thanks to <contact fullname="Kenji | ||||
Kumaki"/> for his comments.</t> | ||||
<t indent="0" pn="section-appendix.a-5">Thanks to <contact fullname="Acee | ||||
Lindem"/> for editorial comments.</t> | ||||
</section> | ||||
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
="include" pn="section-appendix.b"> | ||||
<name slugifiedName="name-authors-addresses">Authors' Addresses</name> | ||||
<author fullname="Peter Psenak" initials="P." role="editor" surname="Psena | ||||
k"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<extaddr>Apollo Business Center</extaddr> | ||||
<street>Mlynske nivy 43</street> | ||||
<city>Bratislava</city> | ||||
<code>82109</code> | ||||
<country>Slovakia</country> | ||||
<code/> | ||||
</postal> | ||||
<email>ppsenak@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Shraddha Hegde" initials="S" surname="Hegde"> | ||||
<organization showOnFrontPage="true">Juniper Networks, Inc.</organizatio | ||||
n> | ||||
<address> | ||||
<postal> | ||||
<extaddr>Embassy Business Park</extaddr> | ||||
<street/> | ||||
<city>Bangalore</city> | ||||
<region>KA</region> | ||||
<code>560093</code> | ||||
<country>India</country> | ||||
<code/> | ||||
</postal> | ||||
<email>shraddha@juniper.net</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Brussels</city> | ||||
<region/> | ||||
<code/> | ||||
<country>Belgium</country> | ||||
</postal> | ||||
<email>cfilsfil@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country>India</country> | ||||
</postal> | ||||
<email>ketant.ietf@gmail.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Arkadiy Gulko" initials="A." surname="Gulko"> | ||||
<organization showOnFrontPage="true">Edward Jones</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<region/> | ||||
<code/> | ||||
<country/> | ||||
</postal> | ||||
<email>arkadiy.gulko@edwardjones.com</email> | ||||
</address> | ||||
</author> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 285 change blocks. | ||||
1935 lines changed or deleted | 3891 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |