<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-idr-tunnel-encaps-22" indexInclude="true" ipr="trust200902" number="9012" obsoletes="5512, 5566" prepTime="2021-04-27T14:34:48" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" updates="5640" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-idr-tunnel-encaps-22" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9012" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Tunnel Encapsulation Attribute">The BGP Tunnel Encapsulation Attribute</title>
    <seriesInfo name="RFC" value="9012" stream="IETF"/>
    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization showOnFrontPage="true">Arrcus, Inc</organization>
      <address>
        <postal>
          <street>2077 Gateway Pl</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95110</code>
          <country>United States of America</country>
        </postal>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <author fullname="Gunter Van de Velde" initials="G." surname="Van de Velde">
      <organization showOnFrontPage="true">Nokia</organization>
      <address>
        <postal>
          <street>Copernicuslaan 50</street>
          <city>Antwerpen</city>
          <code>2018</code>
          <country>Belgium</country>
        </postal>
        <email>gunter.van_de_velde@nokia.com</email>
      </address>
    </author>
    <author fullname="Srihari R. Sangli" initials="S." surname="Sangli">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>ssangli@juniper.net</email>
      </address>
    </author>
    <author fullname="John Scudder" initials="J." surname="Scudder">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>jgs@juniper.net</email>
      </address>
    </author>
    <date month="04" year="2021"/>
    <keyword>BGP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
	This document defines a BGP path attribute known as the
	"Tunnel Encapsulation attribute", which can be used with 
	BGP UPDATEs of various Subsequent Address Family Identifiers (SAFIs) to provide information needed 
	to create tunnels and their corresponding encapsulation 
	headers. It provides encodings for a number of tunnel types,
	along with procedures for choosing between alternate tunnels
	and routing packets into tunnels.</t>
      <t indent="0" pn="section-abstract-2">This document obsoletes RFC 5512, which provided an earlier
	definition of the Tunnel Encapsulation attribute. RFC 5512 was never
	deployed in production. Since RFC 5566 relies on RFC 5512, it is
	likewise obsoleted. This document updates RFC 5640 by indicating
	that the Load-Balancing Block sub-TLV may be included in any Tunnel
	Encapsulation attribute where load balancing is desired.</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 is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in 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/rfc9012" 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) 2021 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 Simplified BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Simplified 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" 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-brief-summary-of-rfc-5512">Brief Summary of RFC 5512</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deficiencies-in-rfc-5512">Deficiencies in RFC 5512</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.3">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.3.1"><xref derivedContent="1.3" format="counter" sectionFormat="of" target="section-1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-use-case-for-the-tunnel-enc">Use Case for the Tunnel Encapsulation Attribute</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.4">
                <t indent="0" pn="section-toc.1-1.1.2.4.1"><xref derivedContent="1.4" format="counter" sectionFormat="of" target="section-1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-brief-summary-of-changes-fr">Brief Summary of Changes from RFC 5512</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.5">
                <t indent="0" pn="section-toc.1-1.1.2.5.1"><xref derivedContent="1.5" format="counter" sectionFormat="of" target="section-1.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-to-rfc-5640">Update to RFC 5640</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.6">
                <t indent="0" pn="section-toc.1-1.1.2.6.1"><xref derivedContent="1.6" format="counter" sectionFormat="of" target="section-1.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-effects-of-obsoleting-rfc-5">Effects of Obsoleting RFC 5566</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-the-tunnel-encapsulation-at">The Tunnel Encapsulation Attribute</xref></t>
          </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-tunnel-encapsulation-attrib">Tunnel Encapsulation Attribute Sub-TLVs</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-tunnel-egress-endpoint-">The Tunnel Egress Endpoint Sub-TLV (Type Code 6)</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.1.2">
                  <li pn="section-toc.1-1.3.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.1.2.1.1"><xref derivedContent="3.1.1" format="counter" sectionFormat="of" target="section-3.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-validating-the-address-subf">Validating the Address Subfield</xref></t>
                  </li>
                </ul>
              </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-encapsulation-sub-tlvs-for-">Encapsulation Sub-TLVs for Particular Tunnel Types (Type Code 1)</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.2.2">
                  <li pn="section-toc.1-1.3.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.1.1"><xref derivedContent="3.2.1" format="counter" sectionFormat="of" target="section-3.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-vxlan-tunnel-type-8">VXLAN (Tunnel Type 8)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.2.1"><xref derivedContent="3.2.2" format="counter" sectionFormat="of" target="section-3.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-nvgre-tunnel-type-9">NVGRE (Tunnel Type 9)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.3.1"><xref derivedContent="3.2.3" format="counter" sectionFormat="of" target="section-3.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tpv3-tunnel-type-1">L2TPv3 (Tunnel Type 1)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.4">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.4.1"><xref derivedContent="3.2.4" format="counter" sectionFormat="of" target="section-3.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-gre-tunnel-type-2">GRE (Tunnel Type 2)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.5">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.5.1"><xref derivedContent="3.2.5" format="counter" sectionFormat="of" target="section-3.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mpls-in-gre-tunnel-type-11">MPLS-in-GRE (Tunnel Type 11)</xref></t>
                  </li>
                </ul>
              </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-outer-encapsulation-sub-tlv">Outer Encapsulation Sub-TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.3.2">
                  <li pn="section-toc.1-1.3.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.3.2.1.1"><xref derivedContent="3.3.1" format="counter" sectionFormat="of" target="section-3.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ds-field-type-code-7">DS Field (Type Code 7)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.3.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.3.2.2.1"><xref derivedContent="3.3.2" format="counter" sectionFormat="of" target="section-3.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-udp-destination-port-type-c">UDP Destination Port (Type Code 8)</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.4">
                <t indent="0" pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sub-tlvs-for-aiding-tunnel-">Sub-TLVs for Aiding Tunnel Selection</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.4.2">
                  <li pn="section-toc.1-1.3.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.4.2.1.1"><xref derivedContent="3.4.1" format="counter" sectionFormat="of" target="section-3.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-protocol-type-sub-tlv-type-">Protocol Type Sub-TLV (Type Code 2)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.4.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.4.2.2.1"><xref derivedContent="3.4.2" format="counter" sectionFormat="of" target="section-3.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-color-sub-tlv-type-code-4">Color Sub-TLV (Type Code 4)</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.5">
                <t indent="0" pn="section-toc.1-1.3.2.5.1"><xref derivedContent="3.5" format="counter" sectionFormat="of" target="section-3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-embedded-label-handling-sub">Embedded Label Handling Sub-TLV (Type Code 9)</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.6">
                <t indent="0" pn="section-toc.1-1.3.2.6.1"><xref derivedContent="3.6" format="counter" sectionFormat="of" target="section-3.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mpls-label-stack-sub-tlv-ty">MPLS Label Stack Sub-TLV (Type Code 10)</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.7">
                <t indent="0" pn="section-toc.1-1.3.2.7.1"><xref derivedContent="3.7" format="counter" sectionFormat="of" target="section-3.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-prefix-sid-sub-tlv-type-cod">Prefix-SID Sub-TLV (Type Code 11)</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-extended-communities-relate">Extended Communities Related to the Tunnel Encapsulation Attribute</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-encapsulation-extended-comm">Encapsulation Extended Community</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-routers-mac-extended-commun">Router's MAC Extended Community</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-color-extended-community">Color Extended Community</xref></t>
              </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-special-considerations-for-">Special Considerations for IP-in-IP Tunnels</xref></t>
          </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-semantics-and-usage-of-the-">Semantics and Usage of the Tunnel Encapsulation Attribute</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-routing-considerations">Routing Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-impact-on-the-bgp-decision-">Impact on the BGP Decision Process</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-looping-mutual-recursion-et">Looping, Mutual Recursion, Etc.</xref></t>
              </li>
            </ul>
          </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-recursive-next-hop-resoluti">Recursive Next-Hop Resolution</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-use-of-virtual-network-iden">Use of Virtual Network Identifiers and Embedded Labels When Imposing a Tunnel Encapsulation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tunnel-types-without-a-virt">Tunnel Types without a Virtual Network Identifier Field</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tunnel-types-with-a-virtual">Tunnel Types with a Virtual Network Identifier Field</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2.2.2">
                  <li pn="section-toc.1-1.9.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.9.2.2.2.1.1"><xref derivedContent="9.2.1" format="counter" sectionFormat="of" target="section-9.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-unlabeled-address-families">Unlabeled Address Families</xref></t>
                  </li>
                  <li pn="section-toc.1-1.9.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.9.2.2.2.2.1"><xref derivedContent="9.2.2" format="counter" sectionFormat="of" target="section-9.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-labeled-address-families">Labeled Address Families</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-applicability-restrictions">Applicability Restrictions</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-scoping">Scoping</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-considerations">Operational Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-validation-and-error-handli">Validation and Error Handling</xref></t>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" format="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.14.2">
              <li pn="section-toc.1-1.14.2.1">
                <t indent="0" pn="section-toc.1-1.14.2.1.1"><xref derivedContent="14.1" format="counter" sectionFormat="of" target="section-14.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-obsoleting-rfc-5512">Obsoleting RFC 5512</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.2">
                <t indent="0" pn="section-toc.1-1.14.2.2.1"><xref derivedContent="14.2" format="counter" sectionFormat="of" target="section-14.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-obsoleting-code-points-assi">Obsoleting Code Points Assigned by RFC 5566</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.3">
                <t indent="0" pn="section-toc.1-1.14.2.3.1"><xref derivedContent="14.3" format="counter" sectionFormat="of" target="section-14.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-border-gateway-protocol-bgp">Border Gateway Protocol (BGP) Tunnel Encapsulation Grouping</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.4">
                <t indent="0" pn="section-toc.1-1.14.2.4.1"><xref derivedContent="14.4" format="counter" sectionFormat="of" target="section-14.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-tunnel-encapsulation-at">BGP Tunnel Encapsulation Attribute Tunnel Types</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.5">
                <t indent="0" pn="section-toc.1-1.14.2.5.1"><xref derivedContent="14.5" format="counter" sectionFormat="of" target="section-14.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subsequent-address-family-i">Subsequent Address Family Identifiers</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.6">
                <t indent="0" pn="section-toc.1-1.14.2.6.1"><xref derivedContent="14.6" format="counter" sectionFormat="of" target="section-14.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-tunnel-encapsulation-att">BGP Tunnel Encapsulation Attribute Sub-TLVs</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.7">
                <t indent="0" pn="section-toc.1-1.14.2.7.1"><xref derivedContent="14.7" format="counter" sectionFormat="of" target="section-14.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flags-field-of-vxlan-encaps">Flags Field of VXLAN Encapsulation Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.8">
                <t indent="0" pn="section-toc.1-1.14.2.8.1"><xref derivedContent="14.8" format="counter" sectionFormat="of" target="section-14.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flags-field-of-nvgre-encaps">Flags Field of NVGRE Encapsulation Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.9">
                <t indent="0" pn="section-toc.1-1.14.2.9.1"><xref derivedContent="14.9" format="counter" sectionFormat="of" target="section-14.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-embedded-label-handling-sub-t">Embedded Label Handling Sub-TLV</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.10">
                <t indent="0" pn="section-toc.1-1.14.2.10.1"><xref derivedContent="14.10" format="counter" sectionFormat="of" target="section-14.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-color-extended-community-fl">Color Extended Community Flags</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="15" format="counter" sectionFormat="of" target="section-15"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="16" format="counter" sectionFormat="of" target="section-16"/>. <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.16.2">
              <li pn="section-toc.1-1.16.2.1">
                <t indent="0" pn="section-toc.1-1.16.2.1.1"><xref derivedContent="16.1" format="counter" sectionFormat="of" target="section-16.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.16.2.2">
                <t indent="0" pn="section-toc.1-1.16.2.2.1"><xref derivedContent="16.2" format="counter" sectionFormat="of" target="section-16.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.17">
            <t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-impact-on-rfc-8365">Impact on RFC 8365</xref></t>
          </li>
          <li pn="section-toc.1-1.18">
            <t indent="0" pn="section-toc.1-1.18.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.19">
            <t indent="0" pn="section-toc.1-1.19.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.20">
            <t indent="0" pn="section-toc.1-1.20.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><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">
   This document obsoletes <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/>.  The deficiencies of <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/>, and
   a summary of the changes made, are discussed in Sections <xref target="summary" format="counter" sectionFormat="of" derivedContent="1.1"/>-<xref target="use-case" format="counter" sectionFormat="of" derivedContent="1.3"/>.
   The material from <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> that is retained has been incorporated
   into this document.  Since <xref target="RFC5566" format="default" sectionFormat="of" derivedContent="RFC5566"/>
   relies on <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/>, it is likewise obsoleted.</t>
      <t indent="0" pn="section-1-2">
    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 numbered="true" toc="include" anchor="summary" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-brief-summary-of-rfc-5512">Brief Summary of RFC 5512</name>
        <t indent="0" pn="section-1.1-1">
   <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> defines a BGP path attribute known as the Tunnel
   Encapsulation attribute.  This attribute consists of one or more
   TLVs.  Each TLV identifies a particular type of tunnel.  Each TLV
   also contains one or more sub-TLVs.  Some of the sub-TLVs, for example, the
   Encapsulation sub-TLV, contain information that may be used to form
   the encapsulation header for the specified tunnel type.  Other sub-TLVs, for example, the "color sub-TLV" and the "protocol sub-TLV", contain
   information that aids in determining whether particular packets
   should be sent through the tunnel that the TLV identifies.</t>
        <t indent="0" pn="section-1.1-2">
   <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> only allows the Tunnel Encapsulation attribute to be
   attached to BGP UPDATE messages of the Encapsulation Address Family.
   These UPDATE messages have an Address Family Identifier (AFI) of 1 or
   2, and a SAFI of 7.  In an UPDATE of the Encapsulation SAFI, the
   Network Layer Reachability Information (NLRI) is an address of the BGP
   speaker originating the UPDATE.  Consider the following scenario:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1.1-3">
          <li pn="section-1.1-3.1">BGP speaker R1 has received and selected UPDATE U for local use;</li>
          <li pn="section-1.1-3.2">UPDATE U's SAFI is the Encapsulation SAFI;</li>
          <li pn="section-1.1-3.3">UPDATE U has the address R2 as its NLRI;</li>
          <li pn="section-1.1-3.4">UPDATE U has a Tunnel Encapsulation attribute.</li>
          <li pn="section-1.1-3.5">R1 has a packet, P, to transmit to destination D; and</li>
          <li pn="section-1.1-3.6">R1's best route to D is a BGP route that has R2 as its next hop.</li>
        </ul>
        <t indent="0" pn="section-1.1-4">
   In this scenario, when R1 transmits packet P, it should transmit it
   to R2 through one of the tunnels specified in U's Tunnel
   Encapsulation attribute.  The IP address of the tunnel egress endpoint of
   each such tunnel is R2.  Packet P is known as the tunnel's "payload".</t>
      </section>
      <section anchor="deficiencies" numbered="true" toc="include" removeInRFC="false" pn="section-1.2">
        <name slugifiedName="name-deficiencies-in-rfc-5512">Deficiencies in RFC 5512</name>
        <t indent="0" pn="section-1.2-1">
   While the ability to specify tunnel information in a BGP UPDATE is
   useful, the procedures of <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> have certain limitations:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1.2-2">
          <li pn="section-1.2-2.1">The requirement to use the Encapsulation SAFI presents an
      unfortunate operational cost, as each BGP session that may need to
      carry tunnel encapsulation information needs to be reconfigured to
      support the Encapsulation SAFI.  The Encapsulation SAFI has never
      been used, and this requirement has served only to discourage the
      use of the Tunnel Encapsulation attribute.</li>
          <li pn="section-1.2-2.2">There is no way to use the Tunnel Encapsulation attribute to
      specify the tunnel egress endpoint address of a given tunnel; <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/>
      assumes that the tunnel egress endpoint of each tunnel is specified as
      the NLRI of an UPDATE of the Encapsulation SAFI.</li>
          <li pn="section-1.2-2.3">If the respective best routes to two different address prefixes
      have the same next hop, <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> does not provide a
      straightforward method to associate each prefix with a different
      tunnel.</li>
          <li pn="section-1.2-2.4">If a particular tunnel type requires an outer IP or UDP
      encapsulation, there is no way to signal the values of any of the
      fields of the outer encapsulation.</li>
          <li pn="section-1.2-2.5">In the specification of the sub-TLVs in <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/>, each sub-TLV has a
      one-octet Length field.  In some cases, where a sub-TLV may require more than
      255 octets for its encoding, a two-octet Length field
      may be needed.</li>
        </ul>
      </section>
      <section numbered="true" toc="include" anchor="use-case" removeInRFC="false" pn="section-1.3">
        <name slugifiedName="name-use-case-for-the-tunnel-enc">Use Case for the Tunnel Encapsulation Attribute</name>
        <t indent="0" pn="section-1.3-1">
	    Consider the case of a router R1 forwarding an IP packet P.  Let D be
	    P's IP destination address.  R1 must look up D in its forwarding
	    table.  Suppose that the "best match" route for D is route Q, where Q
	    is a BGP-distributed route whose "BGP next hop" is router R2.  And
	    suppose further that the routers along the path from R1 to R2 have
	    entries for R2 in their forwarding tables but do NOT have entries
	    for D in their forwarding tables.  For example, the path from R1 to
	    R2 may be part of a "BGP-free core", where there are no BGP-distributed routes at all in the core.  Or, as in <xref target="RFC5565" format="default" sectionFormat="of" derivedContent="RFC5565"/>, D may be an
	    IPv4 address while the intermediate routers along the path from R1 to
	    R2 may support only IPv6.
        </t>
        <t indent="0" pn="section-1.3-2">
	    In cases such as this, in order for R1 to properly forward packet P,
	    it must encapsulate P and send P "through a tunnel" to R2.  For
	    example, R1 may encapsulate P using GRE, Layer 2 Tunneling
   Protocol version 3 (L2TPv3), IP in IP, etc.,
	    where the destination IP address of the encapsulation header is the
	    address of R2.
        </t>
        <t indent="0" pn="section-1.3-3">
	    In order for R1 to encapsulate P for transport to R2, R1 must know
	    what encapsulation protocol to use for transporting different sorts
	    of packets to R2.  R1 must also know how to fill in the various
	    fields of the encapsulation header.  With certain encapsulation
	    types, this knowledge may be acquired by default or through manual
	    configuration.  Other encapsulation protocols have fields such as
	    session id, key, or cookie that must be filled in.  It would not be
	    desirable to require every BGP speaker to be manually configured with
	    the encapsulation information for every one of its BGP next hops.
        </t>
        <t indent="0" pn="section-1.3-4">
	    This document specifies a way in which BGP itself can be used by
	    a given BGP speaker to tell other BGP speakers, "If you need to
	    encapsulate packets to be sent to me, here's the information you need
	    to properly form the encapsulation header".  A BGP speaker signals
	    this information to other BGP speakers by using a new BGP attribute type
	    value -- the BGP Tunnel Encapsulation attribute.  This attribute
	  specifies the encapsulation protocols that may be used, as well as
	  whatever additional information (if any) is needed in order to
	  properly use those protocols.  Other attributes, for example, communities or
	  extended communities, may also be included.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.4">
        <name slugifiedName="name-brief-summary-of-changes-fr">Brief Summary of Changes from RFC 5512</name>
        <t indent="0" pn="section-1.4-1">
   This document addresses the deficiencies identified in <xref target="deficiencies" format="default" sectionFormat="of" derivedContent="Section 1.2"/> by:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1.4-2">
          <li pn="section-1.4-2.1">Deprecating the Encapsulation SAFI.</li>
          <li pn="section-1.4-2.2">Defining a new "Tunnel Egress Endpoint sub-TLV" (<xref target="tunnel-egress-endpoint" format="default" sectionFormat="of" derivedContent="Section 3.1"/>) that can be
      included in any of the TLVs contained in the Tunnel Encapsulation
      attribute.  This sub-TLV can be used to specify the remote
      endpoint address of a particular tunnel.</li>
          <li pn="section-1.4-2.3">Allowing the Tunnel Encapsulation attribute to be carried by BGP
      UPDATEs of additional AFI/SAFIs.  Appropriate semantics are
      provided for this way of using the attribute.</li>
          <li pn="section-1.4-2.4">Defining a number of new sub-TLVs that provide additional
      information that is useful when forming the encapsulation header
      used to send a packet through a particular tunnel.</li>
          <li pn="section-1.4-2.5">Defining the Sub-TLV Type field so that a sub-TLV whose type is in
      the range from 0 to 127 (inclusive) has a one-octet Length field,
      but a sub-TLV whose type is in the range from 128 to 255 (inclusive)
      has a two-octet Length field.</li>
        </ul>
        <t indent="0" pn="section-1.4-3">
   One of the sub-TLVs defined in <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> is the "Encapsulation sub-TLV".  For a given tunnel, the Encapsulation sub-TLV specifies some
   of the information needed to construct the encapsulation header used
   when sending packets through that tunnel.  This document defines
   Encapsulation sub-TLVs for a number of tunnel types not discussed in
   <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/>: Virtual eXtensible Local Area Network (VXLAN) <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/>, Network Virtualization Using Generic Routing Encapsulation (NVGRE)
   <xref target="RFC7637" format="default" sectionFormat="of" derivedContent="RFC7637"/>, and MPLS in Generic Routing Encapsulation (MPLS-in-GRE) <xref target="RFC4023" format="default" sectionFormat="of" derivedContent="RFC4023"/>.  MPLS-in-UDP <xref target="RFC7510" format="default" sectionFormat="of" derivedContent="RFC7510"/> is also
   supported, but an Encapsulation sub-TLV for it is not needed since there are
   no additional parameters to be signaled.</t>
        <t indent="0" pn="section-1.4-4">
   Some of the encapsulations mentioned in the previous paragraph need
   to be further encapsulated inside UDP and/or IP.  <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> provides
   no way to specify that certain information is to appear in these
   outer IP and/or UDP encapsulations.  This document provides a
   framework for including such information in the TLVs of the Tunnel
   Encapsulation attribute.</t>
        <t indent="0" pn="section-1.4-5">
   When the Tunnel Encapsulation attribute is attached to a BGP UPDATE
   whose AFI/SAFI identifies one of the labeled address families, it is
   not always obvious whether the label embedded in the NLRI is to
   appear somewhere in the tunnel encapsulation header (and if so,
   where), whether it is to appear in the payload, or whether it can
   be omitted altogether.  This is especially true if the tunnel
   encapsulation header itself contains a "virtual network identifier".
   This document provides a mechanism that allows one to signal (by
   using sub-TLVs of the Tunnel Encapsulation attribute) how one wants
   to use the embedded label when the tunnel encapsulation has its own
   Virtual Network Identifier field.</t>
        <t indent="0" pn="section-1.4-6">

    <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/> defines an Encapsulation Extended
    Community that can be used instead of the Tunnel Encapsulation
    attribute under certain circumstances.  This document describes
     how the Encapsulation Extended
    Community can be used in a backwards-compatible fashion (see <xref target="encapsulation-extcomm" format="default" sectionFormat="of" derivedContent="Section 4.1"/>). It is
    possible to combine Encapsulation Extended Communities and
    Tunnel Encapsulation attributes in the same BGP UPDATE in this
    manner.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.5">
        <name slugifiedName="name-update-to-rfc-5640">Update to RFC 5640</name>
        <t indent="0" pn="section-1.5-1">
	This document updates <xref target="RFC5640" format="default" sectionFormat="of" derivedContent="RFC5640"/> by indicating that the Load-Balancing Block
 	sub-TLV <bcp14>MAY</bcp14> be included in any Tunnel Encapsulation attribute where
  	load balancing is desired. 
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.6">
        <name slugifiedName="name-effects-of-obsoleting-rfc-5">Effects of Obsoleting RFC 5566</name>
        <t indent="0" pn="section-1.6-1">
	This specification obsoletes RFC 5566. This has the effect of,
	in turn, deprecating a number of code points defined in that document.
	In the "BGP Tunnel Encapsulation Attribute Tunnel Types" registry <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>, the following code points have been marked as deprecated:
	"Transmit tunnel endpoint" (type code 3), "IPsec in Tunnel-mode" (type
	code 4), "IP in IP tunnel with IPsec Transport Mode" (type code 5), and
	"MPLS-in-IP tunnel with IPsec Transport Mode" (type code 6).
	In the "BGP Tunnel Encapsulation Attribute Sub-TLVs" registry <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>,
	"IPsec Tunnel Authenticator" (type code 3) has been marked as deprecated. 
	See <xref target="obsoleting-5566-and-5640" format="default" sectionFormat="of" derivedContent="Section 14.2"/>.
        </t>
      </section>
    </section>
    <section anchor="encaps-attr" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-the-tunnel-encapsulation-at">The Tunnel Encapsulation Attribute</name>
      <t indent="0" pn="section-2-1">
   The Tunnel Encapsulation attribute is an optional transitive BGP path

   attribute.  IANA has assigned the value 23 as the type code of the
   attribute in the "BGP Path Attributes" registry <xref target="IANA-BGP-PARAMS" format="default" sectionFormat="of" derivedContent="IANA-BGP-PARAMS"/>.  The attribute is composed of a set of Type-Length-Value
   (TLV) encodings.  Each TLV contains information corresponding to a
   particular tunnel type.  A Tunnel Encapsulation TLV, also known as Tunnel TLV,
   is structured as shown in <xref target="ref-tunnel-tlv-value-field" format="default" sectionFormat="of" derivedContent="Figure 1"/>.
      </t>
      <figure anchor="ref-tunnel-tlv-value-field" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-tunnel-encapsulation-tlv">Tunnel Encapsulation TLV</name>
        <artwork name="" type="" align="left" alt="" pn="section-2-2.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Tunnel Type (2 octets)     |        Length (2 octets)      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                        Value (variable)                       |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
      </figure>
      <dl indent="3" newline="false" spacing="normal" pn="section-2-3">
        <dt pn="section-2-3.1">Tunnel Type (2 octets):</dt>
        <dd pn="section-2-3.2">Identifies a type of tunnel.  The field
      contains values from the IANA registry
"BGP Tunnel Encapsulation Attribute Tunnel Types" <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>.
      See <xref target="protocol-type" format="default" sectionFormat="of" derivedContent="Section 3.4.1"/> for discussion of special treatment of tunnel types with names of the form "X-in-Y".</dd>
        <dt pn="section-2-3.3">Length (2 octets):</dt>
        <dd pn="section-2-3.4">The total number of octets of the Value field.</dd>
        <dt pn="section-2-3.5">Value (variable):</dt>
        <dd pn="section-2-3.6">Comprised of multiple sub-TLVs.</dd>
      </dl>
      <t indent="0" pn="section-2-4">
   Each sub-TLV consists of three fields: A 1-octet type, a 1-octet or
   2-octet length (depending on the type), and zero or more octets
   of value.  A sub-TLV is structured as shown in <xref target="ref-tunnel-encapsulation-sub-tlv-value-field" format="default" sectionFormat="of" derivedContent="Figure 2"/>.
      </t>
      <figure anchor="ref-tunnel-encapsulation-sub-tlv-value-field" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-encapsulation-sub-tlv">Encapsulation Sub-TLV</name>
        <artwork name="" type="" align="left" alt="" pn="section-2-5.1">
                    +--------------------------------+
                    | Sub-TLV Type (1 octet)         |
                    +--------------------------------+
                    | Sub-TLV Length (1 or 2 octets) |
                    +--------------------------------+
                    | Sub-TLV Value (variable)       |
                    +--------------------------------+
</artwork>
      </figure>
      <dl indent="3" newline="false" spacing="normal" pn="section-2-6">
        <dt pn="section-2-6.1">Sub-TLV Type (1 octet):</dt>
        <dd pn="section-2-6.2">Each sub-TLV type defines a certain
      property about the Tunnel TLV that contains this sub-TLV.
      The field contains values from the IANA registry 
"BGP Tunnel Encapsulation Attribute Sub-TLVs" <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>.</dd>
        <dt pn="section-2-6.3">Sub-TLV Length (1 or 2 octets):</dt>
        <dd pn="section-2-6.4">The total number of octets of the
      Sub-TLV Value field.  The Sub-TLV Length field contains 1 octet if
      the Sub-TLV Type field contains a value in the range from 0-127.
      The Sub-TLV Length field contains two octets if the Sub-TLV Type
      field contains a value in the range from 128-255.</dd>
        <dt pn="section-2-6.5">Sub-TLV Value (variable):</dt>
        <dd pn="section-2-6.6">Encodings of the Value field depend on
      the sub-TLV type.  The following subsections
      define the encoding in detail.</dd>
      </dl>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-tunnel-encapsulation-attrib">Tunnel Encapsulation Attribute Sub-TLVs</name>
      <t indent="0" pn="section-3-1">
	This section specifies a number of sub-TLVs.  These sub-TLVs can
      be included in a TLV of the Tunnel Encapsulation attribute.</t>
      <section anchor="tunnel-egress-endpoint" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-the-tunnel-egress-endpoint-">The Tunnel Egress Endpoint Sub-TLV (Type Code 6)</name>
        <t indent="0" pn="section-3.1-1">
   The Tunnel Egress Endpoint
   sub-TLV specifies the address of the egress endpoint of the tunnel, that
   is, the address of the router that will decapsulate the payload. Its 
   Value field contains three subfields:</t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-3.1-2"><li pn="section-3.1-2.1" derivedCounter="1.">a Reserved subfield</li>
          <li pn="section-3.1-2.2" derivedCounter="2.">a two-octet Address Family subfield</li>
          <li pn="section-3.1-2.3" derivedCounter="3.">an Address subfield, whose length depends upon the Address
       Family.</li>
        </ol>
        <figure anchor="ref-tunnel-endpoint-sub-tlv-value-field" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-tunnel-egress-endpoint-sub-">Tunnel Egress Endpoint Sub-TLV Value Field</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.1-3.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                       Reserved (4 octets)                     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Address Family (2 octets)   |           Address             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          (variable)           +
  ~                                                               ~
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-3.1-4">
   The Reserved subfield <bcp14>SHOULD</bcp14> be originated as zero. It <bcp14>MUST</bcp14> be
   disregarded on receipt, and it <bcp14>MUST</bcp14> be propagated unchanged.
        </t>
        <t indent="0" pn="section-3.1-5">
   The Address Family subfield contains a value from IANA's
"Address Family Numbers" registry <xref target="IANA-ADDRESS-FAM" format="default" sectionFormat="of" derivedContent="IANA-ADDRESS-FAM"/>.  
   This document assumes that the
   Address Family is either IPv4 or IPv6; use of other address families
   is outside the scope of this document.</t>
        <t indent="0" pn="section-3.1-6">
   If the Address Family subfield contains the value for IPv4, the
   Address subfield <bcp14>MUST</bcp14> contain an IPv4 address (a /32 IPv4 prefix).</t>
        <t indent="0" pn="section-3.1-7">
   If the Address Family subfield contains the value for IPv6, the
   Address subfield <bcp14>MUST</bcp14> contain an IPv6 address (a /128 IPv6 prefix).</t>
        <t indent="0" pn="section-3.1-8">
   In a given BGP UPDATE, the address family (IPv4 or IPv6) of a Tunnel
   Egress Endpoint sub-TLV is independent of the address family of the UPDATE
   itself. For example, an UPDATE whose NLRI is an IPv4 address may
   have a Tunnel Encapsulation attribute containing Tunnel Egress Endpoint 
   sub-TLVs that contain IPv6 addresses.  Also, different tunnels
   represented in the Tunnel Encapsulation attribute may have tunnel egress
   endpoints of different address families.</t>
        <t indent="0" pn="section-3.1-9">
	  There is one special case: the Tunnel Egress Endpoint sub-TLV <bcp14>MAY</bcp14> have a
	  Value field whose Address Family subfield contains 0.  This means
	  that the tunnel's egress endpoint is the address of the next hop.  If
	  the Address Family subfield contains 0, the Address subfield is
	  omitted. In this case,
	  the Length field of Tunnel Egress Endpoint sub-TLV <bcp14>MUST</bcp14> contain the
	  value 6 (0x06). </t>
        <t indent="0" pn="section-3.1-10">
          When the Tunnel Encapsulation attribute is carried in an UPDATE message
          of one of the AFI/SAFIs specified in this document (see the first 
          paragraph of <xref target="usage" format="default" sectionFormat="of" derivedContent="Section 6"/>), each TLV <bcp14>MUST</bcp14> have one, and only one, Tunnel Egress Endpoint sub-TLV. If a TLV does not have a Tunnel Egress Endpoint sub-TLV, that TLV should be treated as if it had a malformed Tunnel
          Egress Endpoint sub-TLV (see below).</t>
        <t indent="0" pn="section-3.1-11">

   In the context of this specification, if the Address Family subfield
   has any value other than IPv4, IPv6, or the special value 0, the
   Tunnel Egress Endpoint sub-TLV is considered "unrecognized" (see
   <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>).
    
   If any of the following conditions hold, the Tunnel Egress Endpoint sub-TLV
   is considered to be "malformed":</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.1-12">
          <li pn="section-3.1-12.1">
            <t indent="0" pn="section-3.1-12.1.1">The length of the sub-TLV's Value field is other than 6 added to
	  the defined length for the address family given in its Address
	  Family subfield. Therefore, for address family behaviors defined
	  in this document, the permitted values are:
	  
            </t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.1-12.1.2">
              <li pn="section-3.1-12.1.2.1">10, if the Address Family subfield contains the value for IPv4.</li>
              <li pn="section-3.1-12.1.2.2">22, if the Address Family subfield contains the value for IPv6.</li>
              <li pn="section-3.1-12.1.2.3">6, if the Address Family subfield contains the value zero.</li>
            </ul>
          </li>
          <li pn="section-3.1-12.2">The IP address in the sub-TLV's Address subfield lies within a
	  block listed in the relevant Special-Purpose IP Address registry
	  <xref target="RFC6890" format="default" sectionFormat="of" derivedContent="RFC6890"/> with either a "destination" attribute 
	  value or a "forwardable" attribute value of "false". (Such routes
	  are sometimes colloquially known as "Martians".) This restriction 
	  <bcp14>MAY</bcp14> be relaxed by explicit configuration.</li>
          <li pn="section-3.1-12.3">It can be determined that the IP address in the sub-TLV's Address
      subfield does not belong to the Autonomous System (AS) that originated
      the route that contains the attribute.  <xref target="address-validation" format="default" sectionFormat="of" derivedContent="Section 3.1.1"/> 
      describes an optional procedure to make this determination.</li>
        </ul>
        <t indent="0" pn="section-3.1-13">
   Error handling is specified in <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>.
        </t>
        <t indent="0" pn="section-3.1-14">
   If the Tunnel Egress Endpoint sub-TLV contains an IPv4 or IPv6 address that
   is valid but not reachable, the sub-TLV is not considered to be
   malformed.</t>
        <section anchor="address-validation" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.1">
          <name slugifiedName="name-validating-the-address-subf">Validating the Address Subfield</name>
          <t indent="0" pn="section-3.1.1-1"> 
   This section provides a procedure that <bcp14>MAY</bcp14> be applied to 
   validate that the IP address in the sub-TLV's Address subfield 
   belongs to the AS that originated the route that contains the
   attribute. (The notion of "belonging to" an AS is expanded on below.)
   Doing this is thought to increase confidence that when 
   traffic is sent to the IP address depicted in the
   Address subfield, it will go to the same AS as it would go to if the
   Tunnel Encapsulation attribute were not present, although of course
   it cannot guarantee it. See <xref target="security" format="default" sectionFormat="of" derivedContent="Section 15"/> for discussion of the limitations of this
   procedure. The principal applicability of this procedure is in deployments
   that are not strictly scoped. In deployments with strict scope, and especially
   those scoped to a single AS, these procedures may not add substantial
   benefit beyond those discussed in <xref target="scoping" format="default" sectionFormat="of" derivedContent="Section 11"/>.
          </t>
          <t indent="0" pn="section-3.1.1-2">
   The Route Origin Autonomous System Number (ASN) of a BGP route that
   includes a Tunnel Encapsulation attribute can be determined by
   inspection of the AS_PATH attribute, according to the procedure
   specified in <xref target="RFC6811" sectionFormat="comma" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6811#section-2" derivedContent="RFC6811"/>. Call this value
   Route_AS. 
          </t>
          <t indent="0" pn="section-3.1.1-3">
   In order to determine the Route Origin ASN of the address depicted in
   the Address subfield of the Tunnel Egress Endpoint sub-TLV, it is
   necessary to consider the forwarding route -- that is, the route that
   will be used to forward traffic toward that address. This route is
   determined by a recursive route-lookup operation for that address, as
   discussed in <xref target="RFC4271" sectionFormat="comma" section="5.1.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4271#section-5.1.3" derivedContent="RFC4271"/>. The relevant AS
   path to consider is the last one encountered while performing the
   recursive lookup; the procedures of <xref target="RFC6811" sectionFormat="comma" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6811#section-2" derivedContent="RFC6811"/> are applied to
   that AS path to determine the Route Origin ASN. If no AS path is
   encountered at all, for example, if that route's source is a protocol
   other than BGP, the Route Origin ASN is the BGP speaker's own AS
   number. Call this value Egress_AS.
          </t>
          <t indent="0" pn="section-3.1.1-4">
   If Route_AS does not equal Egress_AS, then the Tunnel Egress Endpoint
   sub-TLV is considered not to be valid. In some cases, a network operator
   who controls a set of ASes might wish to allow a tunnel
   egress endpoint to reside in an AS other than Route_AS; configuration
   <bcp14>MAY</bcp14> allow for such a case, in which case the check becomes: if 
   Egress_AS is not within the configured set of permitted AS numbers, then the 
   Tunnel Egress Endpoint sub-TLV is considered to be "malformed".
          </t>
          <t indent="0" pn="section-3.1.1-5">
   Note that if the forwarding route changes, this procedure <bcp14>MUST</bcp14> be 
   reapplied. As a result, a sub-TLV that was formerly considered valid
   might become not valid, or vice versa.
          </t>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-encapsulation-sub-tlvs-for-">Encapsulation Sub-TLVs for Particular Tunnel Types (Type Code 1)</name>
        <t indent="0" pn="section-3.2-1">
   This section defines Encapsulation sub-TLVs for the following
   tunnel types: VXLAN <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/>, NVGRE
   <xref target="RFC7637" format="default" sectionFormat="of" derivedContent="RFC7637"/>, MPLS-in-GRE <xref target="RFC4023" format="default" sectionFormat="of" derivedContent="RFC4023"/>, L2TPv3
   <xref target="RFC3931" format="default" sectionFormat="of" derivedContent="RFC3931"/>, and GRE <xref target="RFC2784" format="default" sectionFormat="of" derivedContent="RFC2784"/>.</t>
        <t indent="0" pn="section-3.2-2">
   Rules for forming the encapsulation based on the information in a
   given TLV are given in Sections <xref target="usage" format="counter" sectionFormat="of" derivedContent="6"/> and <xref target="use-of-vni" format="counter" sectionFormat="of" derivedContent="9"/>.</t>
        <t indent="0" pn="section-3.2-3">
   Recall that the tunnel type itself is identified by the Tunnel Type
   field in the attribute header (<xref target="encaps-attr" format="default" sectionFormat="of" derivedContent="Section 2"/>); the
   Encapsulation sub-TLV's structure is inferred from this. Regardless
   of the tunnel type, the sub-TLV type of the Encapsulation sub-TLV is
   1. There are also tunnel types for which it is not necessary to
   define an Encapsulation sub-TLV, because there are no fields in the
   encapsulation header whose values need to be signaled from the tunnel
   egress endpoint.</t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2.1">
          <name slugifiedName="name-vxlan-tunnel-type-8">VXLAN (Tunnel Type 8)</name>
          <t indent="0" pn="section-3.2.1-1">
   This document defines an Encapsulation sub-TLV for <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348">VXLAN</xref> tunnels.
   When the tunnel type is VXLAN, the length of the sub-TLV is 12 octets. The structure of the Value field in the Encapsulation sub-TLV is shown in <xref target="ref-vxlan-encapsulation-sub-tlv" format="default" sectionFormat="of" derivedContent="Figure 4"/>.</t>
          <figure anchor="ref-vxlan-encapsulation-sub-tlv" align="left" suppress-title="false" pn="figure-4">
            <name slugifiedName="name-vxlan-encapsulation-sub-tlv">VXLAN Encapsulation Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.2.1-2.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |V|M|R|R|R|R|R|R|          VN-ID (3 octets)                     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 MAC Address (4 octets)                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  MAC Address (2 octets)       |      Reserved (2 octets)      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl newline="false" spacing="normal" indent="3" pn="section-3.2.1-3">
            <dt pn="section-3.2.1-3.1">V:</dt>
            <dd pn="section-3.2.1-3.2">
      This bit is set to 1 to indicate that a Virtual
      Network Identifier (VN-ID) is present in the Encapsulation sub-TLV.
      If set to 0, the VN-ID field is disregarded.
      Please see <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/>.</dd>
            <dt pn="section-3.2.1-3.3">M:</dt>
            <dd pn="section-3.2.1-3.4">
      This bit is set to 1 to indicate that a Media Access Control (MAC) Address is
      present in the Encapsulation sub-TLV. If set to 0, the MAC
      Address field is disregarded.</dd>
            <dt pn="section-3.2.1-3.5">R:</dt>
            <dd pn="section-3.2.1-3.6">
      The remaining bits in the 8-bit Flags field are reserved for
      further use.  They <bcp14>MUST</bcp14> always be set to 0 by the originator of
      the sub-TLV. Intermediate routers <bcp14>MUST</bcp14> propagate them without
      modification. Any receiving routers <bcp14>MUST</bcp14> ignore
      these bits upon receipt.</dd>
            <dt pn="section-3.2.1-3.7">VN-ID:</dt>
            <dd pn="section-3.2.1-3.8">
      If the V bit is set to 1, the VN-ID field contains a 3-octet VN-ID value.  If the V bit is set to 0, the VN-ID field <bcp14>MUST</bcp14> be set
      to zero on transmission and disregarded on receipt.</dd>
            <dt pn="section-3.2.1-3.9">MAC Address:</dt>
            <dd pn="section-3.2.1-3.10">
      If the M bit is set to 1, this field contains a 6-octet
      Ethernet MAC address.  If the M bit is set to 0, this field <bcp14>MUST</bcp14>
      be set to all zeroes on transmission and disregarded on receipt.</dd>
            <dt pn="section-3.2.1-3.11">Reserved:</dt>
            <dd pn="section-3.2.1-3.12">
              <bcp14>MUST</bcp14> be set to zero on transmission and disregarded
      on receipt.</dd>
          </dl>
          <t indent="0" pn="section-3.2.1-4">
   When forming the VXLAN encapsulation header:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.2.1-5">
            <li pn="section-3.2.1-5.1">The values of the V, M, and R bits are NOT copied into the Flags
      field of the VXLAN header.  The Flags field of the VXLAN header is
      set as per <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/>.</li>
            <li pn="section-3.2.1-5.2">
              <t indent="0" pn="section-3.2.1-5.2.1">If the M bit is set to 1, the MAC Address is copied into the Inner
      Destination MAC Address field of the Inner Ethernet Header (see
      <xref target="RFC7348" sectionFormat="of" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7348#section-5" derivedContent="RFC7348"/>).</t>
              <t indent="0" pn="section-3.2.1-5.2.2">
	If the M bit is set to 0, and the payload being sent through the
      VXLAN tunnel is an Ethernet frame, the Destination MAC Address
      field of the Inner Ethernet Header is just the Destination MAC
      Address field of the payload's Ethernet header.
              </t>
              <t indent="0" pn="section-3.2.1-5.2.3">
	If the M bit is set to 0, and the payload being sent through the
      VXLAN tunnel is an IP or MPLS packet, the Inner Destination MAC
      Address field is set to a configured value; if there is no
      configured value, the VXLAN tunnel cannot be used.
              </t>
            </li>
            <li pn="section-3.2.1-5.3"> If the V bit is set to 0, and the BGP UPDATE message has an
	  AFI/SAFI other than Ethernet VPNs (SAFI 70, "BGP EVPNs"), then the 
	  VXLAN tunnel cannot be used.
	</li>
            <li pn="section-3.2.1-5.4">
              <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/> describes how the VNI (VXLAN Network Identifier) field of the VXLAN encapsulation header is set.
    </li>
          </ul>
          <t indent="0" pn="section-3.2.1-6">
   Note that in order to send an IP packet or an MPLS packet through a
   VXLAN tunnel, the packet must first be encapsulated in an Ethernet
   header, which becomes the "Inner Ethernet Header" described in
   <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/>.  The VXLAN Encapsulation sub-TLV may contain information
   (for example, the MAC address) that is used to form this Ethernet header.</t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2.2">
          <name slugifiedName="name-nvgre-tunnel-type-9">NVGRE (Tunnel Type 9)</name>
          <t indent="0" pn="section-3.2.2-1">
   This document defines an Encapsulation sub-TLV for <xref target="RFC7637" format="default" sectionFormat="of" derivedContent="RFC7637">NVGRE</xref> tunnels.
   When the tunnel type is NVGRE, the length of the sub-TLV is 12 octets. The structure of the Value field in the Encapsulation sub-TLV is shown in <xref target="ref-nvgre-encapsulation-sub-tlv" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</t>
          <figure anchor="ref-nvgre-encapsulation-sub-tlv" align="left" suppress-title="false" pn="figure-5">
            <name slugifiedName="name-nvgre-encapsulation-sub-tlv">NVGRE Encapsulation Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.2.2-2.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |V|M|R|R|R|R|R|R|          VN-ID (3 octets)                     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 MAC Address (4 octets)                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  MAC Address (2 octets)       |      Reserved (2 octets)      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl newline="false" spacing="normal" indent="3" pn="section-3.2.2-3">
            <dt pn="section-3.2.2-3.1">V:</dt>
            <dd pn="section-3.2.2-3.2">
      This bit is set to 1 to indicate that a VN-ID is
      present in the Encapsulation sub-TLV.  If set to 0,
      the VN-ID field is disregarded. Please see <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/>.</dd>
            <dt pn="section-3.2.2-3.3">M:</dt>
            <dd pn="section-3.2.2-3.4">
      This bit is set to 1 to indicate that a MAC Address is
      present in the Encapsulation sub-TLV. If set to 0,
      the MAC Address field is disregarded. </dd>
            <dt pn="section-3.2.2-3.5">R:</dt>
            <dd pn="section-3.2.2-3.6">
      The remaining bits in the 8-bit Flags field are reserved for
      further use. They <bcp14>MUST</bcp14> always be set to 0 by the originator of
      the sub-TLV. Intermediate routers <bcp14>MUST</bcp14> propagate them without
      modification. Any receiving routers <bcp14>MUST</bcp14> ignore
      these bits upon receipt.</dd>
            <dt pn="section-3.2.2-3.7">VN-ID:</dt>
            <dd pn="section-3.2.2-3.8">
      If the V bit is set to 1, the VN-ID field contains a 3-octet VN-ID value, used to set the NVGRE Virtual Subnet Identifier (VSID; see <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/>).  If the V bit is set to 0, the VN-ID field <bcp14>MUST</bcp14> be set
      to zero on transmission and disregarded on receipt.</dd>
            <dt pn="section-3.2.2-3.9">MAC Address:</dt>
            <dd pn="section-3.2.2-3.10">
      If the M bit is set to 1, this field contains a 6-octet
      Ethernet MAC address.  If the M bit is set to 0, this field <bcp14>MUST</bcp14>
      be set to all zeroes on transmission and disregarded on receipt.</dd>
            <dt pn="section-3.2.2-3.11">Reserved:</dt>
            <dd pn="section-3.2.2-3.12">
              <bcp14>MUST</bcp14> be set to zero on transmission and disregarded
      on receipt.</dd>
          </dl>
          <t indent="0" pn="section-3.2.2-4">
   When forming the NVGRE encapsulation header:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.2.2-5">
            <li pn="section-3.2.2-5.1">The values of the V, M, and R bits are NOT copied into the Flags
      field of the NVGRE header.  The Flags field of the NVGRE header is
      set as per <xref target="RFC7637" format="default" sectionFormat="of" derivedContent="RFC7637"/>.</li>
            <li pn="section-3.2.2-5.2">
              <t indent="0" pn="section-3.2.2-5.2.1">If the M bit is set to 1, the MAC Address is copied into the Inner
      Destination MAC Address field of the Inner Ethernet Header (see
      <xref target="RFC7637" sectionFormat="of" section="3.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7637#section-3.2" derivedContent="RFC7637"/>).</t>
              <t indent="0" pn="section-3.2.2-5.2.2">
	If the M bit is set to 0, and the payload being sent through the
      NVGRE tunnel is an Ethernet frame, the Destination MAC Address
      field of the Inner Ethernet Header is just the Destination MAC
      Address field of the payload's Ethernet header.
              </t>
              <t indent="0" pn="section-3.2.2-5.2.3">
	If the M bit is set to 0, and the payload being sent through the
      NVGRE tunnel is an IP or MPLS packet, the Inner Destination MAC
      Address field is set to a configured value; if there is no
      configured value, the NVGRE tunnel cannot be used.
              </t>
            </li>
            <li pn="section-3.2.2-5.3"> If the V bit is set to 0, and the BGP UPDATE message has an
	  AFI/SAFI other than Ethernet VPNs (EVPNs), then the 
	  NVGRE tunnel cannot be used.
	</li>
            <li pn="section-3.2.2-5.4">
              <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/> describes how the VSID field of the
      NVGRE encapsulation header is set.</li>
          </ul>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2.3">
          <name slugifiedName="name-l2tpv3-tunnel-type-1">L2TPv3 (Tunnel Type 1)</name>
          <t indent="0" pn="section-3.2.3-1">
   When the tunnel type of the TLV is <xref target="RFC3931" format="default" sectionFormat="of" derivedContent="RFC3931">L2TPv3 over IP</xref>, the length of the sub-TLV is 
   between 4 and 12
   octets, depending on the length of the cookie. 
   The structure of the Value field of the Encapsulation sub-TLV is shown in <xref target="ref-l2tpv3-encapsulation-sub-tlv" format="default" sectionFormat="of" derivedContent="Figure 6"/>.</t>
          <figure anchor="ref-l2tpv3-encapsulation-sub-tlv" align="left" suppress-title="false" pn="figure-6">
            <name slugifiedName="name-l2tpv3-encapsulation-sub-tl">L2TPv3 Encapsulation Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.2.3-2.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Session ID (4 octets)                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                        Cookie (variable)                      |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl newline="false" spacing="normal" indent="3" pn="section-3.2.3-3">
            <dt pn="section-3.2.3-3.1">Session ID:</dt>
            <dd pn="section-3.2.3-3.2">
      A non-zero 4-octet value locally assigned by the
      advertising router that serves as a lookup key for the incoming
      packet's context.</dd>
            <dt pn="section-3.2.3-3.3">Cookie:</dt>
            <dd pn="section-3.2.3-3.4">
              <t indent="0" pn="section-3.2.3-3.4.1">
      An optional, variable-length (encoded in 0 to 8
      octets) value used by L2TPv3 to check the association of a
      received data message with the session identified by the Session
      ID.  Generation and usage of the cookie value is as specified in
      <xref target="RFC3931" format="default" sectionFormat="of" derivedContent="RFC3931"/>. </t>
              <t indent="0" pn="section-3.2.3-3.4.2">
      The length of the cookie is not encoded explicitly but can be
      calculated as (sub-TLV length - 4).</t>
            </dd>
          </dl>
        </section>
        <section anchor="gre" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.4">
          <name slugifiedName="name-gre-tunnel-type-2">GRE (Tunnel Type 2)</name>
          <t indent="0" pn="section-3.2.4-1">
   When the tunnel type of the TLV is <xref target="RFC2784" format="default" sectionFormat="of" derivedContent="RFC2784">GRE</xref>, the length of the sub-TLV is 4 octets. The structure of the Value field of the Encapsulation sub-TLV is shown in <xref target="ref-gre-encapsulation-sub-tlv" format="default" sectionFormat="of" derivedContent="Figure 7"/>.</t>
          <figure anchor="ref-gre-encapsulation-sub-tlv" align="left" suppress-title="false" pn="figure-7">
            <name slugifiedName="name-gre-encapsulation-sub-tlv-v">GRE Encapsulation Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.2.4-2.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      GRE Key (4 octets)                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl newline="false" spacing="normal" indent="3" pn="section-3.2.4-3">
            <dt pn="section-3.2.4-3.1">GRE Key:</dt>
            <dd pn="section-3.2.4-3.2">
      4-octet field <xref target="RFC2890" format="default" sectionFormat="of" derivedContent="RFC2890"/> that is generated by the
      advertising router. Note that the key is optional.  Unless a key value is being
      advertised, the GRE Encapsulation sub-TLV <bcp14>MUST NOT</bcp14> be present.</dd>
          </dl>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2.5">
          <name slugifiedName="name-mpls-in-gre-tunnel-type-11">MPLS-in-GRE (Tunnel Type 11)</name>
          <t indent="0" pn="section-3.2.5-1">
   When the tunnel type is <xref target="RFC4023" format="default" sectionFormat="of" derivedContent="RFC4023">MPLS-in-GRE</xref>, the length of the sub-TLV is 4 octets. The structure of the Value field of the Encapsulation sub-TLV is shown in <xref target="ref-mpls-in-gre-encapsulation-sub-tlv" format="default" sectionFormat="of" derivedContent="Figure 8"/>.</t>
          <figure anchor="ref-mpls-in-gre-encapsulation-sub-tlv" align="left" suppress-title="false" pn="figure-8">
            <name slugifiedName="name-mpls-in-gre-encapsulation-s">MPLS-in-GRE Encapsulation Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.2.5-2.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                       GRE Key (4 octets)                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <dl newline="false" spacing="normal" indent="3" pn="section-3.2.5-3">
            <dt pn="section-3.2.5-3.1">GRE Key:</dt>
            <dd pn="section-3.2.5-3.2">
      4-octet field <xref target="RFC2890" format="default" sectionFormat="of" derivedContent="RFC2890"/> that is generated by the
      advertising router.  Note that the key is optional.  Unless a key
      value is being advertised, the MPLS-in-GRE Encapsulation sub-TLV
      <bcp14>MUST NOT</bcp14> be present.</dd>
          </dl>
          <t indent="0" pn="section-3.2.5-4">
   Note that the GRE tunnel type defined in <xref target="gre" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/> can be used
   instead of the MPLS-in-GRE tunnel type when it is necessary to
   encapsulate MPLS in GRE.  Including a TLV of the MPLS-in-GRE tunnel
   type is equivalent to including a TLV of the GRE tunnel type that
   also includes a Protocol Type sub-TLV (<xref target="protocol-type" format="default" sectionFormat="of" derivedContent="Section 3.4.1"/>) specifying MPLS
   as the protocol to be encapsulated.</t>
          <t indent="0" pn="section-3.2.5-5">
   Although the MPLS-in-GRE tunnel type is just a special case of the GRE
   tunnel type and thus is not strictly necessary, it is included for reasons
   of backwards compatibility with, for example, implementations of <xref target="RFC8365" format="default" sectionFormat="of" derivedContent="RFC8365"/>.
</t>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-outer-encapsulation-sub-tlv">Outer Encapsulation Sub-TLVs</name>
        <t indent="0" pn="section-3.3-1">
   The Encapsulation sub-TLV for a particular tunnel type allows one to
   specify the values that are to be placed in certain fields of the
   encapsulation header for that tunnel type.  However, some tunnel
   types require an outer IP encapsulation, and some also require an
   outer UDP encapsulation.  The Encapsulation sub-TLV for a given
   tunnel type does not usually provide a way to specify values for
   fields of the outer IP and/or UDP encapsulations.  If it is necessary
   to specify values for fields of the outer encapsulation, additional
   sub-TLVs must be used.  This document defines two such sub-TLVs.</t>
        <t indent="0" pn="section-3.3-2">
   If an outer Encapsulation sub-TLV occurs in a TLV for a tunnel type
   that does not use the corresponding outer encapsulation, the sub-TLV
   <bcp14>MUST</bcp14> be treated as if it were an unrecognized type of sub-TLV.</t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-3.3.1">
          <name slugifiedName="name-ds-field-type-code-7">DS Field (Type Code 7)</name>
          <t indent="0" pn="section-3.3.1-1">
   Most of the tunnel types that can be specified in the Tunnel
   Encapsulation attribute require an outer IP encapsulation.  The
   Differentiated Services (DS) Field sub-TLV can be carried in the TLV
   of any such tunnel type.  It specifies the setting of the one-octet
   Differentiated Services field in the outer IPv4 or IPv6 encapsulation (see
   <xref target="RFC2474" format="default" sectionFormat="of" derivedContent="RFC2474"/>).  Any one-octet value can be transported; the semantics
   of the DSCP (Differentiated Services Code Point) field is beyond the scope of this document.  The Value field is always a single octet.</t>
          <figure anchor="ref-ds-field" align="left" suppress-title="false" pn="figure-9">
            <name slugifiedName="name-ds-field-sub-tlv-value-fiel">DS Field Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.1-2.1">
   0 1 2 3 4 5 6 7 
  +-+-+-+-+-+-+-+-+
  |    DS value   |
  +-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-3.3.1-3">
   Because the interpretation of the DSCP field at the recipient may be 
   different from its interpretation at the originator, an implementation
   <bcp14>MAY</bcp14> provide a facility to use policy to filter or modify the DS field.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-3.3.2">
          <name slugifiedName="name-udp-destination-port-type-c">UDP Destination Port (Type Code 8)</name>
          <t indent="0" pn="section-3.3.2-1">
   Some of the tunnel types that can be specified in the Tunnel
   Encapsulation attribute require an outer UDP encapsulation.
   Generally, there is a standard UDP destination port value for a
   particular tunnel type.  However, sometimes it is useful to be able
   to use a nonstandard UDP destination port.  If a particular tunnel
   type requires an outer UDP encapsulation, and it is desired to use a
   UDP destination port other than the standard one, the port to be used
   can be specified by including a UDP Destination Port sub-TLV.  The
   Value field of this sub-TLV is always a two-octet field, containing
   the port value.  Any two-octet value other than zero can be transported.
   If the reserved value zero is received, the sub-TLV <bcp14>MUST</bcp14> be treated 
   as malformed, according to the rules of <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>.</t>
          <figure anchor="ref-udp-dest-port" align="left" suppress-title="false" pn="figure-10">
            <name slugifiedName="name-udp-destination-port-sub-tl">UDP Destination Port Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.2-2.1">
   0                   1          
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       UDP Port (2 octets)     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.4">
        <name slugifiedName="name-sub-tlvs-for-aiding-tunnel-">Sub-TLVs for Aiding Tunnel Selection</name>
        <section anchor="protocol-type" numbered="true" toc="include" removeInRFC="false" pn="section-3.4.1">
          <name slugifiedName="name-protocol-type-sub-tlv-type-">Protocol Type Sub-TLV (Type Code 2)</name>
          <t indent="0" pn="section-3.4.1-1">
   The Protocol Type sub-TLV <bcp14>MAY</bcp14> be included in a given TLV to indicate
   the type of the payload packets that are allowed to be encapsulated with the
   tunnel parameters that are being signaled in the TLV.  Packets with other
   payload types <bcp14>MUST NOT</bcp14> be encapsulated in the relevant tunnel. The Value
   field of the sub-TLV contains a 2-octet value from IANA's
"ETHER TYPES"
   registry <xref target="IANA-ETHERTYPES" format="default" sectionFormat="of" derivedContent="IANA-ETHERTYPES"/>. If the reserved value 0xFFFF is 
   received, the sub-TLV <bcp14>MUST</bcp14> be treated 
   as malformed according to the rules of <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>.</t>
          <figure anchor="ref-proto-type" align="left" suppress-title="false" pn="figure-11">
            <name slugifiedName="name-protocol-type-sub-tlv-value">Protocol Type Sub-TLV Value Field</name>
            <artwork name="" type="" align="left" alt="" pn="section-3.4.1-2.1">
   0                   1          
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |      Ethertype (2 octets)     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-3.4.1-3">
   For example, if there are three L2TPv3 sessions, one carrying
   IPv4 packets, one carrying IPv6 packets, and one carrying MPLS
   packets, the egress router will include three TLVs of L2TPv3
   encapsulation type, each specifying a different Session ID and a
   different payload type.  The Protocol Type sub-TLV for these will be
   IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and
   MPLS (protocol type = 0x8847), respectively.  This informs the
   ingress routers of the appropriate encapsulation information to use
   with each of the given protocol types.  Insertion of the specified
   Session ID at the ingress routers allows the egress to process the
   incoming packets correctly, according to their protocol type.</t>
          <t indent="0" pn="section-3.4.1-4">
   Note that for tunnel types whose names are of the form "X-in-Y"
   (for example, MPLS-in-GRE), only packets of the specified payload type "X"
   are to be carried through the tunnel of type "Y".  This is the
   equivalent of specifying a tunnel type "Y" and including in its TLV a
   Protocol Type sub-TLV (see <xref target="protocol-type" format="default" sectionFormat="of" derivedContent="Section 3.4.1"/>) specifying
   protocol "X".  If the tunnel type is "X-in-Y", it is unnecessary,
   though harmless, to explicitly include a Protocol Type sub-TLV
   specifying "X". Also, for "X-in-Y" type tunnels, a Protocol Type
   sub-TLV specifying anything other than "X" <bcp14>MUST</bcp14> be ignored; this is
   discussed further in <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>.
          </t>
        </section>
        <section anchor="color" numbered="true" toc="include" removeInRFC="false" pn="section-3.4.2">
          <name slugifiedName="name-color-sub-tlv-type-code-4">Color Sub-TLV (Type Code 4)</name>
          <t indent="0" pn="section-3.4.2-1">
   The Color sub-TLV <bcp14>MAY</bcp14> be used as a way to "color" the
   corresponding Tunnel TLV.  The Value field of the sub-TLV is eight
   octets long and consists of a Color Extended Community, as defined
   in <xref target="color-extcomm" format="default" sectionFormat="of" derivedContent="Section 4.3"/>.  For the use of this sub-TLV and extended community,
   please see <xref target="recursive-nh-resolution" format="default" sectionFormat="of" derivedContent="Section 8"/>.</t>
          <t indent="0" pn="section-3.4.2-2">The format of the Value field is depicted in 
   <xref target="ref-color-extended-community" format="default" sectionFormat="of" derivedContent="Figure 15"/>.</t>
          <t indent="0" pn="section-3.4.2-3">
   If the Length field of a Color sub-TLV has a value other than 8, or the first two
   octets of its Value field are not 0x030b, the sub-TLV <bcp14>MUST</bcp14> be
   treated as if it were an unrecognized sub-TLV (see <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>).</t>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.5">
        <name slugifiedName="name-embedded-label-handling-sub">Embedded Label Handling Sub-TLV (Type Code 9)</name>
        <t indent="0" pn="section-3.5-1">
   Certain BGP address families (corresponding to particular AFI/SAFI
   pairs, for example, 1/4, 2/4, 1/128, 2/128) have MPLS labels embedded in
   their NLRIs.  The term "embedded label" is used to refer to the
   MPLS label that is embedded in an NLRI, and the term "labeled address family" 
   to refer to any AFI/SAFI that has embedded labels.</t>
        <t indent="0" pn="section-3.5-2">
   Some of the tunnel types (for example, VXLAN and NVGRE) that can
   be specified in the Tunnel Encapsulation attribute have an
   encapsulation header containing a virtual network identifier of some
   sort.  The Encapsulation sub-TLVs for these tunnel types may
   optionally specify a value for the virtual network identifier.</t>
        <t indent="0" pn="section-3.5-3">
   Suppose a Tunnel Encapsulation attribute is attached to an UPDATE of
   a labeled address family, and it is decided to use a particular
   tunnel (specified in one of the attribute's TLVs) for transmitting a
   packet that is being forwarded according to that UPDATE.  When
   forming the encapsulation header for that packet, different
   deployment scenarios require different handling of the embedded label
   and/or the virtual network identifier.  The Embedded Label Handling
   sub-TLV can be used to control the placement of the embedded label
   and/or the virtual network identifier in the encapsulation.</t>
        <t indent="0" pn="section-3.5-4">
   The Embedded Label Handling sub-TLV may be included in any TLV of the
   Tunnel Encapsulation attribute.  If the Tunnel Encapsulation
   attribute is attached to an UPDATE of a non-labeled address family,
   then the sub-TLV <bcp14>MUST</bcp14> be disregarded.  If the sub-TLV is contained in a
   TLV whose tunnel type does not have a virtual network identifier in
   its encapsulation header, the sub-TLV <bcp14>MUST</bcp14> be disregarded.  In
   those cases where the sub-TLV is ignored, it <bcp14>MUST NOT</bcp14> be
   stripped from the TLV before the route is propagated.</t>
        <t indent="0" pn="section-3.5-5">
   The sub-TLV's Length field always contains the value 1, and its Value
   field consists of a single octet.  The following values are defined:</t>
        <dl spacing="normal" indent="4" newline="false" pn="section-3.5-6">
          <dt pn="section-3.5-6.1">1:</dt>
          <dd pn="section-3.5-6.2">The payload will be an MPLS packet with the embedded label at the top of its label stack.</dd>
          <dt pn="section-3.5-6.3">2:</dt>
          <dd pn="section-3.5-6.4">
            <t indent="0" pn="section-3.5-6.4.1">The embedded label is not carried in the payload but is either carried
	in the Virtual Network Identifier field of the
	encapsulation header or else ignored entirely.</t>
          </dd>
        </dl>
        <t indent="0" pn="section-3.5-7">If any value other than 1 or 2 is carried, the sub-TLV <bcp14>MUST</bcp14> be 
	considered malformed, according to the procedures of <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>.</t>
        <t indent="0" pn="section-3.5-8">
   Please see <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/> for the details of how this sub-TLV is used when
   it is carried by an UPDATE of a labeled address family.</t>
        <figure anchor="ref-embedded-label" align="left" suppress-title="false" pn="figure-12">
          <name slugifiedName="name-embedded-label-handling-sub-">Embedded Label Handling Sub-TLV Value Field</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.5-9.1">
   0 1 2 3 4 5 6 7
  +-+-+-+-+-+-+-+-+
  |     1 or 2    |
  +-+-+-+-+-+-+-+-+
</artwork>
        </figure>
      </section>
      <section anchor="label-stack" numbered="true" toc="include" removeInRFC="false" pn="section-3.6">
        <name slugifiedName="name-mpls-label-stack-sub-tlv-ty">MPLS Label Stack Sub-TLV (Type Code 10)</name>
        <t indent="0" pn="section-3.6-1">
   This sub-TLV allows an MPLS label stack <xref target="RFC3032" format="default" sectionFormat="of" derivedContent="RFC3032"/> to be associated
   with a particular tunnel.</t>
        <t indent="0" pn="section-3.6-2">
   The length of the sub-TLV is a multiple of 4 octets, and the Value field of this sub-TLV 
   is a sequence of MPLS label stack entries.  The first entry in the sequence is the 
   "topmost" label, and the final entry in the sequence is the "bottommost" label.  When this
   label stack is pushed onto a packet, this ordering <bcp14>MUST</bcp14> be preserved.</t>
        <dl newline="true" spacing="normal" indent="3" pn="section-3.6-3">
          <dt pn="section-3.6-3.1">Each label stack entry has the format shown in <xref target="ref-mpls-label-stack-sub-tlv" format="default" sectionFormat="of" derivedContent="Figure 13"/>.</dt>
          <dd pn="section-3.6-3.2"/>
        </dl>
        <figure anchor="ref-mpls-label-stack-sub-tlv" align="left" suppress-title="false" pn="figure-13">
          <name slugifiedName="name-mpls-label-stack-sub-tlv-va">MPLS Label Stack Sub-TLV Value Field</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.6-4.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                Label                  |  TC |S|      TTL      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-3.6-5">
   The fields are as defined in <xref target="RFC3032" format="default" sectionFormat="of" derivedContent="RFC3032"/> and <xref target="RFC5462" format="default" sectionFormat="of" derivedContent="RFC5462"/>.
        </t>
        <t indent="0" pn="section-3.6-6">
   If a packet is to be sent through the tunnel identified in a
   particular TLV, and if that TLV contains an MPLS Label Stack sub-TLV,
   then the label stack appearing in the sub-TLV <bcp14>MUST</bcp14> be pushed onto the
   packet before any
   other labels are pushed onto the packet. (See <xref target="usage" format="default" sectionFormat="of" derivedContent="Section 6"/>
   for further discussion.)</t>
        <t indent="0" pn="section-3.6-7">
   In particular, if the Tunnel Encapsulation attribute is attached to a
   BGP UPDATE of a labeled address family, the contents of the MPLS
   Label Stack sub-TLV <bcp14>MUST</bcp14> be pushed onto the packet before the label
   embedded in the NLRI is pushed onto the packet.</t>
        <t indent="0" pn="section-3.6-8">
   If the MPLS Label Stack sub-TLV is included in a TLV identifying a
   tunnel type that uses virtual network identifiers (see <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/>),
   the contents of the MPLS Label Stack sub-TLV <bcp14>MUST</bcp14> be pushed onto the
   packet before the procedures of <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/> are applied.</t>
        <t indent="0" pn="section-3.6-9">
   The number of label stack entries in the sub-TLV <bcp14>MUST</bcp14> be determined
   from the Sub-TLV Length field.  Thus, it is not necessary to set the S
   bit in any of the label stack entries of the sub-TLV, and the setting
   of the S bit is ignored when parsing the sub-TLV.  When the label stack entries are pushed onto a packet that already has a label
   stack, the S bits of all the entries being pushed <bcp14>MUST</bcp14> be cleared.  When the label stack entries are pushed onto a packet that does not already have a
   label stack, the S bit of the bottommost label stack entry <bcp14>MUST</bcp14> be
   set, and the S bit of all the other label stack entries <bcp14>MUST</bcp14> be
   cleared.</t>
        <t indent="0" pn="section-3.6-10">
   The Traffic Class (TC) field <xref target="RFC3270" format="default" sectionFormat="of" derivedContent="RFC3270"/><xref target="RFC5129" format="default" sectionFormat="of" derivedContent="RFC5129"/> of each label stack entry <bcp14>SHOULD</bcp14> be set to 0,
   unless changed by policy at the originator of the sub-TLV.  When
   pushing the label stack onto a packet, the TC of each label stack
   <bcp14>SHOULD</bcp14> be preserved, unless local policy results in a modification.
        </t>
        <t indent="0" pn="section-3.6-11">
   The TTL (Time to Live) field of each label stack entry <bcp14>SHOULD</bcp14> be set
   to 255, unless changed to some other non-zero value by policy at the
   originator of the sub-TLV. When pushing the label stack onto a
   packet, the TTL of each label stack entry <bcp14>SHOULD</bcp14> be preserved, unless
   local policy results in a modification to some other non-zero value. 
   If any label stack entry in the sub-TLV has a TTL value of zero, the
   router that is pushing the stack onto a packet <bcp14>MUST</bcp14> change the value to
   a non-zero value, either 255 or some other value as determined by
   policy as discussed above.</t>
        <t indent="0" pn="section-3.6-12">
   Note that this sub-TLV can appear within a TLV identifying any
   type of tunnel, not just within a TLV identifying an MPLS tunnel.
   However, if this sub-TLV appears within a TLV identifying an MPLS
   tunnel (or an MPLS-in-X tunnel), this sub-TLV plays the same role
   that would be played by an MPLS Encapsulation sub-TLV.  Therefore, an
   MPLS Encapsulation sub-TLV is not defined.</t>
        <t indent="0" pn="section-3.6-13">
   Although this specification does not supply detailed instructions
   for validating the received label stack, implementations might 
   impose restrictions on the label stack they can support. If an
   invalid or unsupported label stack is received, the tunnel <bcp14>MAY</bcp14> be treated as not feasible, according to the 
   procedures of <xref target="usage" format="default" sectionFormat="of" derivedContent="Section 6"/>.
        </t>
      </section>
      <section anchor="prefix-sid" numbered="true" toc="include" removeInRFC="false" pn="section-3.7">
        <name slugifiedName="name-prefix-sid-sub-tlv-type-cod">Prefix-SID Sub-TLV (Type Code 11)</name>
        <t indent="0" pn="section-3.7-1">
   <xref target="RFC8669" format="default" sectionFormat="of" derivedContent="RFC8669"/> defines a BGP path
   attribute known as the "BGP Prefix-SID attribute".  This attribute is
   defined to contain a sequence of one or more TLVs, where each TLV is
   either a Label-Index TLV or an Originator SRGB (Source Routing
   Global Block) TLV.</t>
        <t indent="0" pn="section-3.7-2">
   This document defines a Prefix-SID (Prefix Segment Identifier) sub-TLV.
   The Value field of the Prefix-SID sub-TLV can be set to any permitted
   value of the Value field of a BGP Prefix-SID attribute <xref target="RFC8669" format="default" sectionFormat="of" derivedContent="RFC8669"/>.
        </t>
        <t indent="0" pn="section-3.7-3">
   <xref target="RFC8669" format="default" sectionFormat="of" derivedContent="RFC8669"/> only defines behavior when the BGP Prefix-SID
   attribute is attached to routes of type IPv4/IPv6 Labeled Unicast
   <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/><xref target="RFC8277" format="default" sectionFormat="of" derivedContent="RFC8277"/>, and it only
   defines values of the BGP Prefix-SID attribute for those cases. Therefore, 
   similar limitations exist for the Prefix-SID sub-TLV: it <bcp14>SHOULD</bcp14> only
   be included in a BGP UPDATE message for one of the address families
   for which <xref target="RFC8669" format="default" sectionFormat="of" derivedContent="RFC8669"/> has a defined behavior, namely BGP IPv4/IPv6 Labeled Unicast <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/> <xref target="RFC8277" format="default" sectionFormat="of" derivedContent="RFC8277"/>. If included in a BGP UPDATE for
   any other address family, it <bcp14>MUST</bcp14> be ignored. 
        </t>
        <t indent="0" pn="section-3.7-4">
   The Prefix-SID sub-TLV can occur in a TLV identifying any type of
   tunnel.  If an Originator SRGB is specified in the sub-TLV, that SRGB
   <bcp14>MUST</bcp14> be interpreted to be the SRGB used by the tunnel's
   egress endpoint.  The Label-Index, if present, is the Segment Routing SID
   that the tunnel's egress endpoint uses to represent the prefix
   appearing in the NLRI field of the BGP UPDATE to which the Tunnel
   Encapsulation attribute is attached.</t>
        <t indent="0" pn="section-3.7-5">
   If a Label-Index is present in the Prefix-SID sub-TLV, then when a
   packet is sent through the tunnel identified by the TLV, if that tunnel
   is from a labeled address family, the
   corresponding MPLS label <bcp14>MUST</bcp14> be pushed on the packet's label stack.
   The corresponding MPLS label is computed from the Label-Index value
   and the SRGB of the route's originator, as specified in 
   <xref target="RFC8669" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8669#section-4.1" derivedContent="RFC8669"/>.</t>
        <t indent="0" pn="section-3.7-6">
   The corresponding MPLS label is pushed on after the processing of the
   MPLS Label Stack sub-TLV, if present, as specified in <xref target="label-stack" format="default" sectionFormat="of" derivedContent="Section 3.6"/>.
   It is pushed on before any other labels (for example, a label embedded in an
   UPDATE's NLRI or a label determined by the procedures of <xref target="use-of-vni" format="default" sectionFormat="of" derivedContent="Section 9"/>) are pushed on the stack.</t>
        <t indent="0" pn="section-3.7-7">
   The Prefix-SID sub-TLV has slightly different semantics than the
   BGP Prefix-SID attribute.  When the BGP Prefix-SID attribute is attached to a
   given route, the BGP speaker that originally attached the attribute
   is expected to be in the same Segment Routing domain as the BGP
   speakers who receive the route with the attached attribute.  The
   Label-Index tells the receiving BGP speakers what the Prefix-SID is
   for the advertised prefix in that Segment Routing domain.  When the
   Prefix-SID sub-TLV is used, there is no implication that the
   Prefix-SID for the advertised prefix is the same in the Segment
   Routing domains of the BGP speaker that originated the sub-TLV and
   the BGP speaker that received it.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-extended-communities-relate">Extended Communities Related to the Tunnel Encapsulation Attribute</name>
      <section anchor="encapsulation-extcomm" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-encapsulation-extended-comm">Encapsulation Extended Community</name>
        <t indent="0" pn="section-4.1-1">
   The Encapsulation Extended Community is a Transitive Opaque Extended
   Community. </t>
        <t indent="0" pn="section-4.1-2"> The Encapsulation Extended Community encoding is as shown in <xref target="ref-Encapsulation-extended-community" format="default" sectionFormat="of" derivedContent="Figure 14"/>.</t>
        <figure anchor="ref-Encapsulation-extended-community" align="left" suppress-title="false" pn="figure-14">
          <name slugifiedName="name-encapsulation-extended-commu">Encapsulation Extended Community</name>
          <artwork name="" type="" align="left" alt="" pn="section-4.1-3.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | 0x03 (1 octet)| 0x0c (1 octet)|       Reserved (2 octets)     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Reserved (2 octets)       |    Tunnel Type (2 octets)     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.1-4">The value of the high-order octet of the extended Type field is 0x03,
   which indicates it's transitive.  The value of the low-order octet of
   the extended Type field is 0x0c.</t>
        <t indent="0" pn="section-4.1-5">The last two octets of the Value field encode a tunnel type.</t>
        <t indent="0" pn="section-4.1-6">This extended community may be attached to a route of any
   AFI/SAFI to which the Tunnel Encapsulation attribute may be attached.
   Each such extended community identifies a particular tunnel type; its 
   semantics are the same as semantics of a Tunnel TLV in a Tunnel Encapsulation attribute,
    for which the following three conditions all hold:</t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.1-7">
	  <li pn="section-4.1-7.1" derivedCounter="1.">It identifies the same tunnel type.</li>
          <li pn="section-4.1-7.2" derivedCounter="2.">
            <t indent="0" pn="section-4.1-7.2.1">It has a Tunnel Egress Endpoint sub-TLV for which one of the following
       two conditions holds:</t>
            <ol spacing="normal" type="a" indent="adaptive" start="1" pn="section-4.1-7.2.2">
	      <li pn="section-4.1-7.2.2.1" derivedCounter="a.">Its Address Family subfield contains zero, or</li>
              <li pn="section-4.1-7.2.2.2" derivedCounter="b.">Its Address subfield contains the address of the Next Hop field of 
           the route to which the Tunnel Encapsulation attribute is attached.</li>
            </ol>
          </li>
          <li pn="section-4.1-7.3" derivedCounter="3.">It has no other sub-TLVs.</li>
        </ol>
        <t indent="0" pn="section-4.1-8">
	  Such a Tunnel TLV is called a "barebones" Tunnel TLV.</t>
        <t indent="0" pn="section-4.1-9">
   The Encapsulation Extended Community was first defined in <xref target="RFC5512" format="default" sectionFormat="of" derivedContent="RFC5512"/>.
   While it provides only a small subset of the functionality of the
   Tunnel Encapsulation attribute, it is used in a number of deployed
   applications and is still needed for backwards compatibility.
   In situations where a tunnel could be encoded using
   a barebones TLV, it <bcp14>MUST</bcp14> be encoded using the corresponding 
   Encapsulation Extended Community.  Notwithstanding, an implementation 
   <bcp14>MUST</bcp14> be prepared to process a tunnel received encoded as a barebones 
   TLV.</t>
        <t indent="0" pn="section-4.1-10">
   Note that for tunnel types of the form "X-in-Y" (for example, MPLS-in-GRE),
   the Encapsulation Extended Community implies that only packets of the
   specified payload type "X" are to be carried through the tunnel of
   type "Y". Packets with other payload types <bcp14>MUST NOT</bcp14> be carried through
   such tunnels. See also <xref target="encaps-attr" format="default" sectionFormat="of" derivedContent="Section 2"/>.</t>
        <t indent="0" pn="section-4.1-11">
   In the remainder of this specification, when a route is referred to as
   containing a Tunnel Encapsulation attribute with a TLV identifying a
   particular tunnel type, it implicitly includes the case where
   the route contains an Encapsulation Extended Community
   identifying that tunnel type.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-routers-mac-extended-commun">Router's MAC Extended Community</name>
        <t indent="0" pn="section-4.2-1">
   <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding" format="default" sectionFormat="of" derivedContent="EVPN-INTER-SUBNET"/> defines a router's MAC 
   Extended Community. This extended community, as its name implies,
   carries the MAC address of the advertising router. Since the VXLAN
   and NVGRE Encapsulation sub-TLVs can also optionally carry a router's
   MAC, a conflict can arise if both the Router's MAC Extended Community
   and such an Encapsulation sub-TLV are present at the same time but
   have different values. In
   case of such a conflict, the information in the Router's MAC Extended Community
   <bcp14>MUST</bcp14> be used.</t>
      </section>
      <section anchor="color-extcomm" numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
        <name slugifiedName="name-color-extended-community">Color Extended Community</name>
        <t indent="0" pn="section-4.3-1">
   The Color Extended Community is a Transitive Opaque Extended
   Community with the encoding shown in <xref target="ref-color-extended-community" format="default" sectionFormat="of" derivedContent="Figure 15"/>.</t>
        <figure anchor="ref-color-extended-community" align="left" suppress-title="false" pn="figure-15">
          <name slugifiedName="name-color-extended-community-2">Color Extended Community</name>
          <artwork name="" type="" align="left" alt="" pn="section-4.3-2.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | 0x03 (1 octet)| 0x0b (1 octet)|        Flags (2 octets)       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Color Value (4 octets)                   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.3-3">
   The value of the high-order octet of the extended Type field is 0x03, which 
   indicates it is transitive.  The value of the low-order octet of the extended 
   Type field for this community is 0x0b.  The color value is user defined and 
   configured locally. No flags are defined in this document; this field <bcp14>MUST</bcp14> be set to 
   zero by the originator and ignored by the receiver; the value <bcp14>MUST NOT</bcp14> be 
   changed when propagating this extended community. The Color Value field is 
   encoded as a 4-octet value by the administrator and is outside the scope
   of this document. For the use of this extended community, please see 
  <xref target="recursive-nh-resolution" format="default" sectionFormat="of" derivedContent="Section 8"/>.</t>
      </section>
    </section>
    <section anchor="ipip-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-special-considerations-for-">Special Considerations for IP-in-IP Tunnels</name>
      <t indent="0" pn="section-5-1">
   In certain situations with an IP fabric underlay, one could have a tunnel overlay
   with the tunnel type IP-in-IP. The egress BGP speaker can advertise the
   IP-in-IP tunnel endpoint address in the Tunnel Egress Endpoint sub-TLV. When
   the tunnel type of the TLV is IP-in-IP, it will not have a virtual network
   identifier. However, the tunnel egress endpoint address can be used in identifying 
   the forwarding table to use for making the forwarding decisions to forward 
   the payload.</t>
    </section>
    <section anchor="usage" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-semantics-and-usage-of-the-">Semantics and Usage of the Tunnel Encapsulation Attribute</name>
      <t indent="0" pn="section-6-1">
   The BGP Tunnel Encapsulation attribute <bcp14>MAY</bcp14> be carried in any BGP
   UPDATE message whose AFI/SAFI is 1/1 (IPv4 Unicast), 2/1 (IPv6
   Unicast), 1/4 (IPv4 Labeled Unicast), 2/4 (IPv6 Labeled Unicast),
   1/128 (VPN-IPv4 Labeled Unicast), 2/128 (VPN-IPv6 Labeled Unicast),
   or 25/70 (Ethernet VPN, usually known as EVPN).  Use of the Tunnel
   Encapsulation attribute in BGP UPDATE messages of other AFI/SAFIs is
   outside the scope of this document.</t>
      <t indent="0" pn="section-6-2">
   There is no significance to the order in which the TLVs occur within
   the Tunnel Encapsulation attribute.  Multiple TLVs may occur for a
   given tunnel type; each such TLV is regarded as describing a
   different tunnel. (This also applies if the Encapsulation 
   Extended Community encoding is used.)</t>
      <t indent="0" pn="section-6-3">
   The decision to attach a Tunnel Encapsulation attribute to a given
   BGP UPDATE is determined by policy.  The set of TLVs and sub-TLVs
   contained in the attribute is also determined by policy.</t>
      <t indent="0" pn="section-6-4">
   Suppose that:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-5">
        <li pn="section-6-5.1">a given packet P must be forwarded by router R;</li>
        <li pn="section-6-5.2">the path along which P is to be forwarded is determined by BGP
      UPDATE U;</li>
        <li pn="section-6-5.3">
          <t indent="0" pn="section-6-5.3.1">UPDATE U has a Tunnel Encapsulation attribute, containing at least
      one TLV that identifies a "feasible tunnel" for packet P.  A
      tunnel is considered feasible if it has the following four
      properties:</t>
          <ol spacing="normal" indent="adaptive" start="1" type="1" pn="section-6-5.3.2">
            <li pn="section-6-5.3.2.1" derivedCounter="1.">The tunnel type is supported (that is, router R knows how to set up tunnels of that type, how to create the encapsulation header for tunnels of that type, etc.).</li>
            <li pn="section-6-5.3.2.2" derivedCounter="2.">The tunnel is of a type that can be used to carry packet P (for example, an MPLS-in-UDP tunnel would not be a feasible tunnel for
         carrying an IP packet, unless the IP packet can first be
         encapsulated in a MPLS packet).</li>
            <li pn="section-6-5.3.2.3" derivedCounter="3.">The tunnel is specified in a TLV whose Tunnel Egress Endpoint sub-TLV
		 identifies an IP address that is reachable. The reachability condition
		 is evaluated as per <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/>.  If the IP address is 
		 reachable via more than one forwarding table, local policy is used 
		 to determine which table to use.</li>
            <li pn="section-6-5.3.2.4" derivedCounter="4.">There is no local policy that prevents the use of the tunnel.</li>
          </ol>
        </li>
      </ul>
      <t indent="0" pn="section-6-6">
   Then router R <bcp14>MUST</bcp14> send packet P through one of the feasible
   tunnels identified in the Tunnel Encapsulation attribute of UPDATE U.</t>
      <t indent="0" pn="section-6-7">
   If the Tunnel Encapsulation attribute contains several TLVs (that is, if
   it specifies several feasible tunnels), router R may choose any one of those
   tunnels, based upon local policy.  If any Tunnel TLV contains
   one or more Color sub-TLVs (<xref target="color" format="default" sectionFormat="of" derivedContent="Section 3.4.2"/>) and/or the Protocol Type sub-TLV (<xref target="protocol-type" format="default" sectionFormat="of" derivedContent="Section 3.4.1"/>), the choice of tunnel may be influenced by these 
   sub-TLVs. Many other factors, for example, minimization of encapsulation-header 
   overhead, could also be used to influence selection.</t>
      <t indent="0" pn="section-6-8">
   The reachability to the address of the egress endpoint of the tunnel may change over 
   time, directly impacting the feasibility of the tunnel. A tunnel that is not 
   feasible at some moment may become feasible at a later time when its egress endpoint 
   address is reachable. The router may start using the newly feasible tunnel
   instead of an existing one. How this decision is made is outside the scope
   of this document.</t>
      <t indent="0" pn="section-6-9">
   Once it is determined to send a packet through the tunnel specified
   in a particular Tunnel TLV of a particular Tunnel Encapsulation attribute,
   then the tunnel's egress endpoint address is the IP address contained
   in the Tunnel Egress Endpoint sub-TLV.  If the Tunnel TLV contains a Tunnel Egress Endpoint sub-TLV 
   whose Value field is all zeroes, then the tunnel's egress endpoint is the
   address of the next hop of the BGP UPDATE containing the Tunnel Encapsulation 
   attribute (that is, the Network Address of Next Hop field of the 
   MP_REACH_NLRI attribute if the encoding of [RFC4760] is in use or
   the NEXT_HOP attribute otherwise).  The address of the tunnel egress endpoint generally appears in a 
   Destination Address field of the encapsulation.</t>
      <t indent="0" pn="section-6-10">
   The full set of procedures for sending a packet through a particular
   tunnel type to a particular tunnel egress endpoint depends upon the tunnel
   type and is outside the scope of this document.  Note that some
   tunnel types may require the execution of an explicit tunnel setup
   protocol before they can be used for carrying data.  Other tunnel
   types may not require any tunnel setup protocol.</t>
      <t indent="0" pn="section-6-11">
   Sending a packet through a tunnel always requires that the packet be
   encapsulated, with an encapsulation header that is appropriate for
   the tunnel type.  The contents of the tunnel encapsulation header may
   be influenced by the Encapsulation sub-TLV.  If there is no
   Encapsulation sub-TLV present, the router transmitting the packet
   through the tunnel must have a priori knowledge (for example, by
   provisioning) of how to fill in the various fields in the
   encapsulation header.</t>
      <t indent="0" pn="section-6-12">
   A Tunnel Encapsulation attribute may contain several TLVs that all
   specify the same tunnel type.  Each TLV should be considered as
   specifying a different tunnel.  Two tunnels of the same type may have
   different Tunnel Egress Endpoint sub-TLVs, different Encapsulation sub-TLVs,
   etc.  Choosing between two such tunnels is a matter of local policy.</t>
      <t indent="0" pn="section-6-13">
   Once router R has decided to send packet P through a particular
   tunnel, it encapsulates packet P appropriately and then forwards it
   according to the route that leads to the tunnel's egress endpoint.
   This route may itself be a BGP route with a Tunnel Encapsulation
   attribute.  If so, the encapsulated packet is treated as the payload
   and encapsulated according to the Tunnel Encapsulation attribute
   of that route.  That is, tunnels may be "stacked".</t>
      <t indent="0" pn="section-6-14">
   Notwithstanding anything said in this document, a BGP speaker <bcp14>MAY</bcp14>
   have local policy that influences the choice of tunnel and the way
   the encapsulation is formed.  A BGP speaker <bcp14>MAY</bcp14> also have a local
   policy that tells it to ignore the Tunnel Encapsulation attribute
   entirely or in part.  Of course, interoperability issues must be
   considered when such policies are put into place.</t>
      <t indent="0" pn="section-6-15">
    See also <xref target="validation-and-error" format="default" sectionFormat="of" derivedContent="Section 13"/>, which provides further 
    specification regarding validation and exception cases.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-routing-considerations">Routing Considerations</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
        <name slugifiedName="name-impact-on-the-bgp-decision-">Impact on the BGP Decision Process</name>
        <t indent="0" pn="section-7.1-1">
	      The presence of the Tunnel Encapsulation attribute affects
	      the BGP best route-selection algorithm. If a route includes 
	      the Tunnel Encapsulation attribute, and if that attribute 
	      includes no tunnel that is feasible, then that route <bcp14>MUST NOT</bcp14> be considered resolvable for the purposes of the route resolvability 
	      condition (<xref target="RFC4271" sectionFormat="comma" section="9.1.2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4271#section-9.1.2.1" derivedContent="RFC4271"/>).
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.2">
        <name slugifiedName="name-looping-mutual-recursion-et">Looping, Mutual Recursion, Etc.</name>
        <t indent="0" pn="section-7.2-1">
   Consider a packet destined for address X.  Suppose a BGP UPDATE for
   address prefix X carries a Tunnel Encapsulation attribute that
   specifies a tunnel egress endpoint of Y, and suppose that a BGP
   UPDATE for address prefix Y carries a Tunnel Encapsulation attribute
   that specifies a tunnel egress endpoint of X.  It is easy to see that this
   can have no good outcome. <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> describes an analogous case
   as mutually recursive routes.</t>
        <t indent="0" pn="section-7.2-2">
   This could happen as a result of misconfiguration, either accidental
   or intentional.  It could also happen if the Tunnel Encapsulation
   attribute were altered by a malicious agent.  Implementations should
   be aware that such an attack will result in unresolvable BGP routes due to the 
   mutually recursive relationship. This document does not specify a maximum number of
   recursions; that is an implementation-specific matter.</t>
        <t indent="0" pn="section-7.2-3">
   Improper setting (or malicious altering) of the Tunnel Encapsulation
   attribute could also cause data packets to loop.  Suppose a BGP
   UPDATE for address prefix X carries a Tunnel Encapsulation attribute
   that specifies a tunnel egress endpoint of Y.  Suppose router R
   receives and processes the advertisement. When router R receives a packet
   destined for X, it will apply the encapsulation and send the
   encapsulated packet to Y.  Y will decapsulate the packet and forward
   it further.  If Y is further away from X than is router R, it is
   possible that the path from Y to X will traverse R.  This would cause
   a long-lasting routing loop.  The control plane itself cannot detect
   this situation, though a TTL field in the payload packets would
   prevent any given packet from looping infinitely.</t>
        <t indent="0" pn="section-7.2-4">
   During the deployment of techniques described
   in this document, operators are encouraged to avoid mutually
   recursive route and/or tunnel dependencies. There is greater
   potential for such scenarios to arise when the tunnel egress endpoint for a
   given prefix differs from the address of the next hop for that
   prefix.</t>
      </section>
    </section>
    <section anchor="recursive-nh-resolution" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-recursive-next-hop-resoluti">Recursive Next-Hop Resolution</name>
      <t indent="0" pn="section-8-1">
   Suppose that:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-8-2">
        <li pn="section-8-2.1">a given packet P must be forwarded by router R1;</li>
        <li pn="section-8-2.2">the path along which P is to be forwarded is determined by BGP
      UPDATE U1;</li>
        <li pn="section-8-2.3">UPDATE U1 does not have a Tunnel Encapsulation attribute;</li>
        <li pn="section-8-2.4">the address of the next hop of UPDATE U1 is router R2;</li>
        <li pn="section-8-2.5">the best route to router R2 is a BGP route that was advertised in
      UPDATE U2; and</li>
        <li pn="section-8-2.6">UPDATE U2 has a Tunnel Encapsulation attribute.</li>
      </ul>
      <t indent="0" pn="section-8-3">
   Then packet P <bcp14>MUST</bcp14> be sent through one of the tunnels identified in
   the Tunnel Encapsulation attribute of UPDATE U2.  See <xref target="usage" format="default" sectionFormat="of" derivedContent="Section 6"/> for
   further details.</t>
      <t indent="0" pn="section-8-4">
   However, suppose that one of the TLVs in U2's Tunnel Encapsulation
   attribute contains one or more Color sub-TLVs.  In that case, packet P <bcp14>MUST NOT</bcp14> be sent through the tunnel contained in that TLV, unless U1 is
   carrying a Color Extended Community that is identified in one of U2's
   Color sub-TLVs.</t>
      <t indent="0" pn="section-8-5">
   The procedures in this section presuppose that U1's address of the next hop 
   resolves to a BGP route, and that U2's next hop resolves (perhaps after
   further recursion) to a non-BGP route.</t>
    </section>
    <section anchor="use-of-vni" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-use-of-virtual-network-iden">Use of Virtual Network Identifiers and Embedded Labels When Imposing a Tunnel Encapsulation</name>
      <t indent="0" pn="section-9-1">
   If the TLV specifying a tunnel contains an MPLS Label Stack sub-TLV,
   then when sending a packet through that tunnel, the procedures of
   <xref target="label-stack" format="default" sectionFormat="of" derivedContent="Section 3.6"/> are applied before the procedures of this section.</t>
      <t indent="0" pn="section-9-2">
   If the TLV specifying a tunnel contains a Prefix-SID sub-TLV, the
   procedures of <xref target="prefix-sid" format="default" sectionFormat="of" derivedContent="Section 3.7"/> are applied before the procedures of this
   section.  If the TLV also contains an MPLS Label Stack sub-TLV, the
   procedures of <xref target="label-stack" format="default" sectionFormat="of" derivedContent="Section 3.6"/> are applied before the procedures of
   <xref target="prefix-sid" format="default" sectionFormat="of" derivedContent="Section 3.7"/>.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-9.1">
        <name slugifiedName="name-tunnel-types-without-a-virt">Tunnel Types without a Virtual Network Identifier Field</name>
        <t indent="0" pn="section-9.1-1">
		If a Tunnel Encapsulation attribute is attached to an UPDATE of a
		labeled address family, there will be one or more labels specified in
		the UPDATE's NLRI.  When a packet is sent through a tunnel specified
		in one of the attribute's TLVs, and that tunnel type does not contain
		a Virtual Network Identifier field, the label or labels from the NLRI
		are pushed on the packet's label stack.  The resulting MPLS packet is
		then further encapsulated, as specified by the TLV.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-9.2">
        <name slugifiedName="name-tunnel-types-with-a-virtual">Tunnel Types with a Virtual Network Identifier Field</name>
        <t indent="0" pn="section-9.2-1">
   Two of the tunnel types that can be specified in a Tunnel
   Encapsulation TLV have Virtual Network Identifier fields in their
   encapsulation headers.  In the VXLAN encapsulation,
   this field is called the VNI (VXLAN Network Identifier) field; in
   the NVGRE encapsulation, this field is called the VSID (Virtual
   Subnet Identifier) field.</t>
        <t indent="0" pn="section-9.2-2">
   When one of these tunnel encapsulations is imposed on a packet, the
   setting of the Virtual Network Identifier field in the encapsulation
   header depends upon the contents of the Encapsulation sub-TLV (if one
   is present).  When the Tunnel Encapsulation attribute is being
   carried in a BGP UPDATE of a labeled address family, the setting of
   the Virtual Network Identifier field also depends upon the contents
   of the Embedded Label Handling sub-TLV (if present).</t>
        <t indent="0" pn="section-9.2-3">
   This section specifies the procedures for choosing the value to set
   in the Virtual Network Identifier field of the encapsulation header.
   These procedures apply only when the tunnel type is VXLAN
   or NVGRE.</t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.2.1">
          <name slugifiedName="name-unlabeled-address-families">Unlabeled Address Families</name>
          <t indent="0" pn="section-9.2.1-1">
   This subsection applies when:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.2.1-2">
            <li pn="section-9.2.1-2.1">the Tunnel Encapsulation attribute is carried in a BGP UPDATE of
      an unlabeled address family, </li>
            <li pn="section-9.2.1-2.2">at least one of the attribute's TLVs identifies a tunnel type that
      uses a virtual network identifier, and</li>
            <li pn="section-9.2.1-2.3">it has been determined to send a packet through one of those
      tunnels.</li>
          </ul>
          <t indent="0" pn="section-9.2.1-3">
   If the TLV identifying the tunnel contains an Encapsulation sub-TLV
   whose V bit is set to 1, the Virtual Network Identifier field of the
   encapsulation header is set to the value of the Virtual Network
   Identifier field of the Encapsulation sub-TLV.</t>
          <t indent="0" pn="section-9.2.1-4">
   Otherwise, the Virtual Network Identifier field of the encapsulation
   header is set to a configured value; if there is no configured value,
   the tunnel cannot be used.</t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.2.2">
          <name slugifiedName="name-labeled-address-families">Labeled Address Families</name>
          <t indent="0" pn="section-9.2.2-1">
   This subsection applies when:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.2.2-2">
            <li pn="section-9.2.2-2.1">the Tunnel Encapsulation attribute is carried in a BGP UPDATE of a
      labeled address family,</li>
            <li pn="section-9.2.2-2.2">at least one of the attribute's TLVs identifies a tunnel type that
      uses a virtual network identifier, and</li>
            <li pn="section-9.2.2-2.3">it has been determined to send a packet through one of those
      tunnels.</li>
          </ul>
          <section anchor="valid-vni" numbered="true" toc="exclude" removeInRFC="false" pn="section-9.2.2.1">
            <name slugifiedName="name-when-a-valid-vni-has-been-s">When a Valid VNI Has Been Signaled</name>
            <t indent="0" pn="section-9.2.2.1-1">
   If the TLV identifying the tunnel contains an Encapsulation sub-TLV
   whose V bit is set to 1, the Virtual Network Identifier field of the
   encapsulation header is set to the value of the Virtual Network Identifier
   field of the Encapsulation sub-TLV. However, the Embedded Label Handling
   sub-TLV will determine label processing as described below.</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.2.2.1-2">
              <li pn="section-9.2.2.1-2.1">If the TLV contains an Embedded Label 
      Handling sub-TLV whose value is 1, the embedded label (from the NLRI 
      of the route that is carrying the Tunnel Encapsulation attribute) 
      appears at the top of the MPLS label stack in the encapsulation payload.

        </li>
              <li pn="section-9.2.2.1-2.2">If the TLV does not contain an Embedded Label Handling sub-TLV, or
      it contains an Embedded Label Handling sub-TLV whose value is 2,
      the embedded label is ignored entirely.</li>
            </ul>
          </section>
          <section anchor="no-valid-vni" numbered="true" toc="exclude" removeInRFC="false" pn="section-9.2.2.2">
            <name slugifiedName="name-when-a-valid-vni-has-not-be">When a Valid VNI Has Not Been Signaled</name>
            <t indent="0" pn="section-9.2.2.2-1">
   If the TLV identifying the tunnel does not contain an Encapsulation
   sub-TLV whose V bit is set to 1, the Virtual Network Identifier field of
   the encapsulation header is set as follows:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.2.2.2-2">
              <li pn="section-9.2.2.2-2.1">
                <t indent="0" pn="section-9.2.2.2-2.1.1">If the TLV contains an Embedded Label Handling sub-TLV whose value
      is 1, then the Virtual Network Identifier field of the
      encapsulation header is set to a configured value.</t>
                <t indent="0" pn="section-9.2.2.2-2.1.2">
	If there is no configured value, the tunnel cannot be used.
                </t>
                <t indent="0" pn="section-9.2.2.2-2.1.3">
	The embedded label (from the NLRI of the route that is carrying
      the Tunnel Encapsulation attribute) appears at the top of the MPLS
      label stack in the encapsulation payload.
                </t>
              </li>
              <li pn="section-9.2.2.2-2.2">
                <t indent="0" pn="section-9.2.2.2-2.2.1">If the TLV does not contain an Embedded Label Handling sub-TLV, or
      if it contains an Embedded Label Handling sub-TLV whose value is
      2, the embedded label is copied into the lower 3 octets of the Virtual 
      Network Identifier field of the encapsulation header.</t>
                <t indent="0" pn="section-9.2.2.2-2.2.2">
	In this case, the payload may or may not contain an MPLS label
      stack, depending upon other factors.  If the payload does contain
      an MPLS label stack, the embedded label does not appear in that
      stack.
                </t>
              </li>
            </ul>
          </section>
        </section>
      </section>
    </section>
    <section anchor="applicability" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-applicability-restrictions">Applicability Restrictions</name>
      <t indent="0" pn="section-10-1">
   In a given UPDATE of a labeled address family, the label embedded in
   the NLRI is generally a label that is meaningful only to the router
   represented by the address of the next hop.  Certain of the procedures of Sections
   <xref target="valid-vni" format="counter" sectionFormat="of" derivedContent="9.2.2.1"/> or <xref target="no-valid-vni" format="counter" sectionFormat="of" derivedContent="9.2.2.2"/> cause the embedded label to be
   carried by a data packet to the router whose address appears in the
   Tunnel Egress Endpoint sub-TLV.  If the Tunnel Egress Endpoint sub-TLV does not
   identify the same router represented by the address of the next hop, sending the 
   packet through the tunnel may cause the label to be misinterpreted at the
   tunnel's egress endpoint.  This may cause misdelivery of the packet.
   Avoidance of this unfortunate outcome is a matter of network planning
   and design and is outside the scope of this document.</t>
      <t indent="0" pn="section-10-2">
   Note that if the Tunnel Encapsulation attribute is attached to a VPN-
   IP route <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>, if Inter-AS "option b" (see
   <xref target="RFC4364" sectionFormat="of" section="10" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4364#section-10" derivedContent="RFC4364"/>) is being used, and if the Tunnel Egress Endpoint sub-TLV contains
   an IP address that is not in the same AS as the router receiving the
   route, it is very likely that the embedded label has been changed.
   Therefore, use of the Tunnel Encapsulation attribute in an "Inter-AS option b" scenario is 
   not recommended.</t>
      <t indent="0" pn="section-10-3">
   Other documents may define other ways to signal tunnel information in
   BGP. For example, <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> defines the "P-Multicast
   Service Interface Tunnel" (PMSI Tunnel) attribute. In this
   specification, we do not consider the effects of advertising the
   Tunnel Encapsulation attribute in conjunction with other forms of
   signaling tunnels. Any document specifying such joint use <bcp14>MUST</bcp14> 
   provide details as to how interactions should be handled.
      </t>
    </section>
    <section anchor="scoping" numbered="true" toc="include" removeInRFC="false" pn="section-11">
      <name slugifiedName="name-scoping">Scoping</name>
      <t indent="0" pn="section-11-1">
   The Tunnel Encapsulation attribute is defined as a transitive
   attribute, so that it may be passed along by BGP speakers that do not
   recognize it.  However, the Tunnel Encapsulation
   attribute <bcp14>MUST</bcp14> be used only within a well-defined scope, for example, within a
   set of ASes that belong to a single administrative
   entity.  If the attribute is distributed beyond its intended scope,
   packets may be sent through tunnels in a manner that is not intended.</t>
      <t indent="0" pn="section-11-2">
   To prevent the Tunnel Encapsulation attribute from being distributed
   beyond its intended scope, any BGP speaker that understands the
   attribute <bcp14>MUST</bcp14> be able to filter the attribute from incoming BGP
   UPDATE messages.  When the attribute is filtered from an incoming
   UPDATE, the attribute is neither processed nor distributed.  This
   filtering <bcp14>SHOULD</bcp14> be possible on a per-BGP-session basis; finer
   granularities (for example, per route and/or per attribute TLV) <bcp14>MAY</bcp14> be 
   supported.  For each external BGP (EBGP) session, filtering of the attribute on 
   incoming UPDATEs <bcp14>MUST</bcp14> be enabled by default.</t>
      <t indent="0" pn="section-11-3">
   In addition, any BGP speaker that understands the attribute <bcp14>MUST</bcp14> be
   able to filter the attribute from outgoing BGP UPDATE messages.  This
   filtering <bcp14>SHOULD</bcp14> be possible on a per-BGP-session basis.  For each EBGP
   session, filtering of the attribute on outgoing UPDATEs <bcp14>MUST</bcp14> be
   enabled by default.</t>
      <t indent="0" pn="section-11-4">
   Since the Encapsulation Extended Community provides a subset
   of the functionality of the Tunnel Encapsulation attribute, these
   considerations apply equally in its case: </t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-11-5">
        <li pn="section-11-5.1">Any BGP speaker that
   understands it <bcp14>MUST</bcp14> be able to filter it from incoming BGP UPDATE
   messages.</li>
        <li pn="section-11-5.2">It <bcp14>MUST</bcp14> be possible to filter the Encapsulation
   Extended Community from outgoing messages.</li>
        <li pn="section-11-5.3">In both cases, this
   filtering <bcp14>MUST</bcp14> be enabled by default for EBGP sessions.</li>
      </ul>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-12">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <t indent="0" pn="section-12-1">
	A potential operational difficulty arises when tunnels are used, if the
	size of packets entering the tunnel exceeds the 
	maximum transmission unit (MTU) the tunnel is capable of supporting. This
	difficulty can be exacerbated by stacking multiple tunnels, since each 
	stacked tunnel header further reduces the supportable MTU. This issue is
	long-standing and well-known. The tunnel
	signaling provided in this specification does nothing to address this 
	issue, nor to aggravate it (except insofar as it may further increase the
	popularity of tunneling).
      </t>
    </section>
    <section anchor="validation-and-error" numbered="true" toc="include" removeInRFC="false" pn="section-13">
      <name slugifiedName="name-validation-and-error-handli">Validation and Error Handling</name>
      <t indent="0" pn="section-13-1">
   The Tunnel Encapsulation attribute is a sequence of TLVs, each of
   which is a sequence of sub-TLVs.  The final octet of a TLV is
   determined by its Length field.  Similarly, the final octet of a sub-
   TLV is determined by its Length field.  The final octet of a TLV <bcp14>MUST</bcp14>
   also be the final octet of its final sub-TLV.  If this is not the
   case, the TLV <bcp14>MUST</bcp14> be considered to be malformed,  
   and the "Treat-as-withdraw" procedure of 
   <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/> is applied. </t>
      <t indent="0" pn="section-13-2">
   If a Tunnel Encapsulation attribute does not have any valid TLVs, or
   it does not have the transitive bit set, the "Treat-as-withdraw"
   procedure of <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/> is applied.</t>
      <t indent="0" pn="section-13-3">
   If a Tunnel Encapsulation attribute can be parsed correctly but
   contains a TLV whose tunnel type is not recognized by a particular
   BGP speaker, that BGP speaker <bcp14>MUST NOT</bcp14> consider the attribute to be
   malformed.  Rather, it <bcp14>MUST</bcp14>
   interpret the attribute as if that
   TLV had not been present.  If the route carrying the Tunnel
   Encapsulation attribute is propagated with the attribute, the
   unrecognized TLV <bcp14>MUST</bcp14> remain in the attribute.</t>
      <t indent="0" pn="section-13-4">
   The following sub-TLVs defined in this document <bcp14>MUST NOT</bcp14> occur more
   than once in a given Tunnel TLV: Tunnel Egress Endpoint (discussed below),
   Encapsulation, DS, UDP Destination Port, Embedded Label
   Handling, MPLS Label Stack, and Prefix-SID.  If a Tunnel TLV has more
   than one of any of these sub-TLVs, all but the first occurrence of
   each such sub-TLV type <bcp14>MUST</bcp14> be disregarded.  However, the
   Tunnel TLV containing them <bcp14>MUST NOT</bcp14> be considered to be malformed,
   and all the sub-TLVs <bcp14>MUST</bcp14> be propagated if the route carrying the
   Tunnel Encapsulation attribute is propagated.</t>
      <t indent="0" pn="section-13-5">
   The following sub-TLVs defined in this document may appear zero or
   more times in a given Tunnel TLV: Protocol Type and Color.  Each
   occurrence of such sub-TLVs is meaningful.  For example, the Color
   sub-TLV may appear multiple times to assign multiple colors to a
   tunnel. </t>
      <t indent="0" pn="section-13-6">
   If a TLV of a Tunnel Encapsulation attribute contains a sub-TLV that
   is not recognized by a particular BGP speaker, the BGP speaker <bcp14>MUST</bcp14>
   process that TLV as if the unrecognized sub-TLV had not been present.
   If the route carrying the Tunnel Encapsulation attribute is
   propagated with the attribute, the unrecognized sub-TLV <bcp14>MUST</bcp14> remain in
   the attribute.</t>
      <t indent="0" pn="section-13-7">
   In general, if a TLV contains a sub-TLV that is malformed,
   the sub-TLV <bcp14>MUST</bcp14> be treated as if it were an unrecognized sub-TLV.
   There is one exception to this rule: if a TLV
   contains a malformed Tunnel Egress Endpoint sub-TLV (as defined in
   <xref target="tunnel-egress-endpoint" format="default" sectionFormat="of" derivedContent="Section 3.1"/>), the entire TLV <bcp14>MUST</bcp14> be ignored and <bcp14>MUST</bcp14> be removed from the Tunnel Encapsulation attribute before the
   route carrying that attribute is distributed.</t>
      <t indent="0" pn="section-13-8">
   Within a Tunnel Encapsulation attribute that is carried by a BGP
   UPDATE whose AFI/SAFI is one of those explicitly listed in the first
   paragraph of <xref target="usage" format="default" sectionFormat="of" derivedContent="Section 6"/>, a TLV that does not contain exactly one
   Tunnel Egress Endpoint sub-TLV <bcp14>MUST</bcp14> be treated as if it contained a
   malformed Tunnel Egress Endpoint sub-TLV.</t>
      <t indent="0" pn="section-13-9">
   A TLV identifying a particular tunnel type may contain a sub-TLV that
   is meaningless for that tunnel type.  For example, perhaps the TLV
   contains a  UDP Destination Port  sub-TLV, but the identified tunnel
   type does not use UDP encapsulation at all, or a tunnel of the form
   "X-in-Y" contains a Protocol Type sub-TLV that specifies something
   other than "X". Sub-TLVs of this sort <bcp14>MUST</bcp14> be disregarded.  That is,
   they <bcp14>MUST NOT</bcp14> affect the creation of the encapsulation header. 
   However, the sub-TLV <bcp14>MUST NOT</bcp14> be considered to be malformed and <bcp14>MUST NOT</bcp14> be removed from the TLV before the route carrying the Tunnel
   Encapsulation attribute is distributed. An implementation <bcp14>MAY</bcp14> log a
   message when it encounters such a sub-TLV.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-14">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-14-1">
	IANA has made the updates described in the following subsections. 
All registration
	procedures listed are per their definitions in 
	<xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.1">
        <name slugifiedName="name-obsoleting-rfc-5512">Obsoleting RFC 5512</name>
        <t indent="0" pn="section-14.1-1"> 
   Because this document obsoletes RFC 5512, IANA has updated
   references to RFC 5512 to point to this document in the following registries:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-14.1-2">
          <li pn="section-14.1-2.1">"Border Gateway Protocol (BGP) Extended Communities" registry <xref target="IANA-BGP-EXT-COMM" format="default" sectionFormat="of" derivedContent="IANA-BGP-EXT-COMM"/></li>
          <li pn="section-14.1-2.2">"Border Gateway Protocol (BGP) Parameters" registry <xref target="IANA-BGP-PARAMS" format="default" sectionFormat="of" derivedContent="IANA-BGP-PARAMS"/></li>
          <li pn="section-14.1-2.3">"Border Gateway Protocol (BGP) Tunnel Encapsulation" registry <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/></li>
          <li pn="section-14.1-2.4">"Subsequent Address Family Identifiers (SAFI) Parameters" registry <xref target="IANA-SAFI" format="default" sectionFormat="of" derivedContent="IANA-SAFI"/></li>
        </ul>
      </section>
      <section anchor="obsoleting-5566-and-5640" numbered="true" toc="include" removeInRFC="false" pn="section-14.2">
        <name slugifiedName="name-obsoleting-code-points-assi">Obsoleting Code Points Assigned by RFC 5566</name>
        <t indent="0" pn="section-14.2-1">
	Since this document obsoletes RFC 5566, the code points 
	assigned by that RFC are similarly obsoleted. Specifically, the 
	following code points have been marked as deprecated.</t>
        <t indent="0" pn="section-14.2-2">
	In the
"BGP Tunnel Encapsulation Attribute Tunnel Types" registry <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>:</t>
        <table align="center" pn="table-1">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Transmit tunnel endpoint (DEPRECATED)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">IPsec in Tunnel-mode (DEPRECATED)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">IP in IP tunnel with IPsec Transport Mode (DEPRECATED)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">MPLS-in-IP tunnel with IPsec Transport Mode (DEPRECATED)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-14.2-4">
	And in the "BGP Tunnel Encapsulation Attribute Sub-TLVs" registry <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>:</t>
        <table align="center" pn="table-2">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">IPsec Tunnel Authenticator (DEPRECATED)</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.3">
        <name slugifiedName="name-border-gateway-protocol-bgp">Border Gateway Protocol (BGP) Tunnel Encapsulation Grouping</name>
        <t indent="0" pn="section-14.3-1">
   IANA has created a new registry grouping named
   "Border Gateway Protocol (BGP) Tunnel Encapsulation" <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>. 
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.4">
        <name slugifiedName="name-bgp-tunnel-encapsulation-at">BGP Tunnel Encapsulation Attribute Tunnel Types</name>
        <t indent="0" pn="section-14.4-1">
   IANA has relocated the "BGP Tunnel Encapsulation Attribute Tunnel Types" registry to be 
   under the "Border Gateway Protocol (BGP) Tunnel Encapsulation" grouping <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.5">
        <name slugifiedName="name-subsequent-address-family-i">Subsequent Address Family Identifiers</name>
        <t indent="0" pn="section-14.5-1">
   IANA has modified the "SAFI Values" registry <xref target="IANA-SAFI" format="default" sectionFormat="of" derivedContent="IANA-SAFI"/> to 
   indicate that the Encapsulation SAFI (value 7) has been
   obsoleted.  This document is listed as the reference for this change.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.6">
        <name slugifiedName="name-bgp-tunnel-encapsulation-att">BGP Tunnel Encapsulation Attribute Sub-TLVs</name>
        <t indent="0" pn="section-14.6-1">
   IANA has relocated the "BGP Tunnel Encapsulation Attribute Sub-TLVs" registry to be under 
   the "Border Gateway Protocol (BGP) Tunnel Encapsulation" grouping <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>.</t>
        <t indent="0" pn="section-14.6-2">
   IANA has included the following note to the registry:</t>
        <blockquote pn="section-14.6-3">
      If the Sub-TLV Type is in the range from 0 to 127 (inclusive), the
      Sub-TLV Length field contains one octet.  If the Sub-TLV Type is
      in the range from 128 to 255 (inclusive), the Sub-TLV Length field
      contains two octets.
   </blockquote>
        <t indent="0" pn="section-14.6-4">
   IANA has updated the registration procedures of the  
   registry to the following:</t>
        <table align="center" pn="table-3">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Range</th>
              <th align="left" colspan="1" rowspan="1">Registration Procedures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">1-63</td>
              <td align="left" colspan="1" rowspan="1">Standards Action</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">64-125</td>
              <td align="left" colspan="1" rowspan="1">First Come First Served</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">126-127</td>
              <td align="left" colspan="1" rowspan="1">Experimental Use</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">128-191</td>
              <td align="left" colspan="1" rowspan="1">Standards Action</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">192-252</td>
              <td align="left" colspan="1" rowspan="1">First Come First Served</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">253-254</td>
              <td align="left" colspan="1" rowspan="1">Experimental Use</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-14.6-6">IANA has added the following entries to this registry:</t>
        <table align="center" pn="table-4">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">Tunnel Egress Endpoint</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">DS Field</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8</td>
              <td align="left" colspan="1" rowspan="1">UDP Destination Port</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">9</td>
              <td align="left" colspan="1" rowspan="1">Embedded Label Handling</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">MPLS Label Stack</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">11</td>
              <td align="left" colspan="1" rowspan="1">Prefix-SID</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">255</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.7">
        <name slugifiedName="name-flags-field-of-vxlan-encaps">Flags Field of VXLAN Encapsulation Sub-TLV</name>
        <t indent="0" pn="section-14.7-1">IANA has created a registry named "Flags Field of VXLAN Encapsulation Sub-TLVs" under 
   the "Border Gateway Protocol (BGP) Tunnel Encapsulation" grouping <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>. The registration policy for
   this registry is "Standards Action". The minimum possible value is 0, and the 
   maximum is 7.</t>
        <t indent="0" pn="section-14.7-2">The initial values for this new registry are indicated in <xref target="flags-vxlan" format="default" sectionFormat="of" derivedContent="Table 5"/>.</t>
        <table align="center" anchor="flags-vxlan" pn="table-5">
          <thead>
            <tr>
              <th align="center" colspan="1" rowspan="1">Bit Position</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">V (VN-ID)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">M (MAC Address)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.8">
        <name slugifiedName="name-flags-field-of-nvgre-encaps">Flags Field of NVGRE Encapsulation Sub-TLV</name>
        <t indent="0" pn="section-14.8-1">IANA has created a registry named "Flags Field of NVGRE Encapsulation Sub-TLVs" under 
   the "Border Gateway Protocol (BGP) Tunnel Encapsulation" grouping <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>. The registration policy for
   this registry is "Standards Action". The minimum possible value is 0, and the 
   maximum is 7.</t>
        <t indent="0" pn="section-14.8-2">The initial values for this new registry are indicated in <xref target="flags-nvgre" format="default" sectionFormat="of" derivedContent="Table 6"/>.</t>
        <table align="center" anchor="flags-nvgre" pn="table-6">
          <thead>
            <tr>
              <th align="center" colspan="1" rowspan="1">Bit Position</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">V (VN-ID)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">M (MAC Address)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-14.9">
        <name slugifiedName="name-embedded-label-handling-sub-t">Embedded Label Handling Sub-TLV</name>
        <t indent="0" pn="section-14.9-1">IANA has created a registry named "Embedded Label Handling Sub-TLVs" under 
   the "Border Gateway Protocol (BGP) Tunnel Encapsulation" grouping <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>. The registration policy for
   this registry is "Standards Action". The minimum possible value is 0, and the 
   maximum is 255.</t>
        <t indent="0" pn="section-14.9-2">The initial values for this new registry are indicated in <xref target="embedded-label" format="default" sectionFormat="of" derivedContent="Table 7"/>.</t>
        <table align="center" anchor="embedded-label" pn="table-7">
          <thead>
            <tr>
              <th align="center" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Payload of MPLS with embedded label</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">No embedded label in payload</td>
              <td align="left" colspan="1" rowspan="1">RFC 9012</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="color-extcomm-flags" numbered="true" toc="include" removeInRFC="false" pn="section-14.10">
        <name slugifiedName="name-color-extended-community-fl">Color Extended Community Flags</name>
        <t indent="0" pn="section-14.10-1">IANA has created a registry named "Color Extended Community Flags" under 
   the "Border Gateway Protocol (BGP) Tunnel Encapsulation" grouping <xref target="IANA-BGP-TUNNEL-ENCAP" format="default" sectionFormat="of" derivedContent="IANA-BGP-TUNNEL-ENCAP"/>. The registration policy for
   this registry is "Standards Action". The minimum possible value is 0, and the 
   maximum is 15.</t>
        <t indent="0" pn="section-14.10-2">   This new registry contains columns for "Bit Position", "Description", and
   "Reference". No values have currently been registered.
</t>
      </section>
    </section>
    <section anchor="security" numbered="true" toc="include" removeInRFC="false" pn="section-15">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-15-1">
   As <xref target="scoping" format="default" sectionFormat="of" derivedContent="Section 11"/> discusses, it is intended that the
   Tunnel Encapsulation attribute be used only within a well-defined
   scope, for example, within a set of ASes that belong to a
   single administrative entity. As long as the filtering mechanisms
   discussed in that section are applied diligently, an attacker outside
   the scope would not be able to use the Tunnel Encapsulation attribute
   in an attack. This leaves open the questions of attackers within the
   scope (for example, a compromised router) and failures in filtering
   that allow an external attack to succeed.
      </t>
      <t indent="0" pn="section-15-2">
   As <xref target="RFC4272" format="default" sectionFormat="of" derivedContent="RFC4272"/> discusses, BGP is vulnerable to traffic-diversion attacks. The Tunnel Encapsulation attribute adds a new
   means by which an attacker could cause traffic to be diverted from
   its normal path, especially when the Tunnel Egress Endpoint sub-TLV
   is used. Such an attack would differ from pre-existing
   vulnerabilities in that traffic could be tunneled to a distant target
   across intervening network infrastructure, allowing an attack to
   potentially succeed more easily, since less infrastructure would have
   to be subverted. Potential consequences include "hijacking" of
   traffic (insertion of an undesired node in the path, which allows for
   inspection or modification of traffic, or avoidance of security
   controls) or denial of service (directing traffic to a node that
   doesn't desire to receive it).
      </t>
      <t indent="0" pn="section-15-3">
   In order to further mitigate the risk of diversion of traffic from
   its intended destination, <xref target="address-validation" format="default" sectionFormat="of" derivedContent="Section 3.1.1"/>
   provides an optional procedure to check that the destination given in
   a Tunnel Egress Endpoint sub-TLV is within the AS that was the source
   of the route. One then has some level of assurance that the tunneled
   traffic is going to the same destination AS that it would have gone
   to had the Tunnel Encapsulation attribute not been present. As RFC
   4272 discusses, it's possible for an attacker to announce an
   inaccurate AS_PATH; therefore, an attacker with the ability to inject
   a Tunnel Egress Endpoint sub-TLV could equally craft an AS_PATH that would
   pass the validation procedures of <xref target="address-validation" format="default" sectionFormat="of" derivedContent="Section 3.1.1"/>. BGP origin validation <xref target="RFC6811" format="default" sectionFormat="of" derivedContent="RFC6811"/> and BGPsec <xref target="RFC8205" format="default" sectionFormat="of" derivedContent="RFC8205"/> provide means to increase assurance that the origins being validated have not been
   falsified.
      </t>
      <t indent="0" pn="section-15-4">
   Many tunnels carry traffic that embeds a destination address that comes
   from a non-global namespace. One example is MPLS VPNs. If a tunnel 
   crosses from one namespace to another, without the necessary translation
   being performed for the embedded address(es), there exists a risk of 
   misdelivery of traffic. If the traffic contains confidential data that's
   not otherwise protected (for example, by end-to-end encryption), then 
   confidential information could be revealed. The restriction of applicability
   of the Tunnel Encapsulation attribute to a well-defined scope limits the
   likelihood of this occurring. See the discussion of "option b" in 
   <xref target="applicability" format="default" sectionFormat="of" derivedContent="Section 10"/> for further discussion of one such 
   scenario.
      </t>
      <t indent="0" pn="section-15-5">
   RFC 8402 specifies that "SR domain boundary routers <bcp14>MUST</bcp14> filter any
   external traffic" (<xref target="RFC8402" sectionFormat="comma" section="8.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-8.1" derivedContent="RFC8402"/>). For these
   purposes, traffic introduced into an SR domain using the Prefix-SID
   sub-TLV lies within the SR domain, even though the Prefix-SIDs used
   by the routers at the two ends of the tunnel may be different, as
   discussed in <xref target="prefix-sid" format="default" sectionFormat="of" derivedContent="Section 3.7"/>. This implies that the duty
   to filter external traffic extends to all routers participating in
   such tunnels.
      </t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-bess-evpn-inter-subnet-forwarding" to="EVPN-INTER-SUBNET"/>
    <references pn="section-16">
      <name slugifiedName="name-references">References</name>
      <references pn="section-16.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <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 initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <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="RFC2474" target="https://www.rfc-editor.org/info/rfc2474" quoteTitle="true" derivedAnchor="RFC2474">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author initials="K." surname="Nichols" fullname="K. Nichols">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Blake" fullname="S. Blake">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="F." surname="Baker" fullname="F. Baker">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Black" fullname="D. Black">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1998" month="December"/>
            <abstract>
              <t indent="0">This document defines the IP header field, called the DS (for differentiated services) field.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
        <reference anchor="RFC2784" target="https://www.rfc-editor.org/info/rfc2784" quoteTitle="true" derivedAnchor="RFC2784">
          <front>
            <title>Generic Routing Encapsulation (GRE)</title>
            <author initials="D." surname="Farinacci" fullname="D. Farinacci">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Li" fullname="T. Li">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Hanks" fullname="S. Hanks">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Meyer" fullname="D. Meyer">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Traina" fullname="P. Traina">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2000" month="March"/>
            <abstract>
              <t indent="0">This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2784"/>
          <seriesInfo name="DOI" value="10.17487/RFC2784"/>
        </reference>
        <reference anchor="RFC2890" target="https://www.rfc-editor.org/info/rfc2890" quoteTitle="true" derivedAnchor="RFC2890">
          <front>
            <title>Key and Sequence Number Extensions to GRE</title>
            <author initials="G." surname="Dommety" fullname="G. Dommety">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2000" month="September"/>
            <abstract>
              <t indent="0">This document describes extensions by which two fields, Key and Sequence Number, can be optionally carried in the GRE Header.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2890"/>
          <seriesInfo name="DOI" value="10.17487/RFC2890"/>
        </reference>
        <reference anchor="RFC3032" target="https://www.rfc-editor.org/info/rfc3032" quoteTitle="true" derivedAnchor="RFC3032">
          <front>
            <title>MPLS Label Stack Encoding</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Tappan" fullname="D. Tappan">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Fedorkow" fullname="G. Fedorkow">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Farinacci" fullname="D. Farinacci">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Li" fullname="T. Li">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Conta" fullname="A. Conta">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2001" month="January"/>
            <abstract>
              <t indent="0">This document specifies the encoding to be used by an LSR in order to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on LAN data links, and possibly on other data links as well.  This document also specifies rules and procedures for processing the various fields of the label stack encoding.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3032"/>
          <seriesInfo name="DOI" value="10.17487/RFC3032"/>
        </reference>
        <reference anchor="RFC3270" target="https://www.rfc-editor.org/info/rfc3270" quoteTitle="true" derivedAnchor="RFC3270">
          <front>
            <title>Multi-Protocol Label Switching (MPLS) Support of Differentiated Services</title>
            <author initials="F." surname="Le Faucheur" fullname="F. Le Faucheur">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Wu" fullname="L. Wu">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Davie" fullname="B. Davie">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Davari" fullname="S. Davari">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Vaananen" fullname="P. Vaananen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Krishnan" fullname="R. Krishnan">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Cheval" fullname="P. Cheval">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Heinanen" fullname="J. Heinanen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2002" month="May"/>
            <abstract>
              <t indent="0">This document defines a flexible solution for support of Differentiated Services (Diff-Serv) over Multi-Protocol Label Switching (MPLS) networks.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3270"/>
          <seriesInfo name="DOI" value="10.17487/RFC3270"/>
        </reference>
        <reference anchor="RFC3931" target="https://www.rfc-editor.org/info/rfc3931" quoteTitle="true" derivedAnchor="RFC3931">
          <front>
            <title>Layer Two Tunneling Protocol - Version 3 (L2TPv3)</title>
            <author initials="J." surname="Lau" fullname="J. Lau" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Townsley" fullname="M. Townsley" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Goyret" fullname="I. Goyret" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2005" month="March"/>
            <abstract>
              <t indent="0">This document describes "version 3" of the Layer Two Tunneling Protocol (L2TPv3).  L2TPv3 defines the base control protocol and encapsulation for tunneling multiple Layer 2 connections between two IP nodes.  Additional documents detail the specifics for each data link type being emulated.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3931"/>
          <seriesInfo name="DOI" value="10.17487/RFC3931"/>
        </reference>
        <reference anchor="RFC4023" target="https://www.rfc-editor.org/info/rfc4023" quoteTitle="true" derivedAnchor="RFC4023">
          <front>
            <title>Encapsulating MPLS in IP or Generic Routing Encapsulation (GRE)</title>
            <author initials="T." surname="Worster" fullname="T. Worster">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2005" month="March"/>
            <abstract>
              <t indent="0">Various applications of MPLS make use of label stacks with multiple entries.  In some cases, it is possible to replace the top label of the stack with an IP-based encapsulation, thereby enabling the application to run over networks that do not have MPLS enabled in their core routers.  This document specifies two IP-based encapsulations: MPLS-in-IP and MPLS-in-GRE (Generic Routing Encapsulation).  Each of these is applicable in some circumstances. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4023"/>
          <seriesInfo name="DOI" value="10.17487/RFC4023"/>
        </reference>
        <reference anchor="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" quoteTitle="true" derivedAnchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Li" fullname="T. Li" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Hares" fullname="S. Hares" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="January"/>
            <abstract>
              <t indent="0">This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t indent="0">The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems.  This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t indent="0">BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR).  These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP.  BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t indent="0">This document obsoletes RFC 1771.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4760" target="https://www.rfc-editor.org/info/rfc4760" quoteTitle="true" derivedAnchor="RFC4760">
          <front>
            <title>Multiprotocol Extensions for BGP-4</title>
            <author initials="T." surname="Bates" fullname="T. Bates">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Chandra" fullname="R. Chandra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Katz" fullname="D. Katz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="January"/>
            <abstract>
              <t indent="0">This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.).  The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4760"/>
          <seriesInfo name="DOI" value="10.17487/RFC4760"/>
        </reference>
        <reference anchor="RFC5129" target="https://www.rfc-editor.org/info/rfc5129" quoteTitle="true" derivedAnchor="RFC5129">
          <front>
            <title>Explicit Congestion Marking in MPLS</title>
            <author initials="B." surname="Davie" fullname="B. Davie">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Briscoe" fullname="B. Briscoe">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Tay" fullname="J. Tay">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="January"/>
            <abstract>
              <t indent="0">RFC 3270 defines how to support the Diffserv architecture in MPLS networks, including how to encode Diffserv Code Points (DSCPs) in an MPLS header.  DSCPs may be encoded in the EXP field, while other uses of that field are not precluded.  RFC 3270 makes no statement about how Explicit Congestion Notification (ECN) marking might be encoded in the MPLS header.  This document defines how an operator might define some of the EXP codepoints for explicit congestion notification, without precluding other uses.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5129"/>
          <seriesInfo name="DOI" value="10.17487/RFC5129"/>
        </reference>
        <reference anchor="RFC5462" target="https://www.rfc-editor.org/info/rfc5462" quoteTitle="true" derivedAnchor="RFC5462">
          <front>
            <title>Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field</title>
            <author initials="L." surname="Andersson" fullname="L. Andersson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Asati" fullname="R. Asati">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="February"/>
            <abstract>
              <t indent="0">The early Multiprotocol Label Switching (MPLS) documents defined the form of the MPLS label stack entry.  This includes a three-bit field called the "EXP field".  The exact use of this field was not defined by these documents, except to state that it was to be "reserved for experimental use".</t>
              <t indent="0">Although the intended use of the EXP field was as a "Class of Service" (CoS) field, it was not named a CoS field by these early documents because the use of such a CoS field was not considered to be sufficiently defined.  Today a number of standards documents define its usage as a CoS field.</t>
              <t indent="0">To avoid misunderstanding about how this field may be used, it has become increasingly necessary to rename this field.  This document changes the name of the field to the "Traffic Class field" ("TC field").  In doing so, it also updates documents that define the current use of the EXP field.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5462"/>
          <seriesInfo name="DOI" value="10.17487/RFC5462"/>
        </reference>
        <reference anchor="RFC6811" target="https://www.rfc-editor.org/info/rfc6811" quoteTitle="true" derivedAnchor="RFC6811">
          <front>
            <title>BGP Prefix Origin Validation</title>
            <author initials="P." surname="Mohapatra" fullname="P. Mohapatra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Scudder" fullname="J. Scudder">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ward" fullname="D. Ward">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Bush" fullname="R. Bush">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Austein" fullname="R. Austein">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="January"/>
            <abstract>
              <t indent="0">To help reduce well-known threats against BGP including prefix mis- announcing and monkey-in-the-middle attacks, one of the security requirements is the ability to validate the origination Autonomous System (AS) of BGP routes.  More specifically, one needs to validate that the AS number claiming to originate an address prefix (as derived from the AS_PATH attribute of the BGP route) is in fact authorized by the prefix holder to do so.  This document describes a simple validation mechanism to partially satisfy this requirement. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6811"/>
          <seriesInfo name="DOI" value="10.17487/RFC6811"/>
        </reference>
        <reference anchor="RFC6890" target="https://www.rfc-editor.org/info/rfc6890" quoteTitle="true" derivedAnchor="RFC6890">
          <front>
            <title>Special-Purpose IP Address Registries</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Vegoda" fullname="L. Vegoda">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Bonica" fullname="R. Bonica" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Haberman" fullname="B. Haberman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="April"/>
            <abstract>
              <t indent="0">This memo reiterates the assignment of an IPv4 address block (192.0.0.0/24) to IANA.  It also instructs IANA to restructure its IPv4 and IPv6 Special-Purpose Address Registries.  Upon restructuring, the aforementioned registries will record all special-purpose address blocks, maintaining a common set of information regarding each address block.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="153"/>
          <seriesInfo name="RFC" value="6890"/>
          <seriesInfo name="DOI" value="10.17487/RFC6890"/>
        </reference>
        <reference anchor="RFC7348" target="https://www.rfc-editor.org/info/rfc7348" quoteTitle="true" derivedAnchor="RFC7348">
          <front>
            <title>Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks</title>
            <author initials="M." surname="Mahalingam" fullname="M. Mahalingam">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Dutt" fullname="D. Dutt">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Duda" fullname="K. Duda">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Agarwal" fullname="P. Agarwal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Kreeger" fullname="L. Kreeger">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Sridhar" fullname="T. Sridhar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Bursell" fullname="M. Bursell">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Wright" fullname="C. Wright">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="August"/>
            <abstract>
              <t indent="0">This document describes Virtual eXtensible Local Area Network (VXLAN), which is used to address the need for overlay networks within virtualized data centers accommodating multiple tenants.  The scheme and the related protocols can be used in networks for cloud service providers and enterprise data centers.  This memo documents the deployed VXLAN protocol for the benefit of the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7348"/>
          <seriesInfo name="DOI" value="10.17487/RFC7348"/>
        </reference>
        <reference anchor="RFC7606" target="https://www.rfc-editor.org/info/rfc7606" quoteTitle="true" derivedAnchor="RFC7606">
          <front>
            <title>Revised Error Handling for BGP UPDATE Messages</title>
            <author initials="E." surname="Chen" fullname="E. Chen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Scudder" fullname="J. Scudder" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Mohapatra" fullname="P. Mohapatra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="August"/>
            <abstract>
              <t indent="0">According to the base BGP specification, a BGP speaker that receives an UPDATE message containing a malformed attribute is required to reset the session over which the offending attribute was received. This behavior is undesirable because a session reset would impact not only routes with the offending attribute but also other valid routes exchanged over the session.  This document partially revises the error handling for UPDATE messages and provides guidelines for the authors of documents defining new attributes.  Finally, it revises the error handling procedures for a number of existing attributes.</t>
              <t indent="0">This document updates error handling for RFCs 1997, 4271, 4360, 4456, 4760, 5543, 5701, and 6368.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7606"/>
          <seriesInfo name="DOI" value="10.17487/RFC7606"/>
        </reference>
        <reference anchor="RFC7637" target="https://www.rfc-editor.org/info/rfc7637" quoteTitle="true" derivedAnchor="RFC7637">
          <front>
            <title>NVGRE: Network Virtualization Using Generic Routing Encapsulation</title>
            <author initials="P." surname="Garg" fullname="P. Garg" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Wang" fullname="Y. Wang" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="September"/>
            <abstract>
              <t indent="0">This document describes the usage of the Generic Routing Encapsulation (GRE) header for Network Virtualization (NVGRE) in multi-tenant data centers.  Network Virtualization decouples virtual networks and addresses from physical network infrastructure, providing isolation and concurrency between multiple virtual networks on the same physical network infrastructure.  This document also introduces a Network Virtualization framework to illustrate the use cases, but the focus is on specifying the data-plane aspect of NVGRE.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7637"/>
          <seriesInfo name="DOI" value="10.17487/RFC7637"/>
        </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 initials="M." surname="Cotton" fullname="M. Cotton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="June"/>
            <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>
        <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 initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <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="RFC8669" target="https://www.rfc-editor.org/info/rfc8669" quoteTitle="true" derivedAnchor="RFC8669">
          <front>
            <title>Segment Routing Prefix Segment Identifier Extensions for BGP</title>
            <author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Lindem" fullname="A. Lindem" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Sreekantiah" fullname="A. Sreekantiah">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H." surname="Gredler" fullname="H. Gredler">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="December"/>
            <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. The ingress node prepends an SR header to a packet containing a set of segment identifiers (SIDs). Each SID represents a topological or service-based instruction. Per-flow state is maintained only on the ingress node of the SR domain. An "SR domain" is defined as a single administrative domain for global SID assignment.</t>
              <t indent="0">This document defines an optional, transitive BGP attribute for announcing information about BGP Prefix Segment Identifiers (BGP Prefix-SIDs) and the specification for SR-MPLS SIDs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8669"/>
          <seriesInfo name="DOI" value="10.17487/RFC8669"/>
        </reference>
      </references>
      <references pn="section-16.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-bess-evpn-inter-subnet-forwarding" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-bess-evpn-inter-subnet-forwarding-13" derivedAnchor="EVPN-INTER-SUBNET">
          <front>
            <title>Integrated Routing and Bridging in EVPN</title>
            <author fullname="Ali Sajassi">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="Samer Salam">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="Samir Thoria">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="John E Drake">
              <organization showOnFrontPage="true">Juniper</organization>
            </author>
            <author fullname="Jorge Rabadan">
              <organization showOnFrontPage="true">Nokia</organization>
            </author>
            <date month="February" day="10" year="2021"/>
            <abstract>
              <t indent="0">   Ethernet VPN (EVPN) provides an extensible and flexible multi-homing
   VPN solution over an MPLS/IP network for intra-subnet connectivity
   among Tenant Systems and End Devices that can be physical or virtual.
   However, there are scenarios for which there is a need for a dynamic
   and efficient inter-subnet connectivity among these Tenant Systems
   and End Devices while maintaining the multi-homing capabilities of
   EVPN.  This document describes an Integrated Routing and Bridging
   (IRB) solution based on EVPN to address such requirements.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-bess-evpn-inter-subnet-forwarding-13"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-bess-evpn-inter-subnet-forwarding-13.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="IANA-ADDRESS-FAM" target="https://www.iana.org/assignments/address-family-numbers/" quoteTitle="true" derivedAnchor="IANA-ADDRESS-FAM">
          <front>
            <title>Address Family Numbers</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-BGP-EXT-COMM" target="https://www.iana.org/assignments/bgp-extended-communities/" quoteTitle="true" derivedAnchor="IANA-BGP-EXT-COMM">
          <front>
            <title>Border Gateway Protocol (BGP) Extended Communities</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-BGP-PARAMS" target="https://www.iana.org/assignments/bgp-parameters/" quoteTitle="true" derivedAnchor="IANA-BGP-PARAMS">
          <front>
            <title>Border Gateway Protocol (BGP) Parameters</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-BGP-TUNNEL-ENCAP" target="https://www.iana.org/assignments/bgp-tunnel-encapsulation/" quoteTitle="true" derivedAnchor="IANA-BGP-TUNNEL-ENCAP">
          <front>
            <title>Border Gateway Protocol (BGP) Tunnel Encapsulation</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-ETHERTYPES" target="https://www.iana.org/assignments/ieee-802-numbers/" quoteTitle="true" derivedAnchor="IANA-ETHERTYPES">
          <front>
            <title>IEEE 802 Numbers: ETHER TYPES</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-SAFI" target="https://www.iana.org/assignments/safi-namespace/" quoteTitle="true" derivedAnchor="IANA-SAFI">
          <front>
            <title>Subsequent Address Family Identifiers (SAFI) Parameters</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC4272" target="https://www.rfc-editor.org/info/rfc4272" quoteTitle="true" derivedAnchor="RFC4272">
          <front>
            <title>BGP Security Vulnerabilities Analysis</title>
            <author initials="S." surname="Murphy" fullname="S. Murphy">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="January"/>
            <abstract>
              <t indent="0">Border Gateway Protocol 4 (BGP-4), along with a host of other infrastructure protocols designed before the Internet environment became perilous, was originally designed with little consideration for protection of the information it carries.  There are no mechanisms internal to BGP that protect against attacks that modify, delete, forge, or replay data, any of which has the potential to disrupt overall network routing behavior.</t>
              <t indent="0">This document discusses some of the security issues with BGP routing data dissemination.  This document does not discuss security issues with forwarding of packets.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4272"/>
          <seriesInfo name="DOI" value="10.17487/RFC4272"/>
        </reference>
        <reference anchor="RFC4364" target="https://www.rfc-editor.org/info/rfc4364" quoteTitle="true" derivedAnchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="February"/>
            <abstract>
              <t indent="0">This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers.  This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other.  Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC5512" target="https://www.rfc-editor.org/info/rfc5512" quoteTitle="true" derivedAnchor="RFC5512">
          <front>
            <title>The BGP Encapsulation Subsequent Address Family Identifier (SAFI) and the BGP Tunnel Encapsulation Attribute</title>
            <author initials="P." surname="Mohapatra" fullname="P. Mohapatra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="April"/>
            <abstract>
              <t indent="0">In certain situations, transporting a packet from one Border Gateway Protocol (BGP) speaker to another (the BGP next hop) requires that the packet be encapsulated by the first BGP speaker and decapsulated by the second.  To support these situations, there needs to be some agreement between the two BGP speakers with regard to the "encapsulation information", i.e., the format of the encapsulation header as well as the contents of various fields of the header.</t>
              <t indent="0">The encapsulation information need not be signaled for all encapsulation types.  In cases where signaling is required (such as Layer Two Tunneling Protocol - Version 3 (L2TPv3) or Generic Routing Encapsulation (GRE) with key), this document specifies a method by which BGP speakers can signal encapsulation information to each other.  The signaling is done by sending BGP updates using the Encapsulation Subsequent Address Family Identifier (SAFI) and the IPv4 or IPv6 Address Family Identifier (AFI).  In cases where no encapsulation information needs to be signaled (such as GRE without key), this document specifies a BGP extended community that can be attached to BGP UPDATE messages that carry payload prefixes in order to indicate the encapsulation protocol type to be used.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5512"/>
          <seriesInfo name="DOI" value="10.17487/RFC5512"/>
        </reference>
        <reference anchor="RFC5565" target="https://www.rfc-editor.org/info/rfc5565" quoteTitle="true" derivedAnchor="RFC5565">
          <front>
            <title>Softwire Mesh Framework</title>
            <author initials="J." surname="Wu" fullname="J. Wu">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Cui" fullname="Y. Cui">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Metz" fullname="C. Metz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="June"/>
            <abstract>
              <t indent="0">The Internet needs to be able to handle both IPv4 and IPv6 packets. However, it is expected that some constituent networks of the Internet will be "single-protocol" networks.  One kind of single-protocol network can parse only IPv4 packets and can process only IPv4 routing information; another kind can parse only IPv6 packets and can process only IPv6 routing information.  It is nevertheless required that either kind of single-protocol network be able to provide transit service for the "other" protocol.  This is done by passing the "other kind" of routing information from one edge of the single-protocol network to the other, and by tunneling the "other kind" of data packet from one edge to the other.  The tunnels are known as "softwires".  This framework document explains how the routing information and the data packets of one protocol are passed through a single-protocol network of the other protocol.  The document is careful to specify when this can be done with existing technology and when it requires the development of new or modified technology.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5565"/>
          <seriesInfo name="DOI" value="10.17487/RFC5565"/>
        </reference>
        <reference anchor="RFC5566" target="https://www.rfc-editor.org/info/rfc5566" quoteTitle="true" derivedAnchor="RFC5566">
          <front>
            <title>BGP IPsec Tunnel Encapsulation Attribute</title>
            <author initials="L." surname="Berger" fullname="L. Berger">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="White" fullname="R. White">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="June"/>
            <abstract>
              <t indent="0">The BGP Encapsulation Subsequent Address Family Identifier (SAFI) provides a method for the dynamic exchange of encapsulation information and for the indication of encapsulation protocol types to be used for different next hops.  Currently, support for Generic Routing Encapsulation (GRE), Layer 2 Tunneling Protocol (L2TPv3), and IP in IP tunnel types are defined.  This document defines support for IPsec tunnel types.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5566"/>
          <seriesInfo name="DOI" value="10.17487/RFC5566"/>
        </reference>
        <reference anchor="RFC5640" target="https://www.rfc-editor.org/info/rfc5640" quoteTitle="true" derivedAnchor="RFC5640">
          <front>
            <title>Load-Balancing for Mesh Softwires</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Mohapatra" fullname="P. Mohapatra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Pignataro" fullname="C. Pignataro">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="August"/>
            <abstract>
              <t indent="0">Payloads transported over a Softwire mesh service (as defined by BGP Encapsulation Subsequent Address Family Identifier (SAFI) information exchange) often carry a number of identifiable, distinct flows.  It can, in some circumstances, be desirable to distribute these flows over the equal cost multiple paths (ECMPs) that exist in the packet switched network.  Currently, the payload of a packet entering the Softwire can only be interpreted by the ingress and egress routers. Thus, the load-balancing decision of a core router is only based on the encapsulating header, presenting much less entropy than available in the payload or the encapsulated header since the Softwire encapsulation acts in a tunneling fashion.  This document describes a method for achieving comparable load-balancing efficiency in a network carrying Softwire mesh service over Layer Two Tunneling Protocol - Version 3 (L2TPv3) over IP or Generic Routing Encapsulation (GRE) encapsulation to what would be achieved without such encapsulation.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5640"/>
          <seriesInfo name="DOI" value="10.17487/RFC5640"/>
        </reference>
        <reference anchor="RFC6514" target="https://www.rfc-editor.org/info/rfc6514" quoteTitle="true" derivedAnchor="RFC6514">
          <front>
            <title>BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs</title>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Morin" fullname="T. Morin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="February"/>
            <abstract>
              <t indent="0">This document describes the BGP encodings and procedures for exchanging the information elements required by Multicast in MPLS/BGP IP VPNs, as specified in RFC 6513.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6514"/>
          <seriesInfo name="DOI" value="10.17487/RFC6514"/>
        </reference>
        <reference anchor="RFC7510" target="https://www.rfc-editor.org/info/rfc7510" quoteTitle="true" derivedAnchor="RFC7510">
          <front>
            <title>Encapsulating MPLS in UDP</title>
            <author initials="X." surname="Xu" fullname="X. Xu">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Sheth" fullname="N. Sheth">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Yong" fullname="L. Yong">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Callon" fullname="R. Callon">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Black" fullname="D. Black">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="April"/>
            <abstract>
              <t indent="0">This document specifies an IP-based encapsulation for MPLS, called MPLS-in-UDP for situations where UDP (User Datagram Protocol) encapsulation is preferred to direct use of MPLS, e.g., to enable UDP-based ECMP (Equal-Cost Multipath) or link aggregation.  The MPLS- in-UDP encapsulation technology must only be deployed within a single network (with a single network operator) or networks of an adjacent set of cooperating network operators where traffic is managed to avoid congestion, rather than over the Internet where congestion control is required.  Usage restrictions apply to MPLS-in-UDP usage for traffic that is not congestion controlled and to UDP zero checksum usage with IPv6.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7510"/>
          <seriesInfo name="DOI" value="10.17487/RFC7510"/>
        </reference>
        <reference anchor="RFC8205" target="https://www.rfc-editor.org/info/rfc8205" quoteTitle="true" derivedAnchor="RFC8205">
          <front>
            <title>BGPsec Protocol Specification</title>
            <author initials="M." surname="Lepinski" fullname="M. Lepinski" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Sriram" fullname="K. Sriram" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="September"/>
            <abstract>
              <t indent="0">This document describes BGPsec, an extension to the Border Gateway Protocol (BGP) that provides security for the path of Autonomous Systems (ASes) through which a BGP UPDATE message passes.  BGPsec is implemented via an optional non-transitive BGP path attribute that carries digital signatures produced by each AS that propagates the UPDATE message.  The digital signatures provide confidence that every AS on the path of ASes listed in the UPDATE message has explicitly authorized the advertisement of the route.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8205"/>
          <seriesInfo name="DOI" value="10.17487/RFC8205"/>
        </reference>
        <reference anchor="RFC8277" target="https://www.rfc-editor.org/info/rfc8277" quoteTitle="true" derivedAnchor="RFC8277">
          <front>
            <title>Using BGP to Bind MPLS Labels to Address Prefixes</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="October"/>
            <abstract>
              <t indent="0">This document specifies a set of procedures for using BGP to advertise that a specified router has bound a specified MPLS label (or a specified sequence of MPLS labels organized as a contiguous part of a label stack) to a specified address prefix.  This can be done by sending a BGP UPDATE message whose Network Layer Reachability Information field contains both the prefix and the MPLS label(s) and whose Next Hop field identifies the node at which said prefix is bound to said label(s).  This document obsoletes RFC 3107.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8277"/>
          <seriesInfo name="DOI" value="10.17487/RFC8277"/>
        </reference>
        <reference anchor="RFC8365" target="https://www.rfc-editor.org/info/rfc8365" quoteTitle="true" derivedAnchor="RFC8365">
          <front>
            <title>A Network Virtualization Overlay Solution Using Ethernet VPN (EVPN)</title>
            <author initials="A." surname="Sajassi" fullname="A. Sajassi" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Drake" fullname="J. Drake" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Bitar" fullname="N. Bitar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Shekhar" fullname="R. Shekhar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Uttaro" fullname="J. Uttaro">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Henderickx" fullname="W. Henderickx">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="March"/>
            <abstract>
              <t indent="0">This document specifies how Ethernet VPN (EVPN) can be used as a Network Virtualization Overlay (NVO) solution and explores the various tunnel encapsulation options over IP and their impact on the EVPN control plane and procedures.  In particular, the following encapsulation options are analyzed: Virtual Extensible LAN (VXLAN), Network Virtualization using Generic Routing Encapsulation (NVGRE), and MPLS over GRE.  This specification is also applicable to Generic Network Virtualization Encapsulation (GENEVE); however, some incremental work is required, which will be covered in a separate document.  This document also specifies new multihoming procedures for split-horizon filtering and mass withdrawal.  It also specifies EVPN route constructions for VXLAN/NVGRE encapsulations and Autonomous System Border Router (ASBR) procedures for multihoming of Network Virtualization Edge (NVE) devices.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8365"/>
          <seriesInfo name="DOI" value="10.17487/RFC8365"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" quoteTitle="true" derivedAnchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Ginsberg" fullname="L. Ginsberg">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Decraene" fullname="B. Decraene">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Litkowski" fullname="S. Litkowski">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Shakir" fullname="R. Shakir">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="July"/>
            <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>
      </references>
    </references>
    <section anchor="impact-on-8365" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-impact-on-rfc-8365">Impact on RFC 8365</name>
      <t indent="0" pn="section-appendix.a-1">
	<xref target="RFC8365" format="default" sectionFormat="of" derivedContent="RFC8365"/> references RFC 5512 for its definition of 
	the BGP Encapsulation Extended Community. That extended community is
	now defined in this document, in a way consistent with its previous
	definition. 
      </t>
      <t indent="0" pn="section-appendix.a-2">
	<xref target="RFC8365" section="6" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8365#section-6" derivedContent="RFC8365"/> talks about the use of the Encapsulation Extended
	Community to allow Network Virtualization Edge (NVE) devices to 
	signal their supported encapsulations. We
	note that with the introduction of this specification, the Tunnel 
	Encapsulation attribute can also be used for this purpose. For purposes
	where RFC 8365 talks about "advertising supported encapsulations" (for
	example, in the second paragraph of Section <xref target="RFC8365" section="6" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8365#section-6" derivedContent="RFC8365"/>), encapsulations advertised
	using the Tunnel Encapsulation attribute should be considered equally with
	those advertised using the Encapsulation Extended Community.
      </t>
      <t indent="0" pn="section-appendix.a-3">
	In particular, a review of <xref target="RFC8365" section="8.3.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8365#section-8.3.1" derivedContent="RFC8365"/> is called for, to 
	consider whether the introduction of the Tunnel Encapsulation attribute
	creates a need for any revisions to the split-horizon procedures.
      </t>
      <t indent="0" pn="section-appendix.a-4">
	<xref target="RFC8365" format="default" sectionFormat="of" derivedContent="RFC8365"/> also refers to a draft version of this specification in
	the final paragraph of Section <xref target="RFC8365" section="5.1.3" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8365#section-5.1.3" derivedContent="RFC8365"/>. That paragraph references 
	Section 8.2.2.2 of the draft. In this document, the correct reference
	would be <xref target="no-valid-vni" format="default" sectionFormat="of" derivedContent="Section 9.2.2.2"/>. There are no substantive 
	differences between the section in the referenced draft version and that in
	this document.
      </t>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">
   This document contains text from RFC 5512, authored by <contact fullname="Pradosh Mohapatra"/> and <contact fullname="Eric Rosen"/>.  The authors of the current document wish to thank 
   them for their contribution.  RFC 5512 itself built upon prior work by <contact fullname="Gargi Nalawade"/>, <contact fullname="Ruchi Kapoor"/>, <contact fullname="Dan Tappan"/>, <contact fullname="David Ward"/>, <contact fullname="Scott Wainner"/>, <contact fullname="Simon Barber"/>, <contact fullname="Lili Wang"/>, and <contact fullname="Chris Metz"/>, whom the authors also thank for their 
   contributions. <contact fullname="Eric Rosen"/> was the principal author of earlier versions
   of this document.</t>
      <t indent="0" pn="section-appendix.b-2">
   The authors wish to thank <contact fullname="Lou Berger"/>, <contact fullname="Ron Bonica"/>, <contact fullname="Martin Djernaes"/>,
   <contact fullname="John Drake"/>, <contact fullname="Susan Hares"/>, <contact fullname="Satoru Matsushima"/>, <contact fullname="Thomas Morin"/>, <contact fullname="Dhananjaya Rao"/>, <contact fullname="Ravi Singh"/>, <contact fullname="Harish Sitaraman"/>, <contact fullname="Brian Trammell"/>, <contact fullname="Xiaohu Xu"/>, and <contact fullname="Zhaohui Zhang"/> for their review, comments, and/or helpful discussions. <contact fullname="Alvaro Retana"/> provided an
   especially comprehensive review.</t>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.c">
      <name slugifiedName="name-contributors">Contributors</name>
      <t indent="0" pn="section-appendix.c-1">
   Below is a list of other contributing authors in alphabetical order:</t>
      <contact fullname="Randy Bush">
        <organization showOnFrontPage="true">Internet Initiative Japan</organization>
        <address>
          <postal>
            <street>5147 Crystal Springs</street>
            <city>Bainbridge Island</city>
            <region>WA</region>
            <code>98110</code>
            <country>United States of America</country>
          </postal>
          <email>randy@psg.com</email>
        </address>
      </contact>
      <contact fullname="Robert Raszuk">
        <organization showOnFrontPage="true">Bloomberg LP</organization>
        <address>
          <postal>
            <street>731 Lexington Ave</street>
            <city>New York City</city>
            <region>NY</region>
            <code>10022</code>
            <country>USA</country>
          </postal>
          <email>robert@raszuk.net</email>
        </address>
      </contact>
      <contact fullname="Eric C. Rosen"/>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Keyur Patel" initials="K." surname="Patel">
        <organization showOnFrontPage="true">Arrcus, Inc</organization>
        <address>
          <postal>
            <street>2077 Gateway Pl</street>
            <city>San Jose</city>
            <region>CA</region>
            <code>95110</code>
            <country>United States of America</country>
          </postal>
          <email>keyur@arrcus.com</email>
        </address>
      </author>
      <author fullname="Gunter Van de Velde" initials="G." surname="Van de Velde">
        <organization showOnFrontPage="true">Nokia</organization>
        <address>
          <postal>
            <street>Copernicuslaan 50</street>
            <city>Antwerpen</city>
            <code>2018</code>
            <country>Belgium</country>
          </postal>
          <email>gunter.van_de_velde@nokia.com</email>
        </address>
      </author>
      <author fullname="Srihari R. Sangli" initials="S." surname="Sangli">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>ssangli@juniper.net</email>
        </address>
      </author>
      <author fullname="John Scudder" initials="J." surname="Scudder">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>jgs@juniper.net</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
