<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-lsr-flex-algo-bw-con-22" number="9843" consensus="true" ipr="trust200902" obsoletes="" updates="9350" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" prepTime="2025-09-12T16:17:58" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lsr-flex-algo-bw-con-22" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9843" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="IGP Flex-Algorithms: Bandwidth, Delay, and Metrics">IGP Flexible Algorithms: Bandwidth, Delay, Metrics, and Constraints</title>
    <seriesInfo name="RFC" value="9843" stream="IETF"/>
    <author initials="S." surname="Hegde" fullname="Shraddha Hegde">
      <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
      <address>
        <postal>
          <street>Exora Business Park</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560103</code>
          <country>India</country>
        </postal>
        <email>shraddha@juniper.net</email>
      </address>
    </author>
    <author initials="W." surname="Britto" fullname="William Britto">
      <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
      <address>
        <email>bwilliam@juniper.net</email>
      </address>
    </author>
    <author initials="R." surname="Shetty" fullname="Rajesh Shetty">
      <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
      <address>
        <email>mrajesh@juniper.net</email>
      </address>
    </author>
    <author initials="B." surname="Decraene" fullname="Bruno Decraene">
      <organization showOnFrontPage="true">Orange</organization>
      <address>
        <email>bruno.decraene@orange.com</email>
      </address>
    </author>
    <author initials="P." surname="Psenak" fullname="Peter Psenak">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <email>ppsenak@cisco.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tony Li">
      <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
      <address>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <date month="09" year="2025"/>
    <area>RTG</area>
    <workgroup>lsr</workgroup>
    <keyword>AS</keyword>
    <keyword>IGP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
    Many networks configure the IGP link metric relative to the link capacity, and high
    bandwidth traffic gets routed per the link capacity. Flexible
    Algorithms provide mechanisms to create constraint-based paths in an IGP.
    This specification documents a generic metric-type and a
    set of bandwidth-related constraints to be used in Flexible Algorithms.
      </t>
      <t indent="0" pn="section-abstract-2">This document updates RFC 9350.</t>
    </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/rfc9843" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 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" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-generic-metric-advertisemen">Generic Metric Advertisement</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-generic-metric-sub-tl">IS-IS Generic Metric Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-generic-metric-sub-tlv">OSPF Generic Metric Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t indent="0" pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" format="counter" sectionFormat="of" target="section-2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-generic-metric-applicabilit">Generic Metric Applicability to Flexible Algorithm Multi-Domain/Multi-Area Networks</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-fad-constraint-sub-tlvs">FAD Constraint Sub-TLVs</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-fad-constraint-sub-tl">IS-IS FAD Constraint Sub-TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.1.2">
                  <li pn="section-toc.1-1.3.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.1.2.1.1"><xref derivedContent="3.1.1" format="counter" sectionFormat="of" target="section-3.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-exclude-minimum-bandw">IS-IS Exclude Minimum Bandwidth Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.1.2.2.1"><xref derivedContent="3.1.2" format="counter" sectionFormat="of" target="section-3.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-exclude-maximum-delay">IS-IS Exclude Maximum Delay Sub-TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-fad-constraint-sub-tlv">OSPF FAD Constraint Sub-TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.2.2">
                  <li pn="section-toc.1-1.3.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.1.1"><xref derivedContent="3.2.1" format="counter" sectionFormat="of" target="section-3.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-exclude-minimum-bandwi">OSPF Exclude Minimum Bandwidth Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.2.1"><xref derivedContent="3.2.2" format="counter" sectionFormat="of" target="section-3.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-exclude-maximum-delay-">OSPF Exclude Maximum Delay Sub-TLV</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bandwidth-metric-advertisem">Bandwidth Metric Advertisement</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-automatic-metric-calculatio">Automatic Metric Calculation</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-automatic-metric-calculation">Automatic Metric Calculation Modes</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-automatic-metric-calculation-">Automatic Metric Calculation Methods</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.3.1"><xref derivedContent="4.1.3" format="counter" sectionFormat="of" target="section-4.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-fad-constraint-sub-tlv">IS-IS FAD Constraint Sub-TLVs for Automatic Metric Calculation</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.4">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.4.1"><xref derivedContent="4.1.4" format="counter" sectionFormat="of" target="section-4.1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-fad-constraint-sub-tlvs">OSPF FAD Constraint Sub-TLVs for Automatic Metric Calculation</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bandwidth-metric-considerat">Bandwidth Metric Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-calculation-of-flex-algorit">Calculation of Flex-Algorithm Paths</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-backward-compatibility">Backward Compatibility</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-considerations">Operational Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-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 derivedContent="" format="title" sectionFormat="of" target="name-igp-metric-type-registry">IGP Metric-Type Registry</xref></t>
              </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 derivedContent="" format="title" sectionFormat="of" target="name-is-is-sub-sub-tlvs-for-flex">IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.3">
                <t indent="0" pn="section-toc.1-1.10.2.3.1"><xref derivedContent="10.3" format="counter" sectionFormat="of" target="section-10.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-sub-tlvs-for-flexible-">OSPF Sub-TLVs for Flexible Algorithm Definition Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.4">
                <t indent="0" pn="section-toc.1-1.10.2.4.1"><xref derivedContent="10.4" format="counter" sectionFormat="of" target="section-10.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-sub-tlvs-for-tlvs-adv">IS-IS Sub-TLVs for TLVs Advertising Neighbor Information</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.5">
                <t indent="0" pn="section-toc.1-1.10.2.5.1"><xref derivedContent="10.5" format="counter" sectionFormat="of" target="section-10.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sub-sub-tlv-codepoints-for-">Sub-Sub-TLV Codepoints for Application-Specific Link Attributes</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.6">
                <t indent="0" pn="section-toc.1-1.10.2.6.1"><xref derivedContent="10.6" format="counter" sectionFormat="of" target="section-10.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv2-extended-link-tlv-su">OSPFv2 Extended Link TLV Sub-TLVs</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.7">
                <t indent="0" pn="section-toc.1-1.10.2.7.1"><xref derivedContent="10.7" format="counter" sectionFormat="of" target="section-10.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-types-for-sub-tlvs-of-te-li">Types for Sub-TLVs of TE Link TLV (Value 2)</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.8">
                <t indent="0" pn="section-toc.1-1.10.2.8.1"><xref derivedContent="10.8" format="counter" sectionFormat="of" target="section-10.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv3-extended-lsa-sub-tlv">OSPFv3 Extended-LSA Sub-TLVs</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" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-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 derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</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 derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-updated-list-of-rules-for-p">Updated List of Rules for Pruning Links in Flex-Algorithm Topology</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="sec_introduction" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">  High bandwidth traffic such as residential Internet traffic and
   machine-to-machine elephant flows benefit from using high capacity
   links.  Accordingly, many network operators define a link's metric
   relative to its capacity to help direct traffic to higher bandwidth
   links, but this is no guarantee that lower bandwidth links will be
   avoided, especially in failure scenarios.  To ensure that elephant
   flows are only placed on high capacity links, it would be useful to
   explicitly exclude the high throughput traffic from utilizing links
   below a certain capacity. Flex-Algorithm <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>
   provides a mechanism to create constrained paths by defining 
   a set of parameters consisting of
   calculation-type, metric-type, and a set of constraints.  In
   this document, we define further extensions to the Flexible Algorithm Definition (FAD) that
   will allow operators additional control over their traffic flows,
   especially with respect to bandwidth constraints. </t>
      <t indent="0" pn="section-1-2">Historically, IGPs have done path computation by minimizing the
   sum of the link metrics along the path from source to
   destination. While the metric has been administratively defined,
   implementations have defaulted to a metric that is inversely
   proportional to link bandwidth. This has driven traffic to higher
   bandwidth links and has required manual metric manipulation to
   achieve the desired loading of the network.</t>
      <t indent="0" pn="section-1-3">Over time, with the addition of different traffic types, the need
   for alternate types of metrics has evolved. Flex-Algorithm
   already supports using the minimum link delay and the
   administratively assigned traffic-engineering metrics in path
   computation. However, it is clear that additional metrics may be of
   interest in different situations. A network operator may seek to
   minimize their operational costs and thus may want a metric that
   reflects the actual fiscal costs of using a link.  Other traffic
   may require low jitter, leading to an entirely different set of
   metrics. With Flex-Algorithm, all of these different metrics, and
   more, could be used concurrently on the same network.</t>
      <t indent="0" pn="section-1-4">In some circumstances, path computation constraints, such as
   administrative groups, can be used to ensure that traffic avoids
   particular portions of the network. These strict constraints are
   appropriate when there is an absolute requirement to avoid parts of
   the topology, even in failure conditions. However, if the
   requirement is less strict, then using a high metric in a portion
   of the topology may be more appropriate. </t>
      <t indent="0" pn="section-1-5">This document defines a family of generic metrics that can advertise
      various types of administratively assigned metrics. This document introduces
   standard metric-types that have specific semantics and require 
   standardization.
   This document also specifies user-defined metric-types where specifics are
   not defined so that administrators are free to assign semantics as
      they see fit.</t>
      <t indent="0" pn="section-1-6"> <xref target="sec_fad_con" format="default" sectionFormat="of" derivedContent="Section 3"/> defines additional FAD <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/> 
   constraints that allow the network
   administrator to preclude the use of low bandwidth links or high
   delay links. <xref target="sec_bw_metric" format="default" sectionFormat="of" derivedContent="Section 4"/> specifies a new bandwidth-based metric-type
   to be used with Flex-Algorithm and other applications.
      </t>
      <t indent="0" pn="section-1-7"> <xref target="sec_auto_metric" format="default" sectionFormat="of" derivedContent="Section 4.1"/>
   defines mechanisms to automatically calculate link metrics based on
   the parameters defined in the FAD and the advertised Maximum Link Bandwidth
   of each link. This is advantageous because administrators can change their
   criteria for metric assignment centrally, without individual
   modification of each link metric throughout the network. The procedures
   described in this document are intended to assign a metric to a link based on
   the total link capacity, and they are not intended to update the metric based
   on actual traffic flow. Thus, the procedures described in this document are not a
   replacement to the capability of a PCE  <xref target="RFC4655" format="default" sectionFormat="of" derivedContent="RFC4655"/>, which has a dynamic view of
   the network and provides real-time bandwidth management or a distributed bandwidth
      management protocol.</t>
      <section anchor="req_lang" numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>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
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section anchor="sec_generic_metric" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-generic-metric-advertisemen">Generic Metric Advertisement</name>
      <t indent="0" pn="section-2-1"> IS-IS <xref target="RFC1195" format="default" sectionFormat="of" derivedContent="RFC1195"/> and OSPF <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/> advertise 
a metric for each link in their respective
 link state advertisements. Multiple metric-types are  already supported.
 Administratively assigned metrics are described in the original OSPF
 and IS-IS specifications. The Traffic Engineering Default Metric
is defined in <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/> and <xref target="RFC3630" format="default" sectionFormat="of" derivedContent="RFC3630"/>,
and the Unidirectional Link Delay is defined in
<xref target="RFC8570" format="default" sectionFormat="of" derivedContent="RFC8570"/> and <xref target="RFC7471" format="default" sectionFormat="of" derivedContent="RFC7471"/>.
Other metrics, such as jitter, reliability, and fiscal cost may be
   helpful, depending on the traffic class. Rather than attempt to
   enumerate all possible metrics of interest, this document specifies
   a generic mechanism for advertising metrics. </t>
      <t indent="0" pn="section-2-2">
Each generic metric advertisement is on a per-link and per-metric-type
   basis.  The metric advertisement consists of a metric-type
   field and a value for the metric.  The metric-type field has been 
   assigned in the "IGP Metric-Type" IANA registry.  Metric-types
   0-127 are standard metric-types as assigned by IANA.  This document
   further specifies a user-defined metric-type space of metric-types
   128-255. They can be assigned by an operator for local use.
      </t>
      <t indent="0" pn="section-2-3">Implementations <bcp14>MUST</bcp14> support sending and receiving a Generic Metric
 sub-TLV in Application-Specific Link Attributes (ASLA) encodings as 
 well as in TLV 22 and Extended Link Opaque Link State Advertisements (LSAs) <xref target="RFC7684" format="default" sectionFormat="of" derivedContent="RFC7684"/> and TE-LSAs.
 The usage of a generic metric by an individual application is subject to the same
 rules that apply to other link attributes as defined in <xref target="RFC3630" format="default" sectionFormat="of" derivedContent="RFC3630"/>,
 <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/>, <xref target="RFC9479" format="default" sectionFormat="of" derivedContent="RFC9479"/>,  
 <xref target="RFC9492" format="default" sectionFormat="of" derivedContent="RFC9492"/>, and <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>.</t>
      <section anchor="sec_isis_gen_metric" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-is-is-generic-metric-sub-tl">IS-IS Generic Metric Sub-TLV</name>
        <t indent="0" pn="section-2.1-1">The IS-IS Generic Metric sub-TLV specifies the link metric for a given
   metric-type.  Typically, this metric is assigned by a
   network administrator.
   The Generic Metric sub-TLV is advertised in the TLVs/sub-TLVs below:</t>
        <ol spacing="normal" type="a" indent="adaptive" start="1" pn="section-2.1-2">
          <li pn="section-2.1-2.1" derivedCounter="a.">TLV 22 (Extended IS reachability) <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/></li>
          <li pn="section-2.1-2.2" derivedCounter="b.">TLV 222 (MT-ISN) <xref target="RFC5120" format="default" sectionFormat="of" derivedContent="RFC5120"/></li>
          <li pn="section-2.1-2.3" derivedCounter="c.">TLV 23 (IS Neighbor Attribute) <xref target="RFC5311" format="default" sectionFormat="of" derivedContent="RFC5311"/></li>
          <li pn="section-2.1-2.4" derivedCounter="d.">TLV 223 (MT IS Neighbor Attribute) <xref target="RFC5311" format="default" sectionFormat="of" derivedContent="RFC5311"/></li>
          <li pn="section-2.1-2.5" derivedCounter="e.">TLV 141 (Inter-AS Reachability Information) <xref target="RFC9346" format="default" sectionFormat="of" derivedContent="RFC9346"/></li>
          <li pn="section-2.1-2.6" derivedCounter="f.">sub-TLV 16 (Application-Specific Link Attributes (ASLA)) of TLVs
          22/222/23/223/141 <xref target="RFC9479" format="default" sectionFormat="of" derivedContent="RFC9479"/></li>
          <li pn="section-2.1-2.7" derivedCounter="g.">TLV 25 (L2 Bundle Member Attributes) <xref target="RFC8668" format="default" sectionFormat="of" derivedContent="RFC8668"/>. Marked as "y(s)" (shareable among bundle
          members).</li>
        </ol>
        <figure anchor="isis_gen_metric_sub_tlv" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-is-is-generic-metric-sub-tlv">IS-IS Generic Metric Sub-TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-2.1-3.1">
    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    |  metric-type  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Value                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.1-4">
where:
        </t>
        <dl spacing="normal" newline="true" indent="3" pn="section-2.1-5">
          <dt pn="section-2.1-5.1">Type (1 octet):</dt>
          <dd pn="section-2.1-5.2">An 8-bit field assigned by IANA (17).  This value
  uniquely identifies the Generic Metric TLV.</dd>
          <dt pn="section-2.1-5.3">Length (1 octet):</dt>
          <dd pn="section-2.1-5.4">An 8-bit field indicating the total length, in octets, of the subsequent
  fields. For this TLV, the Length is set to 4.</dd>
          <dt pn="section-2.1-5.5">Metric-Type (1 octet):</dt>
          <dd pn="section-2.1-5.6">An 8-bit field specifying the type of metric.  The value is taken from
  the "IGP Metric-Type" registry maintained by IANA. The metric-type may be
  any value that is indicated as allowed in the Generic Metric sub-TLV by the
  "IGP Metric-Type" registry.</dd>
          <dt pn="section-2.1-5.7">Value (3 octets):</dt>
          <dd pn="section-2.1-5.8">A 24-bit unsigned integer representing the metric value.  The valid
  range is from 0 to 16,777,215 (0xFFFFFF).</dd>
        </dl>
        <t indent="0" pn="section-2.1-6">
    The Generic Metric sub-TLV <bcp14>MAY</bcp14> be advertised multiple times.
    For a particular metric-type,
    the Generic Metric sub-TLV <bcp14>MUST</bcp14> be advertised only once for a link
    when advertised in TLVs 22, 222, 23, 223, and 141.
    When the Generic Metric sub-TLV is advertised in ASLA,
    each metric-type <bcp14>MUST</bcp14> be advertised only once per-application for a link.
    If there are multiple Generic Metric sub-TLVs advertised for a link
    for the same metric-type  (and the same application in case of ASLA)
    in one or more received Link State Protocol Data Units (LSPDUs), advertisement in the lowest-numbered fragment
    <bcp14>MUST</bcp14> be used, and the subsequent instances <bcp14>MUST</bcp14> be ignored.
        </t>
        <t indent="0" pn="section-2.1-7">For a link, if the metric-type corresponds to a metric-type for
	which legacy advertisement mechanisms exist (e.g., the IGP Metric, 
	the Min Unidirectional Link Delay, or the 
    Traffic Engineering Default Metric), the legacy metric-types <bcp14>MUST</bcp14> 
	be utilized from the existing TLV or sub-TLVs. If a Generic Metric 
	advertises a legacy metric, it <bcp14>MUST</bcp14> be ignored.
        </t>
        <t indent="0" pn="section-2.1-8">A metric value of
   0xFFFFFF is considered a maximum link metric, and a link having 
   this metric value <bcp14>MUST</bcp14> be used during Flex-Algorithm calculations
   as a last resort link as described in <xref section="15.3" target="RFC9350" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-15.3" derivedContent="RFC9350"/>. 
   A link can be made unusable by Flex-Algorithm by leaving out Generic Metric
   advertisement of the particular metric-type that the Flex-Algorithm 
   uses, as described in <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>.
        </t>
        <t indent="0" pn="section-2.1-9"> During the router maintenance activity, the Generic Metric for 
   all the links on the node <bcp14>MAY</bcp14> be set to a maximum value of 
   16,777,215 (0xFFFFFF), as it is the maximum usable link metric for the 
   Flex-Algorithm calculations.</t>
      </section>
      <section anchor="sec_ospf_gen_metric" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-ospf-generic-metric-sub-tlv">OSPF Generic Metric Sub-TLV</name>
        <t indent="0" pn="section-2.2-1">
   The OSPF Generic Metric sub-TLV specifies the link metric for a given
   metric-type. Typically, this metric is assigned by a
   network administrator.
   The Generic Metric sub-TLV is advertised in the TLVs below:</t>
        <ol type="a" spacing="normal" indent="adaptive" start="1" pn="section-2.2-2">
     
          <li pn="section-2.2-2.1" derivedCounter="a.">sub-TLV of TE Link TLV (type 2) of OSPF TE LSA <xref target="RFC3630" format="default" sectionFormat="of" derivedContent="RFC3630"/>.</li>
          <li pn="section-2.2-2.2" derivedCounter="b.">sub-TLV of TE Link TLV (type 2) of OSPFv2 Inter-AS-TE-v2 LSA <xref target="RFC5392" format="default" sectionFormat="of" derivedContent="RFC5392"/>.</li>
          <li pn="section-2.2-2.3" derivedCounter="c.">sub-TLV of TE Link TLV (type 2) of OSPFv3 Intra-Area-TE-LSA <xref target="RFC5329" format="default" sectionFormat="of" derivedContent="RFC5329"/>.</li>
          <li pn="section-2.2-2.4" derivedCounter="d.">sub-TLV of TE Link TLV (type 2) of OSPFv3 Inter-AS-TE-v3 LSA <xref target="RFC5392" format="default" sectionFormat="of" derivedContent="RFC5392"/>.</li>
          <li pn="section-2.2-2.5" derivedCounter="e.">sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV <xref target="RFC9492" format="default" sectionFormat="of" derivedContent="RFC9492"/> 
            of the OSPFv2 Extended Link TLV <xref target="RFC7684" format="default" sectionFormat="of" derivedContent="RFC7684"/>.</li>
          <li pn="section-2.2-2.6" derivedCounter="f.">sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV <xref target="RFC9492" format="default" sectionFormat="of" derivedContent="RFC9492"/>
            of the OSPFv3 Router-Link TLV <xref target="RFC8362" format="default" sectionFormat="of" derivedContent="RFC8362"/>.</li>
          <li pn="section-2.2-2.7" derivedCounter="g.">sub-TLV of the OSPFv2 L2 Bundle Member Attributes sub-TLV <xref target="RFC9356" format="default" sectionFormat="of" derivedContent="RFC9356"/>.</li>
          <li pn="section-2.2-2.8" derivedCounter="h.">sub-TLV of the OSPFv3 L2 Bundle Member Attributes sub-TLV <xref target="RFC9356" format="default" sectionFormat="of" derivedContent="RFC9356"/>.</li>
        </ol>
        <t indent="0" pn="section-2.2-3">The Generic Metric sub-TLV, types 25/36/34, is 8 octets in length.
</t>
        <figure anchor="ospf_gen_metric_sub_tlv" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-ospf-generic-metric-sub-tlv-2">OSPF Generic Metric Sub-TLV</name>
          <artwork name="" type="" align="left" alt="" pn="section-2.2-4.1">
       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            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | metric-type   |         Reserved (MBZ)                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Value                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     </artwork>
        </figure>
        <t indent="0" pn="section-2.2-5">
  where:
</t>
        <dl spacing="normal" newline="true" indent="3" pn="section-2.2-6">
          <dt pn="section-2.2-6.1">Type (2 octets):</dt>
          <dd pn="section-2.2-6.2">A 16-bit field assigned by IANA (25/36/34).
  This value uniquely identifies the Generic Metric TLV.</dd>
          <dt pn="section-2.2-6.3">Length (2 octets):</dt>
          <dd pn="section-2.2-6.4">A 16-bit field indicating the total length, in octets, of the subsequent
  fields. For this TLV, the Length is set to 8.</dd>
          <dt pn="section-2.2-6.5">Metric-Type (1 octet):</dt>
          <dd pn="section-2.2-6.6">An 8-bit field specifying the type of metric.  The value is taken from
  the "IGP Metric-Type" registry maintained by IANA. The metric-type may be
  any value that is indicated as allowed in the Generic Metric sub-TLV by the
  "IGP Metric-Type" registry.</dd>
          <dt pn="section-2.2-6.7">Reserved (3 octets):</dt>
          <dd pn="section-2.2-6.8">
            <bcp14>MUST</bcp14> set to zero by the sender and <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
          <dt pn="section-2.2-6.9">Value (4 octets):</dt>
          <dd pn="section-2.2-6.10">A 32-bit unsigned integer representing the metric value.
  The valid
  range is from 0 to 4,294,967,295 (0xFFFFFFFF).</dd>
        </dl>
        <t indent="0" pn="section-2.2-7">The Generic Metric sub-TLV <bcp14>MAY</bcp14> be advertised multiple times.
For a particular metric-type, the Generic Metric sub-TLV <bcp14>MUST</bcp14>
be advertised only once for a link when advertised as (a) through (d) above.
When the Generic Metric sub-TLV is advertised as a sub-TLV of ASLA, it
<bcp14>MUST</bcp14> be advertised only once per application for a link.  If
there are multiple Generic Metric sub-TLVs advertised for a link for the same
metric-type (and the same application in case of ASLA) in one or more received
LSAs, advertisement in the lowest-numbered LSA <bcp14>MUST</bcp14> be used, and
the subsequent instances <bcp14>MUST</bcp14> be ignored.</t>
        <t indent="0" pn="section-2.2-8">For a link, if the metric-type corresponds to a metric-type for 
	which legacy advertisement mechanisms exist (e.g., the IGP Metric, 
	the Min Unidirectional Link Delay, or the Traffic Engineering 
	Default Metric), the legacy metric-types <bcp14>MUST</bcp14> be utilized from 
	the existing TLV or sub-TLVs. If a Generic Metric advertises a
	legacy metric, it <bcp14>MUST</bcp14> be ignored.
</t>
        <t indent="0" pn="section-2.2-9">A metric value of
   0xFFFFFFFF is considered a maximum link metric, and a link having 
   this metric value <bcp14>MUST</bcp14> be used during Flex-Algorithm calculations
   as a last resort link, as described in <xref section="15.3" target="RFC9350" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-15.3" derivedContent="RFC9350"/>.</t>
        <t indent="0" pn="section-2.2-10">A link can be made unusable by Flex-Algorithm by leaving out Generic Metric
   advertisement of the particular metric-type that the Flex-Algorithm 
	uses, as described in <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>.</t>
        <t indent="0" pn="section-2.2-11"> During the router maintenance activity, the Generic Metric for 
   all the links on the node <bcp14>MAY</bcp14> be set to a maximum value of 
   4,294,967,295 (0xFFFFFFFF), as it is the maximum usable link metric for the 
   Flex-Algorithm calculations.</t>
      </section>
      <section anchor="sec_multi_area" numbered="true" toc="include" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-generic-metric-applicabilit">Generic Metric Applicability to Flexible Algorithm Multi-Domain/Multi-Area Networks</name>
        <t indent="0" pn="section-2.3-1">Generic Metric can be used by Flex-Algorithm
 by specifying the metric-type in the
Flexible Algorithm Definitions. When Flex-Algorithm is used in a multi-area network,
<xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/> defines the Flexible Algorithm Prefix Metric (FAPM)
 sub-TLV that carries
the Flexible-Algorithm-specific metric. Metrics carried in FAPM will be equal
to the metric to reach the prefix for that Flex-Algorithm in its
source area or domain (source area from the Area Border Router (ABR) perspective). When Flex-Algorithm uses
Generic Metric, the same procedures as described in 
<xref target="RFC9350" sectionFormat="of" section="13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-13" derivedContent="RFC9350"/>
are used to send and process the FAPM sub-TLV.</t>
      </section>
    </section>
    <section anchor="sec_fad_con" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-fad-constraint-sub-tlvs">FAD Constraint Sub-TLVs</name>
      <t indent="0" pn="section-3-1">

   Large high throughput flows are referred to as "elephant flows".
   Directing an elephant flow
   down a low-bandwidth link might congest the link and cause other 
   critical application traffic flowing on the link to drop. Thus, in the
   context of Flex-Algorithm, it would be useful to be able to
   constrain the topology to only those links capable of supporting a
      minimum amount of bandwidth.</t>
      <t indent="0" pn="section-3-2">If the capacity of a low bandwidth link is constant, constraining the topology to avoid those links can already be achieved
   through the use of administrative groups. However, when a Layer 3
   link is actually a collection of Layer 2 links (Link Aggregation Group (LAG) / Layer 2
   Bundle), the link bandwidth will vary based on the set of active
   constituent links. This could be automated by having an
   implementation vary the advertised administrative groups based on
   bandwidth, but this seems unnecessarily complex and expressing this
   requirement as a direct constraint on the topology seems
   simpler. This is also advantageous if the minimum required
   bandwidth changes, as this constraint would provide a single
   centralized, coordinated point of control.</t>
      <t indent="0" pn="section-3-3">To satisfy this requirement, this document defines an
   Exclude Minimum Bandwidth
   constraint.  When this constraint is advertised in a FAD,
   a link will be pruned from the Flex-Algorithm topology if the
   link's advertised maximum link bandwidth value is below the FAD advertised
   minimum bandwidth value.</t>
      <t indent="0" pn="section-3-4">Similarly, this document defines an Exclude Maximum Link Delay
   constraint. Applications, such as High-Frequency Trading are sensitive 
   to link delays and may perform poorly in networks prone to delay
   variability, such as those with transparent Layer 2 link 
   recovery mechanisms or satellite links.
   Mechanisms already exist to measure the link delay dynamically and
   advertise it in the IGP.  Networks that employ dynamic link-delay
   measurement, may want to exclude links that have a delay over a
   given threshold.</t>
      <section anchor="sec_isis" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-is-is-fad-constraint-sub-tl">IS-IS FAD Constraint Sub-TLVs</name>
        <section anchor="sec_isis_bw_exclusion" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.1">
          <name slugifiedName="name-is-is-exclude-minimum-bandw">IS-IS Exclude Minimum Bandwidth Sub-TLV</name>
          <t indent="0" pn="section-3.1.1-1">

IS-IS Flex-Algorithm Exclude Minimum Bandwidth (FAEMB) sub-TLV  is a
sub-TLV of the IS-IS FAD sub-TLV. It has the following format:

</t>
          <figure anchor="isis_faemb_sub_tlv" align="left" suppress-title="false" pn="figure-3">
            <name slugifiedName="name-is-is-faemb-sub-tlv">IS-IS FAEMB Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.1.1-2.1">
    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     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Min Bandwidth                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-3.1.1-3">where:</t>
          <dl spacing="normal" newline="true" indent="3" pn="section-3.1.1-4">
            <dt pn="section-3.1.1-4.1">Type (1 octet):</dt>
            <dd pn="section-3.1.1-4.2">An 8-bit field assigned by IANA (6).  This value
  uniquely identifies the FAEMB sub-TLV.</dd>
            <dt pn="section-3.1.1-4.3">Length (1 octet):</dt>
            <dd pn="section-3.1.1-4.4">An 8-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, the Length is set to 4.</dd>
            <dt pn="section-3.1.1-4.5">Min Bandwidth (4 octets):</dt>
            <dd pn="section-3.1.1-4.6">A 32-bit field specifying the link bandwidth encoded in IEEE floating
  point format (32 bits) <xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
          </dl>
          <t indent="0" pn="section-3.1.1-5">The FAEMB sub-TLV <bcp14>MUST</bcp14> appear once at most in the FAD sub-TLV.
    If it appears more than once, the IS-IS FAD sub-TLV <bcp14>MUST</bcp14> be
   ignored by the receiver. </t>
          <t indent="0" pn="section-3.1.1-6">The minimum bandwidth value advertised in the FAEMB sub-TLV <bcp14>MUST</bcp14> be compared with
   maximum link bandwidth value advertised in sub-sub-TLV 9 of the ASLA sub-TLV <xref target="RFC9479" format="default" sectionFormat="of" derivedContent="RFC9479"/>.
   If the L-flag is set in the ASLA sub-TLV, the minimum bandwidth value advertised in the FAEMB
   sub-TLV <bcp14>MUST</bcp14> be compared with the maximum link bandwidth value as
   advertised in the sub-TLV 9 of the TLVs
   22/222/23/223/141 <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/>, as defined in <xref target="RFC9479" sectionFormat="of" section="4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9479#section-4.2" derivedContent="RFC9479"/>. </t>
          <t indent="0" pn="section-3.1.1-7">If the maximum link bandwidth value is lower than the minimum
   link bandwidth value advertised in the FAEMB sub-TLV,
   the link <bcp14>MUST</bcp14> be excluded from the Flex-Algorithm topology.

  If a link does not have the Maximum Link Bandwidth advertised but the
  FAD contains the FAEMB sub-TLV, then that link
   <bcp14>MUST NOT</bcp14> be excluded from the topology based on the Minimum
   Bandwidth constraint.
          </t>
        </section>
        <section anchor="sec_isis_delay_exclusion" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.2">
          <name slugifiedName="name-is-is-exclude-maximum-delay">IS-IS Exclude Maximum Delay Sub-TLV</name>
          <t indent="0" pn="section-3.1.2-1">

IS-IS Flex-Algorithm Exclude Maximum Delay (FAEMD) sub-TLV is a
sub-TLV of the IS-IS FAD sub-TLV. It has the following format:

</t>
          <figure anchor="isis_faemd_sub_tlv" align="left" suppress-title="false" pn="figure-4">
            <name slugifiedName="name-is-is-faemd-sub-tlv">IS-IS FAEMD Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.1.2-2.1">
    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     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Max Link Delay            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-3.1.2-3">where:</t>
          <dl spacing="normal" newline="true" indent="3" pn="section-3.1.2-4">
            <dt pn="section-3.1.2-4.1">Type (1 octet):</dt>
            <dd pn="section-3.1.2-4.2">An 8-bit field assigned by IANA (7).  This value
  uniquely identifies the FAEMD sub-TLV.</dd>
            <dt pn="section-3.1.2-4.3">Length (1 octet):</dt>
            <dd pn="section-3.1.2-4.4">An 8-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, the Length is set to 3.</dd>
            <dt pn="section-3.1.2-4.5">Max Link Delay (3 octets):</dt>
            <dd pn="section-3.1.2-4.6">A 24-bit field specifying the Maximum link delay in microseconds.</dd>
          </dl>
          <t indent="0" pn="section-3.1.2-5">The FAEMD sub-TLV <bcp14>MUST</bcp14> appear only once in the FAD sub-TLV.
If it appears more than once, the IS-IS FAD sub-TLV <bcp14>MUST</bcp14> be
ignored by the receiver.</t>
          <t indent="0" pn="section-3.1.2-6">The maximum link delay value advertised in the FAEMD sub-TLV <bcp14>MUST</bcp14> be compared with
   Min Unidirectional Link Delay advertised in sub-sub-TLV 34 of the ASLA sub-TLV <xref target="RFC9479" format="default" sectionFormat="of" derivedContent="RFC9479"/>.
   If the L-flag is set in the ASLA sub-TLV, the maximum link delay value advertised in the FAEMD
   sub-TLV <bcp14>MUST</bcp14> be compared with Min Unidirectional Link Delay as
   advertised by the sub-TLV 34 of the TLVs
   22/222/23/223/141 <xref target="RFC8570" format="default" sectionFormat="of" derivedContent="RFC8570"/>, as defined in <xref target="RFC9479" sectionFormat="of" section="4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9479#section-4.2" derivedContent="RFC9479"/>. </t>
          <t indent="0" pn="section-3.1.2-7">If the  Min Unidirectional Link Delay value is higher than the
   Maximum Link Delay advertised in the FAEMD sub-TLV, the link <bcp14>MUST</bcp14> be
   excluded from the Flex-Algorithm topology.

If a link does not have the Min Unidirectional Link Delay advertised but
the FAD contains the FAEMD sub-TLV, then that link <bcp14>MUST NOT</bcp14> be
   excluded from the topology based on the Maximum Delay constraint.
          </t>
        </section>
      </section>
      <section anchor="sec_ospf" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-ospf-fad-constraint-sub-tlv">OSPF FAD Constraint Sub-TLVs</name>
        <section anchor="sec_ospf_bw_exclusion" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.1">
          <name slugifiedName="name-ospf-exclude-minimum-bandwi">OSPF Exclude Minimum Bandwidth Sub-TLV</name>
          <t indent="0" pn="section-3.2.1-1">

OSPF Flex-Algorithm Exclude Minimum Bandwidth (FAEMB) sub-TLV is a
sub-TLV of the OSPF FAD TLV. It has the following format:

</t>
          <figure anchor="ospf_faemb_sub_tlv" align="left" suppress-title="false" pn="figure-5">
            <name slugifiedName="name-ospf-faemb-sub-tlv">OSPF FAEMB Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.2.1-2.1">
    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                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Min Bandwidth                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-3.2.1-3">where:</t>
          <dl spacing="normal" newline="true" indent="3" pn="section-3.2.1-4">
            <dt pn="section-3.2.1-4.1">Type (2 octets):</dt>
            <dd pn="section-3.2.1-4.2">A 16-bit field assigned by IANA (6).  This value
  uniquely identifies the OSPF FAEMB sub-TLV.</dd>
            <dt pn="section-3.2.1-4.3">Length (2 octets):</dt>
            <dd pn="section-3.2.1-4.4">A 16-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, the Length is set to 4.</dd>
            <dt pn="section-3.2.1-4.5">Min Bandwidth (4 octets):</dt>
            <dd pn="section-3.2.1-4.6">A 32-bit field specifying the link bandwidth encoded in IEEE floating
  point format (32 bits)<xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
          </dl>
          <t indent="0" pn="section-3.2.1-5">The FAEMB sub-TLV <bcp14>MUST</bcp14> only appear once in the FAD sub-TLV.
    If it appears more than once, the OSPF FAD TLV <bcp14>MUST</bcp14> be
    ignored by the receiver.</t>
          <t indent="0" pn="section-3.2.1-6">The Maximum Link Bandwidth as advertised in the Extended Link TLV
   in the Extended Link Opaque LSA in OSPFv2 <xref target="RFC7684" format="default" sectionFormat="of" derivedContent="RFC7684"/>
   or as a sub-TLV
   of the Router-Link TLV of the E-Router-LSA Router-Link TLV in 
   OSPFv3 <xref target="RFC8362" format="default" sectionFormat="of" derivedContent="RFC8362"/> <bcp14>MUST</bcp14> be  compared against
   the Minimum Bandwidth advertised in the FAEMB sub-TLV.
   If the link bandwidth value is lower than the Minimum Bandwidth 
   advertised in the FAEMB sub-TLV, the link <bcp14>MUST</bcp14> be excluded 
   from the Flex-Algorithm topology.
          </t>
          <t indent="0" pn="section-3.2.1-7">If a link does not have the Maximum Link Bandwidth advertised
   but the FAD contains the FAEMB sub-TLV, then that link <bcp14>MUST</bcp14> be included in the
   topology and proceed to apply further pruning rules for the link.
          </t>
        </section>
        <section anchor="sec_ospf_delay_exclusion" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.2">
          <name slugifiedName="name-ospf-exclude-maximum-delay-">OSPF Exclude Maximum Delay Sub-TLV</name>
          <t indent="0" pn="section-3.2.2-1">

The OSPF Flex-Algorithm Exclude Maximum Delay (FAEMD) sub-TLV is a
sub-TLV of the OSPF FAD TLV. It has the following format.

</t>
          <figure anchor="ospf_faemd_sub_tlv" align="left" suppress-title="false" pn="figure-6">
            <name slugifiedName="name-ospf-faemd-sub-tlv">OSPF FAEMD Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.2.2-2.1">
    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                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  RESERVED     |                     Max Link Delay            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-3.2.2-3">where:</t>
          <dl spacing="normal" newline="true" indent="3" pn="section-3.2.2-4">
            <dt pn="section-3.2.2-4.1">Type (2 octets):</dt>
            <dd pn="section-3.2.2-4.2">A 16-bit field assigned by IANA (7).  This value
  uniquely identifies the OSPF FAEMD sub-TLV.</dd>
            <dt pn="section-3.2.2-4.3">Length (2 octets):</dt>
            <dd pn="section-3.2.2-4.4">A 16-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, the Length is set to 4.</dd>
            <dt pn="section-3.2.2-4.5">Reserved (1 octet):</dt>
            <dd pn="section-3.2.2-4.6">
              <bcp14>MUST</bcp14> be set to zero by the sender and <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
            <dt pn="section-3.2.2-4.7">Max Link Delay (3 octets):</dt>
            <dd pn="section-3.2.2-4.8">A 24-bit field specifying the Maximum link delay in microseconds.</dd>
          </dl>
          <t indent="0" pn="section-3.2.2-5"> The FAEMD sub-TLV <bcp14>MUST</bcp14> only appear once in the OSPF FAD TLV.
    If it appears more than once, the OSPF FAD TLV <bcp14>MUST</bcp14> be
   ignored by the receiver.
          </t>
          <t indent="0" pn="section-3.2.2-6">The Min Delay value advertised via the Min/Max Unidirectional Link Delay 
    of the ASLA sub-TLV <xref target="RFC9492" format="default" sectionFormat="of" derivedContent="RFC9492"/> <bcp14>MUST</bcp14> be compared against the Maximum Delay
    advertised in the FAEMD sub-TLV. If the Min Unidirectional Link Delay is higher
    than the Maximum Delay advertised in the FAEMD sub-TLV, the link <bcp14>MUST</bcp14> be
    excluded from the Flex-Algorithm topology. If the
    Min/Max Unidirectional Link Delay is not advertised for a link but 
	the FAD contains this sub-TLV, then that link <bcp14>MUST NOT</bcp14> be
   excluded from the topology based on the Maximum Delay constraint.
          </t>
        </section>
      </section>
    </section>
    <section anchor="sec_bw_metric" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-bandwidth-metric-advertisem">Bandwidth Metric Advertisement</name>
      <t indent="0" pn="section-4-1">
   Historically, IGP implementations have made default metric
   assignments based on link bandwidth. This has proven to be useful
   but has suffered from having different defaults across
   implementations and from the rapid growth of link bandwidths. With
   Flex-Algorithm, the network administrator can define a function
   that will produce a metric for each link and have each node
   automatically compute each link's metric based on its bandwidth.</t>
      <t indent="0" pn="section-4-2">This document defines a standard metric-type for this purpose
   called the "Bandwidth Metric".  The Bandwidth Metric <bcp14>MAY</bcp14> be
   advertised in the Generic Metric sub-TLV with the metric-type set
   to "Bandwidth Metric".  IS-IS and OSPF will advertise this type
   of metric in their link advertisements. The Bandwidth Metric is a link
   attribute, and it <bcp14>MUST</bcp14> follow <xref target="RFC9350" sectionFormat="of" section="12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-12" derivedContent="RFC9350"/> for its advertisement and processing during Flex-Algorithm calculation.</t>
      <t indent="0" pn="section-4-3"> Flex-Algorithm uses this
   metric-type by specifying the bandwidth metric as the metric-type
   in a FAD TLV. A FAD TLV may also specify an automatic computation
   of the bandwidth metric based on a link's advertised bandwidth. An
   explicit advertisement of a link's bandwidth metric using the
   Generic Metric sub-TLV overrides this automatic computation.
   The automatic Bandwidth metric calculation sub-TLVs are advertised
   in the FAD TLV, and these parameters are applicable to applications
   such as Flex-Algorithm that make use of the FAD TLV.
</t>
      <section anchor="sec_auto_metric" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-automatic-metric-calculatio">Automatic Metric Calculation</name>
        <t indent="0" pn="section-4.1-1"> Networks that are designed to be highly regular and that follow uniform
   metric assignment may want to simplify their operations by
   automatically calculating the bandwidth metric. When
   a FAD advertises the metric-type as Bandwidth Metric and the link does
   not have the Bandwidth Metric advertised, automatic metric derivation
   can be used with additional FAD constraint advertisement as
   described in this section.  </t>
        <t indent="0" pn="section-4.1-2"> If a link's bandwidth changes, then the delay in learning about the
   change may create the possibility of micro-loops in the
   topology. This is no different from the IGP's susceptibility to
   micro-loops during a metric change.  The micro-loop avoidance
   procedures described in <xref target="I-D.bashandy-rtgwg-segment-routing-uloop" format="default" sectionFormat="of" derivedContent="SR-LOOP-AVOID"/>
   or any other mechanism as described in the framework <xref target="RFC5715" format="default" sectionFormat="of" derivedContent="RFC5715"/>
   can be used to avoid micro-loops when the automatic metric
   calculation is deployed.</t>
        <t indent="0" pn="section-4.1-3"> Computing the metric between adjacent systems based on bandwidth
   becomes more complex in the case of parallel adjacencies. If there
   are parallel adjacencies between systems, then the bandwidth
   between the systems is the sum of the bandwidth of the parallel
   links. This is somewhat more complex to deal with, so there is an
   optional mode for computing the aggregate bandwidth.</t>
        <section anchor="sec_auto_metric_mode" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.1">
          <name slugifiedName="name-automatic-metric-calculation">Automatic Metric Calculation Modes</name>
          <section anchor="sec_simple" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.1.1">
            <name slugifiedName="name-simple-mode">Simple Mode</name>
            <t indent="0" pn="section-4.1.1.1-1"> In Simple Mode, the Maximum Link Bandwidth of a single Layer 3 link
   is used to derive the metric.  This mode is suitable for
   deployments that do not use parallel Layer 3 links. In this case,
   the computation of the metric is straightforward.

   If a Layer 3 link is composed of a Layer 2 bundle, then the link
   bandwidth is the sum of the bandwidths of the working components
   and may vary with Layer 2 link failures. </t>
          </section>
          <section anchor="sec_intf_grp" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.1.2">
            <name slugifiedName="name-interface-group-mode">Interface Group Mode</name>
            <t indent="0" pn="section-4.1.1.2-1"> The Simple Mode of metric calculation may not work well when there
   are multiple parallel Layer 3 interfaces between two nodes.
   Ideally, the metric between two systems should be the same given
   the same bandwidth, whether the bandwidth is provided by parallel
   Layer 2 links or parallel Layer 3 links. To address this, in
   Interface Group Mode, nodes <bcp14>MUST</bcp14> compute the aggregate bandwidth of
   all parallel adjacencies, <bcp14>MUST</bcp14> derive the metric based on the
   aggregate bandwidth, and <bcp14>MUST</bcp14> apply the resulting metric to each of
   the parallel adjacencies. Note that a single elephant flow is normally
   pinned to a single Layer 3 interface. If the single Layer 3 link
   bandwidth is not sufficient for any single elephant flow, the mechanisms
   to solve this issue are outside the scope of this document.
</t>
            <figure anchor="interface_grp" align="left" suppress-title="false" pn="figure-7">
              <name slugifiedName="name-parallel-interfaces">Parallel Interfaces</name>
              <artwork name="" type="" align="left" alt="" pn="section-4.1.1.2-2.1">
        A------B====C====F====D
               |              |
                ------E-------
      </artwork>
            </figure>
            <t indent="0" pn="section-4.1.1.2-3">
   For example, in the above diagram, there are two parallel links
   between B-&gt;C, C-&gt;F, F-&gt;D.  Let us assume the link bandwidth is
   uniform 10 Gbps on all links. When bandwidth is used to derive the metric 
   for the links, the metric for each link will be
   the same. Traffic from B to D will be forwarded as B-&gt;E-&gt;D because
   the metric will be lower.  Since the
   bandwidth is higher on the B‑&gt;C-&gt;F-&gt;D path, the metric for that
   path should be lower than the B-&gt;E-&gt;D path to attract the traffic on
   the B-&gt;C-&gt;F-&gt;D path.  Interface
   Group Mode should be preferred in cases where there are parallel Layer 3
   links.
            </t>
            <t indent="0" pn="section-4.1.1.2-4">
    In the Interface Group Mode, every node  <bcp14>MUST</bcp14>
    identify the set of parallel links between a pair
    of nodes based on IGP link advertisements
    and <bcp14>MUST</bcp14> consider cumulative bandwidth of the
    parallel links while arriving at the metric of each link. </t>
            <t indent="0" pn="section-4.1.1.2-5">The parallel Layer 3 links between two nodes may not have the 
	   same bandwidth. In such cases, the method described in Interface Group Mode will
	   result in the same metric being used for all the parallel links, which may cause
	   undesired load balancing on the links. In such cases, a device may locally
	   apply a load-balancing factor relative to the link bandwidth on the ECMP next hops.
	   The load-balancing mechanisms are outside the scope of this document.</t>
          </section>
        </section>
        <section anchor="sec_auto_metric_methods" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.2">
          <name slugifiedName="name-automatic-metric-calculation-">Automatic Metric Calculation Methods</name>
          <t indent="0" pn="section-4.1.2-1">
In automatic metric calculation for simple and Interface Group Mode,
Maximum Link Bandwidth of the links is used to derive the metric. 
There are two types of automatic metric derivation methods.</t>
          <ol type="1" spacing="normal" indent="adaptive" start="1" pn="section-4.1.2-2">
            <li pn="section-4.1.2-2.1" derivedCounter="1.">Reference bandwidth method</li>
            <li pn="section-4.1.2-2.2" derivedCounter="2.">Bandwidth thresholds method</li>
          </ol>
          <section anchor="sec_ref_bw_method" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.2.1">
            <name slugifiedName="name-reference-bandwidth-method">Reference Bandwidth Method</name>
            <t indent="0" pn="section-4.1.2.1-1">In many networks, the metric is inversely proportional to the link
   bandwidth.  The administrator or implementation selects a reference
   bandwidth and the metric is derived by dividing the reference
   bandwidth by the advertised Maximum Link Bandwidth.  Advertising
   the reference bandwidth in the FAD constraints allows the metric
   computation to be done on every node for each link.
   The metric is computed using reference bandwidth and the advertised link bandwidth.
   Centralized control of this
   reference bandwidth simplifies management in the case where the
   reference bandwidth changes. In order to ensure that small
   bandwidth changes do not change the link metric, it is useful to
   define the granularity of the bandwidth that is of interest.  The
   link bandwidth will be truncated to this granularity before
   deriving the metric.  </t>
            <t indent="0" pn="section-4.1.2.1-2">For example,</t>
            <t indent="3" pn="section-4.1.2.1-3">reference bandwidth = 1000G  </t>
            <t indent="3" pn="section-4.1.2.1-4">Granularity = 20G </t>
            <t indent="3" pn="section-4.1.2.1-5">The derived metric is 10 for link bandwidth in the range 100G to 119G </t>
          </section>
          <section anchor="sec_bw_threshold_method" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.2.2">
            <name slugifiedName="name-bandwidth-thresholds-method">Bandwidth Thresholds Method</name>
            <t indent="0" pn="section-4.1.2.2-1"> The reference bandwidth approach described above provides a uniform
   metric value for a range of link bandwidths.  In certain cases,
   there may be a need to define non-proportional metric values for
   the varying ranges of link bandwidth.  For example, bandwidths from
   10G to 30G are assigned metric value 100, bandwidth from 30G to 70G
   are assigned a metric value of 50, and bandwidths greater than 70G have a
   metric of 10.  In order to support this, a staircase mapping based
   on bandwidth thresholds is supported in the FAD.  This
   advertisement contains a set of threshold values and associated
   metrics. </t>
          </section>
        </section>
        <section anchor="sec_auto_isis" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.3">
          <name slugifiedName="name-is-is-fad-constraint-sub-tlv">IS-IS FAD Constraint Sub-TLVs for Automatic Metric Calculation</name>
          <section anchor="sec_isis_auto_ref_bw" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.3.1">
            <name slugifiedName="name-reference-bandwidth-sub-tlv">Reference Bandwidth Sub-TLV</name>
            <t indent="0" pn="section-4.1.3.1-1">
This section provides FAD constraint advertisement details for the
reference bandwidth method of metric calculation, as described in
 <xref target="sec_ref_bw_method" format="default" sectionFormat="of" derivedContent="Section 4.1.2.1"/>.

The Flexible Algorithm Definition Reference Bandwidth (FADRB) sub-TLV is
a sub-TLV of the IS-IS FAD sub-TLV. It has the following format:


</t>
            <figure anchor="isis_fadrb_sub_tlv" align="left" suppress-title="false" pn="figure-8">
              <name slugifiedName="name-is-is-fadrb-sub-tlv">IS-IS FADRB Sub-TLV</name>
              <artwork name="" type="" align="left" alt="" pn="section-4.1.3.1-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |    Length     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Reference Bandwidth                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Granularity Bandwidth                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            </figure>
            <t indent="0" pn="section-4.1.3.1-3">where:</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.3.1-4">
              <dt pn="section-4.1.3.1-4.1">Type (1 octet):</dt>
              <dd pn="section-4.1.3.1-4.2">An 8-bit field assigned by IANA (8).  This value
  uniquely identifies the IS-IS FADRB sub-TLV.</dd>
              <dt pn="section-4.1.3.1-4.3">Length (1 octet):</dt>
              <dd pn="section-4.1.3.1-4.4">An 8-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, the Length is set to 9.</dd>
              <dt pn="section-4.1.3.1-4.5">Flags (1 octet):</dt>
              <dd pn="section-4.1.3.1-4.6">
                <t indent="0" pn="section-4.1.3.1-4.6.1">An 8-bit field containing flags.</t>
                <artwork name="" type="" align="left" alt="" pn="section-4.1.3.1-4.6.2">
                 0 1 2 3 4 5 6 7
                +-+-+-+-+-+-+-+-+
                |G|             |
                +-+-+-+-+-+-+-+-+
		</artwork>
              </dd>
              <dt pn="section-4.1.3.1-4.7">G-flag:</dt>
              <dd pn="section-4.1.3.1-4.8">When set, Interface Group Mode <bcp14>MUST</bcp14> be used to derive
  total link bandwidth.  Unassigned bits <bcp14>MUST</bcp14> be set to
  zero and <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
              <dt pn="section-4.1.3.1-4.9">Reference Bandwidth (4 octets):</dt>
              <dd pn="section-4.1.3.1-4.10">A 32-bit field with Bandwidth encoded in IEEE floating point format
  <xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
              <dt pn="section-4.1.3.1-4.11">Granularity Bandwidth (4 octets):</dt>
              <dd pn="section-4.1.3.1-4.12">A 32-bit field with Bandwidth encoded in IEEE floating point format
  <xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
            </dl>
            <t indent="0" pn="section-4.1.3.1-5">When granularity_bw is less than or equal to Total_link_bandwidth, then:</t>
            <dl spacing="normal" newline="false" indent="3" pn="section-4.1.3.1-6">
              <dt pn="section-4.1.3.1-6.1">Metric calculation:</dt>
              <dd pn="section-4.1.3.1-6.2">(Reference_bandwidth) / (Total_link_bandwidth - (Modulus of(Total_link_bandwidth, granularity_bw)))</dd>
            </dl>
            <t indent="0" pn="section-4.1.3.1-7">When granularity_bw is greater than Total_link_bandwidth, then:</t>
            <dl spacing="normal" newline="false" indent="3" pn="section-4.1.3.1-8">
              <dt pn="section-4.1.3.1-8.1">Metric calculation:</dt>
              <dd pn="section-4.1.3.1-8.2">Reference_bandwidth / Total_link_bandwidth</dd>
            </dl>
            <t indent="0" pn="section-4.1.3.1-9">The division used here is integer division.  Modulus of operation is
defined as a remainder value when two numbers are divided.</t>
            <t indent="0" pn="section-4.1.3.1-10">   The Granularity Bandwidth value ensures that the metric
         does not change when there is a small
         change in the link bandwidth.
   The IS-IS FADRB sub-TLV <bcp14>MUST NOT</bcp14> appear more than once in an 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. The value advertised in the Reference Bandwidth field <bcp14>MUST</bcp14> be non-zero.
   If a zero value is advertised in the Reference Bandwidth field in the IS-IS FADRB sub-TLV,
   the sub-TLV <bcp14>MUST</bcp14> be ignored.</t>
            <t indent="0" pn="section-4.1.3.1-11">If a Generic Metric sub-TLV with a Bandwidth metric-type
   is advertised for a link,
   the Flex-Algorithm calculation <bcp14>MUST</bcp14> use the advertised Bandwidth Metric
   and <bcp14>MUST NOT</bcp14> use the automatically derived metric for that link.
            </t>
            <t indent="0" pn="section-4.1.3.1-12">
  In case of Interface Group Mode, the following rules apply to parallel links:
</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1.3.1-13">
              <li pn="section-4.1.3.1-13.1">
                <t indent="0" pn="section-4.1.3.1-13.1.1">If all the parallel links have been advertised with the Bandwidth Metric:</t>
                <t indent="0" pn="section-4.1.3.1-13.1.2">The individual link Bandwidth Metric <bcp14>MUST</bcp14> be used.</t>
              </li>
              <li pn="section-4.1.3.1-13.2">
                <t indent="0" pn="section-4.1.3.1-13.2.1">If only some links among the parallel links have advertised the Bandwidth 
  Metric:</t>
                <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4.1.3.1-13.2.2">
                  <li pn="section-4.1.3.1-13.2.2.1">The Bandwidth Metric for such links <bcp14>MUST</bcp14> be ignored.</li>
                  <li pn="section-4.1.3.1-13.2.2.2">Automatic metric calculation <bcp14>MUST</bcp14> be used to derive the link metric.</li>
                </ul>
              </li>
            </ul>
            <t indent="0" pn="section-4.1.3.1-14">If the calculated metric evaluates to zero, a metric of 1 <bcp14>MUST</bcp14> be used.</t>
            <t indent="0" pn="section-4.1.3.1-15"> If the calculated metric evaluates to a number greater than 0xFFFFFF, 
   it is set to 0xFFFFFF.</t>
          </section>
          <section anchor="sec_isis_threshold_metric" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.3.2">
            <name slugifiedName="name-bandwidth-threshold-sub-tlv">Bandwidth Threshold Sub-TLV</name>
            <t indent="0" pn="section-4.1.3.2-1">
This section provides FAD constraint advertisement details for the
Bandwidth Thresholds method of metric calculation as
described in <xref target="sec_bw_threshold_method" format="default" sectionFormat="of" derivedContent="Section 4.1.2.2"/>.
The Flexible Algorithm Definition Bandwidth Threshold (FADBT) sub-TLV is
a sub-TLV of the IS-IS FAD sub-TLV. It has the following format:

</t>
            <figure anchor="isis_fadbt_sub_tlv" align="left" suppress-title="false" pn="figure-9">
              <name slugifiedName="name-is-is-fadbt-sub-tlv">IS-IS FADBT Sub-TLV</name>
              <artwork name="" type="" align="left" alt="" pn="section-4.1.3.2-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |    Length     |       Flags   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold 1                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric 1        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold 2                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric 2        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold 3                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                  .....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric N-1      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold N                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric N        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            </figure>
            <t indent="0" pn="section-4.1.3.2-3">where:</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.3.2-4">
              <dt pn="section-4.1.3.2-4.1">Type (1 octet):</dt>
              <dd pn="section-4.1.3.2-4.2"> An 8-bit field assigned by IANA (9).  This value
  uniquely identifies the IS-IS FADBT sub-TLV.</dd>
              <dt pn="section-4.1.3.2-4.3">Length (1 octet):</dt>
              <dd pn="section-4.1.3.2-4.4">An 8-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, the Length is calculated as (1+N*7). Here, N is
  equal to the number of Threshold Metrics specified.  N <bcp14>MUST</bcp14> be
  greater than or equal to 1.</dd>
              <dt pn="section-4.1.3.2-4.5">Flags (1 octet):</dt>
              <dd pn="section-4.1.3.2-4.6">
                <artwork name="" type="" align="left" alt="" pn="section-4.1.3.2-4.6.1">
                 0 1 2 3 4 5 6 7
                +-+-+-+-+-+-+-+-+
                |G| | |         |
                +-+-+-+-+-+-+-+-+
		</artwork>
                <dl spacing="normal" newline="false" indent="3" pn="section-4.1.3.2-4.6.2">
                  <dt pn="section-4.1.3.2-4.6.2.1">G-flag:</dt>
                  <dd pn="section-4.1.3.2-4.6.2.2">When set, Interface Group Mode <bcp14>MUST</bcp14> be
  used to derive total link bandwidth. Unassigned bits <bcp14>MUST</bcp14> be set to zero and <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
                </dl>
              </dd>
            </dl>
            <t indent="0" pn="section-4.1.3.2-5">Following is the staircase bandwidth threshold and associated metric values.</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.3.2-6">
              <dt pn="section-4.1.3.2-6.1">Bandwidth Threshold 1 (4 octets):</dt>
              <dd pn="section-4.1.3.2-6.2">Minimum Link Bandwidth is encoded in IEEE floating point format (32
  bits)<xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
              <dt pn="section-4.1.3.2-6.3">Threshold Metric 1 (3 octets):</dt>
              <dd pn="section-4.1.3.2-6.4">Metric value range (1 - 16,777,215 (0xFFFFFF))</dd>
              <dt pn="section-4.1.3.2-6.5">Bandwidth Threshold N (4 octets):</dt>
              <dd pn="section-4.1.3.2-6.6">Maximum Link Bandwidth is encoded in IEEE floating point format (32
  bits)<xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
              <dt pn="section-4.1.3.2-6.7">Threshold Metric N (3 octets):</dt>
              <dd pn="section-4.1.3.2-6.8">Metric value range (1 - 16,777,215 (0xFFFFFF))</dd>
            </dl>
            <t indent="0" pn="section-4.1.3.2-7">When the G-flag is set, the cumulative bandwidth of the parallel links is
computed as described in <xref target="sec_intf_grp" format="default" sectionFormat="of" derivedContent="Section 4.1.1.2"/>. If the
G-flag is not set, the advertised Maximum Link Bandwidth is used.</t>
            <t indent="0" pn="section-4.1.3.2-8">The assignment of the Bandwidth Metric based on computed link bandwidth is described below.</t>
            <t indent="0" pn="section-4.1.3.2-9">The Bandwidth Metric for a link during the Flex-Algorithm Shortest Path
First (SPF) calculation <bcp14>MUST</bcp14> be assigned according to the
following rules:</t>
            <ol type="1" spacing="normal" indent="adaptive" start="1" pn="section-4.1.3.2-10">
     <li pn="section-4.1.3.2-10.1" derivedCounter="1.">
                <t indent="0" pn="section-4.1.3.2-10.1.1">When the computed link bandwidth is less than Bandwidth Threshold 1:</t>
                <t indent="0" pn="section-4.1.3.2-10.1.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to the maximum metric value of 4,261,412,864.</t>
              </li>
              <li pn="section-4.1.3.2-10.2" derivedCounter="2.">
                <t indent="0" pn="section-4.1.3.2-10.2.1">When the computed link bandwidth is greater than or equal to
     Bandwidth Threshold 1 and less than Bandwidth Threshold 2:</t>
                <t indent="0" pn="section-4.1.3.2-10.2.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric 1.</t>
              </li>
              <li pn="section-4.1.3.2-10.3" derivedCounter="3.">
                <t indent="0" pn="section-4.1.3.2-10.3.1">When the computed link bandwidth is greater than or equal to
     Bandwidth Threshold 2 and less than Bandwidth Threshold 3:</t>
                <t indent="0" pn="section-4.1.3.2-10.3.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric 2.</t>
              </li>
              <li pn="section-4.1.3.2-10.4" derivedCounter="4.">
                <t indent="0" pn="section-4.1.3.2-10.4.1">In general, for all integer values of X such that 1 ≤ X &lt; N:</t>
                <t indent="0" pn="section-4.1.3.2-10.4.2">When the computed link bandwidth is greater than or equal to Bandwidth
     Threshold X and less than Bandwidth Threshold X+1:</t>
                <t indent="0" pn="section-4.1.3.2-10.4.3">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric X.</t>
              </li>
              <li pn="section-4.1.3.2-10.5" derivedCounter="5.">
                <t indent="0" pn="section-4.1.3.2-10.5.1">When the computed link bandwidth is greater than or equal to Bandwidth Threshold N:</t>
                <t indent="0" pn="section-4.1.3.2-10.5.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric N.</t>
              </li>
            </ol>
            <t indent="0" pn="section-4.1.3.2-11">Notes:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1.3.2-12">
              <li pn="section-4.1.3.2-12.1">The term "Bandwidth Threshold X" refers to a predefined threshold 
       value corresponding to the index X.</li>
              <li pn="section-4.1.3.2-12.2">The term "Threshold Metric X" refers to the metric value 
       associated with Bandwidth Threshold X.</li>
              <li pn="section-4.1.3.2-12.3">N represents the total number of bandwidth thresholds 
       defined in the system.</li>
            </ul>
            <t indent="0" pn="section-4.1.3.2-13">Implementations <bcp14>MUST</bcp14> ensure that these rules are consistently applied to 
maintain interoperability and optimal path computation 
within the network.</t>
            <t indent="0" pn="section-4.1.3.2-14">The IS-IS FADBT sub-TLV <bcp14>MUST NOT</bcp14> appear more than once in an 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>
            <t indent="0" pn="section-4.1.3.2-15">A FAD <bcp14>MUST NOT</bcp14> contain both the FADBT sub-TLV and the FADRB sub-TLV.  If both
   of these sub-TLVs are advertised in the same FAD for a Flexible
   Algorithm, the FAD <bcp14>MUST</bcp14> be ignored by the receiver.</t>
            <t indent="0" pn="section-4.1.3.2-16">If a Generic Metric sub-TLV with Bandwidth metric-type is advertised
   for a link, the Flex-Algorithm calculation <bcp14>MUST</bcp14> use the Bandwidth
   Metric advertised on the link and <bcp14>MUST NOT</bcp14> use the automatically
	    derived metric for that link.</t>
            <t indent="0" pn="section-4.1.3.2-17">In case of Interface Group Mode, the following rules apply to parallel links:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1.3.2-18">
              <li pn="section-4.1.3.2-18.1">
                <t indent="0" pn="section-4.1.3.2-18.1.1">If all the parallel links have been advertised with the Bandwidth Metric:</t>
                <t indent="0" pn="section-4.1.3.2-18.1.2">The individual link Bandwidth Metric <bcp14>MUST</bcp14> be used.</t>
              </li>
              <li pn="section-4.1.3.2-18.2">
                <t indent="0" pn="section-4.1.3.2-18.2.1">If only some links among the parallel links have advertised the Bandwidth Metric:</t>
                <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4.1.3.2-18.2.2">
                  <li pn="section-4.1.3.2-18.2.2.1">The Bandwidth Metric for such links <bcp14>MUST</bcp14> be ignored.</li>
                  <li pn="section-4.1.3.2-18.2.2.2">Automatic metric calculation <bcp14>MUST</bcp14> be used to derive the link metric.</li>
                </ul>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="sec_auto_ospf" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.4">
          <name slugifiedName="name-ospf-fad-constraint-sub-tlvs">OSPF FAD Constraint Sub-TLVs for Automatic Metric Calculation</name>
          <section anchor="sec_ospf_auto_ref_bw" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.4.1">
            <name slugifiedName="name-reference-bandwidth-sub-tlv-2">Reference Bandwidth Sub-TLV</name>
            <t indent="0" pn="section-4.1.4.1-1">
The Flexible Algorithm Definition Reference Bandwidth (FADRB) sub-TLV is
a sub-TLV of the OSPF FAD TLV. It has the following format:


</t>
            <figure anchor="ospf_fadrb_sub_tlv" align="left" suppress-title="false" pn="figure-10">
              <name slugifiedName="name-ospf-fadrb-sub-tlv">OSPF FADRB Sub-TLV</name>
              <artwork name="" type="" align="left" alt="" pn="section-4.1.4.1-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type                     |    Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Flags   |     Reserved                                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Reference Bandwidth                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Granularity Bandwidth                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            </figure>
            <t indent="0" pn="section-4.1.4.1-3">where:</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.4.1-4">
              <dt pn="section-4.1.4.1-4.1">Type (2 octets):</dt>
              <dd pn="section-4.1.4.1-4.2">A 16-bit field assigned by IANA (8).  This value
  uniquely identifies the OSPF FADRB sub-TLV.</dd>
              <dt pn="section-4.1.4.1-4.3">Length (2 octets):</dt>
              <dd pn="section-4.1.4.1-4.4">A 16-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, Length is set to 14.</dd>
              <dt pn="section-4.1.4.1-4.5">Flags (1 octet):</dt>
              <dd pn="section-4.1.4.1-4.6">
                <artwork name="" type="" align="left" alt="" pn="section-4.1.4.1-4.6.1">
                 0 1 2 3 4 5 6 7
                +-+-+-+-+-+-+-+-+
                |G| | |         |
                +-+-+-+-+-+-+-+-+
		</artwork>
                <dl spacing="normal" newline="false" indent="3" pn="section-4.1.4.1-4.6.2">
                  <dt pn="section-4.1.4.1-4.6.2.1">G-flag:</dt>
                  <dd pn="section-4.1.4.1-4.6.2.2">When set, Interface Group Mode <bcp14>MUST</bcp14> be
    used to derive total link bandwidth. Unassigned bits <bcp14>MUST</bcp14> be set to zero and <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
                </dl>
              </dd>
              <dt pn="section-4.1.4.1-4.7">Reference Bandwidth (4 octets):</dt>
              <dd pn="section-4.1.4.1-4.8">Bandwidth encoded in 32 bits in IEEE floating point format
  <xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are in bytes per second.</dd>
              <dt pn="section-4.1.4.1-4.9">Granularity Bandwidth (4 octets):</dt>
              <dd pn="section-4.1.4.1-4.10">Bandwidth encoded in 32 bits in IEEE floating point format
  <xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are in bytes per second.</dd>
            </dl>
            <t indent="0" pn="section-4.1.4.1-5">When granularity_bw is less than or equal to Total_link_bandwidth, then:</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.4.1-6">
              <dt pn="section-4.1.4.1-6.1">Metric calculation:</dt>
              <dd pn="section-4.1.4.1-6.2">(Reference_bandwidth) /
  (Total_link_bandwidth - (Modulus of(Total_link_bandwidth,
  granularity_bw)))</dd>
            </dl>
            <t indent="0" pn="section-4.1.4.1-7">When granularity_bw is greater than Total_link_bandwidth, then:</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.4.1-8">
              <dt pn="section-4.1.4.1-8.1">Metric calculation:</dt>
              <dd pn="section-4.1.4.1-8.2">Reference_bandwidth/
  Total_link_bandwidth</dd>
            </dl>
            <t indent="0" pn="section-4.1.4.1-9">The division used here is integer division.</t>
            <t indent="0" pn="section-4.1.4.1-10">Modulus of operation is defined as a remainder value when two numbers are
divided.</t>
            <t indent="0" pn="section-4.1.4.1-11">The Granularity Bandwidth value is used to ensure that the metric does not
change when there is a small change in the link bandwidth.  The OSPF FADRB
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</bcp14> be ignored by
the receiver. The value advertised in the Reference Bandwidth field
<bcp14>MUST</bcp14> be non-zero.  If a zero value is advertised in the
Reference Bandwidth field in the OSPF FADRB sub-TLV, the sub-TLV
<bcp14>MUST</bcp14> be ignored.  If a Generic Metric sub-TLV with Bandwidth
metric-type is advertised for a link, the Flex-Algorithm calculation
<bcp14>MUST</bcp14> use the advertised Bandwidth Metric on the link and
<bcp14>MUST NOT</bcp14> use the automatically derived metric for that link.
In the case of Interface Group Mode, the following procedures apply:
            </t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1.4.1-12">
              <li pn="section-4.1.4.1-12.1">
                <t indent="0" pn="section-4.1.4.1-12.1.1"> When all parallel links have advertised the Bandwidth
                Metric: The individual link Bandwidth Metric
                <bcp14>MUST</bcp14> be used for each link.</t>
              </li>
              <li pn="section-4.1.4.1-12.2">
                <t indent="0" pn="section-4.1.4.1-12.2.1"> When only a subset of the parallel links have advertised
                the Bandwidth Metric: The Bandwidth Metric advertisements for
                those links <bcp14>MUST</bcp14> be ignored. In this scenario,
                automatic metric calculation <bcp14>MUST</bcp14> be used to
                derive the link metrics for all parallel links.</t>
              </li>
            </ul>
            <t indent="0" pn="section-4.1.4.1-13">If the calculated metric evaluates to zero, a metric of 1 <bcp14>MUST</bcp14> be used.</t>
            <t indent="0" pn="section-4.1.4.1-14"> If the calculated metric evaluates to a number greater than 0xFFFFFFFF, 
     it is set to 0xFFFFFFFF.</t>
          </section>
          <section anchor="sec_ospf_threshold_metric" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.4.2">
            <name slugifiedName="name-bandwidth-threshold-sub-tlv-2">Bandwidth Threshold Sub-TLV</name>
            <t indent="0" pn="section-4.1.4.2-1">
The Flexible Algorithm Definition Bandwidth Threshold (FADBT) sub-TLV is
a sub-TLV of the OSPF FAD TLV. It has the following format:

</t>
            <figure anchor="ospf_fadbt_sub_tlv" align="left" suppress-title="false" pn="figure-11">
              <name slugifiedName="name-ospf-fadbt-sub-tlv">OSPF FADBT Sub-TLV</name>
              <artwork name="" type="" align="left" alt="" pn="section-4.1.4.2-2.1">
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type                     |    Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Flags   | Reserved                                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold 1                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric 1                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold 2                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric 2                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold 3                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                  .....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric N-1                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Bandwidth Threshold N                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric N                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            </figure>
            <t indent="0" pn="section-4.1.4.2-3">where:</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.4.2-4">
              <dt pn="section-4.1.4.2-4.1">Type (2 octets):</dt>
              <dd pn="section-4.1.4.2-4.2">A 16-bit field assigned by IANA (9).  This value
  uniquely identifies the OSPF FADBT sub-TLV.</dd>
              <dt pn="section-4.1.4.2-4.3">Length (2 octets):</dt>
              <dd pn="section-4.1.4.2-4.4">A 16-bit field indicating the total length, in octets, of the subsequent
  fields. For this sub-TLV, Length is set to 2 + N*8 octets. Here, N is equal to
  the number of Threshold Metrics specified. N <bcp14>MUST</bcp14> be greater than
  or equal to 1.</dd>
              <dt pn="section-4.1.4.2-4.5">Flags (1 octet):</dt>
              <dd pn="section-4.1.4.2-4.6">
                <artwork name="" type="" align="left" alt="" pn="section-4.1.4.2-4.6.1">
                 0 1 2 3 4 5 6 7
                +-+-+-+-+-+-+-+-+
                |G|             |
                +-+-+-+-+-+-+-+-+
		</artwork>
                <dl spacing="normal" newline="false" indent="3" pn="section-4.1.4.2-4.6.2">
                  <dt pn="section-4.1.4.2-4.6.2.1">G-flag:</dt>
                  <dd pn="section-4.1.4.2-4.6.2.2">When set, Interface Group Mode <bcp14>MUST</bcp14>
      be used to derive total link bandwidth. Unassigned bits <bcp14>MUST</bcp14> be set to zero and <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
                </dl>
              </dd>
            </dl>
            <t indent="0" pn="section-4.1.4.2-5">Following is the staircase bandwidth threshold and associated metric values.</t>
            <dl spacing="normal" newline="true" indent="3" pn="section-4.1.4.2-6">
              <dt pn="section-4.1.4.2-6.1">Bandwidth Threshold 1 (4 octets):</dt>
              <dd pn="section-4.1.4.2-6.2">Minimum Link Bandwidth is encoded in IEEE floating point format (32
  bits)<xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
              <dt pn="section-4.1.4.2-6.3">Threshold Metric 1 (4 octets):</dt>
              <dd pn="section-4.1.4.2-6.4">Metric value range (1 - 4,294,967,296 (0xFFFFFFFF))</dd>
              <dt pn="section-4.1.4.2-6.5">Bandwidth Threshold N (4 octets): </dt>
              <dd pn="section-4.1.4.2-6.6">Maximum Link Bandwidth is encoded in IEEE floating point format (32
  bits)<xref target="IEEE754-2019" format="default" sectionFormat="of" derivedContent="IEEE754-2019"/>.  The units are bytes per second.</dd>
              <dt pn="section-4.1.4.2-6.7">Threshold Metric N (4 octets):</dt>
              <dd pn="section-4.1.4.2-6.8">Metric value range (1 - 4,294,967,296 (0xFFFFFFFF))</dd>
            </dl>
            <t indent="0" pn="section-4.1.4.2-7">When the G-flag is set, the cumulative bandwidth of the parallel links is
computed as described in <xref target="sec_intf_grp" format="default" sectionFormat="of" derivedContent="Section 4.1.1.2"/>.  If
the G-flag is not set, the advertised Maximum Link Bandwidth is used.</t>
            <t indent="0" pn="section-4.1.4.2-8">The assignment of the Bandwidth Metric based on computed link bandwidth is described below.</t>
            <t indent="0" pn="section-4.1.4.2-9">During the Flex-Algorithm SPF calculation, the Bandwidth Metric for a link  <bcp14>MUST</bcp14> be assigned according to the following rules:</t>
            <ol type="1" spacing="normal" indent="adaptive" start="1" pn="section-4.1.4.2-10">
  <li pn="section-4.1.4.2-10.1" derivedCounter="1.">
                <t indent="0" pn="section-4.1.4.2-10.1.1">When the computed link bandwidth is less than Bandwidth Threshold 1:</t>
                <t indent="0" pn="section-4.1.4.2-10.1.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to the maximum metric
  value of 4,294,967,296.</t>
              </li>
              <li pn="section-4.1.4.2-10.2" derivedCounter="2.">
                <t indent="0" pn="section-4.1.4.2-10.2.1">When the computed link bandwidth is greater than or equal to
  Bandwidth Threshold 1 and less than Bandwidth Threshold 2:</t>
                <t indent="0" pn="section-4.1.4.2-10.2.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric 1.</t>
              </li>
              <li pn="section-4.1.4.2-10.3" derivedCounter="3.">
                <t indent="0" pn="section-4.1.4.2-10.3.1">When the computed link bandwidth is greater than or equal to
  Bandwidth Threshold 2 and less than Bandwidth Threshold 3:</t>
                <t indent="0" pn="section-4.1.4.2-10.3.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric 2.</t>
              </li>
              <li pn="section-4.1.4.2-10.4" derivedCounter="4.">
                <t indent="0" pn="section-4.1.4.2-10.4.1">In general, for all integer values of X where 1 ≤X &lt; N:</t>
                <t indent="0" pn="section-4.1.4.2-10.4.2">When the computed link bandwidth is greater than or equal to Bandwidth
  Threshold X and less than Bandwidth Threshold X+1:</t>
                <t indent="0" pn="section-4.1.4.2-10.4.3">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric X.</t>
              </li>
              <li pn="section-4.1.4.2-10.5" derivedCounter="5.">
                <t indent="0" pn="section-4.1.4.2-10.5.1">When the computed link bandwidth is greater than or equal to
  Bandwidth Threshold N:</t>
                <t indent="0" pn="section-4.1.4.2-10.5.2">The Bandwidth Metric <bcp14>MUST</bcp14> be set to Threshold Metric N.</t>
              </li>
            </ol>
            <t indent="0" pn="section-4.1.4.2-11">Notes:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1.4.2-12">
              <li pn="section-4.1.4.2-12.1">
                <t indent="0" pn="section-4.1.4.2-12.1.1">Bandwidth Threshold X refers to the predefined bandwidth threshold
    corresponding to index X.</t>
              </li>
              <li pn="section-4.1.4.2-12.2">
                <t indent="0" pn="section-4.1.4.2-12.2.1">Threshold Metric X is the metric value associated with Bandwidth
    Threshold X.</t>
              </li>
              <li pn="section-4.1.4.2-12.3">
                <t indent="0" pn="section-4.1.4.2-12.3.1">N represents the total number of bandwidth thresholds defined in the
    system.</t>
              </li>
            </ul>
            <t indent="0" pn="section-4.1.4.2-13">Implementations <bcp14>MUST</bcp14> consistently apply these rules to ensure accurate
 path computations and maintain interoperability within the network.</t>
            <t indent="0" pn="section-4.1.4.2-14">The OSPF FADBT sub-TLV <bcp14>MUST NOT</bcp14> appear more than once in an OSPF FAD
   sub-TLV.  If it appears more than once, the OSPF FAD sub-TLV <bcp14>MUST</bcp14> 
   be ignored by the receiver.</t>
            <t indent="0" pn="section-4.1.4.2-15">A FAD <bcp14>MUST NOT</bcp14> contain both the FADBT sub-TLV and the FADRB sub-TLV.  If both
   these sub-TLVs are advertised in the same FAD for a Flexible
   Algorithm, the FAD <bcp14>MUST</bcp14> be ignored by the receiver.</t>
            <t indent="0" pn="section-4.1.4.2-16">If a Generic Metric sub-TLV with Bandwidth metric-type is advertised
   for a link, the Flex-Algorithm calculation <bcp14>MUST</bcp14> use the Bandwidth
   Metric advertised on the link and <bcp14>MUST NOT</bcp14> use the automatically
   derived metric for that link.</t>
            <t indent="0" pn="section-4.1.4.2-17"> Metric Assignment in Interface Group Mode:</t>
            <t indent="0" pn="section-4.1.4.2-18">When a link does not have a configured Bandwidth Metric, 
   the automatically derived metric <bcp14>MUST</bcp14> be used for that link.</t>
            <t indent="0" pn="section-4.1.4.2-19">In case of Interface Group Mode, the following rules apply to parallel links:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1.4.2-20">
              <li pn="section-4.1.4.2-20.1">
                <t indent="0" pn="section-4.1.4.2-20.1.1">If all parallel links have advertised the Bandwidth Metric:</t>
                <t indent="0" pn="section-4.1.4.2-20.1.2">The individual link Bandwidth Metric <bcp14>MUST</bcp14> be used for each link during path computation.</t>
              </li>
              <li pn="section-4.1.4.2-20.2">
                <t indent="0" pn="section-4.1.4.2-20.2.1">If only some of the parallel links have advertised the Bandwidth Metric:</t>
                <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4.1.4.2-20.2.2">
                  <li pn="section-4.1.4.2-20.2.2.1">The Bandwidth Metric advertisements for those links <bcp14>MUST</bcp14> be ignored.</li>
                  <li pn="section-4.1.4.2-20.2.2.2">Automatic metric calculation <bcp14>MUST</bcp14> be used to derive the link metrics for all parallel links.</li>
                </ul>
              </li>
            </ul>
            <t indent="0" pn="section-4.1.4.2-21">This approach ensures consistent metric calculation and avoids discrepancies 
caused by partial Bandwidth Metric advertisements among parallel links.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-metric" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-bandwidth-metric-considerat">Bandwidth Metric Considerations</name>
      <t indent="0" pn="section-5-1">
    This section specifies the rules of deriving the Bandwidth Metric if
    and only if the winning FAD for the Flex-Algorithm specifies the
    metric-type as "Bandwidth Metric".
      </t>
      <ol type="1" spacing="normal" indent="adaptive" start="1" pn="section-5-2">
        <li pn="section-5-2.1" derivedCounter="1.">If the Generic Metric sub-TLV with Bandwidth metric-type is
        advertised for the link as described in <xref target="sec_bw_metric" format="default" sectionFormat="of" derivedContent="Section 4"/>, it <bcp14>MUST</bcp14> be used during the
        Flex-Algorithm calculation.</li>
        <li pn="section-5-2.2" derivedCounter="2.">If the Generic Metric sub-TLV with Bandwidth metric-type is not
        advertised for the link and the winning FAD for the Flex-Algorithm
        does not specify the automatic Bandwidth metric calculation (as
        defined in <xref target="sec_auto_metric" format="default" sectionFormat="of" derivedContent="Section 4.1"/>), the
        link is treated as if the Bandwidth Metric is not available for the
        link.</li>
        <li pn="section-5-2.3" derivedCounter="3.">If the Generic Metric sub-TLV with Bandwidth metric-type is not
        advertised for the link and the winning FAD (<xref section="5.3" target="RFC9350" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-5.3" derivedContent="RFC9350"/>) for the Flex-Algorithm specifies
        the automatic Bandwidth metric calculation (as defined in <xref target="sec_auto_metric" format="default" sectionFormat="of" derivedContent="Section 4.1"/>), the Bandwidth Metric
        <bcp14>MUST</bcp14> be automatically calculated per the
        procedures defined in <xref target="sec_auto_metric" format="default" sectionFormat="of" derivedContent="Section 4.1"/>.  If the Link Bandwidth is not advertised for a
        link, the link <bcp14>MUST</bcp14> be pruned for the Flex-Algorithm
        calculations.</li>
        <li pn="section-5-2.4" derivedCounter="4.">In IS-IS, for Flex-Algorithm purposes, the Link Bandwidth is
        advertised as a sub-sub-TLV 9 of the Flex-Algorithm-specific ASLA
        sub-TLV.  It is also possible to advertise the link bandwidth or
        Flex-Algorithm in sub-TLV 9 of TLVs 22/222/23/223/141 <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/>
        together with the L-flag set in the Flex-Algorithm-specific ASLA
        advertisement. In the absence of both of these advertisements, the
        bandwidth of the link is not available for Flex-Algorithm
        purposes.</li>
      </ol>
    </section>
    <section anchor="sec-calc" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-calculation-of-flex-algorit">Calculation of Flex-Algorithm Paths</name>
      <t indent="0" pn="section-6-1">The following two new additional rules are added to the existing rules in the
      Flex-Algorithm calculations specified in <xref target="RFC9350" sectionFormat="of" section="13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-13" derivedContent="RFC9350"/>:</t>
      <blockquote pn="section-6-2">
        <ol spacing="normal" start="6" indent="adaptive" type="1" pn="section-6-2.1">
        <li pn="section-6-2.1.1" derivedCounter="6.">Check if any exclude FAEMB rule is part of the Flex-Algorithm
        definition.  If such exclude rule exists and the link has Maximum Link
        Bandwidth advertised, check if the link bandwidth satisfies the FAEMB
        rule. If the link does not satisfy the FAEMB rule, the link
        <bcp14>MUST</bcp14> be pruned from the Flex-Algorithm computation.</li>
          <li pn="section-6-2.1.2" derivedCounter="7.">Check if any exclude FAEMD rule is part of the Flex-Algorithm
        definition.  If such exclude rule exists and the link has Min
        Unidirectional link delay advertised, check if the link delay
        satisfies the FAEMD rule. If the link does not satisfy the FAEMD rule,
        the link <bcp14>MUST</bcp14> be pruned from the Flex-Algorithm
        computation.</li>
        </ol>
      </blockquote>
    </section>
    <section anchor="backward_compatibility" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-backward-compatibility">Backward Compatibility</name>
      <t indent="0" pn="section-7-1"> This extension brings no new backward-compatibility issues.
		 This document defines new FAD constraints in Sections 
		 <xref target="sec_fad_con" format="counter" sectionFormat="of" derivedContent="3"/>, <xref target="sec_auto_isis" format="counter" sectionFormat="of" derivedContent="4.1.3"/>, and
		 <xref target="sec_auto_ospf" format="counter" sectionFormat="of" derivedContent="4.1.4"/>. As described in  <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>,
		 any node that does not understand sub-TLVs in a FAD TLV stops participation in the 
		 corresponding Flex-Algorithm. The new extensions can be deployed among the nodes that are
		 upgraded to understand the new extensions without affecting the nodes that are not upgraded.
		 This document also defines a new metric advertisement as described in 
		 <xref target="sec_generic_metric" format="default" sectionFormat="of" derivedContent="Section 2"/>. As per <xref target="RFC9350" sectionFormat="of" section="13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-13" derivedContent="RFC9350"/>,
		 when the links do not advertise the metric-type specified by the selected FAD, 
		 the link is pruned from Flex-Algorithm calculations. The new metric-types and 
         Flex-Algorithms using the new metric-types can be deployed in the network without affecting	
         existing deployment.	 </t>
    </section>
    <section anchor="sec-con" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-8-1">This document inherits security considerations from <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>.</t>
    </section>
    <section anchor="sec-ops" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <t indent="0" pn="section-9-1">Operational considerations defined in <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/> generally apply to
	the extensions defined in this document as well. This document defines a metric-type
	range for user-defined metrics. When user-defined metrics are used in an inter-area or
	inter-level network, all the domains should assign same meaning to the particular
	metric-type. The YANG data models for Flex-Algorithm extensions are defined in 
	documents <xref target="I-D.ietf-lsr-ospf-yang-augmentation-v1" format="default" sectionFormat="of" derivedContent="OSPF-AUGMENTATION"/> and 
	<xref target="I-D.ietf-lsr-isis-yang-augmentation-v1" format="default" sectionFormat="of" derivedContent="ISIS-AUGMENTATION"/>.</t>
      <t indent="0" pn="section-9-2">Before the router goes into maintenance activity, the traffic needs to be diverted away
	   from the router. This is achieved by setting the overload bit or setting link metrics on the
	   router to a high value. In case of Generic Metric, the link metrics can be set to a Maximum
	   usable metric for OSPF and IS-IS. The traffic will be diverted away from the router to a shorter
	   available path. If there are no alternate paths available, traffic will stay on the router as
	   the links are not removed from the Flex-Algorithm calculation when they are set to a maximum metric per 
	   <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>.
      </t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="igp_metric_type" numbered="true" toc="include" removeInRFC="false" pn="section-10.1">
        <name slugifiedName="name-igp-metric-type-registry">IGP Metric-Type Registry</name>
        <t indent="0" pn="section-10.1-1">The "IGP Metric-Type" registry has been updated to include another column
        specifying whether the particular metric-type is allowed in the
        Generic Metric sub-TLV.  The range 128-255 is redefined
        by this document as a user-defined range, and this range does not require
        Standards Action <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>. </t>
        <table anchor="iana_metric_type" align="center" pn="table-1">
          <name slugifiedName="name-igp-metric-type-registry-2">IGP Metric-Type 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>
              <th align="left" colspan="1" rowspan="1">Allowed in Generic-Metric</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">IGP Metric</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9350" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-5.1" derivedContent="RFC9350"/></td>
              <td align="left" colspan="1" rowspan="1">No</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Min Unidirectional Link Delay as defined in <xref target="RFC8570" sectionFormat="comma" section="4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8570#section-4.2" derivedContent="RFC8570"/> and <xref target="RFC7471" sectionFormat="comma" section="4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7471#section-4.2" derivedContent="RFC7471"/></td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9350" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-5.1" derivedContent="RFC9350"/></td>
              <td align="left" colspan="1" rowspan="1">No</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Traffic Engineering Default Metric as defined in <xref target="RFC5305" sectionFormat="comma" section="3.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5305#section-3.7" derivedContent="RFC5305"/> and  Traffic Engineering Metric as defined in <xref target="RFC3630" sectionFormat="comma" section="2.5.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3630#section-2.5.5" derivedContent="RFC3630"/></td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9350" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-5.1" derivedContent="RFC9350"/></td>
              <td align="left" colspan="1" rowspan="1">No</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Bandwidth Metric</td>
              <td align="left" colspan="1" rowspan="1">RFC 9843</td>
              <td align="left" colspan="1" rowspan="1">Yes</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">128-255</td>
              <td align="left" colspan="1" rowspan="1">Reserved for User-Defined Metric</td>
              <td align="left" colspan="1" rowspan="1">RFC 9843</td>
              <td align="left" colspan="1" rowspan="1">Yes</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="isis_fad" numbered="true" toc="include" removeInRFC="false" pn="section-10.2">
        <name slugifiedName="name-is-is-sub-sub-tlvs-for-flex">IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV</name>
        <t indent="0" pn="section-10.2-1">The "IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV" registry is part
	of the "IS-IS TLV Codepoints" registry group.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.2-2">
          <dt pn="section-10.2-2.1">Type:</dt>
          <dd pn="section-10.2-2.2">6</dd>
          <dt pn="section-10.2-2.3">Description:</dt>
          <dd pn="section-10.2-2.4">IS-IS Exclude Minimum Bandwidth</dd>
          <dt pn="section-10.2-2.5">Reference:</dt>
          <dd pn="section-10.2-2.6">RFC 9843, <xref target="sec_isis_bw_exclusion" format="default" sectionFormat="of" derivedContent="Section 3.1.1"/></dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.2-3">
          <dt pn="section-10.2-3.1">Type:</dt>
          <dd pn="section-10.2-3.2">7</dd>
          <dt pn="section-10.2-3.3">Description:</dt>
          <dd pn="section-10.2-3.4">IS-IS Exclude Maximum Delay</dd>
          <dt pn="section-10.2-3.5">Reference:</dt>
          <dd pn="section-10.2-3.6">RFC 9843, <xref target="sec_isis_delay_exclusion" format="default" sectionFormat="of" derivedContent="Section 3.1.2"/></dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.2-4">
          <dt pn="section-10.2-4.1">Type:</dt>
          <dd pn="section-10.2-4.2">8</dd>
          <dt pn="section-10.2-4.3">Description:</dt>
          <dd pn="section-10.2-4.4">IS-IS Reference Bandwidth</dd>
          <dt pn="section-10.2-4.5">Reference:</dt>
          <dd pn="section-10.2-4.6">RFC 9843, <xref target="sec_isis_auto_ref_bw" format="default" sectionFormat="of" derivedContent="Section 4.1.3.1"/></dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.2-5">
          <dt pn="section-10.2-5.1">Type:</dt>
          <dd pn="section-10.2-5.2">9</dd>
          <dt pn="section-10.2-5.3">Description:</dt>
          <dd pn="section-10.2-5.4">IS-IS Bandwidth Threshold</dd>
          <dt pn="section-10.2-5.5">Reference:</dt>
          <dd pn="section-10.2-5.6">RFC 9843, <xref target="sec_isis_threshold_metric" format="default" sectionFormat="of" derivedContent="Section 4.1.3.2"/></dd>
        </dl>
      </section>
      <section anchor="ospf_fad" numbered="true" toc="include" removeInRFC="false" pn="section-10.3">
        <name slugifiedName="name-ospf-sub-tlvs-for-flexible-">OSPF Sub-TLVs for Flexible Algorithm Definition Sub-TLV</name>
        <t indent="0" pn="section-10.3-1">The "OSPF Flexible Algorithm Definition TLV Sub-TLVs"
	  registry is part of the "Open Shortest Path First (OSPF) Parameters" 
	  registry group.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.3-2">
          <dt pn="section-10.3-2.1">Type:</dt>
          <dd pn="section-10.3-2.2">6</dd>
          <dt pn="section-10.3-2.3">Description:</dt>
          <dd pn="section-10.3-2.4">OSPF Exclude Minimum Bandwidth</dd>
          <dt pn="section-10.3-2.5">Reference:</dt>
          <dd pn="section-10.3-2.6">RFC 9843, <xref target="sec_ospf_bw_exclusion" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/></dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.3-3">
          <dt pn="section-10.3-3.1">Type:</dt>
          <dd pn="section-10.3-3.2">7</dd>
          <dt pn="section-10.3-3.3">Description:</dt>
          <dd pn="section-10.3-3.4">OSPF Exclude Maximum Delay</dd>
          <dt pn="section-10.3-3.5">Reference:</dt>
          <dd pn="section-10.3-3.6">RFC 9843, <xref target="sec_ospf_delay_exclusion" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/></dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.3-4">
          <dt pn="section-10.3-4.1">Type:</dt>
          <dd pn="section-10.3-4.2">8</dd>
          <dt pn="section-10.3-4.3">Description:</dt>
          <dd pn="section-10.3-4.4">OSPF Reference Bandwidth</dd>
          <dt pn="section-10.3-4.5">Reference:</dt>
          <dd pn="section-10.3-4.6">RFC 9843, <xref target="sec_ospf_auto_ref_bw" format="default" sectionFormat="of" derivedContent="Section 4.1.4.1"/></dd>
        </dl>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.3-5">
          <dt pn="section-10.3-5.1">Type:</dt>
          <dd pn="section-10.3-5.2">9</dd>
          <dt pn="section-10.3-5.3">Description:</dt>
          <dd pn="section-10.3-5.4">OSPF Bandwidth Threshold</dd>
          <dt pn="section-10.3-5.5">Reference:</dt>
          <dd pn="section-10.3-5.6">RFC 9843, <xref target="sec_ospf_threshold_metric" format="default" sectionFormat="of" derivedContent="Section 4.1.4.2"/></dd>
        </dl>
      </section>
      <section anchor="isis_gen_metric" numbered="true" toc="include" removeInRFC="false" pn="section-10.4">
        <name slugifiedName="name-is-is-sub-tlvs-for-tlvs-adv">IS-IS Sub-TLVs for TLVs Advertising Neighbor Information</name>
        <t indent="0" pn="section-10.4-1">The "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information" registry
  is part of the "IS-IS TLV Codepoints" registry group.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.4-2">
          <dt pn="section-10.4-2.1">Type:</dt>
          <dd pn="section-10.4-2.2">17</dd>
          <dt pn="section-10.4-2.3">Description:</dt>
          <dd pn="section-10.4-2.4">Generic Metric</dd>
          <dt pn="section-10.4-2.5">TLVs set to "Y":</dt>
          <dd pn="section-10.4-2.6">22, 23, 25, 141, 222, and 223</dd>
          <dt pn="section-10.4-2.7">Reference:</dt>
          <dd pn="section-10.4-2.8">RFC 9843, <xref target="sec_isis_gen_metric" format="default" sectionFormat="of" derivedContent="Section 2.1"/></dd>
        </dl>
      </section>
      <section anchor="isis_gen_metric_te_app" numbered="true" toc="include" removeInRFC="false" pn="section-10.5">
        <name slugifiedName="name-sub-sub-tlv-codepoints-for-">Sub-Sub-TLV Codepoints for Application-Specific Link Attributes</name>
        <t indent="0" pn="section-10.5-1">The "IS-IS Sub-Sub-TLV Codepoints for Application-Specific Link Attributes" registry
  is part of the "IS-IS TLV Codepoints" registry group.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.5-2">
          <dt pn="section-10.5-2.1">Type:</dt>
          <dd pn="section-10.5-2.2">17</dd>
          <dt pn="section-10.5-2.3">Description:</dt>
          <dd pn="section-10.5-2.4">Generic Metric</dd>
          <dt pn="section-10.5-2.5">Reference:</dt>
          <dd pn="section-10.5-2.6">RFC 9843, <xref target="sec_isis_gen_metric" format="default" sectionFormat="of" derivedContent="Section 2.1"/></dd>
        </dl>
      </section>
      <section anchor="ospf_gen_metric" numbered="true" toc="include" removeInRFC="false" pn="section-10.6">
        <name slugifiedName="name-ospfv2-extended-link-tlv-su">OSPFv2 Extended Link TLV Sub-TLVs</name>
        <t indent="0" pn="section-10.6-1">The "OSPFv2 Extended Link TLV Sub-TLVs" registry
  is part of the "Open Shortest Path First v2 (OSPFv2) Parameters" registry group.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.6-2">
          <dt pn="section-10.6-2.1">Value:</dt>
          <dd pn="section-10.6-2.2">25</dd>
          <dt pn="section-10.6-2.3">Description:</dt>
          <dd pn="section-10.6-2.4">Generic Metric</dd>
          <dt pn="section-10.6-2.5">L2BM:</dt>
          <dd pn="section-10.6-2.6">Y</dd>
          <dt pn="section-10.6-2.7">Reference:</dt>
          <dd pn="section-10.6-2.8">RFC 9843, <xref target="sec_ospf_gen_metric" format="default" sectionFormat="of" derivedContent="Section 2.2"/></dd>
        </dl>
      </section>
      <section anchor="ospf_gen_metric_te_lsa" numbered="true" toc="include" removeInRFC="false" pn="section-10.7">
        <name slugifiedName="name-types-for-sub-tlvs-of-te-li">Types for Sub-TLVs of TE Link TLV (Value 2)</name>
        <t indent="0" pn="section-10.7-1">The "Types for sub-TLVs of TE Link TLV (Value 2)" registry
  is part of the "Open Shortest Path First (OSPF) Traffic Engineering TLVs" registry group.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.7-2">
          <dt pn="section-10.7-2.1">Value:</dt>
          <dd pn="section-10.7-2.2">36</dd>
          <dt pn="section-10.7-2.3">Description:</dt>
          <dd pn="section-10.7-2.4">Generic Metric</dd>
          <dt pn="section-10.7-2.5">Reference:</dt>
          <dd pn="section-10.7-2.6">RFC 9843, <xref target="sec_ospf_gen_metric" format="default" sectionFormat="of" derivedContent="Section 2.2"/></dd>
        </dl>
      </section>
      <section anchor="ospfv3_gen_metric_te_lsa" numbered="true" toc="include" removeInRFC="false" pn="section-10.8">
        <name slugifiedName="name-ospfv3-extended-lsa-sub-tlv">OSPFv3 Extended-LSA Sub-TLVs</name>
        <t indent="0" pn="section-10.8-1"> The "OSPFv3 Extended-LSA Sub-TLVs" registry
  is part of the "Open Shortest Path First v3 (OSPFv3) Parameters" registry group.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-10.8-2">
          <dt pn="section-10.8-2.1">Value:</dt>
          <dd pn="section-10.8-2.2">34</dd>
          <dt pn="section-10.8-2.3">Description:</dt>
          <dd pn="section-10.8-2.4">Generic Metric</dd>
          <dt pn="section-10.8-2.5">L2BM:</dt>
          <dd pn="section-10.8-2.6">Y</dd>
          <dt pn="section-10.8-2.7">Reference:</dt>
          <dd pn="section-10.8-2.8">RFC 9843, <xref target="sec_ospf_gen_metric" format="default" sectionFormat="of" derivedContent="Section 2.2"/></dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.bashandy-rtgwg-segment-routing-uloop" to="SR-LOOP-AVOID"/>
    <displayreference target="I-D.ietf-lsr-isis-yang-augmentation-v1" to="ISIS-AUGMENTATION"/>
    <displayreference target="I-D.ietf-lsr-ospf-yang-augmentation-v1" to="OSPF-AUGMENTATION"/>
    <references pn="section-11">
      <name slugifiedName="name-references">References</name>
      <references pn="section-11.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="IEEE754-2019" target="https://doi.org/10.1109/ieeestd.2019.8766229" quoteTitle="true" derivedAnchor="IEEE754-2019">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date day="22" month="July" year="2019"/>
          </front>
          <seriesInfo name="IEEE Std" value="754-2019"/>
          <seriesInfo name="DOI" value="10.1109/ieeestd.2019.8766229"/>
        </reference>
        <reference anchor="RFC1195" target="https://www.rfc-editor.org/info/rfc1195" quoteTitle="true" derivedAnchor="RFC1195">
          <front>
            <title>Use of OSI IS-IS for routing in TCP/IP and dual environments</title>
            <author fullname="R. Callon" initials="R." surname="Callon"/>
            <date month="December" year="1990"/>
            <abstract>
              <t indent="0">This memo specifies an integrated routing protocol, based on the OSI Intra-Domain IS-IS Routing Protocol, which may be used as an interior gateway protocol (IGP) to support TCP/IP as well as OSI. This allows a single routing protocol to be used to support pure IP environments, pure OSI environments, and dual environments. This specification was developed by the IS-IS working group of the Internet Engineering Task Force. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1195"/>
          <seriesInfo name="DOI" value="10.17487/RFC1195"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC2328" target="https://www.rfc-editor.org/info/rfc2328" 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="RFC3630" target="https://www.rfc-editor.org/info/rfc3630" 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 protocol 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="RFC5305" target="https://www.rfc-editor.org/info/rfc5305" 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 Intermediate System to Intermediate System (IS-IS) protocol to support Traffic Engineering (TE). This document extends the IS-IS protocol by specifying new information that 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="RFC5329" target="https://www.rfc-editor.org/info/rfc5329" quoteTitle="true" derivedAnchor="RFC5329">
          <front>
            <title>Traffic Engineering Extensions to OSPF Version 3</title>
            <author fullname="K. Ishiguro" initials="K." surname="Ishiguro"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="A. Davey" initials="A." surname="Davey"/>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <date month="September" year="2008"/>
            <abstract>
              <t indent="0">This document describes extensions to OSPFv3 to support intra-area Traffic Engineering (TE). This document extends OSPFv2 TE to handle IPv6 networks. A new TLV and several new sub-TLVs are defined to support IPv6 networks. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5329"/>
          <seriesInfo name="DOI" value="10.17487/RFC5329"/>
        </reference>
        <reference anchor="RFC5392" target="https://www.rfc-editor.org/info/rfc5392" quoteTitle="true" derivedAnchor="RFC5392">
          <front>
            <title>OSPF Extensions in Support of Inter-Autonomous System (AS) MPLS and GMPLS Traffic Engineering</title>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <author fullname="R. Zhang" initials="R." surname="Zhang"/>
            <author fullname="X. Duan" initials="X." surname="Duan"/>
            <date month="January" year="2009"/>
            <abstract>
              <t indent="0">This document describes extensions to the OSPF version 2 and 3 protocols to support Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering (TE) for multiple Autonomous Systems (ASes). OSPF-TE v2 and v3 extensions are defined for the flooding of TE information about inter-AS links that can be used to perform inter-AS TE path computation.</t>
              <t indent="0">No support for flooding information from within one AS to another AS is proposed or defined in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5392"/>
          <seriesInfo name="DOI" value="10.17487/RFC5392"/>
        </reference>
        <reference anchor="RFC7684" target="https://www.rfc-editor.org/info/rfc7684" 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 described 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 prefixes or links. Depending on the application, these prefixes and links may or may not be advertised in the fixed-format LSAs. The OSPFv2 Opaque LSAs are optional and fully backward compatible.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7684"/>
          <seriesInfo name="DOI" value="10.17487/RFC7684"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" 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 that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, 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, guidance 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. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes 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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <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 clarifying that only UPPERCASE usage of the key words have the defined special meanings.</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/rfc8362" 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 Vallem"/>
            <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 described in RFC 5340. Without LSA extension, attributes associated with OSPFv3 links and advertised IPv6 prefixes must be advertised in separate LSAs and correlated to the fixed-format LSAs. This document extends the LSA format by encoding the existing OSPFv3 LSA information in Type-Length-Value (TLV) tuples and allowing advertisement of additional information with additional TLVs. Backward-compatibility 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 encodings 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="RFC8668" target="https://www.rfc-editor.org/info/rfc8668" quoteTitle="true" derivedAnchor="RFC8668">
          <front>
            <title>Advertising Layer 2 Bundle Member Link Attributes in IS-IS</title>
            <author fullname="L. Ginsberg" initials="L." role="editor" surname="Ginsberg"/>
            <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="M. Nanduri" initials="M." surname="Nanduri"/>
            <author fullname="E. Aries" initials="E." surname="Aries"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">There are deployments where the Layer 3 interface on which IS-IS operates is a Layer 2 interface bundle. Existing IS-IS advertisements only support advertising link attributes of the Layer 3 interface. If entities external to IS-IS wish to control traffic flows on the individual physical links that comprise the Layer 2 interface bundle, link attribute information about the bundle members is required.</t>
              <t indent="0">This document introduces the ability for IS-IS to advertise the link attributes of Layer 2 (L2) Bundle Members.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8668"/>
          <seriesInfo name="DOI" value="10.17487/RFC8668"/>
        </reference>
        <reference anchor="RFC9350" target="https://www.rfc-editor.org/info/rfc9350" quoteTitle="true" derivedAnchor="RFC9350">
          <front>
            <title>IGP Flexible Algorithm</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="S. Hegde" initials="S." surname="Hegde"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." surname="Talaulikar"/>
            <author fullname="A. Gulko" initials="A." surname="Gulko"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">IGP protocols historically compute the best paths over the network based on the IGP metric assigned to the links. Many network deployments use RSVP-TE or Segment Routing - Traffic Engineering (SR-TE) to steer traffic over a path that is computed using different metrics or constraints than the shortest IGP path. This document specifies a solution that allows IGPs themselves to compute constraint-based paths over the network. This document also specifies a way of using Segment Routing (SR) Prefix-SIDs and SRv6 locators to steer packets along the constraint-based paths.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9350"/>
          <seriesInfo name="DOI" value="10.17487/RFC9350"/>
        </reference>
        <reference anchor="RFC9356" target="https://www.rfc-editor.org/info/rfc9356" quoteTitle="true" derivedAnchor="RFC9356">
          <front>
            <title>Advertising Layer 2 Bundle Member Link Attributes in OSPF</title>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <date month="January" year="2023"/>
            <abstract>
              <t indent="0">There are deployments where the Layer 3 (L3) interface on which OSPF operates is a Layer 2 (L2) interface bundle. Existing OSPF advertisements only support advertising link attributes of the L3 interface. If entities external to OSPF wish to control traffic flows on the individual physical links that comprise the L2 interface bundle, link attribute information for the bundle members is required.</t>
              <t indent="0">This document defines the protocol extensions for OSPF to advertise the link attributes of L2 bundle members. The document also specifies the advertisement of these OSPF extensions via the Border Gateway Protocol - Link State (BGP-LS) and thereby updates RFC 9085.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9356"/>
          <seriesInfo name="DOI" value="10.17487/RFC9356"/>
        </reference>
        <reference anchor="RFC9479" target="https://www.rfc-editor.org/info/rfc9479" quoteTitle="true" derivedAnchor="RFC9479">
          <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="2023"/>
            <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 Routing 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 application-specific values for a given attribute, nor do they support an indication of which applications are using the advertised value for a given link. This document introduces link attribute advertisements that address both of these shortcomings.</t>
              <t indent="0">This document obsoletes RFC 8919.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9479"/>
          <seriesInfo name="DOI" value="10.17487/RFC9479"/>
        </reference>
        <reference anchor="RFC9492" target="https://www.rfc-editor.org/info/rfc9492" quoteTitle="true" derivedAnchor="RFC9492">
          <front>
            <title>OSPF Application-Specific Link Attributes</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <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="2023"/>
            <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 such as Segment Routing (SR) Policy and Loop-Free Alternates (LFAs) 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 application-specific values for a given attribute, nor do they support indication of which applications are using the advertised value for a given link. This document introduces link attribute advertisements in OSPFv2 and OSPFv3 that address both of these shortcomings.</t>
              <t indent="0">This document obsoletes RFC 8920.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9492"/>
          <seriesInfo name="DOI" value="10.17487/RFC9492"/>
        </reference>
      </references>
      <references pn="section-11.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-lsr-isis-yang-augmentation-v1" target="https://datatracker.ietf.org/doc/html/draft-ietf-lsr-isis-yang-augmentation-v1-10" quoteTitle="true" derivedAnchor="ISIS-AUGMENTATION">
          <front>
            <title>IS-IS YANG Model Augmentations for Additional Features - Release 1</title>
            <author fullname="Acee Lindem" initials="A." surname="Lindem">
              <organization showOnFrontPage="true">LabN Consulting, L.L.C.</organization>
            </author>
            <author fullname="Yingzhen Qu" initials="Y." surname="Qu">
              <organization showOnFrontPage="true">Futurewei Technologies</organization>
            </author>
            <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <date day="6" month="July" year="2025"/>
            <abstract>
              <t indent="0">This document defines YANG data modules augmenting the IETF IS-IS YANG model to provide support for IS-IS Minimum Remaining Lifetime as defined in RFC 7987, and Signaling Maximum SID Depth Using IS-IS as defined in RFC 8491.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lsr-isis-yang-augmentation-v1-10"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-lsr-ospf-yang-augmentation-v1" target="https://datatracker.ietf.org/doc/html/draft-ietf-lsr-ospf-yang-augmentation-v1-17" quoteTitle="true" derivedAnchor="OSPF-AUGMENTATION">
          <front>
            <title>OSPF YANG Model Augmentations for Additional Features - Release 1</title>
            <author fullname="Acee Lindem" initials="A." surname="Lindem">
              <organization showOnFrontPage="true">LabN Consulting, LLC</organization>
            </author>
            <author fullname="Yingzhen Qu" initials="Y." surname="Qu">
              <organization showOnFrontPage="true">Futurewei Technologies</organization>
            </author>
            <date day="6" month="July" year="2025"/>
            <abstract>
              <t indent="0">This document defines YANG data modules that augment the IETF OSPF YANG model to support various OSPF extensions and features, including Traffic Engineering Extensions to OSPF Version 3 as defined in RFC 5329, OSPF Two-Part Metric as defined in RFC 8042, OSPF Graceful Link Shutdown as defined in RFC 8379, OSPF Link-Local Signaling (LLS) Extensions for Local Interface ID Advertisement as defined in RFC 8510, OSPF MSD as defined in RFC 8476, OSPF Application-Specific Link Attributes as defined in RFC 9492, and OSPF Flexible Algorithm as defined in RFC 9350.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lsr-ospf-yang-augmentation-v1-17"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC4655" target="https://www.rfc-editor.org/info/rfc4655" quoteTitle="true" derivedAnchor="RFC4655">
          <front>
            <title>A Path Computation Element (PCE)-Based Architecture</title>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="J.-P. Vasseur" initials="J.-P." surname="Vasseur"/>
            <author fullname="J. Ash" initials="J." surname="Ash"/>
            <date month="August" year="2006"/>
            <abstract>
              <t indent="0">Constraint-based path computation is a fundamental building block for traffic engineering systems such as Multiprotocol Label Switching (MPLS) and Generalized Multiprotocol Label Switching (GMPLS) networks. Path computation in large, multi-domain, multi-region, or multi-layer networks is complex and may require special computational components and cooperation between the different network domains.</t>
              <t indent="0">This document specifies the architecture for a Path Computation Element (PCE)-based model to address this problem space. This document does not attempt to provide a detailed description of all the architectural components, but rather it describes a set of building blocks for the PCE architecture from which solutions may be constructed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4655"/>
          <seriesInfo name="DOI" value="10.17487/RFC4655"/>
        </reference>
        <reference anchor="RFC5120" target="https://www.rfc-editor.org/info/rfc5120" quoteTitle="true" derivedAnchor="RFC5120">
          <front>
            <title>M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)</title>
            <author fullname="T. Przygienda" initials="T." surname="Przygienda"/>
            <author fullname="N. Shen" initials="N." surname="Shen"/>
            <author fullname="N. Sheth" initials="N." surname="Sheth"/>
            <date month="February" year="2008"/>
            <abstract>
              <t indent="0">This document describes an optional mechanism within Intermediate System to Intermediate Systems (IS-ISs) used today by many ISPs for IGP routing within their clouds. This document describes how to run, within a single IS-IS domain, a set of independent IP topologies that we call Multi-Topologies (MTs). This MT extension can be used for a variety of purposes, such as an in-band management network "on top" of the original IGP topology, maintaining separate IGP routing domains for isolated multicast or IPv6 islands within the backbone, or forcing a subset of an address space to follow a different topology. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5120"/>
          <seriesInfo name="DOI" value="10.17487/RFC5120"/>
        </reference>
        <reference anchor="RFC5311" target="https://www.rfc-editor.org/info/rfc5311" quoteTitle="true" derivedAnchor="RFC5311">
          <front>
            <title>Simplified Extension of Link State PDU (LSP) Space for IS-IS</title>
            <author fullname="D. McPherson" initials="D." role="editor" surname="McPherson"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="M. Shand" initials="M." surname="Shand"/>
            <date month="February" year="2009"/>
            <abstract>
              <t indent="0">This document describes a simplified method for extending the Link State PDU (LSP) space beyond the 256 LSP limit. This method is intended as a preferred replacement for the method defined in RFC 3786. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5311"/>
          <seriesInfo name="DOI" value="10.17487/RFC5311"/>
        </reference>
        <reference anchor="RFC5715" target="https://www.rfc-editor.org/info/rfc5715" quoteTitle="true" derivedAnchor="RFC5715">
          <front>
            <title>A Framework for Loop-Free Convergence</title>
            <author fullname="M. Shand" initials="M." surname="Shand"/>
            <author fullname="S. Bryant" initials="S." surname="Bryant"/>
            <date month="January" year="2010"/>
            <abstract>
              <t indent="0">A micro-loop is a packet forwarding loop that may occur transiently among two or more routers in a hop-by-hop packet forwarding paradigm.</t>
              <t indent="0">This framework provides a summary of the causes and consequences of micro-loops and enables the reader to form a judgement on whether micro-looping is an issue that needs to be addressed in specific networks. It also provides a survey of the currently proposed mechanisms that may be used to prevent or to suppress the formation of micro-loops when an IP or MPLS network undergoes topology change due to failure, repair, or management action. When sufficiently fast convergence is not available and the topology is susceptible to micro-loops, use of one or more of these mechanisms may be desirable. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5715"/>
          <seriesInfo name="DOI" value="10.17487/RFC5715"/>
        </reference>
        <reference anchor="RFC7471" target="https://www.rfc-editor.org/info/rfc7471" 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, financial information networks (e.g., stock market data providers), network performance information (e.g., link propagation delay) is becoming critical to data path selection.</t>
              <t indent="0">This document describes common extensions to RFC 3630 "Traffic Engineering (TE) Extensions to OSPF Version 2" and RFC 5329 "Traffic Engineering Extensions to OSPF Version 3" to enable network performance information to be distributed in a scalable fashion. The information distributed using OSPF 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 by which network performance information is distributed. The mechanisms for measuring 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="RFC8570" target="https://www.rfc-editor.org/info/rfc8570" 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="Previdi"/>
            <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, financial information networks (e.g., stock market data providers), network-performance criteria (e.g., latency) are becoming as critical to data-path selection as 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 information distributed using IS-IS 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 with which network-performance information is distributed. The mechanisms for measuring 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="RFC9346" target="https://www.rfc-editor.org/info/rfc9346" quoteTitle="true" derivedAnchor="RFC9346">
          <front>
            <title>IS-IS Extensions in Support of Inter-Autonomous System (AS) MPLS and GMPLS Traffic Engineering</title>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="D. Xiaodong" initials="D." surname="Xiaodong"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">This document describes extensions to the Intermediate System to Intermediate System (IS-IS) protocol to support Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering (TE) for multiple Autonomous Systems (ASes). It defines IS-IS extensions for the flooding of TE information about inter-AS links, which can be used to perform inter-AS TE path computation.</t>
              <t indent="0">No support for flooding information from within one AS to another AS is proposed or defined in this document.</t>
              <t indent="0">This document builds on RFC 5316 by adding support for IPv6-only operation.</t>
              <t indent="0">This document obsoletes RFC 5316.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9346"/>
          <seriesInfo name="DOI" value="10.17487/RFC9346"/>
        </reference>
        <reference anchor="I-D.bashandy-rtgwg-segment-routing-uloop" target="https://datatracker.ietf.org/doc/html/draft-bashandy-rtgwg-segment-routing-uloop-17" quoteTitle="true" derivedAnchor="SR-LOOP-AVOID">
          <front>
            <title>Loop avoidance using Segment Routing</title>
            <author fullname="Ahmed Bashandy" initials="A." surname="Bashandy">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="Bruno Decraene" initials="B." surname="Decraene">
              <organization showOnFrontPage="true">Orange</organization>
            </author>
            <author fullname="Pierre Francois" initials="P." surname="Francois">
              <organization showOnFrontPage="true">INSA Lyon</organization>
            </author>
            <author fullname="Peter Psenak" initials="P." surname="Psenak">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <date day="29" month="June" year="2024"/>
            <abstract>
              <t indent="0">This document presents a mechanism aimed at providing loop avoidance in the case of IGP network convergence event. The solution relies on the temporary use of SR policies ensuring loop-freeness over the post-convergence paths from the converging node to the destination.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bashandy-rtgwg-segment-routing-uloop-17"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="rules" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-updated-list-of-rules-for-p">Updated List of Rules for Pruning Links in Flex-Algorithm Topology</name>
      <t indent="0" pn="section-appendix.a-1">This section lists the entire set of rules to prune links from
        Flex-Algorithm topology during Flexible Algorithm calculation.  It
        includes the original rules defined in <xref target="RFC9350" sectionFormat="of" section="13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-13" derivedContent="RFC9350"/> as well as the new additions (rules 6 and 7) described in
        this document.</t>
      <t indent="0" pn="section-appendix.a-2">For all links in the topology:</t>
      <ol type="1" spacing="normal" indent="adaptive" start="1" pn="section-appendix.a-3">
          <li pn="section-appendix.a-3.1" derivedCounter="1.">Check if any exclude Administrative Group rule is part of the
          Flex-Algorithm Definition.  If such exclude rule exists, check if
          any color that is part of the exclude rule is also set on the link.
          If such a color is set, the link <bcp14>MUST</bcp14> be pruned from
          the computation.</li>
        <li pn="section-appendix.a-3.2" derivedCounter="2.">Check if any exclude SRLG rule is part of the Flex-Algorithm
          Definition.  If such exclude rule exists, check if the link is part
          of any SRLG that is also part of the SRLG exclude rule. If the link
          is part of such SRLG, the link <bcp14>MUST</bcp14> be pruned from
          the computation.</li>
        <li pn="section-appendix.a-3.3" derivedCounter="3.">Check if any include-any Administrative Group rule is part of
          the Flex-Algorithm Definition. If such include-any rule exists,
          check if any color that is part of the include-any rule is also set
          on the link.  If no such color is set, the link <bcp14>MUST</bcp14>
          be pruned from the computation.</li>
        <li pn="section-appendix.a-3.4" derivedCounter="4.">Check if any include-all Administrative Group rule is part of
          the Flex-Algorithm Definition. If such include-all rule exists,
          check if all colors that are part of the include-all rule are also
          set on the link.  If all such colors are not set on the link, the
          link <bcp14>MUST</bcp14> be pruned from the computation.</li>
        <li pn="section-appendix.a-3.5" derivedCounter="5.">If the Flex-Algorithm Definition uses something other than the
          IGP metric (<xref target="RFC9350" sectionFormat="of" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-5" derivedContent="RFC9350"/>),
          and such metric is not advertised for the particular link in a
          topology for which the computation is done, such link
          <bcp14>MUST</bcp14> be pruned from the computation. A metric of
          value 0 <bcp14>MUST NOT</bcp14> be assumed in such a case.</li>
        <li pn="section-appendix.a-3.6" derivedCounter="6.">Check if any exclude FAEMB rule is part of the Flex-Algorithm
          Definition.  If such exclude rule exists and the link has Maximum
          Link Bandwidth advertised, check if the link bandwidth satisfies the
          FAEMB rule. If the link does not satisfy the FAEMB rule, the link
          <bcp14>MUST</bcp14> be pruned from the Flex-Algorithm
          computation.</li>
        <li pn="section-appendix.a-3.7" derivedCounter="7.">Check if any exclude FAEMD rule is part of the Flex-Algorithm
          Definition.  If such exclude rule exists and the link has Min
          Unidirectional Link Delay advertised, check if the link delay
          satisfies the FAEMD rule. If the link does not satisfy the FAEMD
          rule, the link <bcp14>MUST</bcp14> be pruned from the Flex-Algorithm
          computation.</li>
      </ol>
    </section>
    <section anchor="ack" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.b-1">Many thanks to <contact fullname="Chris Bowers"/>, <contact fullname="Krzysztof Szarcowitz"/>, <contact fullname="Julian Lucek"/>,
      <contact fullname="Ram Santhanakrishnan"/>, <contact fullname="Ketan       Talaulikar"/>, and <contact fullname="Acee Lindem"/> for discussions and
      input.</t>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.c">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact fullname="Salih K.A.">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>salih@juniper.net</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="S." surname="Hegde" fullname="Shraddha Hegde">
        <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
        <address>
          <postal>
            <street>Exora Business Park</street>
            <city>Bangalore</city>
            <region>Karnataka</region>
            <code>560103</code>
            <country>India</country>
          </postal>
          <email>shraddha@juniper.net</email>
        </address>
      </author>
      <author initials="W." surname="Britto" fullname="William Britto">
        <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
        <address>
          <email>bwilliam@juniper.net</email>
        </address>
      </author>
      <author initials="R." surname="Shetty" fullname="Rajesh Shetty">
        <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
        <address>
          <email>mrajesh@juniper.net</email>
        </address>
      </author>
      <author initials="B." surname="Decraene" fullname="Bruno Decraene">
        <organization showOnFrontPage="true">Orange</organization>
        <address>
          <email>bruno.decraene@orange.com</email>
        </address>
      </author>
      <author initials="P." surname="Psenak" fullname="Peter Psenak">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <email>ppsenak@cisco.com</email>
        </address>
      </author>
      <author initials="T." surname="Li" fullname="Tony Li">
        <organization showOnFrontPage="true">Juniper Networks Inc.</organization>
        <address>
          <email>tony.li@tony.li</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
