<?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-01" 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-01"/>
    <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="2022"/>
    <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="IS-IS-FR">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="RFC7752">RFC7752</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 state (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="IS-IS-FR"/>.
      </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="IS-IS-FR"/></t>
        <t>where:</t>
        <ul empty="true" spacing="normal">
          <li>
            <dl newline="false" spacing="normal">
              <dt><strong>Type:</strong></dt>
              <dd>TBD1 (1047)</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 its IGP counterpart. 
        <xref target="IS-IS-FR">IS-IS Flood Reflection</xref> defines an optional  
        "Flood Reflection Discovery Tunnel Type Sub-Sub-TLV" that is capable of facilitating 
        the creation of "L1 Shortcuts" between nodes in a Flood Reflection cluster. 
        This document intentionally excludes a BGP-LS extension of this capability 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 
        state and not IGP state. Other existing or new BGP-LS extensions that 
        correspond to the particular tunnel type should be used to fulfill any 
        BGP-LS requirements.</t>
    </section>
    <section anchor="IANA" toc="default" numbered="true">
      <name>IANA Considerations</name>
      <t>This section requests the following (suggested) 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>Suggested TLV Entries</name>
        <table align="left">
          <name>Suggested 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">TBD1 (1047)</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="RFC7752" format="default"/>.
      </t>
      <t>
          The TLVs introduced in this document are used to propagate IS-IS 
          Flood Reflection TLVs defined in <xref target="IS-IS-FR" 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="IS-IS-FR" 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="RFC7752" target="https://www.rfc-editor.org/info/rfc7752" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7752.xml">
          <front>
            <title>North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP</title>
            <author initials="H." surname="Gredler" fullname="Hannes Gredler">
              <organization/>
            </author>
            <author initials="J." surname="Medved" fullname="Jan Medved">
              <organization/>
            </author>
            <author initials="S." surname="Previdi" fullname="Stefano Previdi">
              <organization/>
            </author>
            <author initials="A." surname="Farrel" fullname="Adrian Farrel">
              <organization/>
            </author>
            <author initials="S." surname="Ray" fullname="Saikat Ray">
              <organization/>
            </author>
            <date year="2016" month="March"/>
          </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="IS-IS-FR" target="https://datatracker.ietf.org/doc/html/draft-ietf-lsr-isis-flood-reflection">
          <front>
            <title>IS-IS Flood Reflection</title>
            <author initials="T." surname="Przygienda" fullname="Tony Przygienda">
              <organization/>
            </author>
            <author initials="C." surname="Bowers" fullname="Chris Bowers">
              <organization/>
            </author>
            <author initials="Y." surname="Lee" fullname="Yiu Lee">
              <organization/>
            </author>
            <author initials="A." surname="Sharma" fullname="Alankar Sharma">
              <organization/>
            </author>
            <author initials="R." surname="White" fullname="Russ White">
              <organization/>
            </author>
            <date year="2021" month="October"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
</rfc>
