<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="exp" docName="draft-ietf-idr-bgp-ls-isis-flood-reflection-04" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- ***** FRONT MATTER ***** -->

 <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="BGP-LS Extensions for IS-IS FR">BGP-LS Extensions for IS-IS Flood Reflection</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-isis-flood-reflection-04"/>
    <author role="editor" fullname="Jordan Head" initials="J." surname="Head">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1137 Innovation Way
          </street>
          <city>Sunnyvale</city>
          <region>CA
          </region>
          <code/>
          <country>USA
          </country>
        </postal>
        <phone/>
        <email>jhead@juniper.net
        </email>
        <uri/>
      </address>
    </author>
    <author fullname="Tony Przygienda " initials="T." surname="Przygienda">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1137 Innovation Way
          </street>
          <city>Sunnyvale</city>
          <region>CA
          </region>
          <code/>
          <country>USA
          </country>
        </postal>
        <phone/>
        <email>prz@juniper.net
        </email>
        <uri/>
      </address>
    </author>
    <date year="2024"/>
    <area>Routing Area</area>
    <workgroup>Inter-Domain Routing</workgroup>
    <abstract>
      <t>IS-IS Flood Reflection is a mechanism that allows flat, single-area IS-IS 
      topologies to scale beyond their traditional limitations.
      </t>
      <t>This document defines new BGP-LS (BGP Link-State) TLVs in order to carry 
      IS-IS Flood Reflection information.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t><xref target="RFC9377">IS-IS Flood Reflection</xref> is a mechanism that allows flat, single-area IS-IS 
        topologies to scale beyond their existing limitations.
      </t>
      <t>Flood Reflection topologies are broken into clusters. The participating 
        nodes must convey their unique Cluster ID signifying their membership in 
        a particular topology as well as their role (e.g. Flood Reflector or Client).
      </t>
      <t>BGP Link-State <xref target="RFC9552">RFC9552</xref>
      defines mechanisms to advertise information about the underlying IGP in 
      BGP NLRI to an external entity (e.g. a controller). A new BGP-LS TLV 
      is required in order to describe IS-IS Flood Reflection node and link 
      details. This document defines that TLV.</t>
      <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"/> <xref target="RFC8174"/> 
          when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>BGP-LS Extensions for IS-IS Flood Reflection</name>
      <t>Controllers may need to compute traffic engineered paths across 
        Flood Reflection clusters. This requires that they be aware of Flood 
        Reflection information (be it operational or configured), 
        such as Cluster ID, C-bit (which indicates Flood Reflector or Client), and any applicable sub-TLVs.
      </t>
      <t>The IS-IS Flood Reflection TLV can be advertised in BGP-LS as either a Node attribute or a Link attribute. 
        When describing a node, values are derived from the IS-IS Flood Reflection Discovery Sub-TLV.
        When describing a link, values are derived from the IS-IS Adjacency Sub-TLV. The semantics of any 
        fields within the TLV/sub-TLVs are described in <xref target="RFC9377"/>.
      </t>
      <t>This document defines the following BGP-LS TLVs for use with IS-IS Flood 
        Reflection.</t>
      <figure anchor="bgp-ls-isis-fr-format">
        <name>IS-IS Flood Reflection TLV</name>
        <artset>
          <artwork align="center" name="IS-IS Flood Reflection TLV" type="ascii-art" originalSrc="art/bgp-ls-fr-discovery-tlv.ascii-art"> 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C|  RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Flood Reflection Cluster ID                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Sub-TLVs ...                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
        </artset>
      </figure>
      <section>
        <name>IS-IS Flood Reflection TLV</name>
        <t>This section defines a BGP-LS Attribute that corresponds to IS-IS 
          Flood Reflection TLVs/sub-TLVs as described in <xref target="RFC9377"/></t>
        <t>where:</t>
        <ul empty="true" spacing="normal">
          <li>
            <dl newline="false" spacing="normal">
              <dt><strong>Type:</strong></dt>
              <dd>1160</dd>
              <dt><strong>Length:</strong></dt>
              <dd>variable</dd>
            </dl>
          </li>
        </ul>
      </section>
    </section>
    <section>
      <name>Design Considerations</name>
      <t>It is typical that a BGP-LS extension mirror all of the corresponding IGP components 
      (i.e. TLVs, sub-TLVs, and sub-sub-TLVs) in order to carry the necessary IGP information.   
        <xref target="RFC9377">IS-IS Flood Reflection</xref> describes "Tunnel-Based" deployments where 
        an optional "Flood Reflection Discovery Tunnel Type Sub-Sub-TLV" is used to facilitate
        the creation of "L1 Shortcuts" (i.e. tunnels) between nodes in a Flood Reflection cluster. 
        In this document, it is RECOMMENDED that this sub-sub-TLV be excluded from the BGP-LS extension for 
        the following reasons. 
      </t>
      <t>For example, shortcuts could be point-to-point IS-IS tunnels or be encapsulated by other means. 
        In deployments where the tunnels are IS-IS based, no additional BGP-LS extension 
        is required as the existing BGP-LS extensions for IS-IS will suffice.
      </t>
      <t>However, for deployments where tunnels are encapsulated by other means 
        it is not desirable for BGP-LS to carry that information as it is tunnel 
        information and not IGP information. Other existing or new BGP-LS extensions that 
        correspond to the particular tunnel type SHOULD be used to fulfill any 
        BGP-LS requirements.</t>
      <t>An implementation MAY still choose to include the "Flood Reflection Discovery Tunnel Type Sub-Sub-TLV" 
      for the sake of completeness. For example, it might be beneficial for cases where BGP-LS is the only way this 
      information can be obtained.</t>
    </section>
    <section anchor="IANA" toc="default" numbered="true">
      <name>IANA Considerations</name>
      <t>This section requests the following values from the "BGP-LS Node Descriptor, 
          Link Descriptor, Prefix Descriptor, and Attribute TLVs" registry for 
          the following TLVs:
      </t>
      <section numbered="true" toc="default">
        <name>Requested TLV Entries</name>
        <table align="left">
          <name>Requested TLV Entries</name>
          <thead>
            <tr>
              <th align="left">TLV Code Point</th>
              <th align="left">Description</th>
              <th align="left">IS-IS TLV/Sub-TLV</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1160</td>
              <td align="left">IS-IS Flood Reflection</td>
              <td align="left">(22|23|25|141|222|223|242)/161
              </td>
              <td align="left">This document.</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>Procedures and protocol extensions defined in this document do not
          affect the BGP security model. See the "Security Considerations"
          section of <xref target="RFC4271" format="default"/> for a discussion 
          of BGP security. Also, refer to <xref target="RFC4272" format="default"/> 
          and <xref target="RFC6952" format="default"/> for analyses of BGP security 
          issues. Security considerations for acquiring and distributing BGP-LS
          information are discussed in <xref target="RFC9552" format="default"/>.
      </t>
      <t>
          The TLVs introduced in this document are used to propagate IS-IS 
          Flood Reflection TLVs defined in <xref target="RFC9377" format="default"/>. 
          These TLVs represent IS-IS Flood Reflection state and are therefore 
          assumed to support any/all of the required security and authentication
          mechanisms as described in <xref target="RFC9377" format="default"/> to 
          prevent any security issues when propagating the TLVs into BGP-LS.
      </t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank Ketan Talaulikar for several iterations of review 
        and practical suggestions.</t>
    </section>
    <!-- Possibly a 'Contributors' section ... -->
  </middle>
  <!--  *****BACK MATTER ***** -->

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author initials="Y." surname="Rekhter" fullname="Yakov Rekhter">
              <organization/>
            </author>
            <author initials="T." surname="Li" fullname="Tony Li">
              <organization/>
            </author>
            <author initials="S." surname="Hares" fullname="Susan Hares">
              <organization/>
            </author>
            <date year="2006" month="January"/>
          </front>
        </reference>
        <reference anchor="RFC4272" target="https://www.rfc-editor.org/info/rfc4272" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4272.xml">
          <front>
            <title>BGP Security Vulnerabilities Analysis</title>
            <author initials="S." surname="Murphy" fullname="Sandra Murphy">
              <organization/>
            </author>
            <date year="2006" month="January"/>
          </front>
        </reference>
        <reference anchor="RFC6952" target="https://www.rfc-editor.org/info/rfc6952" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6952.xml">
          <front>
            <title>Analysis of BGP, LDP, PCEP, and MSDP Issues According to the
              Keying and Authentication for Routing Protocols (KARP) Design Guide</title>
            <author initials="M." surname="Jethanandani" fullname="Mahesh Jethanandani">
              <organization/>
            </author>
            <author initials="K." surname="Patel" fullname="Keyur Patel">
              <organization/>
            </author>
            <author initials="L." surname="Zheng" fullname="Lianshu Zheng">
              <organization/>
            </author>
            <date year="2013" month="May"/>
          </front>
        </reference>
        <reference anchor="RFC9552" target="https://www.rfc-editor.org/info/rfc9552" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9552.xml">
          <front>
            <title>Distribution of Link-State and Traffic Engineering Information Using BGP</title>
            <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar">
              <organization/>
            </author>
            <date year="2024" month="January"/>
          </front>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization/>
            </author>
            <date year="2017" month="June"/>
          </front>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9377" target="https://www.rfc-editor.org/info/rfc9377">
          <front>
            <title>IS-IS Flood Reflection</title>
            <author fullname="T. Przygienda" initials="T." role="editor" surname="Przygienda"/>
            <author fullname="C. Bowers" initials="C." surname="Bowers"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="A. Sharma" initials="A." surname="Sharma"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <date month="April" year="2023"/>
            <abstract>
              <t>
            This document describes a backward-compatible, optional IS-IS extension that allows the creation of IS-IS flood reflection topologies. Flood reflection permits topologies in which IS-IS Level 1 (L1) areas provide transit-forwarding for IS-IS Level 2 (L2) areas using all available L1 nodes internally. It accomplishes this by creating L2 flood reflection adjacencies within each L1 area. Those adjacencies are used to flood L2 Link State Protocol Data Units (LSPs) and are used in the L2 Shortest Path First (SPF) computation. However, they are not ordinarily utilized for forwarding within the flood reflection cluster. This arrangement gives the L2 topology significantly better scaling properties than prevalently used flat designs. As an additional benefit, only those routers directly participating in flood reflection are required to support the feature. This allows for incremental deployment of scalable L1 transit areas in an existing, previously flat network design, without the necessity of upgrading all routers in the network.
              </t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9377"/>
          <seriesInfo name="DOI" value="10.17487/RFC9377"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
