<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="exp" docName="draft-ietf-lsr-dynamic-flooding-18" number="9667" updates="" obsoletes="" ipr="trust200902" consensus="true" submissionType="IETF" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" xml:lang="en" prepTime="2024-10-31T15:14:22" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lsr-dynamic-flooding-18" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9667" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Dynamic Flooding">Dynamic Flooding on Dense Graphs</title>
    <seriesInfo name="RFC" value="9667" stream="IETF"/>
    <author fullname="Tony Li" initials="T." role="editor" surname="Li">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>California</region>
          <code>94089</code>
          <country>United States of America</country>
        </postal>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <author fullname="Peter Psenak" initials="P." role="editor" surname="Psenak">
      <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Eurovea Centre, Central 3</street>
          <street>Pribinova Street 10</street>
          <city>Bratislava</city>
          <code>81109</code>
          <country>Slovakia</country>
        </postal>
        <email>ppsenak@cisco.com</email>
      </address>
    </author>
    <author fullname="Huaimo Chen" initials="H" surname="Chen">
      <organization showOnFrontPage="true">Futurewei</organization>
      <address>
        <postal>
          <city>Boston</city>
          <region>Massachusetts</region>
          <country>United States of America</country>
        </postal>
        <email>hchen.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Luay Jalil" initials="L." surname="Jalil">
      <organization showOnFrontPage="true">Verizon</organization>
      <address>
        <postal>
          <street/>
          <city>Richardson</city>
          <region>Texas</region>
          <code>75081</code>
          <country>United States of America</country>
        </postal>
        <email>luay.jalil@verizon.com</email>
      </address>
    </author>
    <author fullname="Srinath Dontula" initials="S." surname="Dontula">
      <organization showOnFrontPage="true">AT&amp;T</organization>
      <address>
        <postal>
          <street>200 S Laurel Ave</street>
          <city>Middletown</city>
          <region>New Jersey</region>
          <code>07748</code>
          <country>United States of America</country>
        </postal>
        <email>sd947e@att.com</email>
      </address>
    </author>
    <date month="10" year="2024"/>
    <area>RTG</area>
    <workgroup>lsr</workgroup>
    <keyword>datacenter</keyword>
    <keyword>IGP</keyword>
    <keyword>routing</keyword>
    <keyword>flooding</keyword>
    <keyword>dense</keyword>
    <keyword>graph</keyword>
    <keyword>topology</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">Routing with link-state protocols in dense network topologies can
      result in suboptimal convergence times due to the overhead associated
      with flooding. This can be addressed by decreasing the flooding topology
      so that it is less dense.</t>
      <t indent="0" pn="section-abstract-2">This document discusses the problem in some depth and an
      architectural solution. Specific protocol changes for IS-IS, OSPFv2, and
      OSPFv3 are described in this document.</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 document is not an Internet Standards Track specification; it is
            published for examination, experimental implementation, and
            evaluation.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document defines an Experimental Protocol for the Internet
            community.  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).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see 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/rfc9667" 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) 2024 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" keepWithNext="true" 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-problem-statement">Problem Statement</xref></t>
          </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-solution-requirements">Solution Requirements</xref></t>
          </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-dynamic-flooding">Dynamic Flooding</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-applicability">Applicability</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-leader-election">Leader Election</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-computing-the-flooding-topo">Computing the Flooding Topology</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-topologies-on-complete-bipa">Topologies on Complete Bipartite Graphs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.4.2">
                  <li pn="section-toc.1-1.4.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.1.1"><xref derivedContent="4.4.1" format="counter" sectionFormat="of" target="section-4.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-a-minimal-flooding-topology">A Minimal Flooding Topology</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.2.1"><xref derivedContent="4.4.2" format="counter" sectionFormat="of" target="section-4.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-xia-topologies">Xia Topologies</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.3.1"><xref derivedContent="4.4.3" format="counter" sectionFormat="of" target="section-4.4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-optimization">Optimization</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.5">
                <t indent="0" pn="section-toc.1-1.4.2.5.1"><xref derivedContent="4.5" format="counter" sectionFormat="of" target="section-4.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-encoding-the-flooding-topol">Encoding the Flooding Topology</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.6">
                <t indent="0" pn="section-toc.1-1.4.2.6.1"><xref derivedContent="4.6" format="counter" sectionFormat="of" target="section-4.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-advertising-the-local-edges">Advertising the Local Edges Enabled for Flooding</xref></t>
              </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-protocol-elements">Protocol Elements</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-tlvs">IS-IS TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.1.2">
                  <li pn="section-toc.1-1.5.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.5.2.1.2.1.1"><xref derivedContent="5.1.1" format="counter" sectionFormat="of" target="section-5.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-area-leader-sub-tlv">IS-IS Area Leader Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.5.2.1.2.2.1"><xref derivedContent="5.1.2" format="counter" sectionFormat="of" target="section-5.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-dynamic-flooding-sub-">IS-IS Dynamic Flooding Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.3">
                    <t indent="0" pn="section-toc.1-1.5.2.1.2.3.1"><xref derivedContent="5.1.3" format="counter" sectionFormat="of" target="section-5.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-area-node-ids-tlv">IS-IS Area Node IDs TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.4">
                    <t indent="0" pn="section-toc.1-1.5.2.1.2.4.1"><xref derivedContent="5.1.4" format="counter" sectionFormat="of" target="section-5.1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-flooding-path-tlv">IS-IS Flooding Path TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.5">
                    <t indent="0" pn="section-toc.1-1.5.2.1.2.5.1"><xref derivedContent="5.1.5" format="counter" sectionFormat="of" target="section-5.1.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-flooding-request-tlv">IS-IS Flooding Request TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.1.2.6">
                    <t indent="0" pn="section-toc.1-1.5.2.1.2.6.1"><xref derivedContent="5.1.6" format="counter" sectionFormat="of" target="section-5.1.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is-leef-advertisement">IS-IS LEEF Advertisement</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-lsas-and-tlvs">OSPF LSAs and TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.2.2">
                  <li pn="section-toc.1-1.5.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.1.1"><xref derivedContent="5.2.1" format="counter" sectionFormat="of" target="section-5.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-area-leader-sub-tlv">OSPF Area Leader Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.2.1"><xref derivedContent="5.2.2" format="counter" sectionFormat="of" target="section-5.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-dynamic-flooding-sub-t">OSPF Dynamic Flooding Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.3.1"><xref derivedContent="5.2.3" format="counter" sectionFormat="of" target="section-5.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv2-dynamic-flooding-opa">OSPFv2 Dynamic Flooding Opaque LSA</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.4">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.4.1"><xref derivedContent="5.2.4" format="counter" sectionFormat="of" target="section-5.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv3-dynamic-flooding-lsa">OSPFv3 Dynamic Flooding LSA</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.5">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.5.1"><xref derivedContent="5.2.5" format="counter" sectionFormat="of" target="section-5.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-area-router-id-tlvs">OSPF Area Router ID TLVs</xref></t>
                    <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.2.2.5.2">
                      <li pn="section-toc.1-1.5.2.2.2.5.2.1">
                        <t indent="0" pn="section-toc.1-1.5.2.2.2.5.2.1.1"><xref derivedContent="5.2.5.1" format="counter" sectionFormat="of" target="section-5.2.5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv2-area-router-id-tlv">OSPFv2 Area Router ID TLV</xref></t>
                      </li>
                      <li pn="section-toc.1-1.5.2.2.2.5.2.2">
                        <t indent="0" pn="section-toc.1-1.5.2.2.2.5.2.2.1"><xref derivedContent="5.2.5.2" format="counter" sectionFormat="of" target="section-5.2.5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospfv3-area-router-id-tlv">OSPFv3 Area Router ID TLV</xref></t>
                      </li>
                    </ul>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.6">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.6.1"><xref derivedContent="5.2.6" format="counter" sectionFormat="of" target="section-5.2.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-flooding-path-tlv">OSPF Flooding Path TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.7">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.7.1"><xref derivedContent="5.2.7" format="counter" sectionFormat="of" target="section-5.2.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-flooding-request-bit">OSPF Flooding Request Bit</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.8">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.8.1"><xref derivedContent="5.2.8" format="counter" sectionFormat="of" target="section-5.2.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-leef-advertisement">OSPF LEEF Advertisement</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </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-behavioral-specification">Behavioral Specification</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flooding-topology">Flooding Topology</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-leader-election-2">Leader Election</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.4">
                <t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-area-leader-responsibilitie">Area Leader Responsibilities</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.5">
                <t indent="0" pn="section-toc.1-1.6.2.5.1"><xref derivedContent="6.5" format="counter" sectionFormat="of" target="section-6.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-distributed-flooding-topolo">Distributed Flooding Topology Calculation</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.6">
                <t indent="0" pn="section-toc.1-1.6.2.6.1"><xref derivedContent="6.6" format="counter" sectionFormat="of" target="section-6.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-use-of-lans-in-the-flooding">Use of LANs in the Flooding Topology</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.6.2">
                  <li pn="section-toc.1-1.6.2.6.2.1">
                    <t indent="0" pn="section-toc.1-1.6.2.6.2.1.1"><xref derivedContent="6.6.1" format="counter" sectionFormat="of" target="section-6.6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-use-of-lans-in-centralized-">Use of LANs in Centralized Mode</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.6.2.2">
                    <t indent="0" pn="section-toc.1-1.6.2.6.2.2.1"><xref derivedContent="6.6.2" format="counter" sectionFormat="of" target="section-6.6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-use-of-lans-in-distributed-">Use of LANs in Distributed Mode</xref></t>
                    <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.6.2.2.2">
                      <li pn="section-toc.1-1.6.2.6.2.2.2.1">
                        <t indent="0" pn="section-toc.1-1.6.2.6.2.2.2.1.1"><xref derivedContent="6.6.2.1" format="counter" sectionFormat="of" target="section-6.6.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-partial-flooding-on-a-lan-i">Partial Flooding on a LAN in IS-IS</xref></t>
                      </li>
                      <li pn="section-toc.1-1.6.2.6.2.2.2.2">
                        <t indent="0" pn="section-toc.1-1.6.2.6.2.2.2.2.1"><xref derivedContent="6.6.2.2" format="counter" sectionFormat="of" target="section-6.6.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-partial-flooding-on-a-lan-in">Partial Flooding on a LAN in OSPF</xref></t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.6.2.7">
                <t indent="0" pn="section-toc.1-1.6.2.7.1"><xref derivedContent="6.7" format="counter" sectionFormat="of" target="section-6.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flooding-behavior">Flooding Behavior</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.8">
                <t indent="0" pn="section-toc.1-1.6.2.8.1"><xref derivedContent="6.8" format="counter" sectionFormat="of" target="section-6.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-treatment-of-topology-event">Treatment of Topology Events</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.8.2">
                  <li pn="section-toc.1-1.6.2.8.2.1">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.1.1"><xref derivedContent="6.8.1" format="counter" sectionFormat="of" target="section-6.8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-temporary-addition-of-links">Temporary Addition of Links to the Flooding Topology</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.2">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.2.1"><xref derivedContent="6.8.2" format="counter" sectionFormat="of" target="section-6.8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-local-link-addition">Local Link Addition</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.3">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.3.1"><xref derivedContent="6.8.3" format="counter" sectionFormat="of" target="section-6.8.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-node-addition">Node Addition</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.4">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.4.1"><xref derivedContent="6.8.4" format="counter" sectionFormat="of" target="section-6.8.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-failures-of-links-not-on-th">Failures of Links Not on the Flooding Topology</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.5">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.5.1"><xref derivedContent="6.8.5" format="counter" sectionFormat="of" target="section-6.8.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-failures-of-links-on-the-fl">Failures of Links On the Flooding Topology</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.6">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.6.1"><xref derivedContent="6.8.6" format="counter" sectionFormat="of" target="section-6.8.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-node-deletion">Node Deletion</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.7">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.7.1"><xref derivedContent="6.8.7" format="counter" sectionFormat="of" target="section-6.8.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-local-link-addition-to-the-">Local Link Addition to the Flooding Topology</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.8">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.8.1"><xref derivedContent="6.8.8" format="counter" sectionFormat="of" target="section-6.8.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-local-link-deletion-from-th">Local Link Deletion from the Flooding Topology</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.9">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.9.1"><xref derivedContent="6.8.9" format="counter" sectionFormat="of" target="section-6.8.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-treatment-of-disconnected-a">Treatment of Disconnected Adjacent Nodes</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.10">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.10.1"><xref derivedContent="6.8.10" format="counter" sectionFormat="of" target="section-6.8.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-failure-of-the-area-leader">Failure of the Area Leader</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.11">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.11.1"><xref derivedContent="6.8.11" format="counter" sectionFormat="of" target="section-6.8.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-recovery-from-multiple-fail">Recovery from Multiple Failures</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.8.2.12">
                    <t indent="0" pn="section-toc.1-1.6.2.8.2.12.1"><xref derivedContent="6.8.12" format="counter" sectionFormat="of" target="section-6.8.12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-rate-limiting-temporary-flo">Rate-Limiting Temporary Flooding</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </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-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-is-is">IS-IS</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf">OSPF</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.2.2">
                  <li pn="section-toc.1-1.7.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.7.2.2.2.1.1"><xref derivedContent="7.2.1" format="counter" sectionFormat="of" target="section-7.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-dynamic-flooding-lsa-t">OSPF Dynamic Flooding LSA TLVs Registry</xref></t>
                  </li>
                  <li pn="section-toc.1-1.7.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.7.2.2.2.2.1"><xref derivedContent="7.2.2" format="counter" sectionFormat="of" target="section-7.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-link-attributes-sub-tl">OSPF Link Attributes Sub-TLV Bit Values Registry</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.7.2.3">
                <t indent="0" pn="section-toc.1-1.7.2.3.1"><xref derivedContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-igp">IGP</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" 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-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="Intro" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">In recent years, there has been increased focus on how to address the
      dynamic routing of networks that have a bipartite (also known as spine-leaf or
      leaf-spine), Clos <xref target="Clos" format="default" sectionFormat="of" derivedContent="Clos"/>, or Fat-tree <xref target="Leiserson" format="default" sectionFormat="of" derivedContent="Leiserson"/> topology. Conventional Interior
      Gateway Protocols (IGPs; i.e., IS-IS <xref target="ISO10589" format="default" sectionFormat="of" derivedContent="ISO10589"/>, OSPFv2
      <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/>, and OSPFv3 <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/>) underperform, redundantly flooding
      information throughout the dense topology. This leads to overloaded control
      plane inputs and thereby create operational issues. For practical
      considerations, network architects have resorted to applying
      unconventional techniques to address the problem, e.g., applying BGP in the data center <xref target="RFC7938" format="default" sectionFormat="of" derivedContent="RFC7938"/>. 
      However, some network architects feel that using an Exterior Gateway
      Protocol (EGP) as an IGP is suboptimal, perhaps only because of
      the configuration overhead.</t>
      <t indent="0" pn="section-1-2">The primary issue that is demonstrated when conventional IGPs
      are applied is the poor reaction of the network to topology changes.
      Normal link-state routing protocols rely on a flooding algorithm for
      state distribution within an area. In a dense topology, this flooding
      algorithm is highly redundant and results in unnecessary overhead. 
Each
      node in the topology receives each link state update multiple times.
      Ultimately, all of the redundant copies will be discarded, but only
      after they have reached the control plane and have been processed. This
      creates issues because significant Link State Database (LSDB) updates can
      become queued behind many redundant copies of another update. This
      delays convergence as the LSDB does not stabilize
      promptly.</t>
      <t indent="0" pn="section-1-3">In a real-world implementation, the packet queues leading to
      the control plane are necessarily of finite size, so if the
      flooding rate exceeds the update processing rate for long
      enough, then the control plane will be obligated to drop
      incoming updates. If these lost updates are of significance,
      this will further delay the stabilization of the LSDB
      and the convergence of the network.</t>
      <t indent="0" pn="section-1-4">This is not a new problem. Historically, when routing protocols have
      been deployed in networks where the underlying topology is a complete
      graph, there have been similar issues. This was more common when the
      underlying link-layer fabric presented the network layer with a full
      mesh of virtual connections. This was addressed by reducing the flooding
      topology through IS-IS Mesh Groups <xref target="RFC2973" format="default" sectionFormat="of" derivedContent="RFC2973"/>, but
      this approach requires careful configuration of the flooding
      topology.</t>
      <t indent="0" pn="section-1-5">Thus, the root problem is not limited to massively scalable data
      centers. It exists with any dense topology at scale.</t>
      <t indent="0" pn="section-1-6">Link-state routing protocols were conceived when links were
      very expensive and topologies were sparse. The fact that those
      same designs are suboptimal in a dense topology should not come
      as a huge surprise. Technology has progressed to the point where
      links are cheap and common. This represents a complete reversal
      in the economic fundamentals of network engineering. The
      original designs are to be commended for continuing to provide
      correct operation to this point and optimizations for operation
      in today's environment are to be expected.</t>
      <section numbered="true" removeInRFC="false" toc="include" 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>
        <t indent="0" pn="section-1.1-2">These words may also appear in this document in
        lower case as plain English words without their normative meanings.</t>
      </section>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-problem-statement">Problem Statement</name>
      <t indent="0" pn="section-2-1">In a dense topology, the flooding algorithm that is the heart of
      conventional link-state routing protocols causes a great deal of
      redundant messaging. This is exacerbated by scale. While the protocol
      can survive this combination, the redundant messaging is unnecessary
      overhead and delays convergence. Thus, the problem is how to provide routing
      in dense, scalable topologies with rapid convergence.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-solution-requirements">Solution Requirements</name>
      <t indent="0" pn="section-3-1">A solution to this problem must meet the following requirements:
      </t>
      <ol spacing="normal" type="Requirement %d:" indent="adaptive" start="1" pn="section-3-2"><li pn="section-3-2.1" derivedCounter="Requirement 1:">
          <t indent="0" pn="section-3-2.1.1">Provide a dynamic routing solution. Reachability must be restored
          after any topology change.</t>
        </li>
        <li pn="section-3-2.2" derivedCounter="Requirement 2:">
          <t indent="0" pn="section-3-2.2.1">Provide a significant improvement in convergence.</t>
        </li>
        <li pn="section-3-2.3" derivedCounter="Requirement 3:">
          <t indent="0" pn="section-3-2.3.1">
            The solution should address a variety of dense
            topologies. Just addressing a complete bipartite topology
            such as K5,8 is insufficient (see <xref target="Bondy" format="default" sectionFormat="of" derivedContent="Bondy"/>). 
            Multi-stage Clos topologies must also be addressed, as
            well as topologies that are slight variants. Addressing
            complete graphs is a good demonstration of generality.
          </t>
        </li>
        <li pn="section-3-2.4" derivedCounter="Requirement 4:">
          <t indent="0" pn="section-3-2.4.1">There must be no single point of failure. The loss of any link or
          node should not unduly hinder convergence.</t>
        </li>
        <li pn="section-3-2.5" derivedCounter="Requirement 5:">
          <t indent="0" pn="section-3-2.5.1">
	    The workload for flooding should be evenly
	    distributed. A hot spot, where one node has an
	    extreme workload, would be a performance limitation and a
	    vulnerability for resiliency.
          </t>
        </li>
        <li pn="section-3-2.6" derivedCounter="Requirement 6:">
          <t indent="0" pn="section-3-2.6.1">Dense topologies are subgraphs of much larger topologies.
          Operational efficiency requires that the dense subgraph not
          operate in a radically different manner than the remainder
          of the topology.  While some operational differences are
          permissible, they should be minimized. Any change to any
          node outside of the dense subgraph is not acceptable. These
          situations occur when massively scaled data centers are part
          of an overall larger wide-area network. Having a second
          protocol operating just on this subgraph would add much more
          complexity at the edge of the subgraph where the two
          protocols would have to interoperate.</t>
        </li>
      </ol>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-dynamic-flooding">Dynamic Flooding</name>
      <t indent="0" pn="section-4-1">The combination of a dense topology and flooding on the
      physical topology is suboptimal for network scaling.  However,
      if the flooding topology is decoupled from the physical topology
      and restricted to a greatly reduced portion of that topology,
      the result can be efficient flooding and the resilience
      of existing protocols. A node that supports flooding on the
      decoupled flooding topology is said to support dynamic
      flooding.</t>
      <t indent="0" pn="section-4-2">With dynamic flooding, the flooding topology is computed
      within an IGP area with the dense topology either centrally on
      an elected node, termed the Area Leader, or in a distributed
      manner on all nodes that are supporting dynamic flooding. If the
      flooding topology is computed centrally, it is encoded into and
      distributed as part of the normal LSDB.  This is
      the centralized mode of operation. If the flooding topology is
      computed in a distributed fashion, this is the distributed
      mode of operation. Nodes within such an IGP area would only
      flood on the flooding topology. On links outside of the flooding
      topology, normal database synchronization mechanisms, i.e., OSPF
      database exchange and IS-IS Complete Sequence Number PDUs (CSNPs), would apply, but flooding may not. 
      The detailed behavior of the nodes participating in IGP is
      described in <xref target="BEHAVIOR" format="default" sectionFormat="of" derivedContent="Section 6"/>. New link-state
      information that arrives from outside of the flooding topology
      suggests that the sender has no flooding topology information or
      that it is operating on old information about the flooding
      topology. In these cases, the new link-state information should
      be flooded on the flooding topology as well.</t>
      <t indent="0" pn="section-4-3">The flooding topology covers the full set of nodes within the area,
      but excludes some of the links that standard flooding would employ.</t>
      <t indent="0" pn="section-4-4">
        Since the flooding topology is computed before topology changes, the
        effort required to compute it does not factor into the convergence
        time and can be done when the topology is stable.  In the case of
        centralized mode, the speed of the computation and its distribution is
        not a significant issue.
      </t>
      <t indent="0" pn="section-4-5">
	Graph theory defines the "degree" of a node to be the number
	of edges that are attached to the node. To keep the
	flooding workload scalable and distributed, there should be no
	nodes in the flooding topology that have a much higher degree
	than other nodes.
      </t>
      <t indent="0" pn="section-4-6">If a node does not have any flooding topology information
      when it receives new link-state information, it should flood
      according to standard flooding rules. This situation will occur
      when the dense topology is first established but is unlikely to
      recur.</t>
      <t indent="0" pn="section-4-7">
	Link-state protocols are intentionally designed to be
	asynchronous with nodes acting independently. During the
	flooding process, different nodes will have different
	information, resulting in transient conditions that can
	temporarily produce suboptimal forwarding. These periods of
	transient conditions are known as "transients."
      </t>
      <t indent="0" pn="section-4-8">When centralized mode is used and if there are
      multiple flooding topologies being advertised during a transient, then nodes should flood
      link-state updates on all of the flooding topologies. Each node should
      locally evaluate the election of the Area Leader for the IGP area and
      first flood on its flooding topology. The rationale behind this is
      straightforward: if there is a transient and there has been a recent
      change in Area Leader, then propagating topology information promptly
      along the most likely flooding topology should be the priority.</t>
      <t indent="0" pn="section-4-9">During transients, loops may form in the flooding
      topology. This is not problematic, as the standard flooding
      rules would cause duplicate updates to be ignored. Similarly,
      during transients, the flooding topology may become
      disconnected. <xref target="PARTITIONED_FT" format="default" sectionFormat="of" derivedContent="Section 6.8.11"/> discusses how such
      conditions are handled.</t>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-applicability">Applicability</name>
        <t indent="0" pn="section-4.1-1">In a complete graph, this approach is appealing because it
        drastically decreases the flooding topology without the manual
        configuration of mesh groups. By controlling the diameter of the
        flooding topology, as well as the maximum node degree in the flooding
        topology, convergence time goals can be met, and the stability of the
        control plane can be assured.</t>
        <t indent="0" pn="section-4.1-2">Similarly, in a massively scaled data center (where there are many
        opportunities for redundant flooding), this mechanism guarantees that
        flooding is redundant, with each leaf and spine well connected, while
        ensuring that no update takes too many hops and that no node
        shares an undue portion of the flooding effort.</t>
        <t indent="0" pn="section-4.1-3">In a network where only a portion of the nodes support dynamic
        flooding, the remaining nodes will continue to perform standard
        flooding. This is not an issue for correctness, as no node can become
        isolated.</t>
        <t indent="0" pn="section-4.1-4">
          Flooding that is initiated by nodes that support dynamic
          flooding will remain within the flooding topology until it
          reaches a legacy node, where standard flooding is
          resumed. Standard flooding will be bounded by nodes
          supporting dynamic flooding, which can help limit the
          propagation of unnecessary flooding. Whether or not the
          network can remain stable in this condition is very
          dependent on the number and location of the nodes that
          support dynamic flooding.
        </t>
        <t indent="0" pn="section-4.1-5">During incremental deployment of dynamic flooding, an area will
        consist of one or more sets of connected nodes that support dynamic
        flooding and one or more sets of connected nodes that do not, i.e.,
        nodes that support standard flooding. The flooding topology is the
        union of these sets of nodes. Each set of nodes that does not support
        dynamic flooding needs to be part of the flooding topology and such a
        set of nodes may provide connectivity between two or more sets of
        nodes that support dynamic flooding.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-leader-election">Leader Election</name>
        <t indent="0" pn="section-4.2-1">A single node within the dense topology is elected as an Area
        Leader.</t>
        <t indent="0" pn="section-4.2-2">A generalization of the mechanisms used in existing
        Designated Router (OSPF) or Designated Intermediate-System
        (IS-IS) elections is used for leader election. The elected
        node is known as the Area Leader.</t>
        <t indent="0" pn="section-4.2-3">In the case of centralized mode, the Area Leader is responsible for
        computing and distributing the flooding topology. When a new Area
        Leader is elected and has distributed new flooding topology
        information, then any prior Area Leaders should withdraw any of their
        flooding topology information from their LSDB
        entries.</t>
        <t indent="0" pn="section-4.2-4">In the case of distributed mode, the distributed algorithm
        advertised by the Area Leader <bcp14>MUST</bcp14> be used by all nodes that
        participate in dynamic flooding.</t>
        <t indent="0" pn="section-4.2-5">Not every node needs to be a candidate to be the Area
        Leader within an area, as a single candidate is sufficient for
        correct operation. However, for redundancy, it is strongly
        <bcp14>RECOMMENDED</bcp14> that there be multiple candidates.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.3">
        <name slugifiedName="name-computing-the-flooding-topo">Computing the Flooding Topology</name>
        <t indent="0" pn="section-4.3-1">There is a great deal of flexibility in how the flooding
        topology may be computed. For resilience, it needs to at least
        contain a cycle of all nodes in the dense subgraph. However,
        additional links could be added to decrease the convergence
        time. The trade-off between the density of the flooding
        topology and the convergence time is a matter for further
        study. The exact algorithm for computing the flooding topology
        in the case of the centralized computation need not be
        standardized, as it is not an interoperability issue. Only the
        encoding of the resultant topology needs to be documented. In
        the case of distributed mode, all nodes in the IGP area need
        to use the same algorithm to compute the flooding topology. It
        is possible to use private algorithms to compute flooding
        topology, so long as all nodes in the IGP area use the same
        algorithm.</t>
        <t indent="0" pn="section-4.3-2">While the flooding topology should be a covering cycle, it need not
        be a Hamiltonian cycle where each node appears only once. In fact, in
        many relevant topologies, this will not be possible (e.g., K5,8). 
This is
        fortunate, as computing a Hamiltonian cycle is known to be
        NP-complete.</t>
        <t indent="0" pn="section-4.3-3">A simple algorithm to compute the topology for a complete bipartite
        graph is to simply select unvisited nodes on each side of the graph
        until both sides are completely visited. If the numbers of nodes on
        each side of the graph are unequal, then revisiting nodes on the less
        populated side of the graph will be inevitable. This algorithm can run
        in O(N) time, so it is quite efficient.</t>
        <t indent="0" pn="section-4.3-4">While a simple cycle is adequate for correctness and resiliency, it
        may not be optimal for convergence. At scale, a cycle may have a
        diameter that is half the number of nodes in the graph. This could
        cause an undue delay in link-state update propagation. Therefore, it
        may be useful to have a bound on the diameter of the flooding
        topology. Introducing more links into the flooding topology would
        reduce the diameter but at the trade-off of possibly adding redundant
        messaging. The optimal trade-off between convergence time and graph
        diameter is for further study.</t>
        <t indent="0" pn="section-4.3-5">Similarly, if additional redundancy is added to the flooding
        topology, specific nodes in that topology may end up with a very high
        degree. This could result in overloading the control plane of those
        nodes, resulting in poor convergence. Thus, it may be
        preferable to have
        an upper bound on the degree of nodes in the flooding topology. Again,
        the optimal trade-off between graph diameter, node degree,
        convergence time, and topology computation time is for further
        study.</t>
        <t indent="0" pn="section-4.3-6">If the leader chooses to include a multi-access broadcast
        LAN segment as part of the flooding topology, all of the
        adjacencies in that LAN segment should be included as
        well. Once updates are flooded on the LAN, they will be
        received by every attached node.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.4">
        <name slugifiedName="name-topologies-on-complete-bipa">Topologies on Complete Bipartite Graphs</name>
        <t indent="0" pn="section-4.4-1">Complete bipartite graph topologies have become popular for data
        center applications and are commonly called leaf-spine or spine-leaf
        topologies. This section discusses some flooding topologies that
        are of particular interest in these networks.</t>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.4.1">
          <name slugifiedName="name-a-minimal-flooding-topology">A Minimal Flooding Topology</name>
          <t indent="0" pn="section-4.4.1-1">A minimal flooding topology on a complete bipartite
          graph is one in which the topology is connected and each node has at
          least degree two. This is of interest because it guarantees that the
          flooding topology has no single point of failure.</t>
          <t indent="0" pn="section-4.4.1-2">In practice, this implies that every leaf node in the flooding
          topology will have a degree of two. As there are usually more leaves
          than spines, the degree of the spines will be higher, but the load
          on the individual spines can be evenly distributed.</t>
          <t indent="0" pn="section-4.4.1-3">This type of flooding topology is also of interest
          because it scales well. As the number of leaves increases,
          it is possible to construct flooding topologies that perform
          well. Specifically, for N spines and M leaves, if M &gt;=
          N(N/2-1), then there is a flooding topology that has a
          diameter of 4.</t>
        </section>
        <section anchor="Xia" numbered="true" removeInRFC="false" toc="include" pn="section-4.4.2">
          <name slugifiedName="name-xia-topologies">Xia Topologies</name>
          <t indent="0" pn="section-4.4.2-1">A Xia topology on a complete bipartite graph is one in
          which all spine nodes are biconnected through leaves with degree
          two, but the remaining leaves all have degree one and are evenly
          distributed across the spines.</t>
          <t indent="0" pn="section-4.4.2-2">Constructively, one can create a Xia topology by iterating through
          the spines. Each spine can be connected to the next spine by
          selecting any unused leaf. Since leaves are connected to all spines,
          all leaves will have a connection to both the first and second spine
          and one can therefore choose any leaf without loss of generality.
          Continuing this iteration across all of the spines, selecting a new
          leaf at each iteration will result in a path that connects all
          spines. Adding one more leaf between the last and first spine will
          produce a cycle of N spines and N leaves.</t>
          <t indent="0" pn="section-4.4.2-3">At this point, M-N leaves remain unconnected. These can be
          distributed evenly across the remaining spines and connected by a
          single link.</t>
          <t indent="0" pn="section-4.4.2-4">Xia topologies represent a compromise that trades off increased
          risk and decreased performance for lower flooding amplification. Xia
          topologies will have a larger diameter. For M spines, the diameter
          will be M + 2.</t>
          <t indent="0" pn="section-4.4.2-5">In a Xia topology, some leaves are singly connected. This
          represents a risk in that convergence may be delayed in some failures. However, there may be some alternate behaviors that can be
          employed to mitigate these risks. If a leaf node sees that its
          single link on the flooding topology has failed, it can compensate
          by performing a database synchronization check with a different
          spine. Similarly, if a leaf determines that its connected spine on
          the flooding topology has failed, it can compensate by performing a
          database synchronization check with a different spine. In both of
          these cases, the synchronization check is intended to ameliorate any
          delays in link-state propagation due to the fragmentation of the
          flooding topology.</t>
          <t indent="0" pn="section-4.4.2-6">The benefit of this topology is that flooding load is easily
          understood. Each node in the spine cycle will never receive an
          update more than twice. For M leaves and N spines, a spine never
          transmits more than (M/N +1) updates.</t>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.4.3">
          <name slugifiedName="name-optimization">Optimization</name>
          <t indent="0" pn="section-4.4.3-1">If two nodes are adjacent in the flooding topology and
          there is a set of parallel links between them, then any
          given update <bcp14>MUST</bcp14> be flooded over only one of those
          links. The selection of the specific link is
          implementation-specific.</t>
        </section>
      </section>
      <section anchor="ENCODING_THE_FLOODING_TOPOLOGY" numbered="true" removeInRFC="false" toc="include" pn="section-4.5">
        <name slugifiedName="name-encoding-the-flooding-topol">Encoding the Flooding Topology</name>
        <t indent="0" pn="section-4.5-1">There are a variety of ways that the flooding topology could be
        encoded efficiently. If the topology was only a cycle, a simple list
        of the nodes in the topology would suffice. However, this is
        insufficiently flexible, as it would require a slightly different
        encoding scheme as soon as a single additional link is added. Instead,
        this document chooses to encode the flooding topology as a set of intersecting
        paths, where each path is a set of connected links.</t>
        <t indent="0" pn="section-4.5-2">Advertisement of the flooding topology includes support for
        multi-access broadcast LANs. When a LAN is included in the
        flooding topology, all edges between the LAN and nodes
        connected to the LAN are assumed to be part of the flooding
        topology. To reduce the size of the flooding topology
        advertisement, explicit advertisement of these edges is
        optional. Note that this may result in the possibility of
        "hidden nodes" or "stealth nodes", which are part of the
        flooding topology but are not explicitly mentioned in the
        flooding topology advertisements. These hidden nodes can be
        found by examination of the LSDB where
        connectivity between a LAN and nodes connected to the LAN is
        fully specified.</t>
        <t indent="0" pn="section-4.5-3">Note that while all nodes <bcp14>MUST</bcp14> be part of the advertised flooding
        topology, not all multi-access LANs need to be included. Only those
        LANs that are part of the flooding topology need to be included in
        the advertised flooding topology.</t>
        <t indent="0" pn="section-4.5-4">Other encodings are certainly possible. This document has
        attempted to make a useful trade-off between simplicity,
        generality, and space.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.6">
        <name slugifiedName="name-advertising-the-local-edges">Advertising the Local Edges Enabled for Flooding</name>
        <t indent="0" pn="section-4.6-1">Correct operation of the flooding topology requires that all nodes
        that participate in the flooding topology choose local links for
        flooding that are part of the calculated flooding topology.
        Failure to do so could result in an unexpected partition of the flooding
        topology and/or suboptimal flooding reduction. 
        As an aid to diagnosing problems when dynamic flooding is in use, this
        document defines a means of advertising the Local Edges Enabled for 
        Flooding (LEEF). The protocol-specific encodings are defined in Sections <xref target="IS-IS_LEEF_ADVERTISEMENT" format="counter" sectionFormat="of" derivedContent="5.1.6"/> and <xref target="OSPF_LEEF_ADVERTISEMENT" format="counter" sectionFormat="of" derivedContent="5.2.8"/>.</t>
        <t indent="0" pn="section-4.6-2">The following guidelines apply:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.6-3">
          <li pn="section-4.6-3.1">
            <t indent="0" pn="section-4.6-3.1.1">Advertisement of LEEF is optional.</t>
          </li>
          <li pn="section-4.6-3.2">
            <t indent="0" pn="section-4.6-3.2.1">As the flooding topology is defined in terms of edges (i.e.,
            pairs of nodes) and not in terms of links, the advertisement
            <bcp14>SHOULD</bcp14> indicate that all such links have been
            enabled in cases where parallel adjacencies to the same neighbor
            exist.</t>
          </li>
          <li pn="section-4.6-3.3">
            <t indent="0" pn="section-4.6-3.3.1">LEEF advertisements <bcp14>MUST NOT</bcp14> include edges enabled for
            temporary flooding (<xref target="FLOODING_BEHAVIOR" format="default" sectionFormat="of" derivedContent="Section 6.7"/>).</t>
          </li>
          <li pn="section-4.6-3.4">
            <t indent="0" pn="section-4.6-3.4.1">LEEF advertisements <bcp14>MUST NOT</bcp14> be used either when calculating a
            flooding topology or when determining what links to add
            temporarily to the flooding topology when the flooding topology is
            temporarily partitioned.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-protocol-elements">Protocol Elements</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-5.1">
        <name slugifiedName="name-is-is-tlvs">IS-IS TLVs</name>
        <t indent="0" pn="section-5.1-1">The following TLVs/sub-TLVs are added to IS-IS: </t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.1-2"><li pn="section-5.1-2.1" derivedCounter="1.">
            <t indent="0" pn="section-5.1-2.1.1">A sub-TLV that an IS may include in its Link State
	    PDU (LSP) to indicate its
            preference for becoming the Area Leader.</t>
          </li>
          <li pn="section-5.1-2.2" derivedCounter="2.">
            <t indent="0" pn="section-5.1-2.2.1">A sub-TLV that an IS may include in its LSP to indicate that
            it supports dynamic flooding and the algorithms that it supports
            for distributed mode, if any.</t>
          </li>
          <li pn="section-5.1-2.3" derivedCounter="3.">
            <t indent="0" pn="section-5.1-2.3.1">A TLV to advertise the list of system IDs that compose the
            flooding topology for the area.  A system ID is an
	    identifier for a node.</t>
          </li>
          <li pn="section-5.1-2.4" derivedCounter="4.">
            <t indent="0" pn="section-5.1-2.4.1">A TLV to advertise a path that is part of the flooding
            topology.</t>
          </li>
          <li pn="section-5.1-2.5" derivedCounter="5.">
            <t indent="0" pn="section-5.1-2.5.1">A TLV that requests flooding from the adjacent node.</t>
          </li>
        </ol>
        <section anchor="ISIS_AREA_LEADER_SUBTLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.1.1">
          <name slugifiedName="name-is-is-area-leader-sub-tlv">IS-IS Area Leader Sub-TLV</name>
          <t indent="0" pn="section-5.1.1-1">The IS-IS Area Leader Sub-TLV allows a system to: </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.1.1-2"><li pn="section-5.1.1-2.1" derivedCounter="1.">
              <t indent="0" pn="section-5.1.1-2.1.1">Indicate its eligibility and priority for becoming
              the Area Leader.</t>
            </li>
            <li pn="section-5.1.1-2.2" derivedCounter="2.">
              <t indent="0" pn="section-5.1.1-2.2.1">Indicate whether centralized or distributed mode is to be
              used to compute the flooding topology in the area.</t>
            </li>
            <li pn="section-5.1.1-2.3" derivedCounter="3.">
              <t indent="0" pn="section-5.1.1-2.3.1">Indicate the algorithm identifier for the algorithm that is
              used to compute the flooding topology in distributed mode.</t>
            </li>
          </ol>
          <t indent="0" pn="section-5.1.1-3">Intermediate Systems (nodes) that are not advertising this
          sub-TLV are not eligible to become the Area Leader.</t>
          <t indent="0" pn="section-5.1.1-4">
	    The Area Leader is the node with the numerically highest
	    Area Leader priority in the area. In the event of ties,
	    the node with the numerically highest system ID is the
	    Area Leader. Due to transients during database flooding,
	    different nodes may not agree on the Area Leader. This is
	    not problematic, as subsequent flooding will cause the
	    entire area to converge.
          </t>
          <t indent="0" pn="section-5.1.1-5">The IS-IS Area Leader Sub-TLV is advertised as a sub-TLV of the IS-IS
          Router Capability TLV (242) <xref target="RFC7981" format="default" sectionFormat="of" derivedContent="RFC7981"/> and has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-1">
            <name slugifiedName="name-is-is-area-leader-sub-tlv-2">IS-IS Area Leader Sub-TLV</name>
            <artwork align="left" pn="section-5.1.1-6.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    |   Priority    |   Algorithm   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl spacing="normal" indent="3" newline="false" pn="section-5.1.1-7">
            <dt pn="section-5.1.1-7.1">Type:</dt>
            <dd pn="section-5.1.1-7.2">27</dd>
            <dt pn="section-5.1.1-7.3">Length:</dt>
            <dd pn="section-5.1.1-7.4">2 octets</dd>
            <dt pn="section-5.1.1-7.5">Priority:</dt>
            <dd pn="section-5.1.1-7.6">0-255, unsigned integer. Determination of
	      the priority is outside of the scope of this document.</dd>
            <dt pn="section-5.1.1-7.7">Algorithm:</dt>
            <dd pn="section-5.1.1-7.8">
              <t indent="0" pn="section-5.1.1-7.8.1">A numeric identifier in the range 0-255 that
              identifies the algorithm used to calculate the flooding
              topology. The following values are defined:</t>
              <dl spacing="normal" indent="3" newline="false" pn="section-5.1.1-7.8.2">
                <dt pn="section-5.1.1-7.8.2.1">0:</dt>
                <dd pn="section-5.1.1-7.8.2.2">Centralized computation by the Area Leader.</dd>
                <dt pn="section-5.1.1-7.8.2.3">1-127:</dt>
                <dd pn="section-5.1.1-7.8.2.4">Standardized distributed algorithms.</dd>
                <dt pn="section-5.1.1-7.8.2.5">128-254:</dt>
                <dd pn="section-5.1.1-7.8.2.6">Private distributed algorithms. Individual
                  values are to be assigned according to the "Private Use"
                  policy defined in <xref target="RFC8126" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8126#section-4.1" derivedContent="RFC8126"/> (see <xref target="IGP_IANA" format="default" sectionFormat="of" derivedContent="Section 7.3"/>).</dd>
                <dt pn="section-5.1.1-7.8.2.7">255:</dt>
                <dd pn="section-5.1.1-7.8.2.8">Reserved</dd>
              </dl>
            </dd>
          </dl>
        </section>
        <section anchor="ISIS_DYNAMIC_FLOODING_SUBTLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.1.2">
          <name slugifiedName="name-is-is-dynamic-flooding-sub-">IS-IS Dynamic Flooding Sub-TLV</name>
          <t indent="0" pn="section-5.1.2-1">The IS-IS Dynamic Flooding Sub-TLV allows a system to: </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.1.2-2"><li pn="section-5.1.2-2.1" derivedCounter="1.">
              <t indent="0" pn="section-5.1.2-2.1.1">Indicate that it supports dynamic flooding. This is indicated
              by the advertisement of this sub-TLV.</t>
            </li>
            <li pn="section-5.1.2-2.2" derivedCounter="2.">
              <t indent="0" pn="section-5.1.2-2.2.1">
		Indicate the set of algorithms that it supports.
              </t>
            </li>
          </ol>
          <t indent="0" pn="section-5.1.2-3">In incremental deployments, understanding which nodes support
          dynamic flooding can be used to optimize the flooding topology. In
          distributed mode, knowing the capabilities of the nodes can allow
          the Area Leader to select the optimal algorithm.</t>
          <t indent="0" pn="section-5.1.2-4">The IS-IS Dynamic Flooding Sub-TLV is advertised as a sub-TLV of the
          IS-IS Router Capability TLV (242) <xref target="RFC7981" format="default" sectionFormat="of" derivedContent="RFC7981"/> and has
          the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-2">
            <name slugifiedName="name-is-is-dynamic-flooding-sub-t">IS-IS Dynamic Flooding Sub-TLV</name>
            <artwork align="left" pn="section-5.1.2-5.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    | Algorithm...  | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl spacing="normal" indent="3" newline="false" pn="section-5.1.2-6">
            <dt pn="section-5.1.2-6.1">Type:</dt>
            <dd pn="section-5.1.2-6.2">28</dd>
            <dt pn="section-5.1.2-6.3">Length:</dt>
            <dd pn="section-5.1.2-6.4">1-255 octets; number of Algorithms</dd>
            <dt pn="section-5.1.2-6.5">Algorithm:</dt>
            <dd pn="section-5.1.2-6.6">Numeric identifiers in the range
              0-255 that identify the algorithm used to calculate the
              flooding topology  as described in <xref target="ISIS_AREA_LEADER_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.1.1"/>.</dd>
          </dl>
        </section>
        <section anchor="ISIS_AREA_SYSTEM_ID_TLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.1.3">
          <name slugifiedName="name-is-is-area-node-ids-tlv">IS-IS Area Node IDs TLV</name>
          <t indent="0" pn="section-5.1.3-1">The IS-IS Area Node IDs TLV is only used in centralized mode.</t>
          <t indent="0" pn="section-5.1.3-2">The IS-IS Area Node IDs TLV is used by the Area Leader to enumerate the
          node IDs (System ID + pseudonode ID) that it has used in computing
          the area flooding topology. Conceptually, the Area Leader creates a
          list of node IDs for all nodes in the area (including pseudonodes
          for all LANs in the topology) and assigns an index to each node,
          starting with index 0. Indices are implicitly assigned
          sequentially, with the index of the first node being the
          Starting Index and each subsequent node's index is the
          previous node's index + 1.</t>
          <t indent="0" pn="section-5.1.3-3">Because the space in a single TLV is limited, more than one TLV
          may be required to encode all of the node IDs in the area. This TLV
          may be present in multiple LSPs.</t>
          <t indent="0" pn="section-5.1.3-4">The IS-IS Area Node IDs TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-3">
            <name slugifiedName="name-is-is-area-node-ids-tlv-2">IS-IS Area Node IDs TLV</name>
            <artwork align="left" pn="section-5.1.3-5.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    | Starting Index                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Reserved    | Node IDs ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Node IDs continued ....   
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl spacing="normal" indent="3" newline="false" pn="section-5.1.3-6">
            <dt pn="section-5.1.3-6.1">Type:</dt>
            <dd pn="section-5.1.3-6.2">17</dd>
            <dt pn="section-5.1.3-6.3">Length:</dt>
            <dd pn="section-5.1.3-6.4"> 3 + ((System ID Length + 1) * (number of node
              IDs)) in octets</dd>
            <dt pn="section-5.1.3-6.5">Starting Index:</dt>
            <dd pn="section-5.1.3-6.6">The index of the first node ID that appears
              in this TLV.</dd>
            <dt pn="section-5.1.3-6.7">L (Last):</dt>
            <dd pn="section-5.1.3-6.8">This bit is set if the index of the last node ID
              that appears in this TLV is equal to the last index in the full
              list of node IDs for the area.</dd>
            <dt pn="section-5.1.3-6.9">Node IDs:</dt>
            <dd pn="section-5.1.3-6.10">A concatenated list of node IDs for the area.</dd>
          </dl>
          <t indent="0" pn="section-5.1.3-7">If multiple IS-IS Area Node IDs TLVs with the L bit set
          are advertised by the same node, the TLV that specifies the smaller
          maximum index is used and the other TLVs with the L bit set are
          ignored. TLVs that specify node IDs with indices greater than that
          specified by the TLV with the L bit set are also ignored.</t>
        </section>
        <section anchor="ISIS_FLOOD_PATH_TLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.1.4">
          <name slugifiedName="name-is-is-flooding-path-tlv">IS-IS Flooding Path TLV</name>
          <t indent="0" pn="section-5.1.4-1">The IS-IS Flooding Path TLV is only used in centralized mode.</t>
          <t indent="0" pn="section-5.1.4-2">The IS-IS Flooding Path TLV is used to denote a path in the flooding
          topology. The goal is an efficient encoding of the links of the
          topology. A single link is a simple case of a path that only covers
          two nodes. A connected path may be described as a sequence of
          indices (I1, I2, I3, ...), denoting a link from the system with
          index 1 to the system with index 2, a link from the system with
          index 2 to the system with index 3, and so on.</t>
          <t indent="0" pn="section-5.1.4-3">If a path exceeds the size that can be stored in a single TLV,
          then the path may be distributed across multiple TLVs by the
          replication of a single system index.</t>
          <t indent="0" pn="section-5.1.4-4">Complex topologies that are not a single path can be described
          using multiple TLVs.</t>
          <t indent="0" pn="section-5.1.4-5">The IS-IS Flooding Path TLV contains a list of system indices relative
          to the systems advertised through the IS-IS Area Node IDs TLV. At least 2
          indices must be included in the TLV. Due to the length restriction
          of TLVs, this TLV can contain 126 system indices at most.</t>
          <t indent="0" pn="section-5.1.4-6">The IS-IS Flooding Path TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-4">
            <name slugifiedName="name-is-is-flooding-path-tlv-2">IS-IS Flooding Path TLV</name>
            <artwork align="left" pn="section-5.1.4-7.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    | Starting Index                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index 2                       | Additional indices ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl spacing="normal" indent="3" newline="false" pn="section-5.1.4-8">
            <dt pn="section-5.1.4-8.1">Type:</dt>
            <dd pn="section-5.1.4-8.2">18</dd>
            <dt pn="section-5.1.4-8.3">Length:</dt>
            <dd pn="section-5.1.4-8.4">2 * (number of indices in the path) in octets</dd>
            <dt pn="section-5.1.4-8.5">Starting Index:</dt>
            <dd pn="section-5.1.4-8.6">The index of the first system in the
              path.</dd>
            <dt pn="section-5.1.4-8.7">Index 2:</dt>
            <dd pn="section-5.1.4-8.8">The index of the next system in the path.</dd>
            <dt pn="section-5.1.4-8.9">Additional indices (optional):</dt>
            <dd pn="section-5.1.4-8.10">A sequence of additional
              indices to systems along the path.</dd>
          </dl>
        </section>
        <section anchor="ISIS_FLOODING_REQUEST_TLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.1.5">
          <name slugifiedName="name-is-is-flooding-request-tlv">IS-IS Flooding Request TLV</name>
          <t indent="0" pn="section-5.1.5-1">The IS-IS Flooding Request TLV allows a system to request an adjacent
          node to enable flooding towards it on a specific link in the case
          where the connection to the adjacent node is not part of the existing
          flooding topology.</t>
          <t indent="0" pn="section-5.1.5-2">A node that supports dynamic flooding <bcp14>MAY</bcp14> include the IS-IS Flooding
          Request TLV in its IS-IS Hello (IIH) Protocol Data Units (PDUs).</t>
          <t indent="0" pn="section-5.1.5-3">The IS-IS Flooding Request TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-5">
            <name slugifiedName="name-is-is-flooding-request-tlv-2">IS-IS Flooding Request TLV</name>
            <artwork align="left" pn="section-5.1.5-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    |   Levels      |    Scope      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    ...        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl spacing="normal" indent="3" newline="false" pn="section-5.1.5-5">
            <dt pn="section-5.1.5-5.1">Type:</dt>
            <dd pn="section-5.1.5-5.2">19</dd>
            <dt pn="section-5.1.5-5.3">Length:</dt>
            <dd pn="section-5.1.5-5.4">1 + number of advertised flooding scopes in octets</dd>
            <dt pn="section-5.1.5-5.5">Levels:</dt>
            <dd pn="section-5.1.5-5.6">The levels for which flooding is requested. Levels
              are encoded as the circuit type as specified in <xref target="ISO10589" format="default" sectionFormat="of" derivedContent="ISO10589">IS-IS</xref></dd>
            <dt pn="section-5.1.5-5.7">Scope (8 bits):</dt>
            <dd pn="section-5.1.5-5.8">Flooding
              scope for which the flooding is requested as defined in
              the LSP Flooding Scope Identifier Registry as created by
              <xref target="RFC7356" format="default" sectionFormat="of" derivedContent="RFC7356"/>. Inclusion of flooding scopes
              is optional and is only necessary if <xref target="RFC7356" format="default" sectionFormat="of" derivedContent="RFC7356"/> is supported. Multiple flooding
              scopes <bcp14>MAY</bcp14> be included. Values are restricted to the
              range 0..127.</dd>
          </dl>
          <t indent="0" pn="section-5.1.5-6">Circuit flooding scope <bcp14>MUST NOT</bcp14> be sent in the Flooding Request
          TLV and <bcp14>MUST</bcp14> be ignored if received.</t>
          <t indent="0" pn="section-5.1.5-7">When the TLV is received in a level-specific LAN-Hello PDU
          (L1-LAN-IIH or L2-LAN-IIH), only levels that match the PDU type are
          valid. Levels that do not match the PDU type <bcp14>MUST</bcp14> be ignored on
          receipt.</t>
          <t indent="0" pn="section-5.1.5-8">When the TLV is received in a Point-to-Point Hello (P2P-IIH), only
          levels that are supported by the established adjacency are valid.
          Levels that are not supported by the adjacency <bcp14>MUST</bcp14> be ignored on
          receipt.</t>
          <t indent="0" pn="section-5.1.5-9">If flooding was disabled on the received link due to dynamic
          flooding, then flooding <bcp14>MUST</bcp14> be temporarily enabled over the link
          for the specified Circuit Types and flooding scopes received in
          the in the IS-IS Flooding Request TLV. Flooding <bcp14>MUST</bcp14> be enabled until the
          Circuit Type or Flooding Scope is no longer advertised in the
          IS-IS Flooding Request TLV or the TLV no longer appears in IIH PDUs
          received on the link.</t>
          <t indent="0" pn="section-5.1.5-10">When flooding is temporarily enabled on the link for any
          Circuit Type or Flooding Scope due to receiving the IS-IS Flooding Request TLV,
          the receiver <bcp14>MUST</bcp14> perform standard database synchronization for the
          corresponding Circuit Types and flooding scopes on the link. In
          the case of IS-IS, this results in setting the Send Routeing
	  Message (SRM) flag for all related
          LSPs on the link and sending CSNPs.</t>
          <t indent="0" pn="section-5.1.5-11">So long as the IS-IS Flooding Request TLV is being received, flooding
          <bcp14>MUST NOT</bcp14> be disabled for any of the Circuit Types or flooding scopes
          present in the IS-IS Flooding Request TLV, even if the connection between
          the neighbors is removed from the flooding topology. Flooding for
          such Circuit Types or flooding scopes <bcp14>MUST</bcp14> continue on the link and
          be considered temporarily enabled.</t>
        </section>
        <section anchor="IS-IS_LEEF_ADVERTISEMENT" numbered="true" removeInRFC="false" toc="include" pn="section-5.1.6">
          <name slugifiedName="name-is-is-leef-advertisement">IS-IS LEEF Advertisement</name>
          <t indent="0" pn="section-5.1.6-1">In support of advertising which edges are currently enabled in
          the flooding topology, an implementation <bcp14>MAY</bcp14> indicate that a link is
          part of the flooding topology by advertising a bit value in the Link
          Attributes sub-TLV defined by <xref target="RFC5029" format="default" sectionFormat="of" derivedContent="RFC5029"/>.</t>
          <t indent="0" pn="section-5.1.6-2">The following bit-value is defined by this document:</t>
          <dl indent="3" newline="false" spacing="normal" pn="section-5.1.6-3">
            <dt pn="section-5.1.6-3.1">Local Edge Enabled for Flooding (LEEF):</dt>
            <dd pn="section-5.1.6-3.2">0x4</dd>
          </dl>
        </section>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-5.2">
        <name slugifiedName="name-ospf-lsas-and-tlvs">OSPF LSAs and TLVs</name>
        <t indent="0" pn="section-5.2-1">This section defines new Link State Advertisements (LSAs) and TLVs for both OSPFv2 and
        OSPFv3.</t>
        <t indent="0" pn="section-5.2-2">
          The following LSAs and TLVs/sub-TLVs are added to
          OSPFv2/OSPFv3:
        </t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.2-3"><li pn="section-5.2-3.1" derivedCounter="1.">
            <t indent="0" pn="section-5.2-3.1.1">A TLV that is used to advertise the preference for becoming
            the Area Leader.</t>
          </li>
          <li pn="section-5.2-3.2" derivedCounter="2.">
            <t indent="0" pn="section-5.2-3.2.1">A TLV that is used to indicate the support for dynamic flooding
            and the algorithms that the advertising node supports for
            distributed mode, if any.</t>
          </li>
          <li pn="section-5.2-3.3" derivedCounter="3.">
            <t indent="0" pn="section-5.2-3.3.1">An OSPFv2 Opaque LSA and OSPFv3 LSA to advertise the flooding
            topology for centralized mode.</t>
          </li>
          <li pn="section-5.2-3.4" derivedCounter="4.">
            <t indent="0" pn="section-5.2-3.4.1">A TLV to advertise the list of Router IDs that comprise the
            flooding topology for the area.</t>
          </li>
          <li pn="section-5.2-3.5" derivedCounter="5.">
            <t indent="0" pn="section-5.2-3.5.1">A TLV to advertise a path that is part of the flooding
            topology.</t>
          </li>
          <li pn="section-5.2-3.6" derivedCounter="6.">
            <t indent="0" pn="section-5.2-3.6.1">A bit in the Link-Local Signaling (LLS) Type 1 Extended Options and Flags that
            requests
            flooding from the adjacent node.</t>
          </li>
        </ol>
        <section anchor="OSPF_AREA_LEADER_SUBTLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.1">
          <name slugifiedName="name-ospf-area-leader-sub-tlv">OSPF Area Leader Sub-TLV</name>
          <t indent="0" pn="section-5.2.1-1">The usage of the OSPF Area Leader Sub-TLV is identical to that of the IS-IS
          Area Leader Sub-TLV described in <xref target="ISIS_AREA_LEADER_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.1.1"/>.</t>
          <t indent="0" pn="section-5.2.1-2">The OSPF Area Leader Sub-TLV is used by both OSPFv2 and
          OSPFv3.</t>
          <t indent="0" pn="section-5.2.1-3">The OSPF Area Leader Sub-TLV is advertised as a top-level TLV of
          the Router Information (RI) LSA that is defined in <xref target="RFC7770" format="default" sectionFormat="of" derivedContent="RFC7770"/> and has the
          following format:</t>
          <figure align="left" suppress-title="false" pn="figure-6">
            <name slugifiedName="name-ospf-area-leader-sub-tlv-2">OSPF Area Leader Sub-TLV</name>
            <artwork align="left" pn="section-5.2.1-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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Priority   |   Algorithm   |            Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
</artwork>
          </figure>
          <dl newline="false" spacing="normal" indent="3" pn="section-5.2.1-5">
            <dt pn="section-5.2.1-5.1">Type:</dt>
            <dd pn="section-5.2.1-5.2">17</dd>
            <dt pn="section-5.2.1-5.3">Length:</dt>
            <dd pn="section-5.2.1-5.4">4 octets</dd>
            <dt pn="section-5.2.1-5.5">Priority:</dt>
            <dd pn="section-5.2.1-5.6">0-255, unsigned integer</dd>
            <dt pn="section-5.2.1-5.7">Algorithm:</dt>
            <dd pn="section-5.2.1-5.8">As defined in <xref target="ISIS_AREA_LEADER_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.1.1"/>.</dd>
          </dl>
        </section>
        <section anchor="OSPF_DYNAMIC_FLOODING_SUBTLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.2">
          <name slugifiedName="name-ospf-dynamic-flooding-sub-t">OSPF Dynamic Flooding Sub-TLV</name>
          <t indent="0" pn="section-5.2.2-1">The usage of the OSPF Dynamic Flooding Sub-TLV is identical to that of
          the IS-IS Dynamic Flooding Sub-TLV described in <xref target="ISIS_DYNAMIC_FLOODING_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.1.2"/>.</t>
          <t indent="0" pn="section-5.2.2-2">The OSPF Dynamic Flooding Sub-TLV is used by both OSPFv2 and
          OSPFv3.</t>
          <t indent="0" pn="section-5.2.2-3">The OSPF Dynamic Flooding Sub-TLV is advertised as a top-level
          TLV of the RI LSA that is defined in <xref target="RFC7770" format="default" sectionFormat="of" derivedContent="RFC7770"/> and
          has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-7">
            <name slugifiedName="name-ospf-dynamic-flooding-sub-tl">OSPF Dynamic Flooding Sub-TLV</name>
            <artwork align="left" pn="section-5.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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Algorithm ... |                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
</artwork>
          </figure>
          <dl newline="false" spacing="normal" indent="3" pn="section-5.2.2-5">
            <dt pn="section-5.2.2-5.1">Type:</dt>
            <dd pn="section-5.2.2-5.2">18</dd>
            <dt pn="section-5.2.2-5.3">Length:</dt>
            <dd pn="section-5.2.2-5.4">Number of Algorithms in octets</dd>
            <dt pn="section-5.2.2-5.5">Algorithm:</dt>
            <dd pn="section-5.2.2-5.6">As defined in <xref target="ISIS_AREA_LEADER_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.1.1"/>.</dd>
          </dl>
        </section>
        <section anchor="OSPFV2_DYNAMIC_FLOOD_LSA" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.3">
          <name slugifiedName="name-ospfv2-dynamic-flooding-opa">OSPFv2 Dynamic Flooding Opaque LSA</name>
          <t indent="0" pn="section-5.2.3-1">The OSPFv2 Dynamic Flooding Opaque LSA is only used in
          centralized mode.</t>
          <t indent="0" pn="section-5.2.3-2">The OSPFv2 Dynamic Flooding Opaque LSA is used to advertise
          additional data related to dynamic flooding in OSPFv2. OSPFv2
          Opaque LSAs are described in <xref target="RFC5250" format="default" sectionFormat="of" derivedContent="RFC5250"/>.</t>
          <t indent="0" pn="section-5.2.3-3">Multiple OSPFv2 Dynamic Flooding Opaque LSAs can be advertised by
          an OSPFv2 router. The flooding scope of the OSPFv2 Dynamic Flooding
          Opaque LSA is area-local.</t>
          <t indent="0" pn="section-5.2.3-4">The format of the OSPFv2 Dynamic Flooding Opaque LSA is as
          follows:</t>
          <figure align="left" suppress-title="false" pn="figure-8">
            <name slugifiedName="name-ospfv2-dynamic-flooding-opaq">OSPFv2 Dynamic Flooding Opaque LSA</name>
            <artwork align="left" pn="section-5.2.3-5.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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            LS age             |     Options   |   LS Type     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       10      |                 Opaque ID                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Advertising Router                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     LS sequence number                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         LS checksum           |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-                            TLVs                             -+
|                             ...                               |
</artwork>
          </figure>
          <t indent="0" pn="section-5.2.3-6">The opaque type used by OSPFv2 Dynamic Flooding Opaque LSA is
          10. The opaque type is used to differentiate the various types of
          OSPFv2 Opaque LSAs as described in <xref target="RFC5250" sectionFormat="of" section="3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5250#section-3" derivedContent="RFC5250"/>. The LS Type is 10. The LSA Length field <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/> represents the total length (in octets) of the
          Opaque LSA including the LSA header and all TLVs (including
          padding).</t>
          <t indent="0" pn="section-5.2.3-7">The Opaque ID field is an arbitrary value used to maintain
          multiple Dynamic Flooding Opaque LSAs. For OSPFv2 Dynamic Flooding
          Opaque LSAs, the Opaque ID has no semantic significance other than
          to differentiate Dynamic Flooding Opaque LSAs originated
          from the same
          OSPFv2 router.</t>
          <t indent="0" pn="section-5.2.3-8">The format of the TLVs within the body of the OSPFv2 Dynamic
          Flooding Opaque LSA is the same as the format used by the Traffic
          Engineering Extensions to OSPF <xref target="RFC3630" format="default" sectionFormat="of" derivedContent="RFC3630"/>.</t>
          <t indent="0" pn="section-5.2.3-9">The Length field defines the length of the value portion in
          octets (thus a TLV with no value portion would have a length of 0
          octets).  The TLV is padded to a 4-octet alignment; padding is not
          included in the length field (so a 3-octet value would have a length
          of 3 octets, but the total size of the TLV would be 8
          octets). Nested TLVs are also 32-bit aligned. For example, a 1-octet
          value would have the length field set to 1, and 3 octets of padding
          would be added to the end of the value portion of the TLV. The
          padding is composed of zeros.</t>
        </section>
        <section anchor="OSPFV3_DYNAMIC_FLOOD_LSA" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.4">
          <name slugifiedName="name-ospfv3-dynamic-flooding-lsa">OSPFv3 Dynamic Flooding LSA</name>
          <t indent="0" pn="section-5.2.4-1">The OSPFv3 Dynamic Flooding Opaque LSA is only used in
          centralized mode.</t>
          <t indent="0" pn="section-5.2.4-2">The OSPFv3 Dynamic Flooding LSA is used to advertise additional
          data related to dynamic flooding in OSPFv3.</t>
          <t indent="0" pn="section-5.2.4-3">The OSPFv3 Dynamic Flooding LSA has a function code of 16. The
          flooding scope of the OSPFv3 Dynamic Flooding LSA is area-local. The
          U bit will be set indicating that the OSPFv3 Dynamic Flooding LSA
          should be flooded even if it is not understood. The Link State ID
          (LSID) value for this LSA is the Instance ID. OSPFv3 routers <bcp14>MAY</bcp14>
          advertise multiple OSPFv3 Dynamic Flooding Opaque LSAs in each area.</t>
          <t indent="0" pn="section-5.2.4-4">The format of the OSPFv3 Dynamic Flooding LSA is as follows:</t>
          <figure align="left" suppress-title="false" pn="figure-9">
            <name slugifiedName="name-ospfv3-dynamic-flooding-lsa-2">OSPFv3 Dynamic Flooding LSA</name>
            <artwork align="left" pn="section-5.2.4-5.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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            LS age             |1|0|1|           16            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Link State ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Advertising Router                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    LS sequence number                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        LS checksum            |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-                            TLVs                             -+
|                             ...                               |
</artwork>
          </figure>
        </section>
        <section anchor="OSPF_AREA_ROUTER_ID_TLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.5">
          <name slugifiedName="name-ospf-area-router-id-tlvs">OSPF Area Router ID TLVs</name>
          <t indent="0" pn="section-5.2.5-1">In OSPF, TLVs are defined to advertise indices associated with
          nodes and Broadcast / Non-Broadcast Multi-Access (NBMA)
          networks. Due to identifier differences between OSPFv2 and OSPFv3,
          two different TLVs are defined as described in the following
          sub-sections.</t>
          <t indent="0" pn="section-5.2.5-2">The OSPF Area Router ID TLVs are used by the Area Leader
          to enumerate the Router IDs that it has used in computing
          the flooding topology. This includes the identifiers
          associated with Broadcast/NBMA networks as defined for
          Network LSAs. Conceptually, the Area Leader creates a list
          of Router IDs for all routers in the area and assigns an
          index to each router, starting with index 0.  Indices are
          implicitly assigned sequentially, with the index of the
          first node being the Starting Index and each subsequent
          node's index is the previous node's index + 1.
          </t>
          <section anchor="OSPFV2_AREA_ROUTER_ID_TLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.5.1">
            <name slugifiedName="name-ospfv2-area-router-id-tlv">OSPFv2 Area Router ID TLV</name>
            <t indent="0" pn="section-5.2.5.1-1">This TLV is a top-level TLV of the OSPFv2 Dynamic Flooding
            Opaque LSA.</t>
            <t indent="0" pn="section-5.2.5.1-2">Because the space in a single OSPFv2 opaque LSA is
            limited, more than one LSA may be required to encode all of the
            Router IDs in the area. This TLV <bcp14>MAY</bcp14> be advertised in multiple OSPFv2
            Dynamic Flooding Opaque LSAs so that all Router IDs can be
            advertised.</t>
            <t indent="0" pn="section-5.2.5.1-3">The OSPFv2 Area Router IDs TLV has the following format:</t>
            <figure align="left" suppress-title="false" pn="figure-10">
              <name slugifiedName="name-ospfv2-area-router-ids-tlv">OSPFv2 Area Router IDs TLV</name>
              <artwork align="left" pn="section-5.2.5.1-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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Starting Index             |L| Flags       |   Reserved    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-        OSPFv2 Router ID TLV Entry                           -+
|                           ...                                 |
</artwork>
            </figure>
            <dl spacing="normal" indent="3" newline="false" pn="section-5.2.5.1-5">
              <dt pn="section-5.2.5.1-5.1">Type:</dt>
              <dd pn="section-5.2.5.1-5.2">1</dd>
              <dt pn="section-5.2.5.1-5.3">Length:</dt>
              <dd pn="section-5.2.5.1-5.4">4 + sum of the lengths of all TLV
                entries in octets</dd>
              <dt pn="section-5.2.5.1-5.5">Starting Index:</dt>
              <dd pn="section-5.2.5.1-5.6">The index of the first Router/Designated
                Router ID that appears in this TLV.</dd>
              <dt pn="section-5.2.5.1-5.7">L (Last):</dt>
              <dd pn="section-5.2.5.1-5.8">This bit is set if the index of the last
                Router/Designated Router ID that appears in this TLV is equal to the
                last index in the full list of Router IDs for the area.</dd>
              <dt pn="section-5.2.5.1-5.9">OSPFv2 Router ID TLV Entries:</dt>
              <dd pn="section-5.2.5.1-5.10">A concatenated list of Router
                ID TLV Entries for the area.</dd>
            </dl>
            <t indent="0" pn="section-5.2.5.1-6">If multiple OSPFv2 Area Router ID TLVs with the L bit
            set are advertised by the same router, the TLV that specifies the
            smaller maximum index is used and the other TLVs with L bit set
            are ignored. TLVs that specify Router IDs with indices greater
            than that specified by the TLV with the L bit set are also
            ignored.</t>
            <t indent="0" pn="section-5.2.5.1-7">Each entry in the OSPFv2 Area Router IDs TLV represents either
            a node or a Broadcast/NBMA network identifier. An entry has the
            following format:</t>
            <figure align="left" suppress-title="false" pn="figure-11">
              <name slugifiedName="name-ospfv2-router-ids-tlv-entry">OSPFv2 Router IDs TLV Entry</name>
              <artwork align="left" pn="section-5.2.5.1-8.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       
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    ID Type    |  Number of IDs                |  Reserved     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-    Originating Router ID/DR Address                         -+
|                     ...                                       |
</artwork>
            </figure>
            <dl spacing="normal" indent="3" newline="false" pn="section-5.2.5.1-9">
              <dt pn="section-5.2.5.1-9.1">ID Type:</dt>
              <dd pn="section-5.2.5.1-9.2">
                <t indent="0" pn="section-5.2.5.1-9.2.1">1 octet. The following values are defined:</t>
                <dl spacing="normal" indent="3" newline="false" pn="section-5.2.5.1-9.2.2">
                  <dt pn="section-5.2.5.1-9.2.2.1">1:</dt>
                  <dd pn="section-5.2.5.1-9.2.2.2">Router</dd>
                  <dt pn="section-5.2.5.1-9.2.2.3">2:</dt>
                  <dd pn="section-5.2.5.1-9.2.2.4">Designated Router</dd>
                </dl>
              </dd>
              <dt pn="section-5.2.5.1-9.3">Number of IDs:</dt>
              <dd pn="section-5.2.5.1-9.4">2 octets</dd>
              <dt pn="section-5.2.5.1-9.5">Reserved:</dt>
              <dd pn="section-5.2.5.1-9.6">1 octet. <bcp14>MUST</bcp14> be transmitted as 0 and <bcp14>MUST</bcp14>
              be ignored on receipt.</dd>
              <dt pn="section-5.2.5.1-9.7">Originating Router ID/DR Address:</dt>
              <dd pn="section-5.2.5.1-9.8">(4 * Number of IDs) octets 
              as indicated by the ID Type.</dd>
            </dl>
          </section>
          <section anchor="OSPFV3_AREA_ROUTER_ID_TLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.5.2">
            <name slugifiedName="name-ospfv3-area-router-id-tlv">OSPFv3 Area Router ID TLV</name>
            <t indent="0" pn="section-5.2.5.2-1">This TLV is a top-level TLV of the OSPFv3 Dynamic Flooding
            LSA.</t>
            <t indent="0" pn="section-5.2.5.2-2">Because the space in a single OSPFv3 Dynamic Flooding LSA is
            limited, more than one LSA may be required to encode all of the
            Router IDs in the area. This TLV <bcp14>MAY</bcp14> be advertised in multiple OSPFv3
            Dynamic Flooding Opaque LSAs so that all Router IDs can be
            advertised.</t>
            <t indent="0" pn="section-5.2.5.2-3">The OSPFv3 Area Router IDs TLV has the following format:</t>
            <figure align="left" suppress-title="false" pn="figure-12">
              <name slugifiedName="name-ospfv3-area-router-ids-tlv">OSPFv3 Area Router IDs TLV</name>
              <artwork align="left" pn="section-5.2.5.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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Starting Index             |L| Flags       |   Reserved    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-        OSPFv3 Router ID TLV Entry                           -+
|                           ...                                 |
</artwork>
            </figure>
            <dl spacing="normal" indent="3" newline="false" pn="section-5.2.5.2-5">
              <dt pn="section-5.2.5.2-5.1">Type:</dt>
              <dd pn="section-5.2.5.2-5.2">1</dd>
              <dt pn="section-5.2.5.2-5.3">Length:</dt>
              <dd pn="section-5.2.5.2-5.4">4 + sum of the lengths of all TLV entries in octets</dd>
              <dt pn="section-5.2.5.2-5.5">Starting Index:</dt>
              <dd pn="section-5.2.5.2-5.6">The index of the first Router/Designated
                Router ID that appears in this TLV.</dd>
              <dt pn="section-5.2.5.2-5.7">L (Last):</dt>
              <dd pn="section-5.2.5.2-5.8">This bit is set if the index of the last
                Router/Designated Router ID that appears in this TLV is equal
                to the last index in the full list of Router IDs for the
                area.</dd>
              <dt pn="section-5.2.5.2-5.9">OSPFv3 Router ID TLV Entries:</dt>
              <dd pn="section-5.2.5.2-5.10">A concatenated list of Router
                ID TLV Entries for the area.</dd>
            </dl>
            <t indent="0" pn="section-5.2.5.2-6">If multiple OSPFv3 Area Router ID TLVs with the L bit
            set are advertised by the same router the TLV that specifies the
            smaller maximum index is used and the other TLVs with L bit set
            are ignored. TLVs that specify Router IDs with indices greater
            than that specified by the TLV with the L bit set are also
            ignored.</t>
            <t indent="0" pn="section-5.2.5.2-7">Each entry in the OSPFv3 Area Router IDs TLV represents either
            a router or a Broadcast/NBMA network identifier. An entry has the
            following format:</t>
            <figure align="left" suppress-title="false" pn="figure-13">
              <name slugifiedName="name-ospfv3-router-id-tlv-entry">OSPFv3 Router ID TLV Entry</name>
              <artwork align="left" pn="section-5.2.5.2-8.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     
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    ID Type    |  Number of IDs                |  Reserved     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-    Originating ID Entry                                     -+
|                    ...                                        |
</artwork>
            </figure>
            <dl spacing="normal" indent="3" newline="false" pn="section-5.2.5.2-9">
              <dt pn="section-5.2.5.2-9.1">ID Type:</dt>
              <dd pn="section-5.2.5.2-9.2">
                <t indent="0" pn="section-5.2.5.2-9.2.1">1 octet. The following values are defined:</t>
                <dl spacing="normal" indent="3" newline="false" pn="section-5.2.5.2-9.2.2">
                  <dt pn="section-5.2.5.2-9.2.2.1">1:</dt>
                  <dd pn="section-5.2.5.2-9.2.2.2">Router</dd>
                  <dt pn="section-5.2.5.2-9.2.2.3">2:</dt>
                  <dd pn="section-5.2.5.2-9.2.2.4">Designated Router</dd>
                </dl>
              </dd>
              <dt pn="section-5.2.5.2-9.3">Number of IDs:</dt>
              <dd pn="section-5.2.5.2-9.4">2 octets</dd>
              <dt pn="section-5.2.5.2-9.5">Reserved:</dt>
              <dd pn="section-5.2.5.2-9.6">1 octet.
                  <bcp14>MUST</bcp14> be transmitted as 0 and <bcp14>MUST</bcp14> be ignored on
                  receipt.</dd>
            </dl>
            <t indent="0" pn="section-5.2.5.2-10">
              The Originating ID Entry takes one of the following
              forms, depending on the ID Type.
            </t>
            <t indent="0" pn="section-5.2.5.2-11">
              For a Router:
            </t>
            <artwork align="left" pn="section-5.2.5.2-12">
 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     
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Originating Router ID                                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            <t indent="0" pn="section-5.2.5.2-13">
              The length of the Originating ID Entry is (4 * Number of IDs)
              octets.
            </t>
            <t indent="0" pn="section-5.2.5.2-14">
              For a Designated Router:
            </t>
            <artwork align="left" pn="section-5.2.5.2-15">
 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     
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Originating Router ID                                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Interface ID                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            <t indent="0" pn="section-5.2.5.2-16">
              The length of the Originating ID Entry is (8 * Number of
              IDs) octets.
            </t>
          </section>
        </section>
        <section anchor="OSPF_FLOOD_PATH_TLV" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.6">
          <name slugifiedName="name-ospf-flooding-path-tlv">OSPF Flooding Path TLV</name>
          <t indent="0" pn="section-5.2.6-1">The OSPF Flooding Path TLV is a top-level TLV of the OSPFv2
          Dynamic Flooding Opaque LSAs and OSPFv3 Dynamic Flooding LSA.</t>
          <t indent="0" pn="section-5.2.6-2">The usage of the OSPF Flooding Path TLV is identical to that of the IS-IS
          Flooding Path TLV described in <xref target="ISIS_FLOOD_PATH_TLV" format="default" sectionFormat="of" derivedContent="Section 5.1.4"/>.</t>
          <t indent="0" pn="section-5.2.6-3">The OSPF Flooding Path TLV contains a list of Router ID indices
          relative to the Router IDs advertised through the OSPF Area Router
          IDs TLV. At least 2 indices must be included in the TLV.</t>
          <t indent="0" pn="section-5.2.6-4">Multiple OSPF Flooding Path TLVs can be advertised in a single
          OSPFv2 Dynamic Flooding Opaque LSA or OSPFv3 Dynamic Flooding LSA.
          OSPF Flooding Path TLVs can also be advertised in multiple OSPFv2
          Dynamic Flooding Opaque LSAs or OSPFv3 Dynamic Flooding LSAs if they
          all cannot fit in a single LSA.</t>
          <t indent="0" pn="section-5.2.6-5">The OSPF Flooding Path TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-14">
            <name slugifiedName="name-ospf-flooding-path-tlv-2">OSPF Flooding Path TLV</name>
            <artwork align="left" pn="section-5.2.6-6.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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Starting Index             |       Index 2                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-                        Additional Indices                   -+
|                           ...                                 | 
</artwork>
          </figure>
          <dl spacing="normal" indent="3" newline="false" pn="section-5.2.6-7">
            <dt pn="section-5.2.6-7.1">Type:</dt>
            <dd pn="section-5.2.6-7.2">2</dd>
            <dt pn="section-5.2.6-7.3">Length:</dt>
            <dd pn="section-5.2.6-7.4">2 * (number of indices in the path) in octets</dd>
            <dt pn="section-5.2.6-7.5">Starting Index:</dt>
            <dd pn="section-5.2.6-7.6">The index of the first Router ID in the
              path.</dd>
            <dt pn="section-5.2.6-7.7">Index 2:</dt>
            <dd pn="section-5.2.6-7.8">The index of the next Router ID in the path.</dd>
            <dt pn="section-5.2.6-7.9">Additional indices (optional):</dt>
            <dd pn="section-5.2.6-7.10">A sequence of additional
              indices to Router IDs along the path.</dd>
          </dl>
        </section>
        <section anchor="OSPF_FLOODING_REQUEST_BIT" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.7">
          <name slugifiedName="name-ospf-flooding-request-bit">OSPF Flooding Request Bit</name>
          <t indent="0" pn="section-5.2.7-1">A single new option bit, the Flooding Request (FR) bit, is
          defined in the LLS Type 1 Extended Options and Flags field <xref target="RFC5613" format="default" sectionFormat="of" derivedContent="RFC5613"/>. The FR bit allows a router to request an
          adjacent node to enable flooding towards it on a specific link in
          the case where the connection to the adjacent node is not part of the
          current flooding topology.</t>
          <t indent="0" pn="section-5.2.7-2">A node that supports dynamic flooding <bcp14>MAY</bcp14> include
          the FR bit in its OSPF LLS Extended Options and Flags TLV.</t>
          <t indent="0" pn="section-5.2.7-3">If
          the FR bit is signaled for a link on which flooding was disabled due
          to dynamic flooding, then flooding <bcp14>MUST</bcp14> be
          temporarily enabled over the link. Flooding <bcp14>MUST</bcp14> be
          enabled until the FR bit is no longer advertised in the OSPF LLS
          Extended Options and Flags TLV or the OSPF LLS Extended Options and
          Flags TLV no longer appears in the OSPF Hellos.</t>
          <t indent="0" pn="section-5.2.7-4">When flooding is temporarily enabled on the link for any area
          due to receiving the FR bit in the OSPF LLS Extended Options and Flags TLV,
          the receiver <bcp14>MUST</bcp14> perform standard database synchronization
          for the area corresponding to the link. If the adjacency is already in
          the FULL state, the mechanism specified in <xref target="RFC4811" format="default" sectionFormat="of" derivedContent="RFC4811"/> <bcp14>MUST</bcp14>
          be used for database resynchronization.</t>
          <t indent="0" pn="section-5.2.7-5">So long as the FR bit is being received in the OSPF LLS Extended
          Options and Flags TLV for a link, flooding <bcp14>MUST NOT</bcp14> be
          disabled on the link, even if the connection between the neighbors is removed
          from the flooding topology. Flooding <bcp14>MUST</bcp14> continue on
          the link and be considered as temporarily enabled.</t>
        </section>
        <section anchor="OSPF_LEEF_ADVERTISEMENT" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.8">
          <name slugifiedName="name-ospf-leef-advertisement">OSPF LEEF Advertisement</name>
          <t indent="0" pn="section-5.2.8-1">In support of advertising the specific edges that are
          currently enabled in the flooding topology, an
          implementation <bcp14>MAY</bcp14> indicate that a link is part of the
          flooding topology. The OSPF Link Attributes Bits TLV is
          defined to support this advertisement.</t>
          <figure align="left" suppress-title="false" pn="figure-15">
            <name slugifiedName="name-ospf-link-attributes-bits-t">OSPF Link Attributes Bits TLV</name>
            <artwork align="left" pn="section-5.2.8-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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Link Attribute Bits                                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-            Additional Link Attribute Bits                   -+
|                           ...                                 | 
</artwork>
          </figure>
          <dl indent="3" newline="false" spacing="normal" pn="section-5.2.8-3">
            <dt pn="section-5.2.8-3.1">Type:</dt>
            <dd pn="section-5.2.8-3.2">21 (for OSPFv2) or 10 (for OSPFv3)</dd>
            <dt pn="section-5.2.8-3.3">Length:</dt>
            <dd pn="section-5.2.8-3.4">Size of the Link Attribute Bits in octets. It <bcp14>MUST</bcp14> be a
          multiple of 4 octets.</dd>
          </dl>
          <t indent="0" pn="section-5.2.8-4">The following bits are defined:</t>
          <dl indent="3" newline="false" spacing="normal" pn="section-5.2.8-5">
            <dt pn="section-5.2.8-5.1">Bit #0:</dt>
            <dd pn="section-5.2.8-5.2">Local Edge Enabled for Flooding (LEEF)</dd>
          </dl>
          <t indent="0" pn="section-5.2.8-6">OSPF Link-attribute Bits TLV appears as:</t>
          <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-5.2.8-7">
          <li pn="section-5.2.8-7.1" derivedCounter="1.">A sub-TLV of the OSPFv2 Extended Link TLV <xref target="RFC7684" format="default" sectionFormat="of" derivedContent="RFC7684"/>.</li>
            <li pn="section-5.2.8-7.2" derivedCounter="2.">A sub-TLV of the OSPFv3 Router-Link TLV <xref target="RFC8362" format="default" sectionFormat="of" derivedContent="RFC8362"/>.</li>
          </ol>
        </section>
      </section>
    </section>
    <section anchor="BEHAVIOR" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-behavioral-specification">Behavioral Specification</name>
      <t indent="0" pn="section-6-1">This section specifies the detailed behavior of the nodes
      participating in the IGP.</t>
      <section anchor="TERMINOLOGY" numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-6.1-1">Some terminology to be used in the following
        sections: </t>
        <dl newline="false" spacing="normal" indent="3" pn="section-6.1-2">
          <dt pn="section-6.1-2.1">Reachable:</dt>
          <dd pn="section-6.1-2.2">A node is considered reachable if it is part of the
            connected network graph. Note that this is independent of
            any constraints that may be considered when performing IGP
            shortest-path tree calculation, e.g., link metrics,
            overload bit state, etc. The two-way connectivity check
            <bcp14>MUST</bcp14> be performed before including an edge in the
            connected network graph.</dd>
          <dt pn="section-6.1-2.3">Connected:</dt>
          <dd pn="section-6.1-2.4">A node is connected to the flooding topology if it has at least
            one local link, which is part of the flooding topology.</dd>
          <dt pn="section-6.1-2.5">Disconnected:</dt>
          <dd pn="section-6.1-2.6">A node is disconnected from the flooding topology when it is not
            connected to the flooding topology.</dd>
          <dt pn="section-6.1-2.7">Current flooding topology:</dt>
          <dd pn="section-6.1-2.8">The latest version of the
            flooding topology that has been received (in the case of
            centralized mode) or calculated locally (in the case of
            distributed mode).</dd>
        </dl>
      </section>
      <section anchor="FT_PROP" numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-flooding-topology">Flooding Topology</name>
        <t indent="0" pn="section-6.2-1">The flooding topology <bcp14>MUST</bcp14> include all reachable
        nodes in the area.</t>
        <t indent="0" pn="section-6.2-2">If a node's reachability changes, the flooding topology
        <bcp14>MUST</bcp14> be recalculated. In centralized mode, the Area
        Leader <bcp14>MUST</bcp14> advertise a new flooding topology.</t>
        <t indent="0" pn="section-6.2-3">If a node becomes disconnected from the current flooding topology
        but is still reachable, then a new flooding topology
        <bcp14>MUST</bcp14> be calculated. In centralized mode, the Area
        Leader <bcp14>MUST</bcp14> advertise the new flooding topology.</t>
        <t indent="0" pn="section-6.2-4">
          The flooding topology <bcp14>SHOULD</bcp14> be biconnected to
          provide network resiliency, but this does incur some amount of
          redundant flooding. Xia topologies (<xref target="Xia" format="default" sectionFormat="of" derivedContent="Section 4.4.2"/>) are an
          example of an explicit decision to sacrifice resiliency to avoid
          redundancy.
        </t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.3">
        <name slugifiedName="name-leader-election-2">Leader Election</name>
        <t indent="0" pn="section-6.3-1">Any capable node <bcp14>MAY</bcp14> advertise its eligibility to become the
        Area Leader.</t>
        <t indent="0" pn="section-6.3-2">Nodes that are not reachable are not eligible to become the Area
        Leader. Nodes that do not advertise their eligibility to become the
        Area Leader are not eligible. Amongst the eligible nodes, the node
        with the numerically highest priority is the Area Leader. If multiple
        nodes all have the highest priority, then the node with the
        numerically highest system identifier (in the case of IS-IS) or Router
        ID (in the case of OSPFv2 and OSPFv3) is the Area Leader.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.4">
        <name slugifiedName="name-area-leader-responsibilitie">Area Leader Responsibilities</name>
        <t indent="0" pn="section-6.4-1">If the Area Leader operates in centralized mode, it <bcp14>MUST</bcp14> advertise
        algorithm 0 in its Area Leader Sub-TLV. For dynamic flooding
        to be enabled, it also <bcp14>MUST</bcp14> compute and advertise a flooding topology
        for the area. The Area Leader may update the flooding topology at any
        time. However, it should not destabilize the network with undue or
        overly frequent topology changes. If the Area Leader operates in
        centralized mode and needs to advertise a new flooding topology, it
        floods the new flooding topology on both the new and old flooding
        topologies.</t>
        <t indent="0" pn="section-6.4-2">If the Area Leader operates in distributed mode, it <bcp14>MUST</bcp14> advertise
        a nonzero algorithm in its Area Leader Sub-TLV.</t>
        <t indent="0" pn="section-6.4-3">When the Area Leader advertises algorithm 0 in its Area Leader
        Sub-TLV and does not advertise a flooding topology, dynamic flooding
        is disabled for the area. Note this applies whether the Area Leader
        intends to operate in centralized mode or distributed mode.</t>
        <t indent="0" pn="section-6.4-4">Note that once dynamic flooding is enabled, disabling it risks
        destabilizing the network due to the issues discussed in <xref target="Intro" format="default" sectionFormat="of" derivedContent="Section 1"/>.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.5">
        <name slugifiedName="name-distributed-flooding-topolo">Distributed Flooding Topology Calculation</name>
        <t indent="0" pn="section-6.5-1">If the Area Leader advertises a nonzero algorithm in its Area
        Leader Sub-TLV, all nodes in the area that support dynamic flooding
        and support the algorithm advertised by the Area Leader <bcp14>MUST</bcp14> compute
        the flooding topology based on the Area Leader's advertised
        algorithm.</t>
        <t indent="0" pn="section-6.5-2">Nodes that do not support the advertised algorithm <bcp14>MUST</bcp14>
        continue to use standard IS-IS/OSPF flooding mechanisms.
        Nodes that do not support the flooding algorithm advertised by
        the Area Leader <bcp14>MUST</bcp14> be considered as dynamic flooding
        incapable nodes by the Area Leader.</t>
        <t indent="0" pn="section-6.5-3">If the value of the algorithm advertised by the Area Leader is from
        the range 128-254 (private distributed algorithms), it is the
        responsibility of the network operator to guarantee that all nodes in
        the area agree on the dynamic flooding algorithm corresponding
        to the advertised value.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.6">
        <name slugifiedName="name-use-of-lans-in-the-flooding">Use of LANs in the Flooding Topology</name>
        <t indent="0" pn="section-6.6-1">The use of LANs in the flooding topology differs depending on whether
        the area is operating in centralized mode or distributed mode.</t>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-6.6.1">
          <name slugifiedName="name-use-of-lans-in-centralized-">Use of LANs in Centralized Mode</name>
          <t indent="0" pn="section-6.6.1-1">As specified in <xref target="ENCODING_THE_FLOODING_TOPOLOGY" format="default" sectionFormat="of" derivedContent="Section 4.5"/>, when a LAN is advertised as part of                                             
          the flooding topology, all nodes connected to the LAN are assumed to
          be using the LAN as part of the flooding topology. This assumption
          is made to reduce the size of the flooding topology
          advertisement.</t>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-6.6.2">
          <name slugifiedName="name-use-of-lans-in-distributed-">Use of LANs in Distributed Mode</name>
          <t indent="0" pn="section-6.6.2-1">In distributed mode, the flooding topology is NOT
          advertised; thus, the space consumed to advertise it is
          not a concern. Therefore, it is possible to assign only a
          subset of the nodes connected to the LAN to use the LAN as
          part of the flooding topology. Doing so may further optimize
          flooding by reducing the amount of redundant flooding on a
          LAN. However, support of flooding by a subset of the nodes
          connected to a LAN requires some modest but
          backward-compatible changes in the way flooding is
          performed on a LAN.</t>
          <section numbered="true" removeInRFC="false" toc="include" pn="section-6.6.2.1">
            <name slugifiedName="name-partial-flooding-on-a-lan-i">Partial Flooding on a LAN in IS-IS</name>
            <t indent="0" pn="section-6.6.2.1-1">The Designated Intermediate System (DIS) for a LAN <bcp14>MUST</bcp14>
            use the standard flooding behavior.</t>
            <t indent="0" pn="section-6.6.2.1-2">Non-DIS nodes whose connection to the LAN is included in the
            flooding topology <bcp14>MUST</bcp14> use the standard flooding behavior.</t>
            <t indent="0" pn="section-6.6.2.1-3">Non-DIS nodes whose connection to the LAN is NOT included in
            the flooding topology behave as follows:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.6.2.1-4">
              <li pn="section-6.6.2.1-4.1">
                <t indent="0" pn="section-6.6.2.1-4.1.1">Received CSNPs from the DIS are ignored.</t>
              </li>
              <li pn="section-6.6.2.1-4.2">
                <t indent="0" pn="section-6.6.2.1-4.2.1">Partial Sequence Number PDUs (PSNPs)
                are NOT originated on the LAN.</t>
              </li>
              <li pn="section-6.6.2.1-4.3">
                <t indent="0" pn="section-6.6.2.1-4.3.1">An LSP that is received on the LAN and is newer than the
                corresponding LSP present in the Link State PDU Database (LSPDB) is retained and
                flooded on all local circuits that are part of the flooding
                topology (i.e., do not discard newer LSPs simply because they
                were received on a LAN that the receiving node is not using
                for flooding).</t>
              </li>
              <li pn="section-6.6.2.1-4.4">
                <t indent="0" pn="section-6.6.2.1-4.4.1">An LSP received on the LAN that is older or the same as the
                corresponding LSP in the LSPDB is silently
                discarded.</t>
              </li>
              <li pn="section-6.6.2.1-4.5">
                <t indent="0" pn="section-6.6.2.1-4.5.1">LSPs received on links other than the LAN are NOT flooded
                on the LAN.</t>
              </li>
            </ul>
            <t indent="0" pn="section-6.6.2.1-5">NOTE: If any node connected to the LAN requests the enablement
            of temporary flooding, all nodes <bcp14>MUST</bcp14> revert to the standard flooding
            behavior on the LAN.</t>
          </section>
          <section numbered="true" removeInRFC="false" toc="include" pn="section-6.6.2.2">
            <name slugifiedName="name-partial-flooding-on-a-lan-in">Partial Flooding on a LAN in OSPF</name>
            <t indent="0" pn="section-6.6.2.2-1">The Designated Router (DR) and Backup Designated Router (BDR)
            for LANs <bcp14>MUST</bcp14> use the standard flooding
            behavior.</t>
            <t indent="0" pn="section-6.6.2.2-2">Non-DR/BDR nodes with a connection to a LAN that is
            included in the flooding topology use the standard
            flooding behavior on that LAN.</t>
            <t indent="0" pn="section-6.6.2.2-3">Non-DR/BDR nodes with a connection to a LAN that is NOT
            included in the flooding topology behave as follows:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.6.2.2-4">
              <li pn="section-6.6.2.2-4.1">
                <t indent="0" pn="section-6.6.2.2-4.1.1">LSAs received on the LAN are acknowledged to the DR/BDR.</t>
              </li>
              <li pn="section-6.6.2.2-4.2">
                <t indent="0" pn="section-6.6.2.2-4.2.1">LSAs received on interfaces other than the LAN are NOT
                flooded on the LAN.</t>
              </li>
            </ul>
            <t indent="0" pn="section-6.6.2.2-5">NOTE: If any node connected to the LAN requests the enablement
            of temporary flooding, all nodes revert to the standard flooding
            behavior.</t>
            <t indent="0" pn="section-6.6.2.2-6">NOTE: The sending of LSA Acknowledgements by nodes NOT using the LAN as
            part of the flooding topology eliminates the need for changes on
            the part of the DR/BDR, which might include nodes that do
            not support the dynamic flooding algorithm.</t>
          </section>
        </section>
      </section>
      <section anchor="FLOODING_BEHAVIOR" numbered="true" removeInRFC="false" toc="include" pn="section-6.7">
        <name slugifiedName="name-flooding-behavior">Flooding Behavior</name>
        <t indent="0" pn="section-6.7-1">Nodes that support dynamic flooding <bcp14>MUST</bcp14> use the flooding topology
        for flooding when possible and <bcp14>MUST NOT</bcp14> revert to standard flooding
        when a valid flooding topology is available.</t>
        <t indent="0" pn="section-6.7-2">In some cases, a node that supports dynamic flooding may need to add
        local links to the flooding topology temporarily, even though the
        links are not part of the calculated flooding topology. This is
        termed "temporary flooding" and is discussed in <xref target="TEMP_FLOOD" format="default" sectionFormat="of" derivedContent="Section 6.8.1"/>.</t>
        <t indent="0" pn="section-6.7-3">In distributed mode, the flooding topology is calculated locally.
        In centralized mode, the flooding topology is
        advertised in the area LSDB. Received link-state
        updates, whether received on a link that is in the flooding topology
        or on a link that is not in the flooding topology, <bcp14>MUST</bcp14> be flooded on
        all links that are in the flooding topology except for the link on
        which the update was received.</t>
        <t indent="0" pn="section-6.7-4">
	  In centralized mode, new information in the form of new
	  paths or new node ID assignments can be received at any
	  time. This may replace some or all of the existing
	  information about the flooding topology. There may be
	  transient conditions where the information that a node has
	  is inconsistent or incomplete. If a node detects that its
	  current information is inconsistent, then the node may wait
	  for an implementation-specific amount of time, expecting more
	  information to arrive that will provide a consistent,
	  complete view of the flooding topology.
        </t>
        <t indent="0" pn="section-6.7-5">
	  In both centralized and distributed mode, if a node
	  determines that some of its adjacencies are to be added to
	  the flooding topology, it should add those and begin
	  flooding on those adjacencies immediately.  If a node
	  determines that adjacencies are to be removed from the
	  flooding topology, then it should wait for an
	  implementation-specific amount of time before acting on that
	  information. This serves to ensure that new information is
	  flooded promptly and completely, allowing all nodes to
	  receive updates in a timely fashion.
        </t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.8">
        <name slugifiedName="name-treatment-of-topology-event">Treatment of Topology Events</name>
        <t indent="0" pn="section-6.8-1">This section explicitly considers a variety of different
        topological events in the network and how dynamic flooding should
        address them.</t>
        <section anchor="TEMP_FLOOD" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.1">
          <name slugifiedName="name-temporary-addition-of-links">Temporary Addition of Links to the Flooding Topology</name>
          <t indent="0" pn="section-6.8.1-1">When temporary flooding is enabled on the link, the flooding
          needs to be enabled in both directions. To achieve
          that, the following steps <bcp14>MUST</bcp14> be performed: </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.8.1-2">
            <li pn="section-6.8.1-2.1">The LSDB needs to be resynchronised on the link.
            This is done using the standard protocol mechanisms. In the case
            of IS-IS, this results in setting the SRM bit for all LSPs on the
            circuit and sending a complete set of CSNPs on the link. In OSPF,
            the mechanism specified in <xref target="RFC4811" format="default" sectionFormat="of" derivedContent="RFC4811"/> is used.</li>
            <li pn="section-6.8.1-2.2">Flooding is enabled locally on the link.</li>
            <li pn="section-6.8.1-2.3">Flooding is requested from the neighbor using the mechanism
              specified in Sections <xref target="ISIS_FLOODING_REQUEST_TLV" format="counter" sectionFormat="of" derivedContent="5.1.5"/>
              or <xref target="OSPF_FLOODING_REQUEST_BIT" format="counter" sectionFormat="of" derivedContent="5.2.7"/>.</li>
          </ul>
          <t indent="0" pn="section-6.8.1-3">
              The request for temporary flooding <bcp14>MUST</bcp14> be withdrawn on
              the link when all of the following conditions are met:
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.8.1-4">
            <li pn="section-6.8.1-4.1">The node itself is connected to the current flooding
              topology.</li>
            <li pn="section-6.8.1-4.2">The adjacent node is connected to the current
              flooding topology.</li>
          </ul>
          <t indent="0" pn="section-6.8.1-5">
          Any change in the flooding topology <bcp14>MUST</bcp14> result in an
          evaluation of the above conditions for any link on which
          temporary flooding was enabled.
          </t>
          <t indent="0" pn="section-6.8.1-6">Temporary flooding is stopped on the link when both adjacent
          nodes stop requesting temporary flooding on the link.</t>
        </section>
        <section anchor="LOCAL_LINK_ADD" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.2">
          <name slugifiedName="name-local-link-addition">Local Link Addition</name>
          <t indent="0" pn="section-6.8.2-1">If a local link is added to the topology, the protocol will form
          a normal adjacency on the link and update the appropriate LSAs for the nodes on either end of the link. These link
          state updates will be flooded on the flooding topology.</t>
          <t indent="0" pn="section-6.8.2-2">In centralized mode, the Area Leader may choose to retain the
	  existing flooding topology or modify the flooding topology upon
	  receiving these updates. If the Area Leader decides to change the
	  flooding topology, it will update the flooding topology in the LSDB
	  and flood it using the new flooding topology.</t>
          <t indent="0" pn="section-6.8.2-3">In distributed mode, any change in the topology, including the link addition, <bcp14>MUST</bcp14> trigger the flooding topology
          recalculation.  This is done to ensure that all nodes converge to
          the same flooding topology, regardless of the time of the
          calculation.</t>
          <t indent="0" pn="section-6.8.2-4">Temporary flooding <bcp14>MUST</bcp14> be enabled on the newly added local link
          as long as at least one of the following conditions are met: </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.8.2-5">
            <li pn="section-6.8.2-5.1">The node on which the local link was added is not connected
              to the current flooding topology.</li>
            <li pn="section-6.8.2-5.2">The new adjacent node is not connected to the current
              flooding topology.</li>
          </ul>
          <t indent="0" pn="section-6.8.2-6">Note that in this case there is no need to perform a database
          synchronization as part of the enablement of the temporary flooding
          because it was part of the adjacency bring-up itself.</t>
          <t indent="0" pn="section-6.8.2-7">If multiple local links are added to the topology before the
          flooding topology is updated, temporary flooding <bcp14>MUST</bcp14> be enabled on
          a subset of these links per the conditions discussed in
          <xref target="RATE_LIMIT" format="default" sectionFormat="of" derivedContent="Section 6.8.12"/>.</t>
        </section>
        <section anchor="NODE_ADDITION" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.3">
          <name slugifiedName="name-node-addition">Node Addition</name>
          <t indent="0" pn="section-6.8.3-1">If a node is added to the topology, then at least one link is
          also added to the topology. <xref target="LOCAL_LINK_ADD" format="default" sectionFormat="of" derivedContent="Section 6.8.2"/>
          applies.</t>
          <t indent="0" pn="section-6.8.3-2">A node that has a large number of neighbors is at risk of
          introducing a local flooding storm if all neighbors are brought up
          at once and temporary flooding is enabled on all links
          simultaneously. The most robust way to address this is to limit the
          rate of initial adjacency formation following bootup. This
          reduces unnecessary redundant flooding as part of initial database
          synchronization and minimizes the need for temporary flooding, as it
          allows time for the new node to be added to the flooding topology
          after only a small number of adjacencies have been formed.</t>
          <t indent="0" pn="section-6.8.3-3">In the event a node elects to bring up a large number of
          adjacencies simultaneously, a significant amount of redundant
          flooding may be introduced as multiple neighbors of the new node
          enable temporary flooding to the new node, which initially is not
          part of the flooding topology.</t>
        </section>
        <section anchor="FAIL_NOT_ON_TOPO" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.4">
          <name slugifiedName="name-failures-of-links-not-on-th">Failures of Links Not on the Flooding Topology</name>
          <t indent="0" pn="section-6.8.4-1">If a link that is not part of the flooding topology fails, then
          the adjacent nodes will update their LSAs and
          flood them on the flooding topology.</t>
          <t indent="0" pn="section-6.8.4-2">In centralized mode, the Area Leader may choose to retain the
	  existing flooding topology or modify the flooding topology upon
	  receiving these updates. If it elects to change the flooding
	  topology, it will update the flooding topology in the LSDB and flood
	  it using the new flooding topology.</t>
          <t indent="0" pn="section-6.8.4-3">In distributed mode, any change in the topology, including the
          failure of the link that is not part of the flooding topology, <bcp14>MUST</bcp14>
          trigger the flooding topology recalculation. This is done to ensure
          that all nodes converge to the same flooding topology, regardless of
          the time of the calculation.</t>
        </section>
        <section anchor="FAIL_ON_TOPO" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.5">
          <name slugifiedName="name-failures-of-links-on-the-fl">Failures of Links On the Flooding Topology</name>
          <t indent="0" pn="section-6.8.5-1">If there is a failure on the flooding topology, the adjacent
          nodes will update their LSAs and flood them. If
          the original flooding topology is biconnected, the flooding
          topology should still be connected despite a single failure.</t>
          <t indent="0" pn="section-6.8.5-2">If the failed local link represented the only connection to the
          flooding topology on the node where the link failed, the node <bcp14>MUST</bcp14>
          enable temporary flooding on a subset of its local links. This
          allows the node to send its updated LSAs and
          receive link-state updates from other nodes in the
          network before the new flooding topology is calculated and
          distributed (in the case of centralized mode).</t>
          <t indent="0" pn="section-6.8.5-3">In centralized mode, the Area Leader will notice the change in
          the flooding topology, recompute the flooding topology, and flood it
          using the new flooding topology.</t>
          <t indent="0" pn="section-6.8.5-4">In distributed mode, all nodes supporting dynamic flooding will
          notice the change in the topology and recompute the new flooding
          topology.</t>
        </section>
        <section anchor="NODE_DEL" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.6">
          <name slugifiedName="name-node-deletion">Node Deletion</name>
          <t indent="0" pn="section-6.8.6-1">If a node is deleted from the topology, then at least one link is
          also removed from the topology. <xref target="FAIL_NOT_ON_TOPO" format="default" sectionFormat="of" derivedContent="Section 6.8.4"/>
          and <xref target="FAIL_ON_TOPO" format="default" sectionFormat="of" derivedContent="Section 6.8.5"/> apply.</t>
        </section>
        <section anchor="LINK_ADD_FLOOD" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.7">
          <name slugifiedName="name-local-link-addition-to-the-">Local Link Addition to the Flooding Topology</name>
          <t indent="0" pn="section-6.8.7-1">
            If the flooding topology changes and a local link that was
            not part of the flooding topology is now part of the
            flooding topology, then the node <bcp14>MUST</bcp14>:
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.8.7-2">
            <li pn="section-6.8.7-2.1">Resynchronize the LSDB over the link. This is
              done using the standard protocol mechanisms. In the case of
              IS-IS, this requires sending a complete set of CSNPs. In OSPF, the
              mechanism specified in <xref target="RFC4811" format="default" sectionFormat="of" derivedContent="RFC4811"/> is used.</li>
            <li pn="section-6.8.7-2.2">Make the link part of the flooding topology and start
              flooding on it.</li>
          </ul>
        </section>
        <section anchor="LOCAL_LINK_DEL" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.8">
          <name slugifiedName="name-local-link-deletion-from-th">Local Link Deletion from the Flooding Topology</name>
          <t indent="0" pn="section-6.8.8-1">
            If the flooding topology changes and a local link that was
            part of the flooding topology is no longer part of the
            flooding topology, then the node <bcp14>MUST</bcp14> remove the link from
            the flooding topology.
          </t>
          <t indent="0" pn="section-6.8.8-2">The node <bcp14>MUST</bcp14> keep flooding on such link for a limited amount of
          time to allow other nodes to migrate to the new flooding
          topology.</t>
          <t indent="0" pn="section-6.8.8-3">If the removed local link represented the only connection to the
          flooding topology on the node, the node <bcp14>MUST</bcp14> enable temporary
          flooding on a subset of its local links. This allows the node to
          send its updated LSAs and receive
          link-state updates from other nodes in the network before the new
          flooding topology is calculated and distributed (in the case of
          centralized mode).</t>
        </section>
        <section anchor="TREAT_DISC" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.9">
          <name slugifiedName="name-treatment-of-disconnected-a">Treatment of Disconnected Adjacent Nodes</name>
          <t indent="0" pn="section-6.8.9-1">
	    Every time there is a change in the flooding topology, a
	    node <bcp14>MUST</bcp14> check if any adjacent nodes are disconnected
	    from the current flooding topology. Temporary flooding
	    <bcp14>MUST</bcp14> be enabled towards a subset of the disconnected nodes
	    per Sections <xref target="RATE_LIMIT" format="counter" sectionFormat="of" derivedContent="6.8.12"/> and
	    <xref target="FLOODING_BEHAVIOR" format="counter" sectionFormat="of" derivedContent="6.7"/>.
          </t>
        </section>
        <section anchor="FAIL_LEADER" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.10">
          <name slugifiedName="name-failure-of-the-area-leader">Failure of the Area Leader</name>
          <t indent="0" pn="section-6.8.10-1">The failure of the Area Leader can be detected by observing that
          it is no longer reachable. In this case, the Area Leader election
          process is repeated and a new Area Leader is elected.</t>
          <t indent="0" pn="section-6.8.10-2">To minimize disruption to dynamic flooding if the Area
          Leader becomes unreachable, the node that has the
          second-highest priority for becoming Area Leader (including
          the system identifier / Router ID tiebreaker if necessary)
          <bcp14>SHOULD</bcp14> advertise the same algorithm in its Area Leader
          Sub-TLV as the Area Leader and (in centralized mode) <bcp14>SHOULD</bcp14>
          advertise a flooding topology. This <bcp14>SHOULD</bcp14> be done even when
          the Area Leader is reachable.</t>
          <t indent="0" pn="section-6.8.10-3">In centralized mode, the new Area Leader will compute a new
          flooding topology and flood it using the new flooding topology. To
          minimize disruption, the new flooding topology <bcp14>SHOULD</bcp14> have as much in
          common as possible with the old flooding topology.  This will
          minimize the risk of excess flooding with the new flooding topology.</t>
          <t indent="0" pn="section-6.8.10-4">In the distributed mode, the new flooding topology will be
          calculated on all nodes that support the algorithm that is
          advertised by the new Area Leader. Nodes that do not support the
          algorithm advertised by the new Area Leader will no longer
          participate in dynamic flooding and will revert to standard
          flooding.</t>
        </section>
        <section anchor="PARTITIONED_FT" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.11">
          <name slugifiedName="name-recovery-from-multiple-fail">Recovery from Multiple Failures</name>
          <t indent="0" pn="section-6.8.11-1">In the event of multiple failures on the flooding
          topology, it may become partitioned. The nodes that remain active on
          the edges of the flooding topology partitions will recognize this
          and will try to repair the flooding topology locally by enabling
          temporary flooding towards the nodes that they consider disconnected
          from the flooding topology until a new flooding topology becomes
          connected again.</t>
          <t indent="0" pn="section-6.8.11-2">Nodes, where local failure was detected, update their LSAs and flood them on the remainder of the
          flooding topology.</t>
          <t indent="0" pn="section-6.8.11-3">In centralized mode, the Area Leader will notice the change in
          the flooding topology, recompute the flooding topology, and flood it
          using the new flooding topology.</t>
          <t indent="0" pn="section-6.8.11-4">In distributed mode, all nodes that actively participate in
          dynamic flooding will compute the new flooding topology.</t>
          <t indent="0" pn="section-6.8.11-5">Note that this is very different from the area partition because
          there is still a connected network graph between the nodes in the
          area. The area may remain connected and forwarding may still be
          functioning correctly.</t>
        </section>
        <section anchor="RATE_LIMIT" numbered="true" removeInRFC="false" toc="include" pn="section-6.8.12">
          <name slugifiedName="name-rate-limiting-temporary-flo">Rate-Limiting Temporary Flooding</name>
          <t indent="0" pn="section-6.8.12-1">As discussed in the previous sections, some events
          require the introduction of temporary flooding on edges that
          are not part of the current flooding topology. This can
          occur regardless of whether the area is operating in
          centralized mode or distributed mode.</t>
          <t indent="0" pn="section-6.8.12-2">Nodes that decide to enable temporary flooding also have
          to decide whether to do so on a subset of the edges that are
          currently not part of the flooding topology or on all the
          edges that are currently not part of the flooding
          topology. Doing the former risks a longer convergence time
          as it may miss vital edges and not fully repair the flooding
          topology. Doing the latter risks introducing a flooding
          storm that destabilizes the network.</t>
          <t indent="0" pn="section-6.8.12-3">It is recommended that a node rate limit the number of
          edges on which it chooses to enable temporary flooding.
          Initial values for the number of edges on which to enable
          temporary flooding and the rate at which additional edges
          may subsequently be enabled is left as an implementation
          decision.</t>
        </section>
      </section>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.1">
        <name slugifiedName="name-is-is">IS-IS</name>
        <t indent="0" pn="section-7.1-1">
          The following code points have been assigned in the "IS-IS 
          Sub-TLVs for IS-IS Router CAPABILITY TLV" registry (IS-IS TLV 242).
        </t>
        <table anchor="IS-IS-Router-CAPABILITY-TLV" align="center" pn="table-1">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">27</td>
              <td align="left" colspan="1" rowspan="1">IS-IS Area Leader</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="ISIS_AREA_LEADER_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.1.1"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">28</td>
              <td align="left" colspan="1" rowspan="1">IS-IS Dynamic Flooding</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="ISIS_DYNAMIC_FLOODING_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.1.2"/>)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-7.1-3">
          IANA has assigned code
          points from the "IS-IS Top-Level TLV Codepoints" registry,
          one for each of the following TLVs:
        </t>
        <table anchor="IS-IS-Top-Level-TLV-Codepoints" align="center" pn="table-2">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">17</td>
              <td align="left" colspan="1" rowspan="1">IS-IS Area Node IDs</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="ISIS_AREA_SYSTEM_ID_TLV" format="default" sectionFormat="of" derivedContent="Section 5.1.3"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">18</td>
              <td align="left" colspan="1" rowspan="1">IS-IS Flooding Path</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="ISIS_FLOOD_PATH_TLV" format="default" sectionFormat="of" derivedContent="Section 5.1.4"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">19</td>
              <td align="left" colspan="1" rowspan="1">IS-IS Flooding Request</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="ISIS_FLOODING_REQUEST_TLV" format="default" sectionFormat="of" derivedContent="Section 5.1.5"/>)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-7.1-5">
          IANA has extended the "IS-IS Neighbor
          Link-Attribute Bit Values" registry to contain an "L2BM"
          column that indicates if a bit may appear in an L2 Bundle
          Member Attributes TLV. All existing rows 
          have the value "N" for "L2BM". The following explanatory
          note has been added to the registry:
        </t>
        <blockquote pn="section-7.1-6">
          <t indent="0" pn="section-7.1-6.1">
            The "L2BM" column indicates applicability to the L2 Bundle Member
            Attributes TLV. The options for the "L2BM" column are:
          </t>
          <t indent="0" pn="section-7.1-6.2">
            Y - This bit <bcp14>MAY</bcp14> appear in the L2
            Bundle Member Attributes TLV.
          </t>
          <t indent="0" pn="section-7.1-6.3">
            N - This bit <bcp14>MUST NOT</bcp14> appear in the
            L2 Bundle Member Attributes TLV.
          </t>
        </blockquote>
        <t indent="0" pn="section-7.1-7">
          IANA has allocated a new bit-value
          from the "IS-IS Neighbor Link-Attribute Bit Values"
          registry.
        </t>
        <table anchor="IS-IS-Neighbor-Link-Attribute-Bit-Values" align="center" pn="table-3">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">L2BM</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x4</td>
              <td align="left" colspan="1" rowspan="1">N</td>
              <td align="left" colspan="1" rowspan="1">Local Edge Enabled for Flooding (LEEF)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.2">
        <name slugifiedName="name-ospf">OSPF</name>
        <t indent="0" pn="section-7.2-1">The following code points have been assigned in the "OSPF
        Router Information (RI) TLVs" registry: </t>
        <table anchor="OSPF-RI-TLVs" align="center" pn="table-4">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">TLV Name</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">17</td>
              <td align="left" colspan="1" rowspan="1">OSPF Area Leader</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_AREA_LEADER_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.2.1"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">18</td>
              <td align="left" colspan="1" rowspan="1">OSPF Dynamic Flooding</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_DYNAMIC_FLOODING_SUBTLV" format="default" sectionFormat="of" derivedContent="Section 5.2.2"/>)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-7.2-3">The following code points have been assigned in the "Opaque
      Link-State Advertisements (LSA) Option Types" registry: </t>
        <table anchor="Opaque-LSA-Option-Types" align="center" pn="table-5">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Opaque Type</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">OSPFv2 Dynamic Flooding Opaque LSA</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPFV2_DYNAMIC_FLOOD_LSA" format="default" sectionFormat="of" derivedContent="Section 5.2.3"/>)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-7.2-5">The following code point has been assigned in the "OSPFv3
        LSA Function Codes" registry: </t>
        <table anchor="OSPFv3-LSA-Function-Codes" align="center" pn="table-6">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">LSA Function Code Name</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">16</td>
              <td align="left" colspan="1" rowspan="1">OSPFv3 Dynamic Flooding LSA</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPFV3_DYNAMIC_FLOOD_LSA" format="default" sectionFormat="of" derivedContent="Section 5.2.4"/>)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-7.2-7">IANA has assigned a new bit in the "LLS Type 1 Extended Options and
        Flags" registry: </t>
        <table anchor="LLS-Type-1" align="center" pn="table-7">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Bit Position</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x00000020</td>
              <td align="left" colspan="1" rowspan="1">Flooding Request bit</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_FLOODING_REQUEST_BIT" format="default" sectionFormat="of" derivedContent="Section 5.2.7"/>)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-7.2-9">The following code point has been assigned in the
        "OSPFv2 Extended Link TLV Sub-TLVs" registry:</t>
        <table anchor="OSPFv2-Extended-Link-TLV-Sub-TLVs" align="center" pn="table-8">
          <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">L2 Bundle Member Attributes (L2BM)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">21</td>
              <td align="left" colspan="1" rowspan="1">OSPFv2 Link Attributes Bits Sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_LEEF_ADVERTISEMENT" format="default" sectionFormat="of" derivedContent="Section 5.2.8"/>)</td>
              <td align="left" colspan="1" rowspan="1">Y</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-7.2-11">The following code point has been assigned in the
        "OSPFv3 Extended LSA Sub-TLVs" registry:</t>
        <table anchor="OSPFv3-Extended-LSA-Sub-TLVs" align="center" pn="table-9">
          <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">L2 Bundle Member Attributes (L2BM)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">OSPFv3 Link Attributes Bits Sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_LEEF_ADVERTISEMENT" format="default" sectionFormat="of" derivedContent="Section 5.2.8"/>)</td>
              <td align="left" colspan="1" rowspan="1">Y</td>
            </tr>
          </tbody>
        </table>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-7.2.1">
          <name slugifiedName="name-ospf-dynamic-flooding-lsa-t">OSPF Dynamic Flooding LSA TLVs Registry</name>
          <t indent="0" pn="section-7.2.1-1">A new registry has been created: "OSPF Dynamic
          Flooding LSA TLVs". New values can be allocated via IETF Review or
          IESG Approval.</t>
          <t indent="0" pn="section-7.2.1-2">The "OSPF Dynamic Flooding LSA TLVs" registry defines
          top-level TLVs for the OSPFv2 Dynamic Flooding Opaque LSA and OSPFv3
          Dynamic Flooding LSAs. It has been added to the "Open Shortest Path
          First (OSPF) Parameters" registry group.</t>
          <t indent="0" pn="section-7.2.1-3">The following initial values have been allocated:</t>
          <table anchor="OSPF-Parameters" align="center" pn="table-10">
            <name/>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Type</th>
                <th align="left" colspan="1" rowspan="1">Description</th>
                <th align="left" colspan="1" rowspan="1">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">0</td>
                <td align="left" colspan="1" rowspan="1">Reserved</td>
                <td align="left" colspan="1" rowspan="1">RFC 9667</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">1</td>
                <td align="left" colspan="1" rowspan="1">OSPF Area Router IDs</td>
                <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_AREA_ROUTER_ID_TLV" format="default" sectionFormat="of" derivedContent="Section 5.2.5"/>)</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">2</td>
                <td align="left" colspan="1" rowspan="1">OSPF Flooding Path</td>
                <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_FLOOD_PATH_TLV" format="default" sectionFormat="of" derivedContent="Section 5.2.6"/>)</td>
              </tr>
            </tbody>
          </table>
          <t indent="0" pn="section-7.2.1-5">Types in the range 32768-33023 are Reserved for Experimental Use; these
          will not be registered with IANA and <bcp14>MUST NOT</bcp14> be mentioned by
          RFCs.</t>
          <t indent="0" pn="section-7.2.1-6">Types in the range 33024-65535 are Reserved. They are not to be assigned at this
          time. Before any assignments can be made in the 33024-65535 range,
          there <bcp14>MUST</bcp14> be an IETF specification that specifies IANA
          Considerations that cover the range being assigned.</t>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-7.2.2">
          <name slugifiedName="name-ospf-link-attributes-sub-tl">OSPF Link Attributes Sub-TLV Bit Values Registry</name>
          <t indent="0" pn="section-7.2.2-1">A new registry has been created: "OSPF Link
          Attributes Sub-TLV Bit Values". New values can be allocated via IETF
          Review or IESG Approval.</t>
          <t indent="0" pn="section-7.2.2-2">The "OSPF Link Attributes Sub-TLV Bit Values" registry defines
          Link Attribute bit-values for the OSPFv2 Link Attributes Sub-TLV and
          OSPFv3 Link Attributes Sub-TLV. It has been added to the "Open
          Shortest Path First (OSPF) Parameters" registry
          group. This registry contains a column "L2BM" that
          indicates if a bit may appear in an L2 Bundle Member
          Attributes (L2BM) Sub-TLV. The following explanatory note
          has been added to the registry:</t>
          <blockquote pn="section-7.2.2-3">
            <t indent="0" pn="section-7.2.2-3.1">
              The "L2BM" column indicates applicability to the L2 Bundle Member
              Attributes sub-TLV. The options for the "L2BM" column are:
            </t>
            <t indent="0" pn="section-7.2.2-3.2">
              Y - This bit <bcp14>MAY</bcp14> appear in the L2
              Bundle Member Attributes sub-TLV.
            </t>
            <t indent="0" pn="section-7.2.2-3.3">
              N - This bit <bcp14>MUST NOT</bcp14> appear in the
              L2 Bundle Member Attributes sub-TLV.
            </t>
          </blockquote>
          <t indent="0" pn="section-7.2.2-4">The following initial value is allocated:</t>
          <table anchor="L2BM-sub-TLV" align="center" pn="table-11">
            <name/>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Bit Number</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">L2 Bundle Member Attributes (L2BM)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">0</td>
                <td align="left" colspan="1" rowspan="1">Local Edge Enabled for Flooding (LEEF)</td>
                <td align="left" colspan="1" rowspan="1">RFC 9667 (<xref target="OSPF_LEEF_ADVERTISEMENT" format="default" sectionFormat="of" derivedContent="Section 5.2.8"/>)</td>
                <td align="left" colspan="1" rowspan="1">N</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="IGP_IANA" numbered="true" removeInRFC="false" toc="include" pn="section-7.3">
        <name slugifiedName="name-igp">IGP</name>
        <t indent="0" pn="section-7.3-1">IANA has created a registry called "IGP Algorithm Type
        For Computing Flooding Topology" in the existing "Interior Gateway
        Protocol (IGP) Parameters" registry group.</t>
        <t indent="0" pn="section-7.3-2">
	  The registration policy for this registry is Expert Review.
        </t>
        <t indent="0" pn="section-7.3-3">Values in this registry come from the range 0-255.</t>
        <t indent="0" pn="section-7.3-4">The initial values in the "IGP Algorithm Type For Computing Flooding
        Topology" registry are as follows:</t>
        <table anchor="IGP-Algorithm-Type-For-Computing-Flooding-Topology" align="center" pn="table-12">
          <name/>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved for centralized mode</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1-127</td>
              <td align="left" colspan="1" rowspan="1">Unassigned. Individual values are to be assigned according to the "Expert
      Review" policy defined in <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>. The designated
      experts should require a clear, public specification of the algorithm
      and comply with <xref target="RFC7370" format="default" sectionFormat="of" derivedContent="RFC7370"/>.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">128-254</td>
              <td align="left" colspan="1" rowspan="1">Reserved for Private Use</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">255</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-8-1">This document introduces no new security issues. Security of routing
      within a domain is already addressed as part of the routing protocols
      themselves. This document proposes no changes to those security
      architectures.</t>
      <t indent="0" pn="section-8-2">An attacker could become the Area Leader and
      introduce a flawed flooding algorithm into the network thus compromising
      the operation of the protocol. Authentication methods as described in
      <xref target="RFC5304" format="default" sectionFormat="of" derivedContent="RFC5304"/> and <xref target="RFC5310" format="default" sectionFormat="of" derivedContent="RFC5310"/> for IS-IS, <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/> and <xref target="RFC7474" format="default" sectionFormat="of" derivedContent="RFC7474"/> for OSPFv2, and <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/> and <xref target="RFC4552" format="default" sectionFormat="of" derivedContent="RFC4552"/> for OSPFv3 <bcp14>SHOULD</bcp14> be
      used to prevent such attacks.</t>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="ISO10589" target="https://www.iso.org/standard/30932.html" quoteTitle="true" derivedAnchor="ISO10589">
          <front>
            <title>Information technology - Telecommunications and information exchange between systems - Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473)</title>
            <author>
              <organization abbrev="ISO" showOnFrontPage="true">International Organization for Standardization</organization>
            </author>
            <date month="11" year="2002"/>
          </front>
          <seriesInfo name="ISO/IEC" value="10589:2002"/>
          <refcontent>Second Edition</refcontent>
        </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="RFC4552" target="https://www.rfc-editor.org/info/rfc4552" quoteTitle="true" derivedAnchor="RFC4552">
          <front>
            <title>Authentication/Confidentiality for OSPFv3</title>
            <author fullname="M. Gupta" initials="M." surname="Gupta"/>
            <author fullname="N. Melam" initials="N." surname="Melam"/>
            <date month="June" year="2006"/>
            <abstract>
              <t indent="0">This document describes means and mechanisms to provide authentication/confidentiality to OSPFv3 using an IPv6 Authentication Header/Encapsulating Security Payload (AH/ESP) extension header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4552"/>
          <seriesInfo name="DOI" value="10.17487/RFC4552"/>
        </reference>
        <reference anchor="RFC5029" target="https://www.rfc-editor.org/info/rfc5029" quoteTitle="true" derivedAnchor="RFC5029">
          <front>
            <title>Definition of an IS-IS Link Attribute Sub-TLV</title>
            <author fullname="JP. Vasseur" initials="JP." surname="Vasseur"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <date month="September" year="2007"/>
            <abstract>
              <t indent="0">This document defines a sub-TLV called "Link-attributes" carried within the TLV 22 and used to flood some link characteristics. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5029"/>
          <seriesInfo name="DOI" value="10.17487/RFC5029"/>
        </reference>
        <reference anchor="RFC5250" target="https://www.rfc-editor.org/info/rfc5250" quoteTitle="true" derivedAnchor="RFC5250">
          <front>
            <title>The OSPF Opaque LSA Option</title>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <author fullname="I. Bryskin" initials="I." surname="Bryskin"/>
            <author fullname="A. Zinin" initials="A." surname="Zinin"/>
            <author fullname="R. Coltun" initials="R." surname="Coltun"/>
            <date month="July" year="2008"/>
            <abstract>
              <t indent="0">This document defines enhancements to the OSPF protocol to support a new class of link state advertisements (LSAs) called Opaque LSAs. Opaque LSAs provide a generalized mechanism to allow for the future extensibility of OSPF. Opaque LSAs consist of a standard LSA header followed by application-specific information. The information field may be used directly by OSPF or by other applications. Standard OSPF link-state database flooding mechanisms are used to distribute Opaque LSAs to all or some limited portion of the OSPF topology.</t>
              <t indent="0">This document replaces RFC 2370 and adds to it a mechanism to enable an OSPF router to validate Autonomous System (AS)-scope Opaque LSAs originated outside of the router's OSPF area. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5250"/>
          <seriesInfo name="DOI" value="10.17487/RFC5250"/>
        </reference>
        <reference anchor="RFC5304" target="https://www.rfc-editor.org/info/rfc5304" quoteTitle="true" derivedAnchor="RFC5304">
          <front>
            <title>IS-IS Cryptographic Authentication</title>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2008"/>
            <abstract>
              <t indent="0">This document describes the authentication of Intermediate System to Intermediate System (IS-IS) Protocol Data Units (PDUs) using the Hashed Message Authentication Codes - Message Digest 5 (HMAC-MD5) algorithm as found in RFC 2104. IS-IS is specified in International Standards Organization (ISO) 10589, with extensions to support Internet Protocol version 4 (IPv4) described in RFC 1195. The base specification includes an authentication mechanism that allows for multiple authentication algorithms. The base specification only specifies the algorithm for cleartext passwords. This document replaces RFC 3567.</t>
              <t indent="0">This document proposes an extension to that specification that allows the use of the HMAC-MD5 authentication algorithm to be used in conjunction with the existing authentication mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5304"/>
          <seriesInfo name="DOI" value="10.17487/RFC5304"/>
        </reference>
        <reference anchor="RFC5310" target="https://www.rfc-editor.org/info/rfc5310" quoteTitle="true" derivedAnchor="RFC5310">
          <front>
            <title>IS-IS Generic Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <date month="February" year="2009"/>
            <abstract>
              <t indent="0">This document proposes an extension to Intermediate System to Intermediate System (IS-IS) to allow the use of any cryptographic authentication algorithm in addition to the already-documented authentication schemes, described in the base specification and RFC 5304. IS-IS is specified in International Standards Organization (ISO) 10589, with extensions to support Internet Protocol version 4 (IPv4) described in RFC 1195.</t>
              <t indent="0">Although this document has been written specifically for using the Hashed Message Authentication Code (HMAC) construct along with the Secure Hash Algorithm (SHA) family of cryptographic hash functions, the method described in this document is generic and can be used to extend IS-IS to support any cryptographic hash function in the future. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5310"/>
          <seriesInfo name="DOI" value="10.17487/RFC5310"/>
        </reference>
        <reference anchor="RFC5340" target="https://www.rfc-editor.org/info/rfc5340" quoteTitle="true" derivedAnchor="RFC5340">
          <front>
            <title>OSPF for IPv6</title>
            <author fullname="R. Coltun" initials="R." surname="Coltun"/>
            <author fullname="D. Ferguson" initials="D." surname="Ferguson"/>
            <author fullname="J. Moy" initials="J." surname="Moy"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="July" year="2008"/>
            <abstract>
              <t indent="0">This document describes the modifications to OSPF to support version 6 of the Internet Protocol (IPv6). The fundamental mechanisms of OSPF (flooding, Designated Router (DR) election, area support, Short Path First (SPF) calculations, etc.) remain unchanged. However, some changes have been necessary, either due to changes in protocol semantics between IPv4 and IPv6, or simply to handle the increased address size of IPv6. These modifications will necessitate incrementing the protocol version from version 2 to version 3. OSPF for IPv6 is also referred to as OSPF version 3 (OSPFv3).</t>
              <t indent="0">Changes between OSPF for IPv4, OSPF Version 2, and OSPF for IPv6 as described herein include the following. Addressing semantics have been removed from OSPF packets and the basic Link State Advertisements (LSAs). New LSAs have been created to carry IPv6 addresses and prefixes. OSPF now runs on a per-link basis rather than on a per-IP-subnet basis. Flooding scope for LSAs has been generalized. Authentication has been removed from the OSPF protocol and instead relies on IPv6's Authentication Header and Encapsulating Security Payload (ESP).</t>
              <t indent="0">Even with larger IPv6 addresses, most packets in OSPF for IPv6 are almost as compact as those in OSPF for IPv4. Most fields and packet- size limitations present in OSPF for IPv4 have been relaxed. In addition, option handling has been made more flexible.</t>
              <t indent="0">All of OSPF for IPv4's optional capabilities, including demand circuit support and Not-So-Stubby Areas (NSSAs), are also supported in OSPF for IPv6. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5340"/>
          <seriesInfo name="DOI" value="10.17487/RFC5340"/>
        </reference>
        <reference anchor="RFC5613" target="https://www.rfc-editor.org/info/rfc5613" quoteTitle="true" derivedAnchor="RFC5613">
          <front>
            <title>OSPF Link-Local Signaling</title>
            <author fullname="A. Zinin" initials="A." surname="Zinin"/>
            <author fullname="A. Roy" initials="A." surname="Roy"/>
            <author fullname="L. Nguyen" initials="L." surname="Nguyen"/>
            <author fullname="B. Friedman" initials="B." surname="Friedman"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <date month="August" year="2009"/>
            <abstract>
              <t indent="0">OSPF is a link-state intra-domain routing protocol. OSPF routers exchange information on a link using packets that follow a well-defined fixed format. The format is not flexible enough to enable new features that need to exchange arbitrary data. This document describes a backward-compatible technique to perform link-local signaling, i.e., exchange arbitrary data on a link. This document replaces the experimental specification published in RFC 4813 to bring it on the Standards Track.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5613"/>
          <seriesInfo name="DOI" value="10.17487/RFC5613"/>
        </reference>
        <reference anchor="RFC7356" target="https://www.rfc-editor.org/info/rfc7356" quoteTitle="true" derivedAnchor="RFC7356">
          <front>
            <title>IS-IS Flooding Scope Link State PDUs (LSPs)</title>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="Y. Yang" initials="Y." surname="Yang"/>
            <date month="September" year="2014"/>
            <abstract>
              <t indent="0">Intermediate System to Intermediate System (IS-IS) provides efficient and reliable flooding of information to its peers; however, the current flooding scopes are limited to either area scope or domain scope. There are existing use cases where support of other flooding scopes is desirable. This document defines new Protocol Data Units (PDUs) that provide support for new flooding scopes as well as additional space for advertising information targeted for the currently supported flooding scopes. This document also defines extended Type-Length-Values (TLVs) and sub-TLVs that are encoded using 16-bit fields for Type and Length.</t>
              <t indent="0">The protocol extensions defined in this document are not backwards compatible with existing implementations and so must be deployed with care.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7356"/>
          <seriesInfo name="DOI" value="10.17487/RFC7356"/>
        </reference>
        <reference anchor="RFC7474" target="https://www.rfc-editor.org/info/rfc7474" quoteTitle="true" derivedAnchor="RFC7474">
          <front>
            <title>Security Extension for OSPFv2 When Using Manual Key Management</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <date month="April" year="2015"/>
            <abstract>
              <t indent="0">The current OSPFv2 cryptographic authentication mechanism as defined in RFCs 2328 and 5709 is vulnerable to both inter-session and intra- session replay attacks when using manual keying. Additionally, the existing cryptographic authentication mechanism does not cover the IP header. This omission can be exploited to carry out various types of attacks.</t>
              <t indent="0">This document defines changes to the authentication sequence number mechanism that will protect OSPFv2 from both inter-session and intra- session replay attacks when using manual keys for securing OSPFv2 protocol packets. Additionally, we also describe some changes in the cryptographic hash computation that will eliminate attacks resulting from OSPFv2 not protecting the IP header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7474"/>
          <seriesInfo name="DOI" value="10.17487/RFC7474"/>
        </reference>
        <reference anchor="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="RFC7770" target="https://www.rfc-editor.org/info/rfc7770" quoteTitle="true" derivedAnchor="RFC7770">
          <front>
            <title>Extensions to OSPF for Advertising Optional Router Capabilities</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="N. Shen" initials="N." surname="Shen"/>
            <author fullname="JP. Vasseur" initials="JP." surname="Vasseur"/>
            <author fullname="R. Aggarwal" initials="R." surname="Aggarwal"/>
            <author fullname="S. Shaffer" initials="S." surname="Shaffer"/>
            <date month="February" year="2016"/>
            <abstract>
              <t indent="0">It is useful for routers in an OSPFv2 or OSPFv3 routing domain to know the capabilities of their neighbors and other routers in the routing domain. This document proposes extensions to OSPFv2 and OSPFv3 for advertising optional router capabilities. The Router Information (RI) Link State Advertisement (LSA) is defined for this purpose. In OSPFv2, the RI LSA will be implemented with an Opaque LSA type ID. In OSPFv3, the RI LSA will be implemented with a unique LSA type function code. In both protocols, the RI LSA can be advertised at any of the defined flooding scopes (link, area, or autonomous system (AS)). This document obsoletes RFC 4970 by providing a revised specification that includes support for advertisement of multiple instances of the RI LSA and a TLV for functional capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7770"/>
          <seriesInfo name="DOI" value="10.17487/RFC7770"/>
        </reference>
        <reference anchor="RFC7981" target="https://www.rfc-editor.org/info/rfc7981" quoteTitle="true" derivedAnchor="RFC7981">
          <front>
            <title>IS-IS Extensions for Advertising Router Information</title>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="October" year="2016"/>
            <abstract>
              <t indent="0">This document defines a new optional Intermediate System to Intermediate System (IS-IS) TLV named CAPABILITY, formed of multiple sub-TLVs, which allows a router to announce its capabilities within an IS-IS level or the entire routing domain. This document obsoletes RFC 4971.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7981"/>
          <seriesInfo name="DOI" value="10.17487/RFC7981"/>
        </reference>
        <reference anchor="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>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="Bondy" target="https://www.zib.de/groetschel/teaching/WS1314/BondyMurtyGTWA.pdf" quoteTitle="true" derivedAnchor="Bondy">
          <front>
            <title>Graph Theory With Applications</title>
            <author fullname="John Adrian Bondy" initials="J. A." surname="Bondy"/>
            <author fullname="U. S. R. Murty" initials="U. S. R." surname="Murty"/>
            <date year="1976"/>
          </front>
          <refcontent>Elsevier Science Publishing Co., Inc.</refcontent>
          <seriesInfo name="ISBN" value="0-444-19451-7"/>
        </reference>
        <reference anchor="Clos" quoteTitle="true" target="https://doi.org/10.1002/j.1538-7305.1953.tb01433.x" derivedAnchor="Clos">
          <front>
            <title>A study of non-blocking switching networks</title>
            <author fullname="Charles Clos" initials="C." surname="Clos"/>
            <date month="March" year="1953"/>
          </front>
          <seriesInfo name="DOI" value="10.1002/j.1538-7305.1953.tb01433.x"/>
          <refcontent>The Bell System Technical Journal, Volume 32, Issue 2, pp. 406-424</refcontent>
        </reference>
        <reference anchor="Leiserson" quoteTitle="true" target="https://doi.org/10.1109/TC.1985.6312192" derivedAnchor="Leiserson">
          <front>
            <title>Fat-trees: Universal networks for hardware-efficient supercomputing</title>
            <author fullname="C. E. Leiserson" initials="C. E." surname="Leiserson"/>
            <date month="10" year="1985"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/TC.1985.6312192"/>
          <refcontent>IEEE Transactions on Computers, Volume C-34, Issue 10, pp. 892-901</refcontent>
        </reference>
        <reference anchor="RFC2973" target="https://www.rfc-editor.org/info/rfc2973" quoteTitle="true" derivedAnchor="RFC2973">
          <front>
            <title>IS-IS Mesh Groups</title>
            <author fullname="R. Balay" initials="R." surname="Balay"/>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="J. Parker" initials="J." surname="Parker"/>
            <date month="October" year="2000"/>
            <abstract>
              <t indent="0">This document describes a mechanism to reduce redundant packet transmissions for the Intermediate System to Intermediate System (IS-IS) Routing protocol, as described in ISO 10589. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2973"/>
          <seriesInfo name="DOI" value="10.17487/RFC2973"/>
        </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="RFC4811" target="https://www.rfc-editor.org/info/rfc4811" quoteTitle="true" derivedAnchor="RFC4811">
          <front>
            <title>OSPF Out-of-Band Link State Database (LSDB) Resynchronization</title>
            <author fullname="L. Nguyen" initials="L." surname="Nguyen"/>
            <author fullname="A. Roy" initials="A." surname="Roy"/>
            <author fullname="A. Zinin" initials="A." surname="Zinin"/>
            <date month="March" year="2007"/>
            <abstract>
              <t indent="0">OSPF is a link-state intra-domain routing protocol used in IP networks. Link State Database (LSDB) synchronization in OSPF is achieved via two methods -- initial LSDB synchronization when an OSPF router has just been connected to the network and asynchronous flooding that ensures continuous LSDB synchronization in the presence of topology changes after the initial procedure was completed. It may sometime be necessary for OSPF routers to resynchronize their LSDBs. The OSPF standard, however, does not allow routers to do so without actually changing the topology view of the network.</t>
              <t indent="0">This memo describes a vendor-specific mechanism to perform such a form of out-of-band LSDB synchronization. The mechanism described in this document was proposed before Graceful OSPF Restart, as described in RFC 3623, came into existence. It is implemented/supported by at least one major vendor and is currently deployed in the field. The purpose of this document is to capture the details of this mechanism for public use. This mechanism is not an IETF standard. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4811"/>
          <seriesInfo name="DOI" value="10.17487/RFC4811"/>
        </reference>
        <reference anchor="RFC7370" target="https://www.rfc-editor.org/info/rfc7370" quoteTitle="true" derivedAnchor="RFC7370">
          <front>
            <title>Updates to the IS-IS TLV Codepoints Registry</title>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <date month="September" year="2014"/>
            <abstract>
              <t indent="0">This document recommends some editorial changes to the IANA "IS-IS TLV Codepoints" registry to more accurately document the state of the protocol. It also sets out new guidelines for Designated Experts to apply when reviewing allocations from the registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7370"/>
          <seriesInfo name="DOI" value="10.17487/RFC7370"/>
        </reference>
        <reference anchor="RFC7938" target="https://www.rfc-editor.org/info/rfc7938" quoteTitle="true" derivedAnchor="RFC7938">
          <front>
            <title>Use of BGP for Routing in Large-Scale Data Centers</title>
            <author fullname="P. Lapukhov" initials="P." surname="Lapukhov"/>
            <author fullname="A. Premji" initials="A." surname="Premji"/>
            <author fullname="J. Mitchell" initials="J." role="editor" surname="Mitchell"/>
            <date month="August" year="2016"/>
            <abstract>
              <t indent="0">Some network operators build and operate data centers that support over one hundred thousand servers. In this document, such data centers are referred to as "large-scale" to differentiate them from smaller infrastructures. Environments of this scale have a unique set of network requirements with an emphasis on operational simplicity and network stability. This document summarizes operational experience in designing and operating large-scale data centers using BGP as the only routing protocol. The intent is to report on a proven and stable routing design that could be leveraged by others in the industry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7938"/>
          <seriesInfo name="DOI" value="10.17487/RFC7938"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to thank <contact fullname="Sarah Chen"/>,
      <contact fullname="Tony Przygienda"/>, <contact fullname="Dave       Cooper"/>, <contact fullname="Gyan Mishra"/>, and <contact fullname="Les       Ginsberg"/> for their contributions to this work. The authors would also
      like to thank Arista Networks for supporting the development of this
      technology.</t>
      <t indent="0" pn="section-appendix.a-2">The authors would like to thank <contact fullname="Zeqing (Fred)       Xia"/>, <contact fullname="Naiming Shen"/>, <contact fullname="Adam       Sweeney"/>, <contact fullname="Acee Lindem"/>, and <contact fullname="Olufemi Komolafe"/> for their helpful comments.</t>
      <t indent="0" pn="section-appendix.a-3">The authors would like to thank <contact fullname="Tom Edsall"/> for initially introducing                                         
      them to the problem.</t>
      <t indent="0" pn="section-appendix.a-4">Advertising Local Edges Enabled for Flooding (LEEF) is based on an
      idea proposed by <contact fullname="Huaimo Chen"/>, <contact fullname="Mehmet Toy"/>, <contact fullname="Yi Yang"/>, <contact fullname="Aijun Wang"/>, <contact fullname="Xufeng Liu"/>, <contact fullname="Yanhe Fan"/>, and <contact fullname="Lei Liu"/>.  The authors wish to
      thank them for their contributions.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Tony Li" initials="T." role="editor" surname="Li">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <postal>
            <street>1133 Innovation Way</street>
            <city>Sunnyvale</city>
            <region>California</region>
            <code>94089</code>
            <country>United States of America</country>
          </postal>
          <email>tony.li@tony.li</email>
        </address>
      </author>
      <author fullname="Peter Psenak" initials="P." role="editor" surname="Psenak">
        <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
        <address>
          <postal>
            <street>Eurovea Centre, Central 3</street>
            <street>Pribinova Street 10</street>
            <city>Bratislava</city>
            <code>81109</code>
            <country>Slovakia</country>
          </postal>
          <email>ppsenak@cisco.com</email>
        </address>
      </author>
      <author fullname="Huaimo Chen" initials="H" surname="Chen">
        <organization showOnFrontPage="true">Futurewei</organization>
        <address>
          <postal>
            <city>Boston</city>
            <region>Massachusetts</region>
            <country>United States of America</country>
          </postal>
          <email>hchen.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Luay Jalil" initials="L." surname="Jalil">
        <organization showOnFrontPage="true">Verizon</organization>
        <address>
          <postal>
            <street/>
            <city>Richardson</city>
            <region>Texas</region>
            <code>75081</code>
            <country>United States of America</country>
          </postal>
          <email>luay.jalil@verizon.com</email>
        </address>
      </author>
      <author fullname="Srinath Dontula" initials="S." surname="Dontula">
        <organization showOnFrontPage="true">AT&amp;T</organization>
        <address>
          <postal>
            <street>200 S Laurel Ave</street>
            <city>Middletown</city>
            <region>New Jersey</region>
            <code>07748</code>
            <country>United States of America</country>
          </postal>
          <email>sd947e@att.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
