<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" docName="draft-ietf-lsvr-applicability-22" number="9816" ipr="trust200902" submissionType="IETF" tocDepth="3" tocInclude="true" symRefs="true" sortRefs="true" updates="" obsoletes="" consensus="true" xml:lang="en" prepTime="2025-07-20T14:29:24" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lsvr-applicability-22" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9816" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="BGP-LS SPF Applicability in DCs">Usage and Applicability of BGP Link State (BGP-LS) Shortest Path First (SPF) Routing in Data Centers</title>
    <seriesInfo name="RFC" value="9816" stream="IETF"/>
    <author fullname="Keyur Patel" initials="K" surname="Patel">
      <organization showOnFrontPage="true">Arrcus, Inc.</organization>
      <address>
        <postal>
          <street>2077 Gateway Pl</street>
          <city>San Jose</city>
          <region>CA</region>
          <country>United States of America</country>
          <code>95110</code>
        </postal>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <author fullname="Acee Lindem" initials="A" surname="Lindem">
      <organization showOnFrontPage="true">Arrcus, Inc.</organization>
      <address>
        <postal>
          <street>301 Midenhall Way</street>
          <city>Cary</city>
          <region>NC</region>
          <country>United States of America</country>
          <code>27513</code>
        </postal>
        <email>acee.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Shawn Zandi" initials="S" surname="Zandi">
      <organization showOnFrontPage="true"/>
      <address>
        <email>shafagh@shafagh.com</email>
      </address>
    </author>
    <author fullname="Gaurav Dawra" initials="G" surname="Dawra">
      <organization showOnFrontPage="true">Google</organization>
      <address>
        <postal>
          <city>Sunnyvale</city>
          <region>CA</region>
          <country>United States of America</country>
        </postal>
        <email>gdawra.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Jie Dong" initials="J." surname="Dong">
      <organization showOnFrontPage="true">Huawei Technologies</organization>
      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>jie.dong@huawei.com</email>
      </address>
    </author>
    <date month="07" year="2025"/>
    <area>RTG</area>
    <workgroup>lsvr</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document discusses the usage and applicability of BGP Link State (BGP-LS)
      Shortest Path First (SPF) extensions in data center networks
      utilizing Clos or Fat Tree topologies. The document is intended to
      provide simplified guidance for the deployment of BGP-LS SPF
      extensions.</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 informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by the
            Internet Engineering Steering Group (IESG).  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/rfc9816" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </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-recommended-reading">Recommended Reading</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" 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-common-deployment-scenario">Common Deployment Scenario</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-justification-for-the-bgp-s">Justification for the BGP-SPF Extension</xref></t>
          </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-bgp-spf-applicability-to-cl">BGP-SPF Applicability to Clos Networks</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-usage-of-bgp-ls-spf-safi">Usage of BGP-LS-SPF SAFI</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-relationship-to-other-bgp-a">Relationship to Other BGP AFI/SAFI Tuples</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-peering-models">Peering Models</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-sparse-peering-model">Sparse Peering Model</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-biconnected-graph-heuristic">Biconnected Graph Heuristic</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-spine-leaf-topology-pol">BGP Spine/Leaf Topology Policy</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-peer-discovery-consider">BGP Peer Discovery Considerations</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.5">
                <t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent="5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-peer-discovery">BGP Peer Discovery</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.5.2">
                  <li pn="section-toc.1-1.5.2.5.2.1">
                    <t indent="0" pn="section-toc.1-1.5.2.5.2.1.1"><xref derivedContent="5.5.1" format="counter" sectionFormat="of" target="section-5.5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-ipv6-simplified-peering">BGP IPv6 Simplified Peering</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.5.2.2">
                    <t indent="0" pn="section-toc.1-1.5.2.5.2.2.1"><xref derivedContent="5.5.2" format="counter" sectionFormat="of" target="section-5.5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-ls-spf-topology-visibil">BGP-LS-SPF Topology Visibility for Management</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.5.2.3">
                    <t indent="0" pn="section-toc.1-1.5.2.5.2.3.1"><xref derivedContent="5.5.3" format="counter" sectionFormat="of" target="section-5.5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data-center-interconnect-dc">Data Center Interconnect (DCI) Applicability</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-non-clos-fat-tree-topology-">Non-Clos / Fat Tree Topology Applicability</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-non-transit-node-capability">Non-Transit Node Capability</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-policy-applicability">BGP Policy Applicability</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-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.11.2">
              <li pn="section-toc.1-1.11.2.1">
                <t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.11.2.2">
                <t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" 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.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">This document complements <xref format="default" target="RFC9815" sectionFormat="of" derivedContent="RFC9815"/>
      by discussing the applicability of the BGP Link State (BGP-LS) Shortest
      Path First (SPF) technology in a simple and fairly common deployment
      scenario, which is described in <xref format="default" target="usecases" sectionFormat="of" derivedContent="Section 3"/>.</t>
      <t indent="0" pn="section-1-2"><xref format="default" target="motivation" sectionFormat="of" derivedContent="Section 4"/> describes the reasons
      for BGP modifications for such deployments.</t>
      <t indent="0" pn="section-1-3"><xref format="default" target="bgpspf" sectionFormat="of" derivedContent="Section 5"/> covers the BGP SPF protocol enhancements to BGP to meet these
      requirements and their applicability to data center <xref format="default" target="Clos" sectionFormat="of" derivedContent="Clos"/> networks.</t>
    </section>
    <section anchor="reco" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-recommended-reading">Recommended Reading</name>
      <t indent="0" pn="section-2-1">This document assumes knowledge of existing data center networks and
      data center network topologies <xref format="default" target="Clos" sectionFormat="of" derivedContent="Clos"/>.
      This document also assumes knowledge of data center routing protocols
      such as BGP <xref format="default" target="RFC4271" sectionFormat="of" derivedContent="RFC4271"/>, BGP-LS SPF <xref format="default" target="RFC9815" sectionFormat="of" derivedContent="RFC9815"/>, and OSPF <xref format="default" target="RFC2328" sectionFormat="of" derivedContent="RFC2328"/> <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/> as well as
      data center Operations, Administration, and Maintenance (OAM) protocols
      like the Link Layer Discovery Protocol (LLDP) <xref format="default" target="RFC4957" sectionFormat="of" derivedContent="RFC4957"/> and Bidirectional Forwarding Detection (BFD) <xref format="default" target="RFC5880" sectionFormat="of" derivedContent="RFC5880"/>.</t>
    </section>
    <section anchor="usecases" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-common-deployment-scenario">Common Deployment Scenario</name>
      <t indent="0" pn="section-3-1">Within a data center, servers are commonly interconnected using the
      Clos topology <xref format="default" target="Clos" sectionFormat="of" derivedContent="Clos"/>. The Clos topology
      is fully non-blocking, and the topology is realized using Equal-Cost
      Multipath (ECMP). In a multi-stage Clos topology, the minimum number of
      parallel paths in each tier is determined by the width of the stage as
      shown in <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/>.</t>
      <figure anchor="fig1" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-illustration-of-the-basic-c">Illustration of the Basic Clos</name>
        <artwork align="left" alt="" name="" type="" pn="section-3-2.1">
                                  Tier 1
                                  +-----+
                                  |NODE |
                               +-&gt;|  1  |--+
                               |  +-----+  |
                       Tier 2  |           |  Tier 2
                      +-----+  |  +-----+  |  +-----+
       +-------------&gt;|NODE |--+-&gt;|NODE |--+--|NODE |--------------+
       |        +-----|  5  |--+  |  2  |  +--|  7  |-----+        |
       |        |     +-----+     +-----+     +-----+     |        |
       |        |                                         |        |
       |        |     +-----+     +-----+     +-----+     |        |
       | +------+----&gt;|NODE |--+  |NODE |  +--|NODE |-----+------+ |
       | |      | +---|  6  |--+-&gt;|  3  |--+--|  8  |---+ |      | |
       | |      | |   +-----+  |  +-----+  |  +-----+   | |      | |
       | |Tier 3| |            |           |            | |Tier 3| |
     +-----+ +-----+           |  +-----+  |          +-----+ +-----+
     |NODE | |NODE |           +-&gt;|NODE |--+          |NODE | |NODE |
     |  9  | | 10  |              |  4  |             | 11  | | 12  |
     +-----+ +-----+              +-----+             +-----+ +-----+
      | | |   | | |                                    | | |    | | |
      &lt;- Servers -&gt;                                    &lt;- Servers -&gt;
        </artwork>
      </figure>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-3">
        <li pn="section-3-3.1">Tier 1 is comprised of Nodes 1, 2, 3, and 4</li>
        <li pn="section-3-3.2">Tier 2 is comprised of Nodes 5, 6, 7, and 8</li>
        <li pn="section-3-3.3">Tier 3 is comprised of Nodes 9, 10, 11, and 12</li>
      </ul>
    </section>
    <section anchor="motivation" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-justification-for-the-bgp-s">Justification for the BGP-SPF Extension</name>
      <t indent="0" pn="section-4-1">To simplify Layer 3 (L3) routing and operations, many data centers use BGP as a
      routing protocol to create both an underlay and an overlay network for
      their Clos topologies <xref format="default" target="RFC7938" sectionFormat="of" derivedContent="RFC7938"/>.
      However, BGP is a path-vector routing protocol. Since it does not create
      a fabric topology, it uses hop-by-hop External BGP (EBGP) peering to
      facilitate hop-by-hop routing to create the underlay network and to
      resolve any overlay next hops. The hop-by-hop BGP peering paradigm
      imposes several restrictions within a Clos. It prohibits the deployment
      of route reflectors / route controllers as the EBGP sessions are congruent
      with the data path. The BGP best-path algorithm is prefix based, and it
      prevents announcements of prefixes to other BGP speakers until the
      best-path decision process has been performed for the prefix at each
      intermediate hop. These restrictions significantly delay the overall
      convergence of the underlay network within a Clos network.</t>
      <t indent="0" pn="section-4-2">The BGP SPF modifications allow BGP to overcome these limitations.
      Furthermore, using the BGP-LS Network Layer Reachability Information
      (NLRI) format allows the BGP SPF data to be advertised for nodes, links,
      and prefixes in the BGP routing domain <xref target="RFC9552" format="default" sectionFormat="of" derivedContent="RFC9552"/> and used for SPF computations <xref target="RFC9815" format="default" sectionFormat="of" derivedContent="RFC9815"/>.</t>
      <t indent="0" pn="section-4-3">Additional motivation for deploying BGP-SPF is included in <xref target="RFC9815" format="default" sectionFormat="of" derivedContent="RFC9815"/>.</t>
    </section>
    <section anchor="bgpspf" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-bgp-spf-applicability-to-cl">BGP-SPF Applicability to Clos Networks</name>
      <t indent="0" pn="section-5-1">With the BGP-SPF extensions <xref format="default" target="RFC9815" sectionFormat="of" derivedContent="RFC9815"/>, the BGP best-path computation and
      route computation are replaced with link-state algorithms such as those
      used by OSPF <xref format="default" target="RFC2328" sectionFormat="of" derivedContent="RFC2328"/>, both to
      determine whether a BGP-LS-SPF NLRI has changed and needs to be
      readvertised and to compute the BGP routes. These modifications will
      significantly improve convergence of the underlay while affording the
      operational benefits of a single routing protocol <xref format="default" target="RFC7938" sectionFormat="of" derivedContent="RFC7938"/>.</t>
      <t indent="0" pn="section-5-2">Data center controllers typically require visibility to the BGP
      topology to compute traffic-engineered paths. These controllers learn
      the topology and other relevant information via the BGP-LS address
      family <xref format="default" target="RFC9552" sectionFormat="of" derivedContent="RFC9552"/>, which is totally
      independent of the underlay address families (usually IPv4/IPv6
      unicast). Furthermore, in usual BGP underlays, all the BGP routers
      will need to advertise their BGP-LS information independently. With the
      BGP-SPF extensions, controllers can learn the topology using the same
      BGP advertisements used to compute the underlay routes. Furthermore,
      these data center controllers can avail the convergence advantages of
      the BGP-SPF extensions. The placement of controllers can be outside of
      the forwarding path or within the forwarding path.</t>
      <t indent="0" pn="section-5-3">Alternatively, as each and every router in the BGP-SPF domain will
      have a complete view of the topology, the operator can also choose to
      configure BGP sessions in the hop-by-hop peering model described in
      <xref format="default" target="RFC7938" sectionFormat="of" derivedContent="RFC7938"/> along with BFD <xref format="default" target="RFC5880" sectionFormat="of" derivedContent="RFC5880"/>. In doing so, while the hop-by-hop
      peering model lacks the inherent benefits of the controller-based model,
      BGP updates need not be serialized by the BGP best-path algorithm in
      either of these models. This helps overall network convergence.</t>
      <section anchor="lsvrsafi" numbered="true" removeInRFC="false" toc="include" pn="section-5.1">
        <name slugifiedName="name-usage-of-bgp-ls-spf-safi">Usage of BGP-LS-SPF SAFI</name>
        <t indent="0" pn="section-5.1-1"><xref section="5.1" sectionFormat="of" format="default" target="RFC9815" derivedLink="https://rfc-editor.org/rfc/rfc9815#section-5.1" derivedContent="RFC9815"/> defines a new BGP-LS-SPF SAFI for
        announcement of the BGP-SPF link-state. The NLRI format and its
        associated attributes follow the format of BGP-LS for node, link, and
        prefix announcements. Whether the peering model within a Clos follows
        hop-by-hop peering as described in <xref format="default" target="RFC7938" sectionFormat="of" derivedContent="RFC7938"/> or any controller-based or route-reflector peering,
        an operator can exchange BGP-LS-SPF SAFI routes over the BGP peering
        by simply configuring BGP-LS-SPF SAFI between the necessary BGP
        speakers.</t>
        <t indent="0" pn="section-5.1-2">The BGP-LS-SPF SAFI can also coexist with BGP IP Unicast SAFI
        <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/>, which could exchange overlapping IP routes.
        One use case for this is where BGP-LS-SPF routes are used for the
        underlay and BGP IP Unicast routes for VPNs are advertised in the
        overlay as described in <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>. The routes received
        by these SAFIs are evaluated, stored, and announced independently
        according to the rules of <xref format="default" target="RFC4760" sectionFormat="of" derivedContent="RFC4760"/>.
        The tiebreaking of route installation is a matter of the local
        policies and preferences of the network operator.</t>
        <t indent="0" pn="section-5.1-3">Finally, as the BGP-SPF peering is done following the procedures
        described in <xref format="default" target="RFC4271" sectionFormat="of" derivedContent="RFC4271"/>, all the
        existing transport security mechanisms including those in <xref format="default" target="RFC5925" sectionFormat="of" derivedContent="RFC5925"/> are available for the BGP-LS-SPF
        SAFI.</t>
        <section anchor="other-safi" numbered="true" removeInRFC="false" toc="include" pn="section-5.1.1">
          <name slugifiedName="name-relationship-to-other-bgp-a">Relationship to Other BGP AFI/SAFI Tuples</name>
          <t indent="0" pn="section-5.1.1-1">Normally, the BGP-LS-SPF AFI/SAFI is used solely to compute the
          underlay and is given precedence over other AFI/SAFIs in route
          processing. Other BGP SAFIs, e.g., IPv6/IPv6 unicast VPN, would use
          the BGP-SPF computed routes for next-hop resolution.</t>
        </section>
      </section>
      <section anchor="peering" numbered="true" removeInRFC="false" toc="include" pn="section-5.2">
        <name slugifiedName="name-peering-models">Peering Models</name>
        <t indent="0" pn="section-5.2-1">As previously stated, BGP-SPF can be deployed using the existing
        peering model where there is a single-hop BGP session on each and
        every link in the data center fabric <xref format="default" target="RFC7938" sectionFormat="of" derivedContent="RFC7938"/>. This provides for both the advertisement of routes
        and the determination of link and neighboring router availability.
        With BGP-SPF, the underlay will converge faster due to changes to the
        decision process that will allow NLRI changes to be advertised faster
        after detecting a change.</t>
        <section anchor="sparse-peering" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.1">
          <name slugifiedName="name-sparse-peering-model">Sparse Peering Model</name>
          <t indent="0" pn="section-5.2.1-1">Alternately, BFD <xref format="default" target="RFC5880" sectionFormat="of" derivedContent="RFC5880"/> can be
          used to swiftly determine the availability of links, and the BGP
          peering model can be significantly sparser than the data center
          fabric. BGP-SPF sessions only need to be established with enough
          peers to provide a biconnected graph. If Internal BGP (IBGP) is
          used, then the BGP routers at tier N-1 will act as route-reflectors
          for the routers at tier N.</t>
          <t indent="0" pn="section-5.2.1-2">The obvious usage of sparse peering is to avoid parallel BGP
          sessions on links between the same two routers in the data center
          fabric. However, this use case is not very useful since parallel L3
          links between the same two BGP routers are rare in Clos or Fat Tree
          topologies. Additionally, when there are multiple links, they are
          often aggregated using Link Aggregation Groups
          (LAGs) at the link layer <xref target="IEEE.802.1AX" format="default" sectionFormat="of" derivedContent="IEEE.802.1AX"/> rather than at the IP layer.
          Two more interesting scenarios are described below.</t>
          <t indent="0" pn="section-5.2.1-3">In current data center topologies, there is often a very dense
          mesh of links between levels, e.g., leaf and spine, providing
          32-way paths, 64-way paths, or more ECMPs. In these
          topologies, it is desirable not to have a BGP session on every link,
          and techniques such as the one described in <xref format="default" target="bi-connected" sectionFormat="of" derivedContent="Section 5.2.2"/> can be used to establish sessions on some
          subset of northbound links. For example, in a Spine/Leaf topology,
          each leaf router would only peer with a subset of the spines
          dependent on the flooding redundancy required to be reasonably
          certain that every node within the BGP-SPF routing domain has the
          complete topology.</t>
          <t indent="0" pn="section-5.2.1-4">Alternately, controller-based data center topologies are
          envisioned where BGP speakers within the data center only establish
          BGP sessions with two or more controllers. In these topologies,
          fabric nodes below the first tier, as shown in Figure 1 of <xref format="default" target="RFC7938" sectionFormat="of" derivedContent="RFC7938"/>, will establish BGP multi-hop
          sessions with the controllers. For the multi-hop sessions,
          determining the route to the controllers without depending on BGP
          would need to be through some other means, which is beyond the scope of this
          document. However, the BGP discovery mechanisms described in <xref format="default" target="bgp-discovery" sectionFormat="of" derivedContent="Section 5.5"/> would be one
          possibility.</t>
        </section>
        <section anchor="bi-connected" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.2">
          <name slugifiedName="name-biconnected-graph-heuristic">Biconnected Graph Heuristic</name>
          <t indent="0" pn="section-5.2.2-1">With a biconnected graph heuristic, discovery of BGP SPF peers is assumed, e.g.,
          as described in <xref format="default" target="bgp-discovery" sectionFormat="of" derivedContent="Section 5.5"/>. In
          this context, "biconnected" refers to the fact that there must be
          an advertised Link NLRI for both BGP SPF peers associated with the
          link before the link can be used in the BGP SPF route calculation.
          Additionally, it is assumed that the direction of the peering can be
          ascertained. In the context of a data center fabric, the direction
          is either northbound (toward the spine), southbound (toward the
          Top-of-Rack (ToR) routers), or east-west (same level in the
          hierarchy). The determination of the direction is beyond the scope
          of this document. However, it would be reasonable to assume a
          technique where the ToR routers can be identified and the number of
          hops to the ToR is used to determine the direction.</t>
          <t indent="0" pn="section-5.2.2-2">In this heuristic, BGP speakers allow passive session
          establishment for southbound BGP sessions. For northbound sessions,
          BGP speakers will attempt to maintain two northbound BGP sessions
          with different routers. For east-west sessions, passive BGP session
          establishment is allowed. However, a BGP speaker will never actively
          establish an east-west BGP session unless it cannot establish two
          northbound BGP sessions.</t>
          <t indent="0" pn="section-5.2.2-3">BGP SPF sparse peering deployments not using this heuristic are
          possible but are not described herein and are considered out of
          scope.</t>
        </section>
      </section>
      <section anchor="bgp-policy" numbered="true" removeInRFC="false" toc="include" pn="section-5.3">
        <name slugifiedName="name-bgp-spine-leaf-topology-pol">BGP Spine/Leaf Topology Policy</name>
        <t indent="0" pn="section-5.3-1">One of the advantages of using BGP-SPF as the underlay protocol is
        that BGP policy can be applied at any level. For example, depending on
        the topology, it may be possible to aggregate or filter prefix
        advertisements using the existing BGP policy. In Spine/Leaf topologies, it
        is not necessary to advertise a BGP-LS Prefix NLRI received by leaf
        nodes from the spine back to other spine nodes. If a common Autonomous System (AS) is used
        for the spine nodes, this can easily be accomplished with EBGP and a
        simple policy to filter advertisements from the leaves to the spine if
        the first AS in the AS path is the spine AS.</t>
        <t indent="0" pn="section-5.3-2">In the figure below, the leaves would not advertise any NLRIs with
        AS 64512 as the first AS in the AS path.</t>
        <figure anchor="fig2" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-spine-leaf-topology-policy">Spine/Leaf Topology Policy</name>
          <artwork align="left" alt="" name="" type="" pn="section-5.3-3.1">
             +--------+    +--------+             +--------+
 AS 64512    |        |    |        |             |        |
 for Spine   | Spine 1+----+ Spine 2+- ......... -+ Spine N|
 Nodes at    |        |    |        |             |        |
 this Level  +-+-+-+-++    ++-+-+-+-+             +-+-+-+-++
        +------+ | | |      | | | |                 | | | |
        |  +-----|-|-|------+ | | |                 | | | |
        |  |  +--|-|-|--------+-|-|-----------------+ | | |
        |  |  |  | | |    +---+ | |                   | | |
        |  |  |  | | |    |  +--|-|-------------------+ | |
        |  |  |  | | |    |  |  | |              +------+ +----+
        |  |  |  | | |    |  |  | +--------------|----------+  |
        |  |  |  | | |    |  |  +-------------+  |          |  |
        |  |  |  | | +----|--|----------------|--|--------+ |  |
        |  |  |  | +------|--|--------------+ |  |        | |  |
        |  |  |  +------+ |  |              | |  |        | |  |
       ++--+--++      +-+-+--++            ++-+--+-+     ++-+--+-+
       | Leaf 1|      | Leaf 2|  ........  | Leaf X|     | Leaf Y|
       +-------+      +-------+            +-------+     +-------+
</artwork>
        </figure>
      </section>
      <section anchor="bgp-discovery-con" numbered="true" removeInRFC="false" toc="include" pn="section-5.4">
        <name slugifiedName="name-bgp-peer-discovery-consider">BGP Peer Discovery Considerations</name>
        <t indent="0" pn="section-5.4-1">The basic functionality of peer discovery is to discover the
        address of a single-hop peer in the case where the peer address is not
        preconfigured. This is being accomplished today by using IPv6 Router
        Advertisements (RAs) <xref format="default" target="RFC4861" sectionFormat="of" derivedContent="RFC4861"/> and
        assuming that a BGP session is desired with any discovered peer.
        Beyond the basic functionality, it may be useful to have the following
        information relating to the BGP session:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5.4-2">
          <li pn="section-5.4-2.1">
            <t indent="0" pn="section-5.4-2.1.1">The AS and BGP Identifier of a potential
          peer.</t>
          </li>
          <li pn="section-5.4-2.2">
            <t indent="0" pn="section-5.4-2.2.1">Supported security capabilities, and for cryptographic
          authentication, the security capabilities and possibly a key chain
          <xref format="default" target="RFC8177" sectionFormat="of" derivedContent="RFC8177"/> for use.</t>
          </li>
          <li pn="section-5.4-2.3">
            <t indent="0" pn="section-5.4-2.3.1">A Session Policy Identifier, which is a group number or name used to
          associate common session parameters with the peer. For example, in a
          data center, BGP sessions with a ToR router could have different
          parameters than BGP sessions between leaf and spine nodes.</t>
          </li>
        </ul>
        <t indent="0" pn="section-5.4-3">In a data center fabric, it is often useful to know whether a peer
        is southbound (towards the servers) or northbound (towards the spine
        or super-spine), e.g., see <xref format="default" target="bi-connected" sectionFormat="of" derivedContent="Section 5.2.2"/>.
        One mechanism, without specifying all the details, might be for the
        ToR routers to be identified when installed and for the other routers
        in the fabric to determine their level based on the distance from the
        closest ToR router.</t>
        <t indent="0" pn="section-5.4-4">If there are multiple links between BGP speakers or the links
        between BGP speakers are unnumbered, it is also useful to be able to
        establish multi-hop sessions using the loopback addresses. This will
        often require the discovery protocol to install one or more routes toward the
        potential peer loopback addresses prior to BGP session
        establishment.</t>
        <t indent="0" pn="section-5.4-5">Finally, a simple BGP discovery protocol may be used to establish a
        multi-hop session with one or more controllers by advertising
        connectivity to one or more controllers.</t>
      </section>
      <section anchor="bgp-discovery" numbered="true" removeInRFC="false" toc="include" pn="section-5.5">
        <name slugifiedName="name-bgp-peer-discovery">BGP Peer Discovery</name>
        <section anchor="bgp-ipv6-peering" numbered="true" removeInRFC="false" toc="include" pn="section-5.5.1">
          <name slugifiedName="name-bgp-ipv6-simplified-peering">BGP IPv6 Simplified Peering</name>
          <t indent="0" pn="section-5.5.1-1">To conserve IPv4 address space and simplify operations, BGP-SPF
          routers in Clos / Fat Tree deployments can use IPv6 addresses as the peer
          address. For IPv4 address families, IPv6 peering as specified in
          <xref format="default" target="RFC8950" sectionFormat="of" derivedContent="RFC8950"/> can be deployed to avoid
          configuring IPv4 addresses on router interfaces. When this is done,
          dynamic discovery mechanisms, as described in <xref format="default" target="bgp-discovery" sectionFormat="of" derivedContent="Section 5.5"/>, can be used to learn the global or
          link-local IPv6 peer addresses, and IPv4 addresses need not be
          configured on these interfaces. If IPv6 link-local peering is used,
          then configuration of IPv6 global addresses is also not required
          <xref target="RFC7404" format="default" sectionFormat="of" derivedContent="RFC7404"/>. 

The Link Local/Remote Identifiers of the
          peering interfaces must be used in the Link NLRI as described in
          <xref section="5.2.2" sectionFormat="of" target="RFC9815" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9815#section-5.2.2" derivedContent="RFC9815"/>.</t>
        </section>
        <section anchor="config-checking" numbered="true" removeInRFC="false" toc="include" pn="section-5.5.2">
          <name slugifiedName="name-bgp-ls-spf-topology-visibil">BGP-LS-SPF Topology Visibility for Management</name>
          <t indent="0" pn="section-5.5.2-1">Irrespective of whether or not BGP-SPF is used for route
          calculation, the BGP-LS-SPF route advertisements can be used to
          periodically construct the Clos / Fat Tree topology. This is
          especially useful in deployments where an Interior Gateway Protocol
          (IGP) is not used and the base BGP-LS routes <xref format="default" target="RFC9552" sectionFormat="of" derivedContent="RFC9552"/> are not available. The resultant topology
          visibility can then be used for troubleshooting and consistency
          checking. This would normally be done on a central controller or
          other management tool that could also be used for fabric data path
          verification. The precise algorithms and heuristics, as well as the
          complete set of management applications, is beyond the scope of this
          document.</t>
        </section>
        <section anchor="dci" numbered="true" removeInRFC="false" toc="include" pn="section-5.5.3">
          <name slugifiedName="name-data-center-interconnect-dc">Data Center Interconnect (DCI) Applicability</name>
          <t indent="0" pn="section-5.5.3-1">Since BGP-SPF is to be used for the routing underlay and Data Center Interconnect (DCI)
          gateway boxes typically have direct or very simple connectivity, BGP
          external sessions would typically not include the BGP-LS-SPF
          SAFI.</t>
        </section>
      </section>
    </section>
    <section anchor="other-env" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-non-clos-fat-tree-topology-">Non-Clos / Fat Tree Topology Applicability</name>
      <t indent="0" pn="section-6-1">The BGP-SPF extensions <xref format="default" target="RFC9815" sectionFormat="of" derivedContent="RFC9815"/> can be used in other topologies and
      avail the inherent convergence improvements. Additionally, sparse
      peering techniques may be utilized as described in <xref format="default" target="peering" sectionFormat="of" derivedContent="Section 5.2"/>. However, determining whether to establish a BGP
      session is more complex, and the heuristic described in <xref format="default" target="bi-connected" sectionFormat="of" derivedContent="Section 5.2.2"/> cannot be used. In such
      topologies, other techniques such as those described in <xref format="default" target="RFC9667" sectionFormat="of" derivedContent="RFC9667"/> may be employed. One potential
      deployment would be the underlay for a Service Provider (SP) backbone
      where usage of a single protocol, i.e., BGP, is desired.</t>
    </section>
    <section anchor="non-transit-node" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-non-transit-node-capability">Non-Transit Node Capability</name>
      <t indent="0" pn="section-7-1">In certain scenarios, a BGP node wishes to participate in the BGP-SPF
      topology but never be used for transit traffic. These include situations
      where a server wants to make application services available to clients
      homed at subnets throughout the BGP-SPF domain but does not ever want to
      be used as a router (i.e., carry transit traffic). Another specific
      instance is where a controller is resident on a server and direct
      connectivity to the controller is required throughout the entire domain.
      This can readily be accomplished using the BGP-LS-SPF Node NLRI Attribute
      SPF Status TLV as described in <xref format="default" target="RFC9815" sectionFormat="of" derivedContent="RFC9815"/>.</t>
    </section>
    <section anchor="policy" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-bgp-policy-applicability">BGP Policy Applicability</name>
      <t indent="0" pn="section-8-1">Existing BGP policy such as prefix filtering may be used in
      conjunction with the BGP-LS-SPF SAFI. When BGP policy is used with the
      BGP-LS-SPF SAFI, BGP speakers in the BGP-LS-SPF routing domain will not
      all have the same set of NLRIs and will compute a different BGP local
      routing table. Consequently, care must be taken to assure that routing is
      consistent and that routes to unreachable destinations or routing loops do not ensue. However, this
      is no different than if classical BGP routing using the IPv4 and IPv6
      address families were used.</t>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-9-1">This document has no IANA actions.</t>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-10">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-10-1">This document introduces no new security considerations above and
      beyond those already specified in <xref format="default" target="RFC4271" sectionFormat="of" derivedContent="RFC4271"/> and <xref format="default" target="RFC9815" sectionFormat="of" derivedContent="RFC9815"/>.</t>
    </section>
  </middle>
  <back>
    <references pn="section-11">
      <name slugifiedName="name-references">References</name>
      <references pn="section-11.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC9815" target="https://www.rfc-editor.org/info/rfc9815" quoteTitle="true" derivedAnchor="RFC9815">
          <front>
            <title>BGP Link State (BGP-LS) Shortest Path First (SPF) Routing</title>
            <author initials="K." surname="Patel" fullname="Keyur Patel">
              <organization showOnFrontPage="true">Arrcus, Inc.</organization>
            </author>
            <author initials="A." surname="Lindem" fullname="Acee Lindem">
              <organization showOnFrontPage="true">LabN Consulting, LLC</organization>
            </author>
            <author initials="S." surname="Zandi" fullname="Shawn Zandi">
              <organization showOnFrontPage="true">LinkedIn</organization>
            </author>
            <author initials="W." surname="Henderickx" fullname="Wim Henderickx">
              <organization showOnFrontPage="true">Nokia</organization>
            </author>
            <date month="July" year="2025"/>
          </front>
          <seriesInfo name="RFC" value="9815"/>
          <seriesInfo name="DOI" value="10.17487/RFC9815"/>
        </reference>
      </references>
      <references pn="section-11.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="Clos" target="https://doi.org/10.1002/j.1538-7305.1953.tb01433.x" quoteTitle="true" derivedAnchor="Clos">
          <front>
            <title>A Study of Non-Blocking Switching Networks</title>
            <author initials="C." surname="Clos">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="March" year="1953"/>
          </front>
          <refcontent>The Bell System Technical Journal, vol. 32, no. 2, pp. 406-424</refcontent>
          <seriesInfo name="DOI" value="10.1002/j.1538-7305.1953.tb01433.x"/>
        </reference>
        <reference anchor="IEEE.802.1AX" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2020.9105034" derivedAnchor="IEEE.802.1AX">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks--Link Aggregation</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date month="May" year="2020"/>
          </front>
          <seriesInfo name="IEEE Std" value="802.1AX-2020"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2020.9105034"/>
        </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="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" quoteTitle="true" derivedAnchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t indent="0">This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t indent="0">The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t indent="0">BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t indent="0">This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4364" target="https://www.rfc-editor.org/info/rfc4364" quoteTitle="true" derivedAnchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t indent="0">This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC4760" target="https://www.rfc-editor.org/info/rfc4760" quoteTitle="true" derivedAnchor="RFC4760">
          <front>
            <title>Multiprotocol Extensions for BGP-4</title>
            <author fullname="T. Bates" initials="T." surname="Bates"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="January" year="2007"/>
            <abstract>
              <t indent="0">This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.). The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4760"/>
          <seriesInfo name="DOI" value="10.17487/RFC4760"/>
        </reference>
        <reference anchor="RFC4861" target="https://www.rfc-editor.org/info/rfc4861" quoteTitle="true" derivedAnchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t indent="0">This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
        <reference anchor="RFC4957" target="https://www.rfc-editor.org/info/rfc4957" quoteTitle="true" derivedAnchor="RFC4957">
          <front>
            <title>Link-Layer Event Notifications for Detecting Network Attachments</title>
            <author fullname="S. Krishnan" initials="S." role="editor" surname="Krishnan"/>
            <author fullname="N. Montavont" initials="N." surname="Montavont"/>
            <author fullname="E. Njedjou" initials="E." surname="Njedjou"/>
            <author fullname="S. Veerepalli" initials="S." surname="Veerepalli"/>
            <author fullname="A. Yegin" initials="A." role="editor" surname="Yegin"/>
            <date month="August" year="2007"/>
            <abstract>
              <t indent="0">Certain network access technologies are capable of providing various types of link-layer status information to IP. Link-layer event notifications can help IP expeditiously detect configuration changes. This document provides a non-exhaustive catalogue of information available from well-known access technologies. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4957"/>
          <seriesInfo name="DOI" value="10.17487/RFC4957"/>
        </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="RFC5880" target="https://www.rfc-editor.org/info/rfc5880" quoteTitle="true" derivedAnchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t indent="0">This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC5925" target="https://www.rfc-editor.org/info/rfc5925" quoteTitle="true" derivedAnchor="RFC5925">
          <front>
            <title>The TCP Authentication Option</title>
            <author fullname="J. Touch" initials="J." surname="Touch"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <date month="June" year="2010"/>
            <abstract>
              <t indent="0">This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5925"/>
          <seriesInfo name="DOI" value="10.17487/RFC5925"/>
        </reference>
        <reference anchor="RFC7404" target="https://www.rfc-editor.org/info/rfc7404" quoteTitle="true" derivedAnchor="RFC7404">
          <front>
            <title>Using Only Link-Local Addressing inside an IPv6 Network</title>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <author fullname="E. Vyncke" initials="E." surname="Vyncke"/>
            <date month="November" year="2014"/>
            <abstract>
              <t indent="0">In an IPv6 network, it is possible to use only link-local addresses on infrastructure links between routers. This document discusses the advantages and disadvantages of this approach to facilitate the decision process for a given network.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7404"/>
          <seriesInfo name="DOI" value="10.17487/RFC7404"/>
        </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>
        <reference anchor="RFC8177" target="https://www.rfc-editor.org/info/rfc8177" quoteTitle="true" derivedAnchor="RFC8177">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="June" year="2017"/>
            <abstract>
              <t indent="0">This document describes the key chain YANG data model. Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys. A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm. By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated. By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC8950" target="https://www.rfc-editor.org/info/rfc8950" quoteTitle="true" derivedAnchor="RFC8950">
          <front>
            <title>Advertising IPv4 Network Layer Reachability Information (NLRI) with an IPv6 Next Hop</title>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="S. Agrawal" initials="S." surname="Agrawal"/>
            <author fullname="K. Ananthamurthy" initials="K." surname="Ananthamurthy"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <date month="November" year="2020"/>
            <abstract>
              <t indent="0">Multiprotocol BGP (MP-BGP) specifies that the set of usable next-hop address families is determined by the Address Family Identifier (AFI) and the Subsequent Address Family Identifier (SAFI). The AFI/SAFI definitions for the IPv4 address family only have provisions for advertising a next-hop address that belongs to the IPv4 protocol when advertising IPv4 Network Layer Reachability Information (NLRI) or VPN-IPv4 NLRI.</t>
              <t indent="0">This document specifies the extensions necessary to allow the advertising of IPv4 NLRI or VPN-IPv4 NLRI with a next-hop address that belongs to the IPv6 protocol. This comprises an extension of the AFI/SAFI definitions to allow the address of the next hop for IPv4 NLRI or VPN-IPv4 NLRI to also belong to the IPv6 protocol, the encoding of the next hop to determine which of the protocols the address actually belongs to, and a BGP Capability allowing MP-BGP peers to dynamically discover whether they can exchange IPv4 NLRI and VPN-IPv4 NLRI with an IPv6 next hop. This document obsoletes RFC 5549.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8950"/>
          <seriesInfo name="DOI" value="10.17487/RFC8950"/>
        </reference>
        <reference anchor="RFC9552" target="https://www.rfc-editor.org/info/rfc9552" quoteTitle="true" derivedAnchor="RFC9552">
          <front>
            <title>Distribution of Link-State and Traffic Engineering Information Using BGP</title>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <date month="December" year="2023"/>
            <abstract>
              <t indent="0">In many environments, a component external to a network is called upon to perform computations based on the network topology and the current state of the connections within the network, including Traffic Engineering (TE) information. This is information typically distributed by IGP routing protocols within the network.</t>
              <t indent="0">This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol. This is achieved using a BGP Network Layer Reachability Information (NLRI) encoding format. The mechanism applies to physical and virtual (e.g., tunnel) IGP links. The mechanism described is subject to policy control.</t>
              <t indent="0">Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t>
              <t indent="0">This document obsoletes RFC 7752 by completely replacing that document. It makes some small changes and clarifications to the previous specification. This document also obsoletes RFC 9029 by incorporating the updates that it made to RFC 7752.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9552"/>
          <seriesInfo name="DOI" value="10.17487/RFC9552"/>
        </reference>
        <reference anchor="RFC9667" target="https://www.rfc-editor.org/info/rfc9667" quoteTitle="true" derivedAnchor="RFC9667">
          <front>
            <title>Dynamic Flooding on Dense Graphs</title>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="H. Chen" initials="H." surname="Chen"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <author fullname="S. Dontula" initials="S." surname="Dontula"/>
            <date month="October" year="2024"/>
            <abstract>
              <t indent="0">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">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>
          </front>
          <seriesInfo name="RFC" value="9667"/>
          <seriesInfo name="DOI" value="10.17487/RFC9667"/>
        </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="Alvaro Retana"/>,
      <contact fullname="Yan Filyurin"/>, <contact fullname="Boris       Hassanov"/>, <contact fullname="Stig Venaas"/>, <contact fullname="Ron       Bonica"/>, <contact fullname="Mallory Knodel"/>, <contact fullname="Dhruv Dhody"/>, <contact fullname="Erik Kline"/>, <contact fullname="Éric Vyncke"/>, and <contact fullname="John Scudder"/> for
      their reviews and comments.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Keyur Patel" initials="K" surname="Patel">
        <organization showOnFrontPage="true">Arrcus, Inc.</organization>
        <address>
          <postal>
            <street>2077 Gateway Pl</street>
            <city>San Jose</city>
            <region>CA</region>
            <country>United States of America</country>
            <code>95110</code>
          </postal>
          <email>keyur@arrcus.com</email>
        </address>
      </author>
      <author fullname="Acee Lindem" initials="A" surname="Lindem">
        <organization showOnFrontPage="true">Arrcus, Inc.</organization>
        <address>
          <postal>
            <street>301 Midenhall Way</street>
            <city>Cary</city>
            <region>NC</region>
            <country>United States of America</country>
            <code>27513</code>
          </postal>
          <email>acee.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Shawn Zandi" initials="S" surname="Zandi">
        <organization showOnFrontPage="true"/>
        <address>
          <email>shafagh@shafagh.com</email>
        </address>
      </author>
      <author fullname="Gaurav Dawra" initials="G" surname="Dawra">
        <organization showOnFrontPage="true">Google</organization>
        <address>
          <postal>
            <city>Sunnyvale</city>
            <region>CA</region>
            <country>United States of America</country>
          </postal>
          <email>gdawra.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Jie Dong" initials="J." surname="Dong">
        <organization showOnFrontPage="true">Huawei Technologies</organization>
        <address>
          <postal>
            <street>No. 156 Beiqing Road</street>
            <city>Beijing</city>
            <country>China</country>
          </postal>
          <email>jie.dong@huawei.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
