<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="exp" docName="draft-ietf-lsr-isis-area-proxy-12" number="9666" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" prepTime="2024-10-31T15:10:34" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lsr-isis-area-proxy-12" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9666" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Area Proxy for IS-IS">Area Proxy for IS-IS</title>
    <seriesInfo name="RFC" value="9666" stream="IETF"/>
    <author fullname="Tony Li" initials="T." surname="Li">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <author fullname="Sarah Chen" initials="S." surname="Chen">
      <organization showOnFrontPage="true">Arista Networks</organization>
      <address>
        <postal>
          <street>5453 Great America Parkway</street>
          <city>Santa Clara</city>
          <region>CA</region>
          <code>95054</code>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>sarahchen@arista.com</email>
      </address>
    </author>
    <author fullname="Vivek Ilangovan" initials="V." surname="Ilangovan">
      <organization showOnFrontPage="true">Arista Networks</organization>
      <address>
        <postal>
          <street>5453 Great America Parkway</street>
          <city>Santa Clara</city>
          <region>CA</region>
          <code>95054</code>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>ilangovan@arista.com</email>
      </address>
    </author>
    <author initials="G." surname="Mishra" fullname="Gyan S. Mishra">
      <organization showOnFrontPage="true">Verizon Inc.</organization>
      <address>
        <postal>
          <street>13101 Columbia Pike</street>
          <city>Silver Spring</city>
          <region>MD</region>
          <code>20904</code>
          <country>United States of America</country>
        </postal>
        <phone>301 502-1347</phone>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
    <date month="10" year="2024"/>
    <area>RTG</area>
    <workgroup>lsr</workgroup>
    <keyword>datacenter</keyword>
    <keyword>IGP</keyword>
    <keyword>routing</keyword>
    <keyword>topology</keyword>
    <keyword>level</keyword>
    <keyword>abstraction</keyword>
    <keyword>IS-IS</keyword>
    <keyword>proxy</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
       Link-state routing protocols have hierarchical abstraction
       already built into them. However, when lower levels are used
       for transit, they must expose their internal topologies to each
       other, thereby leading to scaling issues.
      </t>
      <t indent="0" pn="section-abstract-2">
          To avoid such issues, this document discusses extensions to the
          IS-IS routing protocol that allow Level 1 (L1) areas to provide transit
          but only inject an abstraction of the Level 1 topology into Level 2 (L2).
          Each Level 1 area is represented as a single Level 2 node, thereby
          enabling a greater scale.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for examination, experimental implementation, and
            evaluation.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document defines an Experimental Protocol for the Internet
            community.  This document is a product of the Internet Engineering
            Task Force (IETF).  It represents the consensus of the IETF community.
            It has received public review and has been approved for publication
            by the Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9666" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2024 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" 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-area-proxy">Area Proxy</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-routing">Segment Routing</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-inside-router-functions">Inside Router Functions</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-area-proxy-tlv">The Area Proxy TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-level-2-spf-computation">Level 2 SPF Computation</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-responsibilities-concerning">Responsibilities Concerning the Proxy LSP</xref></t>
              </li>
            </ul>
          </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-area-leader-functions">Area Leader Functions</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-area-leader-election">Area Leader Election</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-redundancy">Redundancy</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-distributing-area-proxy-inf">Distributing Area Proxy Information</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.3.2">
                  <li pn="section-toc.1-1.4.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.3.2.1.1"><xref derivedContent="4.3.1" format="counter" sectionFormat="of" target="section-4.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-area-proxy-system-ident">The Area Proxy System Identifier Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.3.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.3.2.2.1"><xref derivedContent="4.3.2" format="counter" sectionFormat="of" target="section-4.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-area-sid-sub-tlv">The Area SID Sub-TLV</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-proxy-lsp-generation">Proxy LSP Generation</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.4.2">
                  <li pn="section-toc.1-1.4.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.1.1"><xref derivedContent="4.4.1" format="counter" sectionFormat="of" target="section-4.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-protocols-supported-tlv">The Protocols Supported TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.2.1"><xref derivedContent="4.4.2" format="counter" sectionFormat="of" target="section-4.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-area-address-tlv">The Area Address TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.3.1"><xref derivedContent="4.4.3" format="counter" sectionFormat="of" target="section-4.4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-dynamic-hostname-tlv">The Dynamic Hostname TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.4">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.4.1"><xref derivedContent="4.4.4" format="counter" sectionFormat="of" target="section-4.4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-is-neighbors-tlv">The IS Neighbors TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.5">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.5.1"><xref derivedContent="4.4.5" format="counter" sectionFormat="of" target="section-4.4.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-extended-is-neighbors-t">The Extended IS Neighbors TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.6">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.6.1"><xref derivedContent="4.4.6" format="counter" sectionFormat="of" target="section-4.4.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-mt-intermediate-systems">The MT Intermediate Systems TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.7">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.7.1"><xref derivedContent="4.4.7" format="counter" sectionFormat="of" target="section-4.4.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-reachability-tlvs">Reachability TLVs</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.8">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.8.1"><xref derivedContent="4.4.8" format="counter" sectionFormat="of" target="section-4.4.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-router-capability-tlv">The Router Capability TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.9">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.9.1"><xref derivedContent="4.4.9" format="counter" sectionFormat="of" target="section-4.4.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-multi-topology-tlv">The Multi-Topology TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.10">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.10.1"><xref derivedContent="4.4.10" format="counter" sectionFormat="of" target="section-4.4.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-the-sid-label-binding-and-t">The SID/Label Binding and the Multi-Topology SID/Label Binding TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.11">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.11.1"><xref derivedContent="4.4.11" format="counter" sectionFormat="of" target="section-4.4.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-the-srv6-locator-tlv">The SRv6 Locator TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.12">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.12.1"><xref derivedContent="4.4.12" format="counter" sectionFormat="of" target="section-4.4.12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-traffic-engineering-informa">Traffic Engineering Information</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.4.2.13">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.13.1"><xref derivedContent="4.4.13" format="counter" sectionFormat="of" target="section-4.4.13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-the-area-sid">The Area SID</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-inside-edge-router-function">Inside Edge Router Functions</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-generating-l2-iihs-to-outsi">Generating L2 IIHs to Outside Routers</xref></t>
              </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-filtering-lsp-information">Filtering LSP Information</xref></t>
              </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-iana-considerations">IANA Considerations</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-security-considerations">Security Considerations</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-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.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.10">
            <t indent="0" pn="section-toc.1-1.10.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" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
       The IS-IS routing protocol <xref target="ISO10589" format="default" sectionFormat="of" derivedContent="ISO10589"/>
       supports a two-level hierarchy of abstraction. The
       fundamental unit of abstraction is the "area", which is a
       (hopefully) connected set of systems running IS-IS at the same
       level. Level 1, the lowest level, is abstracted by routers that
       participate in both Level 1 and Level 2, and they inject area
       information into Level 2.  Level 2 systems seeking to access
       Level 1 use this abstraction to compute the shortest path to
       the Level 1 area. 

   The full topology database of Level 1 is not injected into Level 2, rather,
   only a summary of the address space contained within the area is injected.
   Therefore, the scalability of the Level 2 Link State Database (LSDB) is
   protected.
      </t>
      <t indent="0" pn="section-1-2">
       This works well if the Level 1 area is tangential to the Level
       2 area. This also works well if there are several routers in
       both Levels 1 and 2 and they are adjacent to one another,
       so Level 2 traffic will never need to transit Level 1 only
       routers.  Level 1 will not contain any Level 2 topology and
       Level 2 will only contain area abstractions for Level 1.
      </t>
      <t indent="0" pn="section-1-3">
       Unfortunately, this scheme does not work so well if the Level 1
       only area needs to provide transit for Level 2 traffic. For
       Level 2 Shortest Path First (SPF) computations to work
       correctly, the transit topology must also appear in the Level 2
       LSDB.  This implies that all routers that could provide
       transit plus any links that might also provide Level 2 transit
       must also become part of the Level 2 topology. If this is a
       relatively tiny portion of the Level 1 area, this is not
       overly painful.
      </t>
      <t indent="0" pn="section-1-4">
       However, with today's data center topologies, this is problematic. A
       common application is to use a Layer 3 Leaf-Spine (L3LS) topology,
       which is a folded 3-stage Clos fabric <xref target="Clos" format="default" sectionFormat="of" derivedContent="Clos"/>. It can also be thought of as a complete bipartite graph.  In
       such a topology, the desire is to use Level 1 to contain the routing
       dynamics of the entire L3LS topology and then use Level 2 for the
       remainder of the network.  Leaves in the L3LS topology are appropriate
       for connection outside of the data center itself, so they would provide
       connectivity for Level 2. If there are multiple connections to Level 2
       for redundancy or other areas, these would also be made to the leaves
       in the topology. This creates a difficulty because there are now
       multiple Level 2 leaves in the topology, with connectivity between the
       leaves provided by the spines.
      </t>
      <t indent="0" pn="section-1-5">
       Following the current rules of IS-IS, all spine routers would
       necessarily be part of the Level 2 topology plus all links
       between a Level 2 leaf and the spines.  In the limit, where all
       leaves need to support Level 2, it implies that the entire L3LS
       topology becomes part of Level 2. This is seriously problematic,
       as it more than doubles the LSDB held in the
       L3LS topology and eliminates any benefits of the hierarchy.
      </t>
      <t indent="0" pn="section-1-6">
       This document discusses the handling of IP traffic. Supporting
       MPLS-based traffic is a subject for future work.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
    "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-area-proxy">Area Proxy</name>
      <t indent="0" pn="section-2-1"> In this specification, we completely abstract away the details of
      the Level 1 area topology within Level 2, making the entire area look
      like a single proxy system directly connected to all of the area's Level
      2 neighbors. By only providing an abstraction of the topology, Level
      2's requirement for connectivity can be satisfied without the full
      overhead of the area's internal topology. It then becomes the
      responsibility of the Level 1 area to provide the forwarding
      connectivity that's advertised.
      </t>
      <t indent="0" pn="section-2-2">
       For this discussion, we'll consider a single Level 1 IS-IS area to be
       the Inside Area and the remainder of the Level 2 area to be the Outside
       Area. All routers within the Inside Area speak Level 1 and Level 2
       IS-IS on all of the links within the topology. We propose to implement
       Area Proxy by having a Level 2 Proxy Link State PDU (LSP) that
       represents the entire Inside Area. We will refer to this as the Proxy
       LSP.  This is the only LSP from the area that will be flooded into the
       overall Level 2 LSDB.
      </t>
      <t indent="0" pn="section-2-3">
       There are four classes of routers that we need to be concerned
       with in this discussion:
      </t>
      <dl newline="false" spacing="normal" indent="3" pn="section-2-4">
        <dt pn="section-2-4.1">Inside Router:</dt>
        <dd pn="section-2-4.2">
           A router within the Inside Area that runs Level 1 and Level 2
           IS-IS. A router is recognized as an Inside Router by the
           existence of its LSP in the Level 1 LSDB.
         </dd>
        <dt pn="section-2-4.3">Area Leader:</dt>
        <dd pn="section-2-4.4">
           The Area Leader is an Inside Router that is
           elected to represent the Level 1 area by injecting the
           Proxy LSP into the Level 2 LSDB. There may be
           multiple candidates for Area Leader, but only one is
           elected at a given time. Any Inside Router can be the Area
	   Leader.
         </dd>
        <dt pn="section-2-4.5">Inside Edge Router:</dt>
        <dd pn="section-2-4.6">
           An Inside Edge Router is an Inside Area Router that has at
           least one Level 2 interface outside of the Inside Area.  An
           interface on an Inside Edge Router that is connected to an
           Outside Edge Router is an Area Proxy Boundary.
         </dd>
        <dt pn="section-2-4.7">Outside Edge Router:</dt>
        <dd pn="section-2-4.8">
           An Outside Edge Router is a Level 2 router that is outside
           of the Inside Area that has an adjacency with an Inside
           Edge Router.
         </dd>
      </dl>
      <figure align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-an-example-of-router-classe">An Example of Router Classes</name>
        <artwork align="left" name="" type="" alt="" pn="section-2-5.1">
                            Inside Area

               +--------+                 +--------+
               | Inside |-----------------| Inside |
               | Router |                 |  Edge  |
               +--------+    +------------| Router |
                   |        /             +--------+
                   |       /                   |
               +--------+ /       =============|======
               | Area   |/        ||           |
               | Leader |         ||      +---------+
               +--------+         ||      | Outside |
                                  ||      |  Edge   |
                                  ||      | Router  |
                                  ||      +---------+

                                          Outside Area
</artwork>
      </figure>
      <t indent="0" pn="section-2-6">
       All Inside Edge Routers learn the Area Proxy System Identifier
       from the Area Proxy TLV advertised by the Area Leader and use
       that as the system identifier in their Level 2 IS-IS Hello (IIH) PDUs
       on all Outside interfaces. Outside Edge Routers will
       then advertise an adjacency to the Area Proxy System
       Identifier. This allows all Outside Routers to use the Proxy
       LSP in their SPF computations without seeing the full topology
       of the Inside Area.
      </t>
      <t indent="0" pn="section-2-7">
       Area Proxy functionality assumes that all circuits on Inside
       Routers are either Level 1-2 circuits within the Inside Area,
       or Level 2 circuits between Outside Edge Routers and Inside
       Edge Routers.
      </t>
      <t indent="0" pn="section-2-8">
       Area Proxy Boundary multi-access circuits (i.e., Ethernets in LAN mode)
       with multiple Inside Edge Routers on them are not supported. The Inside
       Edge Router on any boundary LAN <bcp14>MUST NOT</bcp14> flood Inside
       Router LSPs on this link. Boundary LANs <bcp14>SHOULD NOT</bcp14> be
       enabled for Level 1. An Inside Edge Router may be elected as the
       Designated Intermediate System (DIS) for a Boundary LAN. In this case,
       using the Area Proxy System ID as the basis for the LAN pseudonode
       identifier could create a collision, so the Insider Edge Router
       <bcp14>SHOULD</bcp14> compose the pseudonode identifier using its
       originally configured system identifier. This choice of pseudonode identifier may
       confuse neighbors with an extremely strict implementation. In this
       case, the Inside Edge Router may be configured with priority 0, causing
       an Outside Router to be elected as the DIS.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-segment-routing">Segment Routing</name>
        <t indent="0" pn="section-2.1-1">
         If the Inside Area supports Segment Routing (SR) <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>, then all Inside Nodes <bcp14>MUST</bcp14>
         advertise a Segment Routing Global Block (SRGB). The first value of
         the SRGB advertised by all Inside Nodes <bcp14>MUST</bcp14> start at
         the same value. If the Area Leader detects SRGBs that do not start
         with the same value, it <bcp14>MUST</bcp14> log an error and not
         advertise an SRGB in the Proxy LSP. The range advertised for the area
         will be the minimum of that advertised by all Inside Nodes.
        </t>
        <t indent="0" pn="section-2.1-2">
To support SR, the Area Leader will take the SRGB information
found in the L1 LSDB and convey that to L2 through the Proxy LSP.
Prefixes with Segment Identifier (SID) assignments will be copied to the Proxy
LSP.  Adjacency SIDs for Outside Edge Nodes will be copied to the Proxy LSP.
        </t>
        <t indent="0" pn="section-2.1-3">
         To further extend SR, it is helpful to
         have a segment that refers to the entire Inside Area. This
         allows a path to refer to an area and have any node within
         that area accept and forward the packet. In effect, this
         becomes an anycast SID that is accepted by all Inside Edge
         Nodes. The information about this SID is distributed in the
         Area SID sub-TLV as part of the Area Leader's Area
         Proxy TLV (<xref target="AreaSIDsubTLV" format="default" sectionFormat="of" derivedContent="Section 4.3.2"/>). The Inside Edge
         Nodes <bcp14>MUST</bcp14> establish forwarding based on this SID. The Area
         Leader <bcp14>SHALL</bcp14> also include the Area SID in the Proxy LSP so
         that the remainder of L2 can use it for path construction.
         (<xref target="AreaSIDBinding" format="default" sectionFormat="of" derivedContent="Section 4.4.13"/>).
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-inside-router-functions">Inside Router Functions</name>
      <t indent="0" pn="section-3-1">
       All Inside Routers run Level 1-2 IS-IS and must be explicitly
       instructed to enable the Area Proxy functionality. To signal
       their readiness to participate in Area Proxy functionality,
       they will advertise the Area Proxy TLV in their L2 LSP.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-the-area-proxy-tlv">The Area Proxy TLV</name>
        <t indent="0" pn="section-3.1-1">
         The Area Proxy TLV serves multiple functions:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.1-2">
          <li pn="section-3.1-2.1">
            <t indent="0" pn="section-3.1-2.1.1">
             The presence of the Area Proxy TLV in a node's LSP
             indicates that the node is enabled for Area Proxy.
            </t>
          </li>
          <li pn="section-3.1-2.2">
            <t indent="0" pn="section-3.1-2.2.1">
             An LSP containing the Area Proxy TLV is also an Inside
             Node. All Inside Nodes, including pseudonodes, <bcp14>MUST</bcp14>
             advertise the Area Proxy TLV.
            </t>
          </li>
          <li pn="section-3.1-2.3">
            <t indent="0" pn="section-3.1-2.3.1">
             It is a container for sub-TLVs with Area Proxy information.  
            </t>
          </li>
        </ul>
        <t indent="0" pn="section-3.1-3">
         A node advertises the Area Proxy TLV in fragment 0 of its L2
         LSP.  Nodes <bcp14>MUST NOT</bcp14> advertise the Area Proxy TLV in an L1
         LSP. Nodes <bcp14>MUST</bcp14> ignore the Area Proxy TLV if it is found in an
         L1 LSP.  The Area Proxy TLV is not used in the Proxy LSP. The
         format of the Area Proxy TLV is:
        </t>
        <artwork align="left" name="" type="" alt="" pn="section-3.1-4">
 0                   1                   2
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Type      | TLV Length    |  Sub-TLVs ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        <dl indent="3" newline="false" spacing="normal" pn="section-3.1-5">
          <dt pn="section-3.1-5.1">TLV Type:</dt>
          <dd pn="section-3.1-5.2">20</dd>
          <dt pn="section-3.1-5.3">TLV Length:</dt>
          <dd pn="section-3.1-5.4">Length of the sub-TLVs.</dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-level-2-spf-computation">Level 2 SPF Computation</name>
        <t indent="0" pn="section-3.2-1">
         When Outside Routers perform a Level 2 SPF computation, they
         will use the Proxy LSP for computing a path transiting
         the Inside Area. Because the topology has been abstracted
         away, the cost for transiting the Inside Area will be zero.
        </t>
        <t indent="0" pn="section-3.2-2">
         When Inside Routers perform a Level 2 SPF computation, they
         <bcp14>MUST</bcp14> ignore the Proxy LSP. Because these systems 
         see the Inside Area topology, the link metrics internal to
         the area are visible. This could lead to different and
         possibly inconsistent SPF results, potentially leading to
         forwarding loops.
        </t>
        <t indent="0" pn="section-3.2-3">
         To prevent this, the Inside Routers <bcp14>MUST</bcp14> consider the metrics
         of links outside of the Inside Area (inter-area metrics)
         separately from the metrics of the Inside Area links
         (intra-area metrics). Intra-area metrics <bcp14>MUST</bcp14> be treated as
         less than any inter-area metric.  Thus, if two paths have
         different total inter-area metrics, the path with the lower
         inter-area metric would be preferred regardless of any
         intra-area metrics involved. However, if two paths have equal
         inter-area metrics, then the intra-area metrics would be used
         to compare the paths.
        </t>
        <t indent="0" pn="section-3.2-4">
         Point-to-point links between two Inside Routers are
         considered to be Inside Area links. LAN links that have a
         pseudonode LSP in the Level 1 LSDB are considered to be
         Inside Area links.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-responsibilities-concerning">Responsibilities Concerning the Proxy LSP</name>
        <t indent="0" pn="section-3.3-1">The Area Leader will generate a Proxy LSP that will be flooded across the Inside Area. Inside Routers <bcp14>MUST</bcp14> flood the Proxy LSP and <bcp14>MUST</bcp14> ignore its contents.
The Proxy LSP uses the Area Proxy System Identifier as its Source ID.
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-area-leader-functions">Area Leader Functions</name>
      <t indent="0" pn="section-4-1">
       The Area Leader has several responsibilities.  First, it <bcp14>MUST</bcp14>
       inject the Area Proxy System Identifier into the Level 2
       LSDB. Second, the Area Leader <bcp14>MUST</bcp14> generate the Proxy LSP for
       the Inside Area.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-area-leader-election">Area Leader Election</name>
        <t indent="0" pn="section-4.1-1">
         The Area Leader is selected using the election mechanisms and
         TLVs described in "Dynamic Flooding on Dense Graphs" <xref target="RFC9667" format="default" sectionFormat="of" derivedContent="RFC9667"/>.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-redundancy">Redundancy</name>
        <t indent="0" pn="section-4.2-1">
         If the Area Leader fails, another candidate may become Area
         Leader and <bcp14>MUST</bcp14> regenerate the Proxy LSP.  The
         failure of the Area Leader is not visible outside of the area
         and appears to simply be an update of the Proxy
         LSP.
        </t>
        <t indent="0" pn="section-4.2-2">
         For consistency, all Area Leader candidates <bcp14>SHOULD</bcp14> be
         configured with the same Proxy System ID, Proxy Hostname, and
         any other information that may be inserted into the Proxy LSP.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
        <name slugifiedName="name-distributing-area-proxy-inf">Distributing Area Proxy Information</name>
        <t indent="0" pn="section-4.3-1">
	 The Area Leader is responsible for distributing information
	 about the area to all Inside Nodes. In particular, the Area
	 Leader distributes the Proxy System ID and the Area SID.
	 This is done using two sub-TLVs of the Area Proxy TLV.
        </t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.3.1">
          <name slugifiedName="name-the-area-proxy-system-ident">The Area Proxy System Identifier Sub-TLV</name>
          <t indent="0" pn="section-4.3.1-1">
           The Area Proxy System Identifier sub-TLV <bcp14>MUST</bcp14> be used by the Area
           Leader to distribute the Area Proxy System ID. This is an
           additional system identifier that is used by Inside Nodes
           as an indication that Area Proxy is active.  The format of
           this sub-TLV is:
          </t>
          <artwork align="left" name="" type="" alt="" pn="section-4.3.1-2">
 0                   1                   2
 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    |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    Proxy System Identifier    |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          <dl indent="3" newline="false" spacing="normal" pn="section-4.3.1-3">
            <dt pn="section-4.3.1-3.1">Type:</dt>
            <dd pn="section-4.3.1-3.2">1</dd>
            <dt pn="section-4.3.1-3.3">Length:</dt>
            <dd pn="section-4.3.1-3.4">Length of a system ID (6).</dd>
            <dt pn="section-4.3.1-3.5">Proxy System Identifier:</dt>
            <dd pn="section-4.3.1-3.6">The Area Proxy System Identifier.</dd>
          </dl>
          <t indent="0" pn="section-4.3.1-4">
           The Area Leader <bcp14>MUST</bcp14> advertise the Area Proxy System
           Identifier sub-TLV when it observes that all Inside Routers
           are advertising the Area Proxy TLV. Their advertisements
           indicate that they are individually ready to perform Area
           Proxy functionality.  The Area Leader then advertises the
           Area Proxy System Identifier TLV to indicate that the
           Inside Area <bcp14>MUST</bcp14> enable Area Proxy functionality.
          </t>
          <t indent="0" pn="section-4.3.1-5">
           Other candidates for Area Leader <bcp14>MAY</bcp14> also advertise
           the Area Proxy System Identifier when they observe that all Inside
           Routers are advertising the Area Proxy TLV.  All candidates
           advertising the Area Proxy System Identifier TLV
           <bcp14>SHOULD</bcp14> be advertising the same system
           identifier. Multiple proxy system identifiers in a single area is a
           misconfiguration and each unique occurrence <bcp14>SHOULD</bcp14>
           be logged. Systems should use the Proxy System ID advertised by the
           Area Leader.
          </t>
          <t indent="0" pn="section-4.3.1-6">
           The Area Leader and other candidates for Area Leader
           <bcp14>MAY</bcp14> withdraw the Area Proxy System Identifier when
           one or more Inside Routers are not advertising the Area Proxy
           TLV. This will disable Area Proxy functionality.  However, before
           withdrawing the Area Proxy System Identifier, an implementation
           <bcp14>SHOULD</bcp14> protect against unnecessary churn from
           transients by delaying the withdrawal. The amount of delay is
           implementation dependent.
          </t>
        </section>
        <section anchor="AreaSIDsubTLV" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.2">
          <name slugifiedName="name-the-area-sid-sub-tlv">The Area SID Sub-TLV</name>
          <t indent="0" pn="section-4.3.2-1">
           The Area SID sub-TLV allows the Area Leader to advertise a
           prefix and SID that represent the entirety of the Inside
           Area to the Outside Area.  This sub-TLV is learned by all
           of the Inside Edge Nodes who should consume this SID at
           forwarding time.  The Area SID sub-TLV has the following format:
          </t>
          <artwork align="left" name="" type="" alt="" pn="section-4.3.2-2">
 0                   1                   2
 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    |     Flags     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  SID/Index/Label (variable)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |    Prefix (variable)                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          <t indent="0" pn="section-4.3.2-3">
           where:</t>
          <dl indent="3" newline="false" spacing="normal" pn="section-4.3.2-4">
            <dt pn="section-4.3.2-4.1">Type:</dt>
            <dd pn="section-4.3.2-4.2">2</dd>
            <dt pn="section-4.3.2-4.3">Length:</dt>
            <dd pn="section-4.3.2-4.4">Variable (1 + SID length)</dd>
            <dt pn="section-4.3.2-4.5">Flags:</dt>
            <dd pn="section-4.3.2-4.6">
              <t indent="0" pn="section-4.3.2-4.6.1">1 octet, defined as follows.</t>
              <artwork align="left" name="" type="" alt="" pn="section-4.3.2-4.6.2">
      0 1 2 3 4 5 6 7
      +-+-+-+-+-+-+-+-+
      |F|V|L|         |
      +-+-+-+-+-+-+-+-+
</artwork>
              <dl indent="4" newline="false" spacing="normal" pn="section-4.3.2-4.6.3">
                <dt pn="section-4.3.2-4.6.3.1">F:</dt>
                <dd pn="section-4.3.2-4.6.3.2">Address-Family Flag.  If this flag is not set,
               then this proxy SID is used when forwarding IPv4-encapsulated
               traffic. If set, then this proxy SID is used when forwarding
               IPv6-encapsulated traffic.</dd>
                <dt pn="section-4.3.2-4.6.3.3">V:</dt>
                <dd pn="section-4.3.2-4.6.3.4">Value Flag.  If set, then the proxy SID carries
               a value, as defined in <xref target="RFC8667" sectionFormat="comma" section="2.1.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8667#section-2.1.1.1" derivedContent="RFC8667"/>.</dd>
                <dt pn="section-4.3.2-4.6.3.5">L:</dt>
                <dd pn="section-4.3.2-4.6.3.6">Local Flag.  If set, then the value/index
               carried by the proxy SID has local significance, as defined in
               <xref target="RFC8667" sectionFormat="comma" section="2.1.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8667#section-2.1.1.1" derivedContent="RFC8667"/>.
              </dd>
                <dt pn="section-4.3.2-4.6.3.7">Other bits:</dt>
                <dd pn="section-4.3.2-4.6.3.8">
                  <bcp14>MUST</bcp14> be zero when
              originated and ignored when received.</dd>
              </dl>
            </dd>
            <dt pn="section-4.3.2-4.7">SID/Index/Label:</dt>
            <dd pn="section-4.3.2-4.8">As defined in <xref target="RFC8667" sectionFormat="comma" section="2.1.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8667#section-2.1.1.1" derivedContent="RFC8667"/>.</dd>
            <dt pn="section-4.3.2-4.9">Prefix Length:</dt>
            <dd pn="section-4.3.2-4.10">1 octet</dd>
            <dt pn="section-4.3.2-4.11">Prefix:</dt>
            <dd pn="section-4.3.2-4.12">0-16 octets</dd>
          </dl>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4">
        <name slugifiedName="name-proxy-lsp-generation">Proxy LSP Generation</name>
        <t indent="0" pn="section-4.4-1">
         Each Inside Router generates a Level 2 LSP and the Level 2
         LSPs for the Inside Edge Routers will include adjacencies to
         Outside Edge Routers.  Unlike normal Level 2 operations,
         these LSPs are not advertised outside of the Inside Area and
         <bcp14>MUST</bcp14> be filtered by all Inside Edge Routers to not be flooded
         to Outside Routers. Only the Proxy LSP is injected into
         the overall Level 2 LSDB.
        </t>
        <t indent="0" pn="section-4.4-2">
         The Area Leader uses the Level 2 LSPs generated by the Inside
         Edge Routers to generate the Proxy LSP.  This LSP is
         originated using the Area Proxy System Identifier.  The Area
         Leader can also insert the following additional TLVs into the
         Proxy LSP for additional information for the Outside
         Area. LSPs generated by unreachable nodes <bcp14>MUST NOT</bcp14> be
         considered.
        </t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.1">
          <name slugifiedName="name-the-protocols-supported-tlv">The Protocols Supported TLV</name>
          <t indent="0" pn="section-4.4.1-1">
           The Area Leader <bcp14>SHOULD</bcp14> insert a Protocols Supported TLV (129)
           <xref target="RFC1195" format="default" sectionFormat="of" derivedContent="RFC1195"/> into the Proxy LSP. The
           values included in the TLV <bcp14>SHOULD</bcp14> be the protocols
           supported by the Inside Area.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.2">
          <name slugifiedName="name-the-area-address-tlv">The Area Address TLV</name>
          <t indent="0" pn="section-4.4.2-1">
           The Area Leader <bcp14>SHOULD</bcp14> insert an Area Addresses TLV (1)
           <xref target="ISO10589" format="default" sectionFormat="of" derivedContent="ISO10589"/> into the Proxy LSP.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.3">
          <name slugifiedName="name-the-dynamic-hostname-tlv">The Dynamic Hostname TLV</name>
          <t indent="0" pn="section-4.4.3-1">
           It is <bcp14>RECOMMENDED</bcp14> that the Area Leader insert the Dynamic
           Hostname TLV (137) <xref target="RFC5301" format="default" sectionFormat="of" derivedContent="RFC5301"/> into the Proxy
           LSP. The contents of the hostname may be specified by
           configuration. The presence of the hostname helps to
           simplify network debugging.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.4">
          <name slugifiedName="name-the-is-neighbors-tlv">The IS Neighbors TLV</name>
          <t indent="0" pn="section-4.4.4-1">
           The Area Leader can insert the IS Neighbors TLV (2) <xref target="ISO10589" format="default" sectionFormat="of" derivedContent="ISO10589"/> into the Proxy LSP for Outside
           Edge Routers. The Area Leader learns of the Outside Edge
           Routers by examining the LSPs generated by the Inside Edge
           Routers copying any IS Neighbors TLVs referring to Outside
           Edge Routers into the Proxy LSP.  Since the Outside Edge
           Routers advertise an adjacency to the Area Proxy System
           Identifier, this will result in a bidirectional adjacency.
          </t>
          <t indent="0" pn="section-4.4.4-2">
           An entry for a neighbor in both the IS Neighbors TLV and
           the Extended IS Neighbors TLV would be functionally redundant,
           so the Area Leader <bcp14>SHOULD NOT</bcp14> do this. The Area Leader <bcp14>MAY</bcp14>
           omit either the IS Neighbors TLV or the Extended IS
           Neighbors TLV, but it <bcp14>MUST</bcp14> include at least one of them.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.5">
          <name slugifiedName="name-the-extended-is-neighbors-t">The Extended IS Neighbors TLV</name>
          <t indent="0" pn="section-4.4.5-1">
           The Area Leader can insert the Extended IS Reachability TLV
           (22) <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/> into the Proxy LSP. The
           Area Leader <bcp14>SHOULD</bcp14> copy each Extended IS Reachability TLV
           advertised by an Inside Edge Router about an Outside Edge
           Router into the Proxy LSP.
          </t>
          <t indent="0" pn="section-4.4.5-2">
           If the Inside Area supports Segment Routing, and Segment
           Routing selects a SID where the L-Flag is not set, then the
           Area Lead <bcp14>SHOULD</bcp14> include an Adjacency Segment Identifier
           sub-TLV (31) <xref target="RFC8667" format="default" sectionFormat="of" derivedContent="RFC8667"/> using the selected
           SID.
          </t>
          <t indent="0" pn="section-4.4.5-3">
           If the inside area supports SRv6, the Area Leader <bcp14>SHOULD</bcp14>
           copy the "SRv6 End.X SID" and "SRv6 LAN End.X SID" sub-TLVs
           of the Extended IS Reachability TLVs advertised by Inside
           Edge Routers about Outside Edge Routers.
          </t>
          <t indent="0" pn="section-4.4.5-4">
           If the inside area supports Traffic Engineering (TE), the
           Area Leader <bcp14>SHOULD</bcp14> copy TE-related sub-TLVs
           (<xref target="RFC5305" sectionFormat="comma" section="3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5305#section-3" derivedContent="RFC5305"/>) to each Extended IS
           Reachability TLV in the Proxy LSP.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.6">
          <name slugifiedName="name-the-mt-intermediate-systems">The MT Intermediate Systems TLV</name>
          <t indent="0" pn="section-4.4.6-1">
           If the Inside Area supports Multi-Topology (MT), then the Area
           Leader <bcp14>SHOULD</bcp14> copy each Outside Edge Router advertisement
           that is advertised by an Inside Edge Router in an MT
           Intermediate Systems TLV into the Proxy LSP.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.7">
          <name slugifiedName="name-reachability-tlvs">Reachability TLVs</name>
          <t indent="0" pn="section-4.4.7-1">
           The Area Leader <bcp14>SHOULD</bcp14> insert additional TLVs describing
           any routing prefixes that should be advertised on behalf of
           the area. These prefixes may be learned from the Level 1
           LSDB, Level 2 LSDB, or redistributed from another routing
           protocol.  This applies to all of the various types of TLVs
           used for prefix advertisement:
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.4.7-2">
            <li pn="section-4.4.7-2.1">
              <t indent="0" pn="section-4.4.7-2.1.1">
               IP Internal Reachability Information TLV (128) <xref target="RFC1195" format="default" sectionFormat="of" derivedContent="RFC1195"/>
              </t>
            </li>
            <li pn="section-4.4.7-2.2">
              <t indent="0" pn="section-4.4.7-2.2.1">
               IP External Reachability Information TLV (130) <xref target="RFC1195" format="default" sectionFormat="of" derivedContent="RFC1195"/>
              </t>
            </li>
            <li pn="section-4.4.7-2.3">
              <t indent="0" pn="section-4.4.7-2.3.1">
               Extended IP Reachability TLV (135) <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/>
              </t>
            </li>
            <li pn="section-4.4.7-2.4">
              <t indent="0" pn="section-4.4.7-2.4.1">
               IPv6 Reachability TLV (236) <xref target="RFC5308" format="default" sectionFormat="of" derivedContent="RFC5308"/>
              </t>
            </li>
            <li pn="section-4.4.7-2.5">
              <t indent="0" pn="section-4.4.7-2.5.1">
               Multi-Topology Reachable IPv4 Prefixes TLV (235) <xref target="RFC5120" format="default" sectionFormat="of" derivedContent="RFC5120"/>
              </t>
            </li>
            <li pn="section-4.4.7-2.6">
              <t indent="0" pn="section-4.4.7-2.6.1">
               Multi-Topology Reachable IPv6 Prefixes TLV (237) <xref target="RFC5120" format="default" sectionFormat="of" derivedContent="RFC5120"/>
              </t>
            </li>
          </ul>
          <t indent="0" pn="section-4.4.7-3">
           For TLVs in the Level 1 LSDB, for a given TLV type and
           prefix, the Area Leader <bcp14>SHOULD</bcp14> select the TLV with the
           lowest metric and copy that TLV into the Proxy LSP.
          </t>
          <t indent="0" pn="section-4.4.7-4">
           When examining the Level 2 LSDB for this function, the Area Leader
           <bcp14>SHOULD</bcp14> only consider TLVs advertised by Inside
           Routers. Further, for prefixes that represent Boundary links, the
           Area Leader <bcp14>SHOULD</bcp14> copy all TLVs that have unique
           sub-TLV contents.
          </t>
          <t indent="0" pn="section-4.4.7-5">
           If the Inside Area supports SR and the
           selected TLV includes a Prefix Segment Identifier sub-TLV
           (3) <xref target="RFC8667" format="default" sectionFormat="of" derivedContent="RFC8667"/>, then the sub-TLV <bcp14>SHOULD</bcp14> be
           copied as well. The P-Flag <bcp14>SHOULD</bcp14> be set in the copy of the
           sub-TLV to indicate that penultimate hop popping should not
           be performed for this prefix. The E-Flag <bcp14>SHOULD</bcp14> be reset in
           the copy of the sub-TLV to indicate that an explicit NULL
           is not required. The R-Flag <bcp14>SHOULD</bcp14> simply be copied.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.8">
          <name slugifiedName="name-the-router-capability-tlv">The Router Capability TLV</name>
          <t indent="0" pn="section-4.4.8-1">
           The Area Leader <bcp14>MAY</bcp14> insert the Router Capability TLV (242)
           <xref target="RFC7981" format="default" sectionFormat="of" derivedContent="RFC7981"/> into the Proxy LSP. If
           SR is supported by the inside area, as
           indicated by the presence of an SRGB being advertised by
           all Inside Nodes, then the Area Leader <bcp14>SHOULD</bcp14> advertise an
           SR-Capabilities sub-TLV (2) <xref target="RFC8667" format="default" sectionFormat="of" derivedContent="RFC8667"/> with
           an SRGB. The first value of the SRGB is the same as
           the first value advertised by all Inside Nodes. The range
           advertised for the area will be the minimum of all ranges
           advertised by Inside Nodes. The Area Leader <bcp14>SHOULD</bcp14> use its
           Router ID in the Router Capability TLV.
          </t>
          <t indent="0" pn="section-4.4.8-2">
           If SRv6 Capability sub-TLV <xref target="RFC7981" format="default" sectionFormat="of" derivedContent="RFC7981"/> is
           advertised by all Inside Routers, the Area Leader should
           insert an SRv6 Capability sub-TLV in the Router Capability
           TLV. Each flag in the SRv6 Capability sub-TLV should be set
           if the flag is set by all Inside Routers.
          </t>
          <t indent="0" pn="section-4.4.8-3">
           If the Node Maximum SID Depth (MSD) sub-TLV <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC8491"/> is advertised by all Inside Routers, the
           Area Leader should advertise the intersection of the
           advertised MSD types and the smallest supported MSD values
           for each type.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.9">
          <name slugifiedName="name-the-multi-topology-tlv">The Multi-Topology TLV</name>
          <t indent="0" pn="section-4.4.9-1">
           If the Inside Area supports multi-topology, then the Area
           Leader <bcp14>SHOULD</bcp14> insert the Multi-Topology TLV (229) <xref target="RFC5120" format="default" sectionFormat="of" derivedContent="RFC5120"/>, including the topologies supported by
           the Inside Nodes.
          </t>
          <t indent="0" pn="section-4.4.9-2">
           If any Inside Node is advertising the O (Overload) bit
           for a given topology, then the Area Leader <bcp14>MUST</bcp14> advertise
           the O bit for that topology. If any Inside Node is
           advertising the A (Attach) bit for a given topology, then
           the Area Leader <bcp14>MUST</bcp14> advertise the A bit for that
           topology.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.10">
          <name slugifiedName="name-the-sid-label-binding-and-t">The SID/Label Binding and the Multi-Topology SID/Label Binding TLV</name>
          <t indent="0" pn="section-4.4.10-1">
           If an Inside Node advertises the SID/Label Binding or
           Multi-Topology SID/Label Binding TLV <xref target="RFC8667" format="default" sectionFormat="of" derivedContent="RFC8667"/>, then the Area Leader <bcp14>MAY</bcp14> copy the TLV
           to the Proxy LSP.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.11">
          <name slugifiedName="name-the-srv6-locator-tlv">The SRv6 Locator TLV</name>
          <t indent="0" pn="section-4.4.11-1">
           If the inside area supports SRv6, the Area Leader <bcp14>SHOULD</bcp14>
           copy all SRv6 locator TLVs <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC9352"/>
           advertised by Inside Routers to the Proxy LSP.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4.12">
          <name slugifiedName="name-traffic-engineering-informa">Traffic Engineering Information</name>
          <t indent="0" pn="section-4.4.12-1">
           If the inside area supports TE, the Area Leader <bcp14>SHOULD</bcp14>
           advertise a TE Router ID TLV (134) <xref target="RFC5305" format="default" sectionFormat="of" derivedContent="RFC5305"/>
           in the Proxy LSP. It <bcp14>SHOULD</bcp14> copy the Shared Risk
           Link Group (SRLS) TLVs (138) <xref target="RFC5307" format="default" sectionFormat="of" derivedContent="RFC5307"/>
           advertised by Inside Edge Routers about links to Outside
           Edge Routers.
          </t>
          <t indent="0" pn="section-4.4.12-2">
           If the inside area supports IPv6 TE, the Area Leader <bcp14>SHOULD</bcp14>
           advertise an IPv6 TE Router ID TLV (140)
           <xref target="RFC6119" format="default" sectionFormat="of" derivedContent="RFC6119"/> in the Proxy LSP. It <bcp14>SHOULD</bcp14> also
           copy the IPv6 SRLG TLVs (139)  <xref target="RFC6119" format="default" sectionFormat="of" derivedContent="RFC6119"/>
           advertised by Inside Edge Routers about links to Outside
           Edge Routers.
          </t>
        </section>
        <section anchor="AreaSIDBinding" numbered="true" toc="include" removeInRFC="false" pn="section-4.4.13">
          <name slugifiedName="name-the-area-sid">The Area SID</name>
          <t indent="0" pn="section-4.4.13-1">
	   When SR is enabled, it may be useful to advertise an Area
	   SID that will direct traffic to any of the Inside
	   Edge Routers. The information for the Area SID is
	   distributed to all Inside Edge Routers using the Area SID
	   sub-TLV (<xref target="AreaSIDsubTLV" format="default" sectionFormat="of" derivedContent="Section 4.3.2"/>) by the Area Leader.
          </t>
          <t indent="0" pn="section-4.4.13-2">
           The Area Leader <bcp14>SHOULD</bcp14> advertise the Area SID information
           in the Proxy LSP as a Node SID as defined in <xref target="RFC8667" sectionFormat="comma" section="2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8667#section-2.1" derivedContent="RFC8667"/>. The advertisement in the
           Proxy LSP informs the Outside Area that packets directed to
           the SID will be forwarded to one of the Inside Edge Nodes
           and the Area SID will be consumed.
          </t>
          <t indent="0" pn="section-4.4.13-3">
	   Other uses of the Area SID and Area SID prefix are outside
	   the scope of this document. Documents that define other
	   use cases for the Area SID <bcp14>MUST</bcp14> specify whether the SID
	   value should be the same or different from that used in
	   support of Area Proxy.
          </t>
        </section>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-inside-edge-router-function">Inside Edge Router Functions</name>
      <t indent="0" pn="section-5-1">
       The Inside Edge Router has two additional and important
       functions. First, it <bcp14>MUST</bcp14> generate IIHs that appear to have
       come from the Area Proxy System Identifier. Second, it <bcp14>MUST</bcp14>
       filter the L2 LSPs, Partial Sequence Number PDUs (PSNPs), and
       Complete Sequence Number PDUs (CSNPs) that are being advertised
       to Outside Routers.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-generating-l2-iihs-to-outsi">Generating L2 IIHs to Outside Routers</name>
        <t indent="0" pn="section-5.1-1">
         The Inside Edge Router has one or more Level 2 interfaces to
         the Outside Routers.  These may be identified by explicit
         configuration or by the fact that they are not also Level 1
         circuits. On these Level 2 interfaces, the Inside Edge Router
         <bcp14>MUST NOT</bcp14> send an IIH until it has learned the Area Proxy
         System ID from the Area Leader. Then, once it has learned the
         Area Proxy System ID, it <bcp14>MUST</bcp14> generate its IIHs on the
         circuit using the Proxy System ID as the source of the IIH.
        </t>
        <t indent="0" pn="section-5.1-2">
         Using the Proxy System ID causes the Outside Router to
         advertise an adjacency to the Proxy System ID, not to the
         Inside Edge Router, which supports the proxy function. The
         normal system ID of the Inside Edge Router <bcp14>MUST NOT</bcp14> be used
         as it will cause unnecessary adjacencies to form.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-filtering-lsp-information">Filtering LSP Information</name>
        <t indent="0" pn="section-5.2-1">
         For the area proxy abstraction to be effective the L2 LSPs
         generated by the Inside Routers <bcp14>MUST</bcp14> be restricted to the
         Inside Area. The Inside Routers know which system IDs are
         members of the Inside Area based on the advertisement of the
         Area Proxy TLV. To prevent unwanted LSP information from
         escaping the Inside Area, the Inside Edge Router <bcp14>MUST</bcp14> perform
         filtering of LSP flooding, CSNPs, and PSNPs. Specifically:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5.2-2">
          <li pn="section-5.2-2.1">
            <t indent="0" pn="section-5.2-2.1.1">
             A Level 2 LSP with a source system identifier that is
             found in the Level 1 LSDB <bcp14>MUST NOT</bcp14> be flooded to an
             Outside Router.
            </t>
          </li>
          <li pn="section-5.2-2.2">
            <t indent="0" pn="section-5.2-2.2.1">
             A Level 2 LSP that contains the Area Proxy TLV <bcp14>MUST NOT</bcp14>
             be flooded to an Outside Router.
            </t>
          </li>
          <li pn="section-5.2-2.3">
            <t indent="0" pn="section-5.2-2.3.1">
             A Level 2 CSNP sent to an Outside Router <bcp14>MUST NOT</bcp14> contain
             any information about an LSP with a system identifier
             found in the Level 1 LSDB. If an Inside Edge Router
             filters a CSNP and there is no remaining content, then
             the CSNP <bcp14>MUST NOT</bcp14> be sent. The source address of the CSNP
             <bcp14>MUST</bcp14> be the Area Proxy System ID.
            </t>
          </li>
          <li pn="section-5.2-2.4">
            <t indent="0" pn="section-5.2-2.4.1">
             A Level 2 PSNP sent to an Outside Router <bcp14>MUST NOT</bcp14> contain
             any information about an LSP with a system identifier
             found in the Level 1 LSDB. If an Inside Edge Router
             filters a PSNP and there is no remaining content, then
             the PSNP <bcp14>MUST NOT</bcp14> be sent. The source address of the PSNP
             <bcp14>MUST</bcp14> be the Area Proxy System ID.
            </t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">
       IANA has assigned code point 20
       from the "IS-IS TLV Codepoints" registry for the Area Proxy TLV.
       The registry fields are IIH:n, LSP:y, SNP:n, and Purge:n.
      </t>
      <t indent="0" pn="section-6-2">
       In association with this, IANA has created a "IS-IS Sub-TLVs for the Area Proxy TLV" registry. Temporary registrations may
           be made via early allocation <xref target="RFC7120" format="default" sectionFormat="of" derivedContent="RFC7120"/>.</t>
      <t indent="0" pn="section-6-3">The registration procedure is Expert Review <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>. The values are from 0-255, and the fields are Value, Name, and Reference. The initial assignments are as follows.</t>
      <table align="center" pn="table-1">
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Value</th>
            <th align="center" colspan="1" rowspan="1">Name</th>
            <th align="center" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">1</td>
            <td align="center" colspan="1" rowspan="1">Area Proxy System Identifier</td>
            <td align="center" colspan="1" rowspan="1">RFC 9666</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">2</td>
            <td align="center" colspan="1" rowspan="1">Area SID</td>
            <td align="center" colspan="1" rowspan="1">RFC 9666</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">
       This document introduces no new security issues. Security of routing
       within a domain is already addressed as part of the routing protocols
       themselves. This document proposes no changes to those security
       architectures. Security for IS-IS is provided by "IS-IS Cryptographic
       Authentication" <xref target="RFC5304" format="default" sectionFormat="of" derivedContent="RFC5304"/> and "IS-IS Generic
       Cryptographic Authentication" <xref target="RFC5310" format="default" sectionFormat="of" derivedContent="RFC5310"/>.
      </t>
    </section>
  </middle>
  <back>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="ISO10589" quoteTitle="true" derivedAnchor="ISO10589">
          <front>
            <title>Information technology - Telecommunications and information exchange between systems - Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473)</title>
            <author>
              <organization abbrev="ISO" showOnFrontPage="true">International Organization for Standardization</organization>
            </author>
            <date month="11" year="2002"/>
          </front>
          <seriesInfo name="ISO/IEC" value="10589:2002"/>
          <refcontent>Second Edition</refcontent>
        </reference>
        <reference anchor="RFC1195" target="https://www.rfc-editor.org/info/rfc1195" quoteTitle="true" derivedAnchor="RFC1195">
          <front>
            <title>Use of OSI IS-IS for routing in TCP/IP and dual environments</title>
            <author fullname="R. Callon" initials="R." surname="Callon"/>
            <date month="December" year="1990"/>
            <abstract>
              <t indent="0">This memo specifies an integrated routing protocol, based on the OSI Intra-Domain IS-IS Routing Protocol, which may be used as an interior gateway protocol (IGP) to support TCP/IP as well as OSI. This allows a single routing protocol to be used to support pure IP environments, pure OSI environments, and dual environments. This specification was developed by the IS-IS working group of the Internet Engineering Task Force. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1195"/>
          <seriesInfo name="DOI" value="10.17487/RFC1195"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5120" target="https://www.rfc-editor.org/info/rfc5120" quoteTitle="true" derivedAnchor="RFC5120">
          <front>
            <title>M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)</title>
            <author fullname="T. Przygienda" initials="T." surname="Przygienda"/>
            <author fullname="N. Shen" initials="N." surname="Shen"/>
            <author fullname="N. Sheth" initials="N." surname="Sheth"/>
            <date month="February" year="2008"/>
            <abstract>
              <t indent="0">This document describes an optional mechanism within Intermediate System to Intermediate Systems (IS-ISs) used today by many ISPs for IGP routing within their clouds. This document describes how to run, within a single IS-IS domain, a set of independent IP topologies that we call Multi-Topologies (MTs). This MT extension can be used for a variety of purposes, such as an in-band management network "on top" of the original IGP topology, maintaining separate IGP routing domains for isolated multicast or IPv6 islands within the backbone, or forcing a subset of an address space to follow a different topology. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5120"/>
          <seriesInfo name="DOI" value="10.17487/RFC5120"/>
        </reference>
        <reference anchor="RFC5301" target="https://www.rfc-editor.org/info/rfc5301" quoteTitle="true" derivedAnchor="RFC5301">
          <front>
            <title>Dynamic Hostname Exchange Mechanism for IS-IS</title>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="N. Shen" initials="N." surname="Shen"/>
            <date month="October" year="2008"/>
            <abstract>
              <t indent="0">RFC 2763 defined a simple and dynamic mechanism for routers running IS-IS to learn about symbolic hostnames. RFC 2763 defined a new TLV that allows the IS-IS routers to flood their name-to-systemID mapping information across the IS-IS network.</t>
              <t indent="0">This document obsoletes RFC 2763. This document moves the capability provided by RFC 2763 to the Standards Track. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5301"/>
          <seriesInfo name="DOI" value="10.17487/RFC5301"/>
        </reference>
        <reference anchor="RFC5304" target="https://www.rfc-editor.org/info/rfc5304" quoteTitle="true" derivedAnchor="RFC5304">
          <front>
            <title>IS-IS Cryptographic Authentication</title>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2008"/>
            <abstract>
              <t indent="0">This document describes the authentication of Intermediate System to Intermediate System (IS-IS) Protocol Data Units (PDUs) using the Hashed Message Authentication Codes - Message Digest 5 (HMAC-MD5) algorithm as found in RFC 2104. IS-IS is specified in International Standards Organization (ISO) 10589, with extensions to support Internet Protocol version 4 (IPv4) described in RFC 1195. The base specification includes an authentication mechanism that allows for multiple authentication algorithms. The base specification only specifies the algorithm for cleartext passwords. This document replaces RFC 3567.</t>
              <t indent="0">This document proposes an extension to that specification that allows the use of the HMAC-MD5 authentication algorithm to be used in conjunction with the existing authentication mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5304"/>
          <seriesInfo name="DOI" value="10.17487/RFC5304"/>
        </reference>
        <reference anchor="RFC5305" target="https://www.rfc-editor.org/info/rfc5305" quoteTitle="true" derivedAnchor="RFC5305">
          <front>
            <title>IS-IS Extensions for Traffic Engineering</title>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="H. Smit" initials="H." surname="Smit"/>
            <date month="October" year="2008"/>
            <abstract>
              <t indent="0">This document describes extensions to the Intermediate System to Intermediate System (IS-IS) protocol to support Traffic Engineering (TE). This document extends the IS-IS protocol by specifying new information that an Intermediate System (router) can place in Link State Protocol Data Units (LSP). This information describes additional details regarding the state of the network that are useful for traffic engineering computations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5305"/>
          <seriesInfo name="DOI" value="10.17487/RFC5305"/>
        </reference>
        <reference anchor="RFC5307" target="https://www.rfc-editor.org/info/rfc5307" quoteTitle="true" derivedAnchor="RFC5307">
          <front>
            <title>IS-IS Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)</title>
            <author fullname="K. Kompella" initials="K." role="editor" surname="Kompella"/>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <date month="October" year="2008"/>
            <abstract>
              <t indent="0">This document specifies encoding of extensions to the IS-IS routing protocol in support of Generalized Multi-Protocol Label Switching (GMPLS). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5307"/>
          <seriesInfo name="DOI" value="10.17487/RFC5307"/>
        </reference>
        <reference anchor="RFC5308" target="https://www.rfc-editor.org/info/rfc5308" quoteTitle="true" derivedAnchor="RFC5308">
          <front>
            <title>Routing IPv6 with IS-IS</title>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <date month="October" year="2008"/>
            <abstract>
              <t indent="0">This document specifies a method for exchanging IPv6 routing information using the IS-IS routing protocol. The described method utilizes two new TLVs: a reachability TLV and an interface address TLV to distribute the necessary IPv6 information throughout a routing domain. Using this method, one can route IPv6 along with IPv4 and OSI using a single intra-domain routing protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5308"/>
          <seriesInfo name="DOI" value="10.17487/RFC5308"/>
        </reference>
        <reference anchor="RFC5310" target="https://www.rfc-editor.org/info/rfc5310" quoteTitle="true" derivedAnchor="RFC5310">
          <front>
            <title>IS-IS Generic Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <date month="February" year="2009"/>
            <abstract>
              <t indent="0">This document proposes an extension to Intermediate System to Intermediate System (IS-IS) to allow the use of any cryptographic authentication algorithm in addition to the already-documented authentication schemes, described in the base specification and RFC 5304. IS-IS is specified in International Standards Organization (ISO) 10589, with extensions to support Internet Protocol version 4 (IPv4) described in RFC 1195.</t>
              <t indent="0">Although this document has been written specifically for using the Hashed Message Authentication Code (HMAC) construct along with the Secure Hash Algorithm (SHA) family of cryptographic hash functions, the method described in this document is generic and can be used to extend IS-IS to support any cryptographic hash function in the future. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5310"/>
          <seriesInfo name="DOI" value="10.17487/RFC5310"/>
        </reference>
        <reference anchor="RFC6119" target="https://www.rfc-editor.org/info/rfc6119" quoteTitle="true" derivedAnchor="RFC6119">
          <front>
            <title>IPv6 Traffic Engineering in IS-IS</title>
            <author fullname="J. Harrison" initials="J." surname="Harrison"/>
            <author fullname="J. Berger" initials="J." surname="Berger"/>
            <author fullname="M. Bartlett" initials="M." surname="Bartlett"/>
            <date month="February" year="2011"/>
            <abstract>
              <t indent="0">This document specifies a method for exchanging IPv6 traffic engineering information using the IS-IS routing protocol. This information enables routers in an IS-IS network to calculate traffic-engineered routes using IPv6 addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6119"/>
          <seriesInfo name="DOI" value="10.17487/RFC6119"/>
        </reference>
        <reference anchor="RFC7981" target="https://www.rfc-editor.org/info/rfc7981" quoteTitle="true" derivedAnchor="RFC7981">
          <front>
            <title>IS-IS Extensions for Advertising Router Information</title>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="October" year="2016"/>
            <abstract>
              <t indent="0">This document defines a new optional Intermediate System to Intermediate System (IS-IS) TLV named CAPABILITY, formed of multiple sub-TLVs, which allows a router to announce its capabilities within an IS-IS level or the entire routing domain. This document obsoletes RFC 4971.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7981"/>
          <seriesInfo name="DOI" value="10.17487/RFC7981"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" quoteTitle="true" derivedAnchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t indent="0">Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t indent="0">SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t indent="0">SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC8491" target="https://www.rfc-editor.org/info/rfc8491" quoteTitle="true" derivedAnchor="RFC8491">
          <front>
            <title>Signaling Maximum SID Depth (MSD) Using IS-IS</title>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="U. Chunduri" initials="U." surname="Chunduri"/>
            <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <date month="November" year="2018"/>
            <abstract>
              <t indent="0">This document defines a way for an Intermediate System to Intermediate System (IS-IS) router to advertise multiple types of supported Maximum SID Depths (MSDs) at node and/or link granularity. Such advertisements allow entities (e.g., centralized controllers) to determine whether a particular Segment ID (SID) stack can be supported in a given network. This document only defines one type of MSD: Base MPLS Imposition. However, it defines an encoding that can support other MSD types. This document focuses on MSD use in a network that is Segment Routing (SR) enabled, but MSD may also be useful when SR is not enabled.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8491"/>
          <seriesInfo name="DOI" value="10.17487/RFC8491"/>
        </reference>
        <reference anchor="RFC8667" target="https://www.rfc-editor.org/info/rfc8667" quoteTitle="true" derivedAnchor="RFC8667">
          <front>
            <title>IS-IS Extensions for Segment Routing</title>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." role="editor" surname="Ginsberg"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">Segment Routing (SR) allows for a flexible definition of end-to-end paths within IGP topologies by encoding paths as sequences of topological sub-paths, called "segments". These segments are advertised by the link-state routing protocols (IS-IS and OSPF).</t>
              <t indent="0">This document describes the IS-IS extensions that need to be introduced for Segment Routing operating on an MPLS data plane.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8667"/>
          <seriesInfo name="DOI" value="10.17487/RFC8667"/>
        </reference>
        <reference anchor="RFC9352" target="https://www.rfc-editor.org/info/rfc9352" quoteTitle="true" derivedAnchor="RFC9352">
          <front>
            <title>IS-IS Extensions to Support Segment Routing over the IPv6 Data Plane</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="Z. Hu" initials="Z." surname="Hu"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">The Segment Routing (SR) architecture allows a flexible definition of the end-to-end path by encoding it as a sequence of topological elements called "segments". It can be implemented over the MPLS or the IPv6 data plane. This document describes the IS-IS extensions required to support SR over the IPv6 data plane.</t>
              <t indent="0">This document updates RFC 7370 by modifying an existing registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9352"/>
          <seriesInfo name="DOI" value="10.17487/RFC9352"/>
        </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 initials="T." surname="Li" fullname="Tony Li" role="editor">
              <organization showOnFrontPage="true">Juniper Networks</organization>
            </author>
            <author initials="P." surname="Psenak" fullname="Peter Psenak" role="editor">
              <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
            </author>
            <author initials="H." surname="Chen" fullname="Huaimo Chen">
              <organization showOnFrontPage="true">Futurewei</organization>
            </author>
            <author initials="L." surname="Jalil" fullname="Luay Jalil">
              <organization showOnFrontPage="true">Verizon</organization>
            </author>
            <author initials="S." surname="Dontula" fullname="Srinath Dontula">
              <organization showOnFrontPage="true">AT&amp;T</organization>
            </author>
            <date month="October" year="2024"/>
          </front>
          <seriesInfo name="RFC" value="9667"/>
          <seriesInfo name="DOI" value="10.17487/RFC9667"/>
        </reference>
      </references>
      <references pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="Clos" quoteTitle="true" target="https://doi.org/10.1002/j.1538-7305.1953.tb01433.x" derivedAnchor="Clos">
          <front>
            <title>A study of non-blocking switching networks</title>
            <author fullname="Charles Clos" initials="C." surname="Clos"/>
            <date month="March" year="1953"/>
          </front>
          <seriesInfo name="DOI" value="10.1002/j.1538-7305.1953.tb01433.x"/>
          <refcontent>The Bell System Technical Journal, Volume 32, Issue 2, pp.    
406-424</refcontent>
        </reference>
        <reference anchor="RFC7120" target="https://www.rfc-editor.org/info/rfc7120" quoteTitle="true" derivedAnchor="RFC7120">
          <front>
            <title>Early IANA Allocation of Standards Track Code Points</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <date month="January" year="2014"/>
            <abstract>
              <t indent="0">This memo describes the process for early allocation of code points by IANA from registries for which "Specification Required", "RFC Required", "IETF Review", or "Standards Action" policies apply. This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation. The procedures in this document are intended to apply only to IETF Stream documents.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="100"/>
          <seriesInfo name="RFC" value="7120"/>
          <seriesInfo name="DOI" value="10.17487/RFC7120"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" 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="Bruno Decraene"/>
       and <contact fullname="Gunter Van De Velde"/> for their many helpful
       comments. The authors would also like to thank a small group that
       wishes to remain anonymous for their valuable contributions.
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Tony Li" initials="T." surname="Li">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <postal>
            <street>1133 Innovation Way</street>
            <city>Sunnyvale</city>
            <region>CA</region>
            <code>94089</code>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>tony.li@tony.li</email>
        </address>
      </author>
      <author fullname="Sarah Chen" initials="S." surname="Chen">
        <organization showOnFrontPage="true">Arista Networks</organization>
        <address>
          <postal>
            <street>5453 Great America Parkway</street>
            <city>Santa Clara</city>
            <region>CA</region>
            <code>95054</code>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>sarahchen@arista.com</email>
        </address>
      </author>
      <author fullname="Vivek Ilangovan" initials="V." surname="Ilangovan">
        <organization showOnFrontPage="true">Arista Networks</organization>
        <address>
          <postal>
            <street>5453 Great America Parkway</street>
            <city>Santa Clara</city>
            <region>CA</region>
            <code>95054</code>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>ilangovan@arista.com</email>
        </address>
      </author>
      <author initials="G." surname="Mishra" fullname="Gyan S. Mishra">
        <organization showOnFrontPage="true">Verizon Inc.</organization>
        <address>
          <postal>
            <street>13101 Columbia Pike</street>
            <city>Silver Spring</city>
            <region>MD</region>
            <code>20904</code>
            <country>United States of America</country>
          </postal>
          <phone>301 502-1347</phone>
          <email>gyan.s.mishra@verizon.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
