<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
<!ENTITY nbsp    "&#160;">
<!ENTITY zwsp   "&#8203;">
<!ENTITY nbhy   "&#8209;">
<!ENTITY wj     "&#8288;">
]>
<?rfc comments="yes"?>
<?rfc compact="no"?>
<?rfc inline="yes"?>
<?rfc sortrefs="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="5"?>
<?rfc tocindent="yes"?>
<?rfc tocompact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info"
     docName="draft-ietf-lsvr-applicability-09" ipr="trust200902" obsoletes="" updates=""
     submissionType="IETF" xml:lang="en" sortRefs="true" symRefs="true" tocInclude="true" tocDepth="5" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="BGP SPF Applicability">Usage and Applicability of Link State Vector Routing in Data Centers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lsvr-applicability-09"/>
    <author fullname="Keyur Patel" initials="K" surname="Patel">
      <organization>Arrcus, Inc.</organization>
      <address>
        <postal>
          <street>2077 Gateway Pl</street>
          <city>San Jose, CA</city>
          <country>USA</country>
          <code>95110</code>
        </postal>
        <phone/>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <author fullname="Acee Lindem" initials="A" surname="Lindem">
      <organization></organization>
      <address>
        <postal>
          <street>301 Midenhall Way</street>
          <city>Cary, NC</city>
          <country>USA</country>
          <code>95110</code>
        </postal>
        <phone/>
        <email>acee.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Shawn Zandi" initials="S" surname="Zandi">
      <organization>Linkedin</organization>
      <address>
        <postal>
          <street>222 2nd Street</street>
          <city>San Francisco</city>
          <region>CA</region>
          <code>94105</code>
          <country>USA</country>
        </postal>
        <email>szandi@linkedin.com</email>
      </address>
    </author>
    <author fullname="Gaurav Dawra" initials="G" surname="Dawra">
      <organization>Linkedin</organization>
      <address>
        <postal>
          <street>222 2nd Street</street>
          <city>San Francisco</city>
          <region>CA</region>
          <code>94105</code>
          <country>USA</country>
        </postal>
        <email>gdawra@linkedin.com</email>
      </address>
    </author>
    <date/>
    <area>Routing</area>
    <workgroup>LSVR</workgroup>
    <abstract>
      <t>
	This document discusses the usage and applicability of Link State Vector Routing
	(LSVR) extensions in data center networks utilizing CLOS or Fat-Tree topologies.
        The document is	intended to provide a simplified guide for the deployment of LSVR
        extensions.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
	This document complements <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/> by
	discussing the applicability of the technology in a simple and fairly common
	deployment scenario, which is described in <xref target="usecases" format="default"/>.
      </t>
      <t>
	After describing the deployment scenario, <xref target="motivation" format="default"/>
	will describe the reasons for BGP modifications for such deployments.
      </t>
      <t>
	Once the control plane routing protocol requirements are described,
	<xref target="bgpspf" format="default"/> will cover the LSVR protocol enhancements
	to BGP to meet these requirements and their applicability to Data Center
        CLOS networks.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
      "MAY", and "OPTIONAL" in this document are to be interpreted as
      described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
      when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="reco" numbered="true" toc="default">
      <name>Recommended Reading</name>
      <t>
	This document assumes knowledge of existing data center networks and data center
	network topologies <xref target="CLOS" format="default"/>. This document also assumes
	knowledge of data center routing protocols like
	BGP <xref target="RFC4271" format="default"/>, BGP-SPF <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/>,
	OSPF <xref target="RFC2328" format="default"/>, as well as,
	data center OAM protocols like LLDP <xref target="RFC4957" format="default"/> and
        BFD <xref target="RFC5580" format="default"/>.
      </t>
    </section>
    <section anchor="usecases" numbered="true" toc="default">
      <name>Common Deployment Scenario</name>
      <t>
	Within a Data Center, servers are commonly interconnected the CLOS
	topology <xref target="CLOS" format="default"/>. The CLOS topology is fully non-blocking and the topology is
	realized using Equal Cost Multi-Path (ECMP). In a CLOS topology, the minimum number
        of parallel paths between two servers is determined by the width of a tier-1 stage as shown in
        the figure 1.
      </t>
      <t>
	The following example illustrates multi-stage CLOS topology.
      </t>
      <figure anchor="fig1">
        <name>Illustration of the basic CLOS</name>
        <artwork align="left" name="" type="" alt=""><![CDATA[

                                   Tier-1
                                  +-----+
                                  |NODE |
                               +->| 12  |--+
                               |  +-----+  |
                       Tier-2  |           |   Tier-2
                      +-----+  |  +-----+  |  +-----+
        +------------>|NODE |--+->|NODE |--+--|NODE |-------------+
        |       +-----|  9  |--+  | 10  |  +--| 11  |-----+       |
        |       |     +-----+     +-----+     +-----+     |       |
        |       |                                         |       |
        |       |     +-----+     +-----+     +-----+     |       |
        | +-----+---->|NODE |--+  |NODE |  +--|NODE |-----+-----+ |
        | |     | +---|  6  |--+->|  7  |--+--|  8  |---+ |     | |
        | |     | |   +-----+  |  +-----+  |  +-----+   | |     | |
        | |     | |            |           |            | |     | |
      +-----+ +-----+          |  +-----+  |          +-----+ +-----+
      |NODE | |NODE | Tier-3   +->|NODE |--+   Tier-3 |NODE | |NODE |
      |  1  | |  2  |             |  3  |             |  4  | |  5  |
      +-----+ +-----+             +-----+             +-----+ +-----+
        | |     | |                                     | |     | |
        A O     B O            <- Servers ->            Z O     O O

        ]]></artwork>
      </figure>
    </section>
    <section anchor="motivation" numbered="true" toc="default">
      <name>Justification for BGP SPF Extension</name>
      <t>
	In order to simplify layer-3 routing and operations <xref target="RFC7938" format="default"/>,
        many data centers use BGP as a routing protocol to create both an underlay and overlay network
        for their CLOS Topologies.
        However, BGP is a path-vector routing protocol. Since it
        does not create a fabric topology, it uses hop-by-hop 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 severely prohibits a 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>
        The LSVR SPF modifications allow BGP to overcome these limitations. Furthermore, using the BGP-LS NLRI
        format <xref target="RFC7752" format="default"/> allows the LSVR data to be advertised for nodes, links,
        and prefixes in the BGP routing domain and used for SPF computations.
      </t>
    </section>
    <section anchor="bgpspf" numbered="true" toc="default">
      <name>LSVR Applicability to CLOS Networks</name>
      <t>
        With the BGP SPF extensions <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/>, the BGP
        best-path computation and route computation are replaced with OSPF-like
        algorithms <xref target="RFC2328" format="default"/> both to determine whether an BGP-LS SPF NLRI
        has changed and needs to be re-advertised 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 target="RFC7938" format="default"/>.
      </t>
      <t>
        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 target="RFC7752" format="default"/> which is totally
        independent of the underlay address families (usually IPv4/IPv6 unicast). Furthermore,
        in traditional 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>
	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 hop-by-hop
	peering model described in <xref target="RFC7938" format="default"/> along with BFD
        <xref target="RFC5580" format="default"/>.
	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 BGP best-path algorithm in
        either of these models. This helps overall network convergence.
      </t>
      <section anchor="lsvrsafi" numbered="true" toc="default">
        <name>Usage of BGP-LS SPF SAFI</name>
        <t>
          The BGP SPF extensions <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/> define a
          new BGP-LS SPF SAFI for announcement of 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 described in <xref target="RFC7938" format="default"/> or any
	  controller-based or route-reflector peering, an operator can exchange BGP SPF SAFI routes
          over the BGP peering by simply configuring BGP SPF SAFI between the necessary BGP speakers.
        </t>
        <t>
	  The BGP-LS SPF SAFI can also co-exist with BGP IP Unicast SAFI which could exchange overlapping IP routes.
          The routes received by these SAFIs
	  are evaluated, stored, and announced independently according to the rules of <xref target="RFC4760"
          format="default"/>. The
          tie-breaking of route installation is a matter of the local policies and preferences of the network
          operator.
        </t>
        <t>
	  Finally, as the BGP SPF peering is done following the procedures described in <xref target="RFC4271"
          format="default"/>, all the existing transport security mechanisms including
          <xref target="RFC5925" format="default"/> are available for the BGP-LS SPF SAFI.
        </t>
        <section anchor="other-safi" numbered="true" toc="default">
          <name>Relationship to Other BGP AFI/SAFI Tuples</name>
          <t>Normally, the BGP-LS AFI/SAFI is used solely to compute the underlay and is given preference over other
          AFI/SAFIs. Other BGP SAFIs, e.g., IPv6/IPv6 Unicast VPN would use the BGP-SPF computed routes for next hop
          resolution. However, if BGP-LS NLRI is also being advertised for controller consumption, there is no need
          to replicate the Node, Link, and Prefix NLRI in BGP-NLRI. Rather, additional NLRI attributes can be advertised
          in the BGP-LS SPF AFI/SAFI as required (e.g., BGP-LS TE metric extensions
          <xref target="RFC8571" format="default"/> and
	  BGP-LS segment routing extensions <xref target="RFC9085" format="default"/>).
          </t>
        </section>
      </section>
      <section anchor="peering" numbered="true" toc="default">
        <name>Peering Models</name>
        <t>
          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 target="RFC7938" format="default"/>. This provides for both the advertisement of routes
          and the determination of link and neighboring switch 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" toc="default">
          <name>Sparse Peering Model</name>
          <t>
            Alternately, BFD <xref target="RFC5580" format="default"/> 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 bi-connected graph. If IEBGP is used, then the
            BGP routers at tier N-1 will act as route-reflectors for the routers at tier N.
          </t>
          <t>
            The obvious usage of sparse peering is to avoid parallel BGP sessions on links between the same two
            switches in the data center fabric. However, this use case is not very useful since parallel
            layer-3 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 at the link layer rather than the IP layer.
	    Two more interesting scenarios are described below.
          </t>
          <t>
            In current data center topologies, there is often a very dense mesh of links between levels, e.g.,
            leaf and spine, providing 32-way, 64-way, or more Equal-Cost Multi-Path (ECMP) paths. In
            these topologies, it is desirable not to have a BGP session on every link and techniques such as the one
            described in <xref target="bi-connected" format="default"/> can be used establish sessions on some
            subset of northbound
            links. For example, in a Spine-Leaf topology, each leaf switch 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-LS
	    SPF routing domain has the complete topology (refer to <xref target="sparse-peering" format="default"/>).
          </t>
          <t>
            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 (using <xref target="RFC7938" format="default"/> hierarchy) 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 beyond the scope of this document. However, the BGP discovery
            mechanisms described in <xref target="bgp-discovery" format="default"/> would be one possibility.
          </t>
        </section>
        <section anchor="bi-connected" numbered="true" toc="default">
          <name>Bi-Connected Graph Heuristic</name>
          <t>With this heuristic, discovery of BGP peers is assumed, e.g., as described in
          <xref target="bgp-discovery" format="default"/>.
          Additionally, it assumed that the direction of the peering can be ascertained. In the context of a
          data center fabric, direction
          is either northbound (toward the spine), southbound (toward the Top-Of-Rack (TOR) switches) or east-west (same
          level in 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 switches can be identified and the number of hops to the TOR
          is used to determine the direction.</t>
          <t>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 switches (in data center
          fabrics there is normally a single layer-3 connection anyway). For east-west sessions, passive BGP session
          establishment is allowed. However, BGP speaker will never actively establish an east-west BGP session unless
          it cannot establish two northbound BGP sessions.</t>
        </section>
      </section>
      <section anchor="bgp-policy" numbered="true" toc="default">
        <name>BGP Spine/Leaf Topology Policy</name>
        <t>
          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 upon the topology, it may be possible to aggregate prefix advertisements using
          existing BGP policy. In Spine/Leaf topologies, it is not necessary to advertise BGP-LS NLRI received
          by leaves northbound to
          the spine nodes at the level above. If a common 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>
          In the figure below, the leaves would not advertise any NLRI with AS 64512 as the first AS in the AS
          path.
        </t>
        <figure anchor="fig2">
          <name>Spine/Leaf Topology Policy</name>
          <artwork align="left" name="" type="" alt=""><![CDATA[
             +--------+    +--------+             +--------+
 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-req" numbered="true" toc="default">
        <name>BGP Peer Discovery Requirements</name>
        <t>The most basic requirement is to be able to discover the address of a single-hop peer without
        pre-configuration. This is being accomplished today with using IPv6 Router Advertisements (RA)
        <xref target="RFC4861" format="default"/> and assuming that a BGP sessions is desired with any discovered peer.
        Beyond the basic requirement, it is useful to have to
        following information relating to the BGP session:
        </t>
        <ul spacing="normal">
          <li>Autonomous System (AS) and BGP Identifier of a potential peer. The latter can be used for debugging
          and to decrease the likelihood of BGP session establishment collisions.</li>
          <li>Security capabilities supported and for cryptographic authentication, the security capabilities and
          possibly a key-chain <xref target="RFC8177" format="default"/> to be used.</li>
          <li>Session Policy Identifier - A group number or name used to associate common session parameters with
          the peer. For example, in a data center, BGP sessions with a Top of Rack (ToR) device could have
          parameters than BGP sessions between leaf and spine.</li>
        </ul>
        <t>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., <xref target="bi-connected" format="default"/>.
        A potential requirement
        would be to determine this dynamically. One mechanism, without specifying all the details, might be
        for the ToR switches to be identified when installed and for the others switches in the fabric to determine their
        level based on the distance from the closest ToR switch.</t>
        <t>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 route(s) toward the potential peer loopback addresses prior to
        BGP session establishment.</t>
        <t>
          Finally, a simple BGP discovery protocol could also be used to establish a multi-hop session with one or
          more controllers by advertising connectivity to one or more controllers. However, once the multi-hop
          session actually traverses multiple nodes, it is bordering a distance-vector routing protocol and
          possibly this is not a good requirement for the discovery protocol.
        </t>
      </section>
      <section anchor="bgp-discovery" numbered="true" toc="default">
        <name>BGP Peer Discovery</name>
        <section anchor="bgp-discovery-alt" numbered="true" toc="default">
          <name>BGP Peer Discovery Alternatives</name>
          <t>
            While BGP peer discovery is not part of
            <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/>, there are, at least,
            three proposals for BGP peer discovery. At least one of these mechanisms will be adopted and will
            be applicable to deployments other than the data center. It is strongly RECOMMENDED that the accepted
            mechanism be used in conjunction with BGP SPF in data centers. The BGP discovery mechanism should discovery
            both peer addresses and endpoints for BFD discovery. Additionally, it would be great if there were a
            heuristic for determining whether the peer is at a tier above or below the discovering BGP speaker (refer to
            <xref target="bi-connected" format="default"/>).
          </t>
          <t>
            The BGP discovery mechanisms under consideration are
            <xref target="I-D.acee-idr-lldp-peer-discovery" format="default"/>,
            <xref target="I-D.xu-idr-neighbor-autodiscovery" format="default"/>, and
            <xref target="I-D.ietf-lsvr-l3dl" format="default"/>.
          </t>
        </section>
        <section anchor="bgp-ipv6-peering" numbered="true" toc="default">
          <name>BGP IPv6 Simplified Peering</name>
          <t>In order to conserve IPv4 address space and simplify operations, BGP-LS SPF routers in
          CLOS/Fat-Tree deployments can use IPv6 addresses as peer address. For IPv4 address families,
          IPv6 peering as specified in <xref target="RFC5549" format="default"/> can be deployed to avoid configuring
          IPv4 addresses on BGP-LS SPF router interfaces. When this is done, dynamic discovery
          mechanisms, as described in <xref target="bgp-discovery" format="default"/>, can 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 and these IPv6 link-local addresses must then be advertised in the BGP-LS Link
          Descriptor IPv6 Address TLV (262) <xref target="RFC7752" format="default"/>.
          </t>
        </section>
        <section anchor="config-checking" numbered="true" toc="default">
          <name>BGP-LS SPF Topology Visibility for Management</name>
          <t>
            Irrespective of whether or not BGP-LS 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 IGP is not used and the base BGP-LS
            routes <xref target="RFC7752" format="default"/> 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 which 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" toc="default">
          <name>Data Center Interconnect (DCI) Applicability</name>
          <t>
            Since BGP SPF is to be used for the routing underlay and DCI gateway boxes typically have direct
            or very simple connectivity, BGP external sessions would typically not include the BGP SPF SAFI.
          </t>
        </section>
      </section>
    </section>
    <section anchor="other-env" numbered="true" toc="default">
      <name>Non-CLOS/FAT Tree Topology Applicability</name>
      <t>
        The BGP SPF extensions <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/> can be used in other
        topologies and avail
        the inherent convergence improvements. Additionally, sparse peering techniques may be utilized
        <xref target="peering" format="default"/>. However, determining whether or to establish a BGP session
        is more complex and
        the heuristic described in <xref target="bi-connected" format="default"/> cannot be used. In such topologies,
        other techniques such as those described in <xref target="I-D.ietf-lsr-dynamic-flooding" format="default"/>
        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" toc="default">
      <name>Non-Transit Node Capability</name>
      <t>In certain scenarios, a BGP node wishes to participate in the BGP SPF topology but never be used for
      transit traffic. These in 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 Node NLRI Attribute SPF Status TLV as described in
      <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/>.
      </t>
    </section>
    <section anchor="policy" numbered="true" toc="default">
      <name>BGP Policy Applicability</name>
      <t>
	Existing BGP policy including aggregation and prefix filtering may be used in conjunction with
        the BGP-LS SPF SAFI. When aggregation policy is used, BGP-LS SPF prefix NLRI will be originated
        for the aggregate prefix and BGP-LS SPF prefix NLRI for components will be filtered. Additionally,
        link and node NLRI may be filtered and the abstracted by the prefix NLRI.
      </t>
      <t>
        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 NLRI and will compute a different BGP local routing
        table. Consequently, care must be taken to assure routing is consistent and blackholes or
        routing loops do not ensue. However, this is no different than if tradition BGP routing
        using the IPv4 and IPv6 address families were used.
      </t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
	No IANA updates are requested by this document.
      </t>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
	This document introduces no new security considerations above
	and beyond those already specified in the <xref target="RFC4271" format="default"/> and
        <xref target="I-D.ietf-lsvr-bgp-spf" format="default"/>.
      </t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>
	The authors would like to thank Alvaro Retana, Yan Filyurin, and Boris Hassanov
	for their review and comments.
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lsvr-bgp-spf.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2328.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4861.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4957.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5549.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5580.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7752.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7938.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8177.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8571.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9085.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.acee-idr-lldp-peer-discovery.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.xu-idr-neighbor-autodiscovery.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lsvr-l3dl.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lsr-dynamic-flooding.xml"/>
        <reference anchor="CLOS" target="">
          <front>
            <title>A Study of Non-Blocking Switching Networks</title>
            <author initials="" surname="">
              <organization/>
            </author>
            <date month="March" year="1953"/>
          </front>
          <seriesInfo name=""
                      value="The Bell System Technical Journal, Vol. 32(2), DOI 10.1002/j.1538-7305.1953.tb01433.x"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
