<?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-bess-rfc5549revision-06" indexInclude="true" ipr="trust200902" number="8950" obsoletes="5549" prepTime="2020-11-19T14:36:51" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-bess-rfc5549revision-06" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8950" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Advertising IPv4 Reachability with IPv6">Advertising IPv4 Network Layer Reachability Information (NLRI) with an IPv6 Next Hop</title>
    <seriesInfo name="RFC" value="8950" stream="IETF"/>
    <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
      <organization showOnFrontPage="true">Cisco</organization>
      <address>
        <email>slitkows@cisco.com</email>
      </address>
    </author>
    <author fullname="Swadesh Agrawal" initials="S." surname="Agrawal">
      <organization showOnFrontPage="true">Cisco</organization>
      <address>
        <email>swaagraw@cisco.com</email>
      </address>
    </author>
    <author fullname="Krishna Muddenahally Ananthamurthy" initials="K." surname="Ananthamurthy">
      <organization showOnFrontPage="true">Cisco</organization>
      <address>
        <email>kriswamy@cisco.com</email>
      </address>
    </author>
    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization showOnFrontPage="true">Arrcus</organization>
      <address>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <date month="11" year="2020"/>
    <area/>
    <workgroup>BESS Working Group</workgroup>
    <keyword>bgp</keyword>
    <keyword>mvpn</keyword>
    <keyword>vpnv4</keyword>
    <keyword>vpnv6</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
	   Multiprotocol BGP (MP-BGP) specifies that the set of usable next-hop address families
   is determined by the Address Family Identifier (AFI) and the
   Subsequent Address Family Identifier (SAFI).  The AFI/SAFI
   definitions for the IPv4 address family only have provisions for
   advertising a next-hop address that belongs to the IPv4 protocol when
   advertising IPv4 Network Layer Reachability Information (NLRI) or
   VPN-IPv4 NLRI.  
      </t>
      <t indent="0" pn="section-abstract-2">
   This document specifies the extensions necessary to
   allow the advertising of IPv4 NLRI or VPN-IPv4 NLRI with a next-hop address
   that belongs to the IPv6 protocol.  This comprises an extension of
   the AFI/SAFI definitions to allow the address of the next hop for
   IPv4 NLRI or VPN-IPv4 NLRI to also belong to the IPv6 protocol, the
   encoding of the next hop to determine which of the protocols
   the address actually belongs to, and a BGP Capability allowing
   MP-BGP peers to dynamically discover whether they can exchange IPv4
   NLRI and VPN-IPv4 NLRI with an IPv6 next hop. This document obsoletes RFC 5549.
      </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/rfc8950" 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) 2020 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" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" 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-changes-compared-to-rfc-554">Changes Compared to RFC 5549</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-extension-of-afi-safi-defin">Extension of AFI/SAFI Definitions for the IPv4 Address Family</xref></t>
          </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-use-of-bgp-capability-adver">Use of BGP Capability Advertisement</xref></t>
          </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-operations">Operations</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-usage-examples">Usage Examples</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-over-ipv6-core">IPv4 over IPv6 Core</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-vpn-unicast-over-ipv6-">IPv4 VPN Unicast over IPv6 Core</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-vpn-multicast-over-ipv">IPv4 VPN Multicast over IPv6 Core</xref></t>
              </li>
            </ul>
          </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-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</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-references">References</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-normative-references">Normative References</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-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
	Multiprotocol BGP (MP-BGP) <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/> specifies that the set of
   network-layer protocols to which the address carried in the Next Hop
   Address field may belong is determined by the Address Family Identifier (AFI)
   and the Subsequent Address Family Identifier (SAFI).  A number of
   existing AFIs/SAFIs allow the next-hop address to belong to a
   different address family than the Network Layer Reachability
   Information (NLRI).  For example, the AFI/SAFI &lt;25/65&gt; used (as per
   <xref target="RFC6074" format="default" sectionFormat="of" derivedContent="RFC6074"/>) to perform Layer 2 Virtual
   Private Network (L2VPN) auto-discovery allows advertising NLRI that contains the identifier of a Virtual Private
   LAN Service (VPLS) instance or that identifies a particular pool of
   attachment circuits at a given Provider Edge (PE), while the Next Hop
   Address field contains the loopback address of a PE.  Similarly, the AFI/SAFI
   &lt;1/132&gt; (defined in <xref target="RFC4684" format="default" sectionFormat="of" derivedContent="RFC4684"/>) to advertise Route Target
   (RT) membership information allows advertising NLRI that contains
   such RT membership information, while the Next Hop Address field contains the
   address of the advertising router.
      </t>
      <t indent="0" pn="section-1-2">
   Furthermore, a number of these existing AFIs/SAFIs allow the next hop
   to belong to either the IPv4 protocol or the IPv6
   protocol and specify the encoding of the next-hop
   information to determine which of the protocols the address
   actually belongs to.

   For example, <xref target="RFC4684" format="default" sectionFormat="of" derivedContent="RFC4684"/> allows the next-hop
   address to be either an IPv4 or IPv6 address and states that the
   Next Hop Address field shall be interpreted as an IPv4 address whenever the length
   of the next-hop address is 4 octets and as an IPv6 address whenever the
   length of the next-hop address is 16 octets.
      </t>
      <t indent="0" pn="section-1-3">
   There are situations such as those described in <xref target="RFC4925" format="default" sectionFormat="of" derivedContent="RFC4925"/> and <xref target="RFC5565" format="default" sectionFormat="of" derivedContent="RFC5565"/> where carriers (or large
   enterprise networks acting as a
   carrier for their internal resources) may be required to establish
   connectivity between 'islands' of networks of one address family type
   across a transit core of a differing address family type.  This
   includes both the case of IPv6 islands across an IPv4 core and the
   case of IPv4 islands across an IPv6 core.  Where Multiprotocol BGP
   (MP-BGP) is used to advertise the corresponding reachability
   information, this translates into the requirement for a BGP speaker
   to advertise the NLRI of a given
   address family via a next hop of a different address family (i.e.,
   IPv6 NLRI with an IPv4 next hop and IPv4 NLRI with an IPv6 next hop).
      </t>
      <t indent="0" pn="section-1-4">
   The AFI/SAFI definitions for the IPv6 address family assume
   that the next-hop address belongs to the IPv6 address family type.
   Specifically, as per <xref target="RFC2545" format="default" sectionFormat="of" derivedContent="RFC2545"/> and <xref target="RFC8277" format="default" sectionFormat="of" derivedContent="RFC8277"/>, when the &lt;AFI/SAFI&gt; is
   &lt;2/1&gt;, &lt;2/2&gt;, or &lt;2/4&gt;, the next-hop address is assumed
   to be of an IPv6
   type.  As per <xref target="RFC4659" format="default" sectionFormat="of" derivedContent="RFC4659"/>, when the &lt;AFI/SAFI&gt; is &lt;2/128&gt;, the next-hop
   address is assumed to be of a VPN-IPv6 type.
      </t>
      <t indent="0" pn="section-1-5">
   However, <xref target="RFC4798" format="default" sectionFormat="of" derivedContent="RFC4798"/> and <xref target="RFC4659" format="default" sectionFormat="of" derivedContent="RFC4659"/>
   specify how an IPv4 address can be
   encoded inside the next-hop IPv6 address field when IPv6 NLRI needs
   to be advertised with an IPv4 next hop.  <xref target="RFC4798" format="default" sectionFormat="of" derivedContent="RFC4798"/> defines how the
   IPv4-mapped IPv6 address format specified in the IPv6 addressing
   architecture (<xref target="RFC4291" format="default" sectionFormat="of" derivedContent="RFC4291"/>) can be
   used for that purpose when the &lt;AFI/SAFI&gt; is &lt;2/1&gt;,
   &lt;2/2&gt;, or &lt;2/4&gt;.  <xref target="RFC4659" format="default" sectionFormat="of" derivedContent="RFC4659"/> defines how the IPv4-mapped IPv6 address format
   as well as a null Route Distinguisher (RD) can
   be used for that purpose when the &lt;AFI/SAFI&gt; is &lt;2/128&gt;.  Thus, there
   are existing solutions for the advertisement of IPv6 NLRI with an
   IPv4 next hop.
      </t>
      <t indent="0" pn="section-1-6">
   Similarly, the AFI/SAFI definitions for the advertisement of IPv4
   NLRI or VPN-IPv4 NLRI assume that the next-hop address belongs to the
   IPv4 address family type.  Specifically, as per <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/> and
   <xref target="RFC8277" format="default" sectionFormat="of" derivedContent="RFC8277"/>, when the &lt;AFI/SAFI&gt; is &lt;1/1&gt;, &lt;1/2&gt;, or &lt;1/4&gt;, the next-hop address is assumed to be of an IPv4 type.  As per <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>, when
   the &lt;AFI/SAFI&gt; is &lt;1/128&gt;, the next-hop address is assumed to
   be of a VPN-IPv4 type.  As per <xref target="RFC6513" format="default" sectionFormat="of" derivedContent="RFC6513"/> and <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/>, when
   the &lt;AFI/SAFI&gt; is &lt;1/129&gt;, the next-hop address is assumed to
   be of a VPN-IPv4 type. There is clearly no generally applicable method for
   encoding an IPv6 address inside the IPv4 address field of the next
   hop.  Hence, there is currently no specified solution for advertising
   IPv4 or VPN-IPv4 NLRI with an IPv6 next hop.
      </t>
      <t indent="0" pn="section-1-7">
   This document specifies the extensions necessary to
   allow advertisement of IPv4 NLRI or VPN-IPv4 NLRI with a next-hop address
   that belongs to the IPv6 protocol. This
   comprises an extension of the AFI/SAFI definitions to allow the
   address of the next hop for IPv4 NLRI or VPN-IPv4 NLRI to belong to
   either the IPv4 or the IPv6 protocol, the encoding of the next-hop
   information to determine which of the protocols the address
   actually belongs to, and a BGP Capability allowing MP-BGP peers
   to dynamically discover whether they can exchange IPv4 NLRI and VPN-IPv4 NLRI with an IPv6 next hop.  The BGP Capability allows
   gradual deployment of the functionality of advertising IPv4
   reachability via an IPv6 next hop without any flag day nor any risk
   of traffic black-holing.
      </t>
      <t indent="0" pn="section-1-8">This document obsoletes <xref target="RFC5549" format="default" sectionFormat="of" derivedContent="RFC5549"/>.</t>
      <section anchor="requirements" numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section anchor="diff" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-changes-compared-to-rfc-554">Changes Compared to RFC 5549</name>
      <t indent="0" pn="section-2-1">This document introduces two significant changes compared to <xref target="RFC5549" format="default" sectionFormat="of" derivedContent="RFC5549"/>:
      </t>
      <ul empty="false" spacing="normal" bare="false" indent="3" pn="section-2-2">
        <li pn="section-2-2.1">In <xref target="RFC5549" format="default" sectionFormat="of" derivedContent="RFC5549"/>, when AFI/SAFI &lt;1/128&gt;
	is used, the next-hop address is encoded as an IPv6 address with a
	length of 16 or 32 bytes. To accommodate all existing implementations
	and bring consistency with VPNv4oIPv4 and VPNv6oIPv6, this document
	modifies how the next-hop address is encoded. The next-hop address is
	now encoded as a VPN-IPv6 address with a length of 24 or 48 bytes
	(see Sections <xref target="extension" format="counter" sectionFormat="of" derivedContent="3"/> and <xref target="example-vpnv4unoipv6" format="counter" sectionFormat="of" derivedContent="6.2"/>). This change
	addresses Erratum ID 5253 (<xref target="Err5253" format="default" sectionFormat="of" derivedContent="Err5253"/>).
	As all known and deployed implementations are interoperable today and use the new proposed encoding, the change does not break existing interoperability.</li>
        <li pn="section-2-2.2">This document allows AFI/SAFI &lt;1/129&gt; (IPv4 multicast) to use an
	IPv6 underlay using similar encoding and procedures to AFI/SAFI
	&lt;1/128&gt; (see Sections <xref target="extension" format="counter" sectionFormat="of" derivedContent="3"/> and <xref target="example-vpnv4multoipv6" format="counter" sectionFormat="of" derivedContent="6.3"/>).</li>
      </ul>
    </section>
    <section anchor="extension" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-extension-of-afi-safi-defin">Extension of AFI/SAFI Definitions for the IPv4 Address Family</name>
      <t indent="0" pn="section-3-1">
	As mentioned earlier, MP-BGP specifies that the set of usable next-hop address families 
	is determined by the AFI and the SAFI.  The following 
   AFI/SAFI definitions for the IPv4 NLRI or VPN-IPv4 NLRI (&lt;1/1&gt;,
   &lt;1/2&gt;, &lt;1/4&gt;, &lt;1/128&gt;, and &lt;1/129&gt;) only have provisions for advertising a
   next-hop address that belongs to the IPv4 protocol.

   This document
   extends the set of usable next-hop address families to include IPv6 in addition to
   IPv4 when advertising an IPv4 or VPN-IPv4 NLRI.
      </t>
      <t indent="0" pn="section-3-2">
	Specifically, this document allows advertising the MP_REACH_NLRI attribute <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/> with this content:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-3">
        <li pn="section-3-3.1">AFI = 1</li>
        <li pn="section-3-3.2">SAFI = 1, 2, or 4</li>
        <li pn="section-3-3.3">Length of Next Hop Address = 16 or 32</li>
        <li pn="section-3-3.4">Next Hop Address = IPv6 address of a next hop (potentially followed
      by the link-local IPv6 address of the next hop).  This field is to
      be constructed as per <xref target="RFC2545" sectionFormat="of" section="3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2545#section-3" derivedContent="RFC2545"/>.</li>
        <li pn="section-3-3.5">NLRI = NLRI as per the AFI/SAFI definition</li>
      </ul>
      <t indent="0" pn="section-3-4">
	 It also allows advertising the MP_REACH_NLRI attribute <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/> with this content:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-5">
        <li pn="section-3-5.1">AFI = 1</li>
        <li pn="section-3-5.2">SAFI = 128 or 129</li>
        <li pn="section-3-5.3">Length of Next Hop Address = 24 or 48</li>
        <li pn="section-3-5.4">Next Hop Address = VPN-IPv6 address of a next hop with an 8-octet RD set to zero (potentially followed
      by the link-local VPN-IPv6 address of the next hop with an 8-octet RD set to zero).</li>
        <li pn="section-3-5.5">NLRI = NLRI as per the AFI/SAFI definition</li>
      </ul>
      <t indent="0" pn="section-3-6">
   This is in addition to the existing mode of operation allowing
   advertisement of NLRI for &lt;AFI/SAFI&gt; of &lt;1/1&gt;, &lt;1/2&gt;, and &lt;1/4&gt; with a
   next-hop address of an IPv4 type and advertisement of NLRI for an
   &lt;AFI/SAFI&gt; of &lt;1/128&gt; and &lt;1/129&gt; with a next-hop address
   of a VPN-IPv4 type.
      </t>
      <t indent="0" pn="section-3-7">
   The BGP speaker receiving the advertisement <bcp14>MUST</bcp14> use the Length of
   Next Hop Address field to determine which network-layer protocol the
   next-hop address belongs to. </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-8">
        <li pn="section-3-8.1">When the AFI/SAFI is &lt;1/1&gt;, &lt;1/2&gt;, or &lt;1/4&gt;
   and when the Length of Next Hop Address
   field is equal to 16 or 32, the next-hop address is of type IPv6.
	</li>
        <li pn="section-3-8.2">When the AFI/SAFI is &lt;1/128&gt; or &lt;1/129&gt;
   and when the Length of Next Hop Address
   field is equal to 24 or 48, the next-hop address is of type VPN-IPv6.
	</li>
      </ul>
      <t indent="0" pn="section-3-9">
   Note that this method of using the Length of Next Hop Address
   field to determine which network-layer protocol the next-hop address
   belongs to (out of the set of protocols allowed by the AFI/SAFI
   definition) is the same as that used in <xref target="RFC4684" format="default" sectionFormat="of" derivedContent="RFC4684"/> and <xref target="RFC6074" format="default" sectionFormat="of" derivedContent="RFC6074"/>.
      </t>
    </section>
    <section anchor="bgp-cap" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-use-of-bgp-capability-adver">Use of BGP Capability Advertisement</name>
      <t indent="0" pn="section-4-1">
	<xref target="RFC5492" format="default" sectionFormat="of" derivedContent="RFC5492"/> defines a mechanism to allow two BGP speakers to discover
   if a particular capability is supported by their BGP peer and, thus, whether it can be used with that peer.  This document defines a 
   capability that can be advertised using <xref target="RFC5492" format="default" sectionFormat="of" derivedContent="RFC5492"/>, referred to as the "Extended Next Hop Encoding capability".  This
   capability allows BGP speakers to discover whether, for a given NLRI
   &lt;AFI/SAFI&gt;, a peer supports advertisement with a next hop whose
   network protocol is determined by the value of the Length of Next Hop
   Address field, as specified in <xref target="extension" format="default" sectionFormat="of" derivedContent="Section 3"/>.
      </t>
      <t indent="0" pn="section-4-2">
	A BGP speaker that wishes to advertise an IPv6 next hop for IPv4 NLRI
	or for VPN-IPv4 NLRI to a BGP peer as per this specification <bcp14>MUST</bcp14> use
   the Capability Advertisement procedures defined in <xref target="RFC5492" format="default" sectionFormat="of" derivedContent="RFC5492"/> with the
   Extended Next Hop Encoding capability to determine whether its peer
   supports this for the NLRI AFI/SAFI pair(s) of interest.  The fields
   in the Capabilities Optional Parameter <bcp14>MUST</bcp14> be set as follows:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-3">
        <li pn="section-4-3.1">The Capability Code field <bcp14>MUST</bcp14> be set to 5 (which indicates the
      Extended Next Hop Encoding capability).</li>
        <li pn="section-4-3.2">The Capability Length field is set to a variable value that is the
      length of the Capability Value field (which follows).</li>
        <li pn="section-4-3.3">
          <t indent="0" pn="section-4-3.3.1">The Capability Value field has the following format:
          </t>
          <artwork name="" type="" align="left" alt="" pn="section-4-3.3.2">
   
         +-----------------------------------------------------+
         | NLRI AFI - 1 (2 octets)                             |
         +-----------------------------------------------------+
         | NLRI SAFI - 1 (2 octets)                            |
         +-----------------------------------------------------+
         | Nexthop AFI - 1 (2 octets)                          |
         +-----------------------------------------------------+
         | .....                                               |
         +-----------------------------------------------------+
         | NLRI AFI - N (2 octets)                             |
         +-----------------------------------------------------+
         | NLRI SAFI - N (2 octets)                            |
         +-----------------------------------------------------+
         | Nexthop AFI - N (2 octets)                          |
         +-----------------------------------------------------+

</artwork>
          <t indent="0" pn="section-4-3.3.3">
    where:
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-3.3.4">
            <li pn="section-4-3.3.4.1">each triple &lt;NLRI AFI, NLRI SAFI, Nexthop AFI&gt; indicates
	    that the NLRI of &lt;NLRI AFI / NLRI SAFI&gt; may be advertised with a next-hop address belonging to the network-layer protocol of Nexthop
            AFI.</li>
            <li pn="section-4-3.3.4.2">the AFI and SAFI values are defined in the "Address
	    Family Numbers"
         and "Subsequent Address Family Identifier (SAFI) Parameters" registries
         (see <xref target="IANA-AFI" format="default" sectionFormat="of" derivedContent="IANA-AFI"/> and <xref target="IANA-SAFI" format="default" sectionFormat="of" derivedContent="IANA-SAFI"/>, respectively).</li>
          </ul>
        </li>
      </ul>
      <t indent="0" pn="section-4-4">
   Since this document only concerns itself with the advertisement of
   IPv4 NLRI and VPN-IPv4 NLRI with an IPv6 next hop, this specification
   only allows the following values in the Capability Value field of the
   Extended Next Hop Encoding capability:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-5">
        <li pn="section-4-5.1">NLRI AFI = 1 (IPv4)</li>
        <li pn="section-4-5.2">NLRI SAFI = 1, 2, 4, 128, or 129</li>
        <li pn="section-4-5.3">Nexthop AFI = 2 (IPv6)</li>
      </ul>
      <t indent="0" pn="section-4-6">
   This document does not specify the use of the Extended Next Hop Encoding capability with any other combinations of &lt;NLRI AFI,
   NLRI SAFI, Nexthop AFI&gt;. For example, the Next Hop Encoding capability specified in this document is not intended to be used for
   NLRI AFIs/SAFIs whose definition already allows use of both IPv4 and
   IPv6 next hops (e.g., AFI/SAFI = &lt;1/132&gt; as defined in <xref target="RFC4684" format="default" sectionFormat="of" derivedContent="RFC4684"/>).
   Similarly, it is not intended that the Extended Next Hop Encoding capability be used for NLRI AFIs/SAFIs for which there is already a solution for advertising a next hop of a different address family
   (e.g., AFI/SAFI = &lt;2/1&gt;, &lt;2/2&gt;, or &lt;2/4&gt; with an IPv4 next hop as per
   <xref target="RFC4798" format="default" sectionFormat="of" derivedContent="RFC4798"/> and AFI/SAFI = &lt;2/128&gt; with
   an IPv4 next hop as per
   <xref target="RFC4659" format="default" sectionFormat="of" derivedContent="RFC4659"/>).</t>
      <t indent="0" pn="section-4-7">
   It is expected that if new AFIs/SAFIs are defined in the future, their
   definitions will have provisions (where appropriate) for both IPv4 and
   IPv6 next hops from the beginning, with the determination based on the Length of
   Next Hop Address field.  Thus, new AFIs/SAFIs are not expected to make
   use of the Extended Next Hop Encoding capability.
      </t>
      <t indent="0" pn="section-4-8">
   A BGP speaker <bcp14>MUST</bcp14> only advertise the IPv4 or VPN-IPv4
   NLRI with an IPv6 next hop to a BGP peer if the BGP speaker has first ascertained
   via the BGP Capability Advertisement that the BGP peer supports the
   Extended Next Hop Encoding capability for the relevant AFI/SAFI pair.
      </t>
      <t indent="0" pn="section-4-9">
   The Extended Next Hop Encoding capability provides information about
   next-hop encoding for a given AFI/SAFI, assuming that AFI/SAFI is
   allowed.  It does not influence whether that AFI/SAFI is indeed
   allowed.  Whether an AFI/SAFI can be used between the BGP peers is
   purely determined through the Multiprotocol Extensions capability
   defined in <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/>.
      </t>
    </section>
    <section anchor="operations" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-operations">Operations</name>
      <t indent="0" pn="section-5-1">
	By default, if a particular BGP session is running over IPvx (where
   IPvx is IPv4 or IPv6) and if the BGP speaker sending an update is
   putting its own address in as the next hop, then the next-hop address
   <bcp14>SHOULD</bcp14> be specified as an IPvx address, using the encoding rules
   specified in the AFI/SAFI definition of the NLRI being updated.  This
   default behavior may be overridden by policy.
      </t>
      <t indent="0" pn="section-5-2">
   When a next-hop address needs to be passed along unchanged (e.g., as
   a Route Reflector (RR) would do), its encoding <bcp14>MUST NOT</bcp14> be changed.
   If a particular RR client cannot handle that encoding (as determined
   by the BGP Capability Advertisement), then the NLRI in question
   cannot be distributed to that client.  For sound routing in certain
   scenarios, this will require that all the RR clients be able to
   handle whatever encodings any of them may generate.
      </t>
    </section>
    <section anchor="examples" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-usage-examples">Usage Examples</name>
      <section anchor="example-ipv4oipv6" numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-ipv4-over-ipv6-core">IPv4 over IPv6 Core</name>
        <t indent="0" pn="section-6.1-1">
	The extensions defined in this document may be used as discussed in
   <xref target="RFC5565" format="default" sectionFormat="of" derivedContent="RFC5565"/> for the interconnection of IPv4 islands over an IPv6
   backbone.  In this application, Address Family Border Routers (AFBRs;
   as defined in <xref target="RFC4925" format="default" sectionFormat="of" derivedContent="RFC4925"/>) advertise IPv4 NLRI in the MP_REACH_NLRI
   along with an IPv6 next hop.</t>
        <t indent="0" pn="section-6.1-2">
   The MP_REACH_NLRI is encoded with:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.1-3">
          <li pn="section-6.1-3.1">AFI = 1</li>
          <li pn="section-6.1-3.2">SAFI = 1</li>
          <li pn="section-6.1-3.3">Length of Next Hop Address field = 16 (or 32)</li>
          <li pn="section-6.1-3.4">Next Hop Address = IPv6 address of the next hop</li>
          <li pn="section-6.1-3.5">NLRI = IPv4 routes</li>
        </ul>
        <t indent="0" pn="section-6.1-4">
   During BGP Capability Advertisement, the PE routers would include the following fields in the Capabilities Optional Parameter:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.1-5">
          <li pn="section-6.1-5.1">Capability Code set to "Extended Next Hop Encoding"</li>
          <li pn="section-6.1-5.2">Capability Value containing &lt;NLRI AFI=1, NLRI SAFI=1, Nexthop
      AFI=2&gt;</li>
        </ul>
      </section>
      <section anchor="example-vpnv4unoipv6" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-ipv4-vpn-unicast-over-ipv6-">IPv4 VPN Unicast over IPv6 Core</name>
        <t indent="0" pn="section-6.2-1">
		  The extensions defined in this document may be used for support of
   IPv4 VPNs over an IPv6 backbone.  In this application, PE routers
would advertise VPN-IPv4 NLRI in the MP_REACH_NLRI along with an IPv6
   next hop.
        </t>
        <t indent="0" pn="section-6.2-2">
   The MP_REACH_NLRI is encoded with:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.2-3">
          <li pn="section-6.2-3.1">AFI = 1</li>
          <li pn="section-6.2-3.2">SAFI = 128</li>
          <li pn="section-6.2-3.3">Length of Next Hop Address field = 24 (or 48)</li>
          <li pn="section-6.2-3.4">Next Hop Address = VPN-IPv6 address of a next hop whose RD is set to zero</li>
          <li pn="section-6.2-3.5">NLRI = IPv4-VPN routes</li>
        </ul>
        <t indent="0" pn="section-6.2-4">

   During BGP Capability Advertisement, the PE routers would include the
   following fields in the Capabilities Optional Parameter:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.2-5">
          <li pn="section-6.2-5.1">Capability Code set to "Extended Next Hop Encoding"</li>
          <li pn="section-6.2-5.2">Capability Value containing &lt;NLRI AFI=1, NLRI SAFI=128, Nexthop
      AFI=2&gt;</li>
        </ul>
      </section>
      <section anchor="example-vpnv4multoipv6" numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-ipv4-vpn-multicast-over-ipv">IPv4 VPN Multicast over IPv6 Core</name>
        <t indent="0" pn="section-6.3-1">
		  The extensions defined in this document may be used for support of
   IPv4 multicast VPNs over an IPv6 backbone.  In this application, PE routers
would advertise VPN-IPv4 NLRI in the MP_REACH_NLRI along with an IPv6
   next hop.
        </t>
        <t indent="0" pn="section-6.3-2">
   The MP_REACH_NLRI is encoded with:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.3-3">
          <li pn="section-6.3-3.1">AFI = 1</li>
          <li pn="section-6.3-3.2">SAFI = 129</li>
          <li pn="section-6.3-3.3">Length of Next Hop Address field = 24 (or 48)</li>
          <li pn="section-6.3-3.4">Next Hop Address = VPN-IPv6 address of a next hop whose RD is set to zero</li>
          <li pn="section-6.3-3.5">NLRI = IPv4-VPN routes</li>
        </ul>
        <t indent="0" pn="section-6.3-4">

   During BGP Capability Advertisement, the PE routers would include the
   following fields in the Capabilities Optional Parameter:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6.3-5">
          <li pn="section-6.3-5.1">Capability Code set to "Extended Next Hop Encoding"</li>
          <li pn="section-6.3-5.2">Capability Value containing &lt;NLRI AFI=1, NLRI SAFI=129, Nexthop
      AFI=2&gt;</li>
        </ul>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-7-1">This document does not define any new code points from those
      included in <xref target="RFC5549" format="default" sectionFormat="of" derivedContent="RFC5549"/>. </t>
      <t indent="0" pn="section-7-2"><xref target="RFC5549" format="default" sectionFormat="of" derivedContent="RFC5549"/> added "Extended
      Next Hop Encoding" to the "Capability Codes" registry (<xref target="IANA-CAP-CODE" format="default" sectionFormat="of" derivedContent="IANA-CAP-CODE"/>), which was created by <xref target="RFC5492" format="default" sectionFormat="of" derivedContent="RFC5492"/>.  
	IANA has updated the registration of that entry to refer to this document.  The value allocated for this Capability
   Code is 5.</t>
    </section>
    <section anchor="security" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-8-1">
	   This document does not raise any additional security issues beyond
   those of BGP-4 and the Multiprotocol Extensions for BGP-4.  The same
   security mechanisms are applicable.</t>
      <t indent="0" pn="section-8-2">
   However, as <xref target="RFC4272" format="default" sectionFormat="of" derivedContent="RFC4272"/> discusses, BGP is vulnerable to traffic diversion attacks.
   The ability to advertise an IPv6 next hop adds a new means by which an
   attacker could cause traffic to be diverted from its normal path.  Such an
   attack differs from preexisting vulnerabilities in that traffic could be
   forwarded to a distant target across an intervening network infrastructure
   (e.g., an IPv6 core), allowing an attack to potentially succeed more
   easily since less infrastructure would have to be subverted.  Potential
   consequences include "hijacking" of traffic or denial of service.
      </t>
      <t indent="0" pn="section-8-3">
   Although not expected to be the typical case, the IPv6 address used
   as the BGP next-hop address could be an IPv4-mapped IPv6 address (as
   defined in <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="RFC4291"/>).  Configuration of the security mechanisms
   potentially deployed by the network operator (such as security checks
   on a next-hop address) also need to keep this case in mind.
      </t>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.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="RFC2545" target="https://www.rfc-editor.org/info/rfc2545" quoteTitle="true" derivedAnchor="RFC2545">
          <front>
            <title>Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing</title>
            <author initials="P." surname="Marques" fullname="P. Marques">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="F." surname="Dupont" fullname="F. Dupont">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1999" month="March"/>
            <abstract>
              <t indent="0">BGP-4 Multiprotocol Extensions (BGP-MP) defines the format of two BGP attributes (MP_REACH_NLRI and MP_UNREACH_NLRI) that can be used to announce and withdraw the announcement of reachability information. This document defines how compliant systems should make use of those attributes for the purpose of conveying IPv6 routing information. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2545"/>
          <seriesInfo name="DOI" value="10.17487/RFC2545"/>
        </reference>
        <reference anchor="RFC4291" target="https://www.rfc-editor.org/info/rfc4291" quoteTitle="true" derivedAnchor="RFC4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author initials="R." surname="Hinden" fullname="R. Hinden">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Deering" fullname="S. Deering">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="February"/>
            <abstract>
              <t indent="0">This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol.  The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
              <t indent="0">This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture".   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </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="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="RFC5492" target="https://www.rfc-editor.org/info/rfc5492" quoteTitle="true" derivedAnchor="RFC5492">
          <front>
            <title>Capabilities Advertisement with BGP-4</title>
            <author initials="J." surname="Scudder" fullname="J. Scudder">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Chandra" fullname="R. Chandra">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="February"/>
            <abstract>
              <t indent="0">This document defines an Optional Parameter, called Capabilities, that is expected to facilitate the introduction of new capabilities in the Border Gateway Protocol (BGP) by providing graceful capability advertisement without requiring that BGP peering be terminated.</t>
              <t indent="0">This document obsoletes RFC 3392.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5492"/>
          <seriesInfo name="DOI" value="10.17487/RFC5492"/>
        </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="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>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="Err5253" target="https://www.rfc-editor.org/errata/eid5253" quoteTitle="false" derivedAnchor="Err5253">
          <front>
            <title>Erratum ID 5253</title>
            <author>
              <organization showOnFrontPage="true">RFC Errata</organization>
            </author>
          </front>
          <refcontent>RFC 5549</refcontent>
        </reference>
        <reference anchor="IANA-AFI" target="https://www.iana.org/assignments/address-family-numbers/" quoteTitle="true" derivedAnchor="IANA-AFI">
          <front>
            <title>Address Family Numbers</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-CAP-CODE" target="https://www.iana.org/assignments/capability-codes/" quoteTitle="true" derivedAnchor="IANA-CAP-CODE">
          <front>
            <title>Capability Codes</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="RFC4659" target="https://www.rfc-editor.org/info/rfc4659" quoteTitle="true" derivedAnchor="RFC4659">
          <front>
            <title>BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN</title>
            <author initials="J." surname="De Clercq" fullname="J. De Clercq">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ooms" fullname="D. Ooms">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Carugi" fullname="M. Carugi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="F." surname="Le Faucheur" fullname="F. Le Faucheur">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="September"/>
            <abstract>
              <t indent="0">This document describes a method by which a Service Provider may use its packet-switched backbone to provide Virtual Private Network (VPN) services for its IPv6 customers.  This method reuses, and extends where necessary, the "BGP/MPLS IP VPN" method for support of IPv6.  In BGP/MPLS IP VPN, "Multiprotocol BGP" is used for distributing IPv4 VPN routes over the service provider backbone, and MPLS is used to forward IPv4 VPN packets over the backbone.  This document defines an IPv6 VPN address family and describes the corresponding IPv6 VPN route distribution in "Multiprotocol BGP".</t>
              <t indent="0">This document defines support of the IPv6 VPN service over both an IPv4 and an IPv6 backbone, and for using various tunneling techniques over the core, including MPLS, IP-in-IP, Generic Routing Encapsulation (GRE) and IPsec protected tunnels.  The inter-working between an IPv4 site and an IPv6 site is outside the scope of this document.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4659"/>
          <seriesInfo name="DOI" value="10.17487/RFC4659"/>
        </reference>
        <reference anchor="RFC4684" target="https://www.rfc-editor.org/info/rfc4684" quoteTitle="true" derivedAnchor="RFC4684">
          <front>
            <title>Constrained Route Distribution for Border Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs)</title>
            <author initials="P." surname="Marques" fullname="P. Marques">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Bonica" fullname="R. Bonica">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Fang" fullname="L. Fang">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Martini" fullname="L. Martini">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Raszuk" fullname="R. Raszuk">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Guichard" fullname="J. Guichard">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="November"/>
            <abstract>
              <t indent="0">This document defines Multi-Protocol BGP (MP-BGP) procedures that allow BGP speakers to exchange Route Target reachability information.  This information can be used to build a route distribution graph in order to limit the propagation of Virtual Private Network (VPN) Network Layer Reachability Information (NLRI) between different autonomous systems or distinct clusters of the same autonomous system.  This document updates RFC 4364.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4684"/>
          <seriesInfo name="DOI" value="10.17487/RFC4684"/>
        </reference>
        <reference anchor="RFC4798" target="https://www.rfc-editor.org/info/rfc4798" quoteTitle="true" derivedAnchor="RFC4798">
          <front>
            <title>Connecting IPv6 Islands over IPv4 MPLS Using IPv6 Provider Edge Routers (6PE)</title>
            <author initials="J." surname="De Clercq" fullname="J. De Clercq">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ooms" fullname="D. Ooms">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Prevost" fullname="S. Prevost">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="F." surname="Le Faucheur" fullname="F. Le Faucheur">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="February"/>
            <abstract>
              <t indent="0">This document explains how to interconnect IPv6 islands over a Multiprotocol Label Switching (MPLS)-enabled IPv4 cloud.  This approach relies on IPv6 Provider Edge routers (6PE), which are Dual Stack in order to connect to IPv6 islands and to the MPLS core, which is only required to run IPv4 MPLS.  The 6PE routers exchange the IPv6 reachability information transparently over the core using the Multiprotocol Border Gateway Protocol (MP-BGP) over IPv4.  In doing so, the BGP Next Hop field is used to convey the IPv4 address of the 6PE router so that dynamically established IPv4-signaled MPLS Label Switched Paths (LSPs) can be used without explicit tunnel configuration.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4798"/>
          <seriesInfo name="DOI" value="10.17487/RFC4798"/>
        </reference>
        <reference anchor="RFC4925" target="https://www.rfc-editor.org/info/rfc4925" quoteTitle="true" derivedAnchor="RFC4925">
          <front>
            <title>Softwire Problem Statement</title>
            <author initials="X." surname="Li" fullname="X. Li" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Dawkins" fullname="S. Dawkins" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ward" fullname="D. Ward" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Durand" fullname="A. Durand" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="July"/>
            <abstract>
              <t indent="0">This document captures the problem statement for the Softwires Working Group, which is developing standards for the discovery, control, and encapsulation methods for connecting IPv4 networks across IPv6-only networks as well as IPv6 networks across IPv4-only networks.  The standards will encourage multiple, inter-operable vendor implementations by identifying, and extending where necessary, existing standard protocols to resolve a selected set of "IPv4/IPv6" and "IPv6/IPv4" transition problems.  This document describes the specific problems ("Hubs and Spokes" and "Mesh") that will be solved by the standards developed by the Softwires Working Group.  Some requirements (and non-requirements) are also identified to better describe the specific problem scope.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4925"/>
          <seriesInfo name="DOI" value="10.17487/RFC4925"/>
        </reference>
        <reference anchor="RFC5549" target="https://www.rfc-editor.org/info/rfc5549" quoteTitle="true" derivedAnchor="RFC5549">
          <front>
            <title>Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop</title>
            <author initials="F." surname="Le Faucheur" fullname="F. Le Faucheur">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="May"/>
            <abstract>
              <t indent="0">Multiprotocol BGP (MP-BGP) specifies that the set of network-layer protocols to which the address carried in the Next Hop field may belong is determined by the Address Family Identifier (AFI) and the Subsequent Address Family Identifier (SAFI).  The current AFI/SAFI definitions for the IPv4 address family only have provisions for advertising a Next Hop address that belongs to the IPv4 protocol when advertising IPv4 Network Layer Reachability Information (NLRI) or VPN-IPv4 NLRI.  This document specifies the extensions necessary to allow advertising IPv4 NLRI or VPN-IPv4 NLRI with a Next Hop address that belongs to the IPv6 protocol.  This comprises an extension of the AFI/SAFI definitions to allow the address of the Next Hop for IPv4 NLRI or VPN-IPv4 NLRI to also belong to the IPv6 protocol, the encoding of the Next Hop in order to determine which of the protocols the address actually belongs to, and a new BGP Capability allowing MP-BGP Peers to dynamically discover whether they can exchange IPv4 NLRI and VPN-IPv4 NLRI with an IPv6 Next Hop.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5549"/>
          <seriesInfo name="DOI" value="10.17487/RFC5549"/>
        </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="RFC6074" target="https://www.rfc-editor.org/info/rfc6074" quoteTitle="true" derivedAnchor="RFC6074">
          <front>
            <title>Provisioning, Auto-Discovery, and Signaling in Layer 2 Virtual Private Networks (L2VPNs)</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Davie" fullname="B. Davie">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Radoaca" fullname="V. Radoaca">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Luo" fullname="W. Luo">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="January"/>
            <abstract>
              <t indent="0">Provider Provisioned Layer 2 Virtual Private Networks (L2VPNs) may have different "provisioning models", i.e., models for what information needs to be configured in what entities.  Once configured, the provisioning information is distributed by a "discovery process".  When the discovery process is complete, a signaling protocol is automatically invoked to set up the mesh of pseudowires (PWs) that form the (virtual) backbone of the L2VPN. This document specifies a number of L2VPN provisioning models, and further specifies the semantic structure of the endpoint identifiers required by each model.  It discusses the distribution of these identifiers by the discovery process, especially when discovery is based on the Border Gateway Protocol (BGP).  It then specifies how the endpoint identifiers are carried in the two signaling protocols that are used to set up PWs, the Label Distribution Protocol (LDP), and the Layer 2 Tunneling Protocol version 3 (L2TPv3).  [STANDARDS- TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6074"/>
          <seriesInfo name="DOI" value="10.17487/RFC6074"/>
        </reference>
        <reference anchor="RFC6513" target="https://www.rfc-editor.org/info/rfc6513" quoteTitle="true" derivedAnchor="RFC6513">
          <front>
            <title>Multicast in MPLS/BGP IP VPNs</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="February"/>
            <abstract>
              <t indent="0">In order for IP multicast traffic within a BGP/MPLS IP VPN (Virtual Private Network) to travel from one VPN site to another, special protocols and procedures must be implemented by the VPN Service Provider.  These protocols and procedures are specified in this document.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6513"/>
          <seriesInfo name="DOI" value="10.17487/RFC6513"/>
        </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>
      </references>
    </references>
    <section anchor="ack" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to thank <contact fullname="Francois Le Faucheur"/> and <contact fullname="Eric Rosen"/> for their work on <xref target="RFC5549" format="default" sectionFormat="of" derivedContent="RFC5549"/>.</t>
      <t indent="0" pn="section-appendix.a-2">
	The authors would like to thank <contact fullname="Yakov Rekhter"/>, <contact fullname="Pranav Mehta"/>, and <contact fullname="John    Scudder"/> for their contributions to the approach defined in <xref target="RFC5549" format="default" sectionFormat="of" derivedContent="RFC5549"/>.
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
        <organization showOnFrontPage="true">Cisco</organization>
        <address>
          <email>slitkows@cisco.com</email>
        </address>
      </author>
      <author fullname="Swadesh Agrawal" initials="S." surname="Agrawal">
        <organization showOnFrontPage="true">Cisco</organization>
        <address>
          <email>swaagraw@cisco.com</email>
        </address>
      </author>
      <author fullname="Krishna Muddenahally Ananthamurthy" initials="K." surname="Ananthamurthy">
        <organization showOnFrontPage="true">Cisco</organization>
        <address>
          <email>kriswamy@cisco.com</email>
        </address>
      </author>
      <author fullname="Keyur Patel" initials="K." surname="Patel">
        <organization showOnFrontPage="true">Arrcus</organization>
        <address>
          <email>keyur@arrcus.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
