<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2545 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2545.xml">
<!ENTITY RFC4291 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4291.xml">
<!ENTITY RFC4364 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4364.xml">
<!ENTITY RFC4659 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4659.xml">
<!ENTITY RFC4684 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4684.xml">
<!ENTITY RFC4760 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4760.xml">
<!ENTITY RFC4798 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4798.xml">
<!ENTITY RFC4925 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4925.xml">
<!ENTITY RFC8126 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC5492 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5492.xml">
<!ENTITY RFC5549 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5549.xml">
<!ENTITY RFC5565 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5565.xml">
<!ENTITY RFC6074 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6074.xml">
<!ENTITY RFC6513 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6513.xml">
<!ENTITY RFC6514 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6514.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8277 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8277.xml">
<!ENTITY DYN-CAP SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-dynamic-cap.xml">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- used by XSLT processors -->
<!-- OPTIONS, known as processing instructions (PIs) go here. -->
<!-- For a complete list and description of PIs,
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable PIs that most I-Ds might want to use. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC): -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references: -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space: 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of popular PIs -->
<rfc category="std" docName="draft-mishra-bess-ipv4nlri-ipv6nh-use-cases-04" ipr="trust200902">
  <front>
    <title abbrev="IPv4-NLRI with IPv6-NH Use Cases">IPv4 NLRI with IPv6 Next Hop Use Cases</title>

    <author fullname="Gyan Mishra" initials="G. " surname="Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>

   <author fullname="Mankamana Mishra" initials="M. " surname="Mishra">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>821 Alder Drive,</street>
          <city>MILPITAS</city>
          <code>CALIFORNIA 95035</code>
          <country> </country>
        </postal>
        <email>mankamis@cisco.com</email>
      </address>
    </author>

   <author fullname="Jeff Tantsura" initials="J. " surname="Tantsura">
      <organization>Apstra, Inc.</organization>
      <address>
        <email>jefftant.ietf@gmail.com</email>
      </address>
    </author>
  
    <date year="2020"/>
    <area/>
    <workgroup>BESS Working Group</workgroup>
    <!-- <keyword/> -->
    <abstract>
      <t>
	   As Enterprises and Service Providers upgrade their brown field or green 
	   field MPLS/SR core to an IPv6 transport such as MPLS LDPv6, SR-MPLSv6 or SRv6, 
	   Multiprotocol BGP (MP-BGP)now plays an important role in the transition of 
	   the core from IPv4 to IPv6 being able to continue to support legacy IPv4, 
	   VPN-IPv4, and Multicast VPN IPv4 customers.  
	  </t>		  
	   <t>	   
	   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).  
	   Historically 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 or VPN-IPv4 Network Layer 
	   Reachability Information (NLRI).  <xref target="RFC5549"/> 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.  <xref target="RFC5549"/> defines the encoding of the Next Hop 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.  
  	   </t>         
       <t>	   
       With this new MP-BGP capability exchange allows the BGP peering session to act as a 
       pure transport to allow the session to carry Address Family Identifier (AFI)
       and the Subsequent Address Family Identifier (SAFI) for both IPv4 and IPv6. 
       </t>
        
       <t>     
       This document describes the critical use case and OPEX savings of being 
       able to leverage the MP-BGP capability exchange usage as a pure transport allowing 
       both IPv4 and IPv6 to be carried over the same BGP TCP session.  By doing 
       so, allows for the elimination of Dual Stacking on the PE-CE connections 
       making the peering IPv6-ONLY to now carry both IPv4 and IPv6 Network Layer 
       Reachability Information (NLRI).  This document also provides a possible solution for 
       IXPs (Internet Exchange points) that are facing IPv4 address depletion at these peering points 
       to use BGP-MP capability exchange defined in <xref target="RFC5549"/>
       to carry IPv4 (Network Layer Reachability Information) NLRI 
       in an IPv6 next hop using the <xref target="RFC5565"/> softwire mesh framework.       
      </t>
    </abstract>

  </front>
  <middle>
    <section anchor="intro" title="Introduction">
	<t>	
	As Enterprises and Service Providers upgrade their brown field or green 
	field MPLS/SR core to an IPv6 transport such as MPLS LDPv6, SR-MPLSv6 or SRv6, 
	Multiprotocol BGP (MP-BGP)now plays an important role in the transition 
	of the core from IPv4 to IPv6, and being able to continue to support legacy 
	IPv4, VPN-IPv4, and Multicast VPN IPv4 customers.  
	</t>
	
   <t>				 
	IXPs (Internet Exchange points) are also facing IPv4 address depletion at their peering points, 
	which are large Layer 2 transit backbones that service providers peer and exchange IPv4 
	and IPv6 (Network Layer Reachability Information) NLRI.  Today these transit exchange points 
	are dual stacked.  One proposal to solve this issue is to use <xref target="RFC5549"/> to carry 
	IPv4 (Network Layer Reachability Information) NLRI in an IPv6 next hop and eliminate the 
	IPv4 peering completely using the concept of <xref target="RFC5565"/> softwire mesh framework. 
	So now with the MP-BGP reach capability exchanged over IPv4 AFI over IPv6 next hop 
	peer we can now advertise IPv4(Network Layer Reachability Information) NLRI over IPv6 peering 
	using the <xref target="RFC5565"/> softwire mesh framework.  
	</t>  
	   

	<t>
	Multiprotocol BGP (MP-BGP) <xref target="RFC4760"/> 
	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).  A number of
   existing AFI/SAFIs allow the Next Hop address to belong to a
   different address family than the Network Layer Reachability
   Information (NLRI).  
 	</t>
   
   <t>
   For example, the AFI/SAFI &lt;25/65&gt; used (as per
   <xref target="RFC6074"/>) to perform 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
   field contains the loopback address of a PE.  Similarly, the AFI/SAFI
   &lt;1/132&gt; (defined in <xref target="RFC4684"/>) to advertise Route Target
   (RT) membership information, allows advertising NLRI that contains
   such RT membership information, while the Next Hop field contains the
   address of the advertising router.
   </t>
   
   <t>
   Furthermore, a number of these existing AFI/SAFIs allow the Next Hop
   to belong to either the IPv4 Network Layer Protocol or the IPv6
   Network Layer 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"/> allows the Next Hop
   address to be either IPv4 or IPv6 and states that the Next Hop field
   address shall be interpreted as an IPv4 address whenever the length
   of Next Hop address is 4 octets, and as an IPv6 address whenever the
   length of the Next Hop address is 16 octets.
   </t>
   <t>
   There are situations such as those described in <xref target="RFC4925"/> and in
   <xref target="RFC5565"/> where carriers (or large enterprise networks acting as
   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 Network Layer Reachability Information (NLRI) of a given
   address family via a Next Hop of a different address family (i.e.,
   IPv6 NLRI with IPv4 Next Hop and IPv4 NLRI with IPv6 Next Hop).
   </t>
	<t>
   The current 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"/> and <xref target="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 IPv6
   type.  As per <xref target="RFC4659"/>, when the &lt;AFI/SAFI&gt; is &lt;2/128&gt;, the Next Hop
   address is assumed to be of IPv6-VPN type.
	</t>
	<t>
   However, <xref target="RFC4798"/> and <xref target="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"/> defines how the
   IPv4-mapped IPv6 address format specified in the IPv6 addressing
   architecture (<xref target="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"/> defines how the IPv4-
   mapped IPv6 address format as well as a null Route Distinguisher 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>
   Similarly, the current AFI/SAFI definitions for 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"/> and
   <xref target="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 IPv4 type.  As per <xref target="RFC4364"/>, when
   the &lt;AFI/SAFI&gt; is &lt;1/128&gt;, the Next Hop address is assumed to be of
   VPN-IPv4 type.  As per <xref target="RFC6513"/> and <xref target="RFC6514"/>, when
   the &lt;AFI/SAFI&gt; is &lt;1/129&gt;, the Next Hop address is assumed to be of
   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>
   A new specification for carrying IPv4 Network Layer Reachability Information (NLRI) 
   of a given address family via a Next Hop of a different address family is now 
   defined in <xref target="RFC5549"/>, and specifies the extensions necessary to do so.  
   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 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.  
  	</t>
   
   <t>
   With the new extensions defined in <xref target="RFC5549"/> supporting Network Layer Reachability Information (NLRI) and 
   next hop address family mismatch, the BGP peer session can now be treated 
   as a pure transport and carry both IPv4 and IPv6 NLRI at the PE-CE edge over a single IPv6 TCP session.  
   This allows for the elimination of dual stack from the PE-CE peering point, 
   and now allow the peering to be IPv6-ONLY. The elimination of IPv4 on the PE-CE 
   peering points translates into OPEX expenditure savings of point-to-point 
   infrastructure links as well as /31 address space savings and administration 
   and network management of both IPv4 and IPv6 BGP peers.  This reduction decreases 
   the number of PE-CE BGP peers by fifty percent, which is a tremendous cost 
   savings for all Enterprises and Service Providers.    
   </t>

   <t>
   While the savings exists at the PE-CE edge, on the core side PE to Route Reflector peering carrying 
   &lt;AFI/SAFI&gt; IPv4 &lt;1/1&gt;, VPN-IPV4 &lt;1/128&gt;, and Multicasat VPN &lt;1/129&gt;, 
   the cost savings nets to a break even to be the same as with an IPV4 Core 
   carrying IPv6 NLRI IPV6 &lt;2/1&gt;, VPN-IPV6 &lt;2/128&gt;, and Multicasat 
   VPN &lt;2/129&gt;.  This document also provides a possible solution for 
   IXPs (Internet Exchange points) that are facing IPv4 address depletion at these peering points 
   to use BGP-MP capability exchange defined in <xref target="RFC5549"/> to carry IPv4 (Network Layer Reachability Information) NLRI 
   in an IPv6 next hop using the <xref target="RFC5565"/> softwire mesh framework.
	</t>

	</section>
	<section anchor="requirements" title="Requirements Language">
	  
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
   capitals, as shown here.</t>
 
	</section>
	<section anchor="extension" title="Extension of AFI/SAFI Definitions for the IPv4 Address Family">
	<t>
	As mentioned earlier, 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 following current
   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 definition of the AFI/SAFI for advertisement of IPv4 NLRI
   and VPN-IPv4 NLRI to extend the set of usable next-hop address families to include IPv6 in addition to
   IPv4.
	</t>
	<t>
	Specifically, this document allows advertising with <xref target="RFC4760"/> of an
   MP_REACH_NLRI with:
   <list style="symbols">

   <t>AFI = 1</t>

   <t>SAFI = 1, 2, or 4</t>

   <t>Length of Next Hop Address = 16 or 32</t>

   <t>Next Hop Address = IPv6 address of next hop (potentially followed
      by the link-local IPv6 address of the next hop).  This field is to
      be constructed as per Section 3 of <xref target="RFC2545"/>.</t>

   <t>NLRI= NLRI as per current AFI/SAFI definition</t>
	</list>
	</t>
	<t>
	 It also allows advertising with [RFC4760] of an
   MP_REACH_NLRI with:
	<list style="symbols">

   <t>AFI = 1</t>

   <t>SAFI = 128 or 129</t>

   <t>Length of Next Hop Address = 24 or 48</t>

   <t>Next Hop Address = VPN-IPv6 address of 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 is set to zero).</t>

   <t>NLRI= NLRI as per current AFI/SAFI definition</t>
	</list>
	</t>
	<t>
   This is in addition to the current 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 IPv4 type and advertisement of NLRI for &lt;AFI/
   SAFI&gt; of &lt;1/128&gt; and &lt;1/129&gt; with a next hop address of VPN-IPv4 type.
	</t>
	<t>
   The BGP speaker receiving the advertisement MUST use the Length of
   Next Hop Address field to determine which network-layer protocol the
   next hop address belongs to. </t>
	<t>
	<list style="symbols">
	<t>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.
	</t>
	<t>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.
	</t>
	</list>
	</t>
	<t>
   Note that this method of using the Length of the 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 used in <xref target="RFC4684"/> and <xref target="RFC6074"/>.
	</t>
	</section>
	<section anchor="bgp-cap" title="Use of BGP Capability Advertisement">
	<t>
	<xref target="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 new
   capability that can be advertised using <xref target="RFC5492"/> and that is
   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"/>.
	</t>
	<t>
	A BGP speaker that wishes to advertise to a BGP peer an IPv6 Next Hop
   for IPv4 NLRI or for VPN-IPv4 NLRI as per this specification MUST use
   the Capability Advertisement procedures defined in <xref target="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 MUST be set as follows:
   <list style="symbols">

   <t>The Capability Code field MUST be set to 5 (which indicates the
      Extended Next Hop Encoding capability).</t>

   <t>The Capability Length field is set to a variable value that is the
      length of the Capability Value field (which follows).</t>

   <t>The Capability Value field has the following format:
   <figure>
   <artwork>
   
         +-----------------------------------------------------+
         | 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>
   </figure>
    where:
		<list style="symbols">

      <t>each triple &lt;NLRI AFI, NLRI SAFI, Nexthop AFI&gt; indicates that
         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.</t>

      <t>the AFI and SAFI values are defined in the Address Family
         Identifier and Subsequent Address Family Identifier registries
         maintained by IANA.</t>
		</list>
   </t>
  
   </list>
    </t>
	<t>
   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:
   <list style="symbols">

   <t>NLRI AFI = 1 (IPv4)</t>

   <t>NLRI SAFI = 1, 2, 4, 128 or 129</t>

   <t>Nexthop AFI = 2 (IPv6)</t>
	</list>
	</t>
	<t>
   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 AFI/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"/>).
   Similarly, it is not intended that the Extended Next Hop Encoding capability be used for NLRI AFI/SAFIs for which 
   there is already 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 IPv4 Next Hop as per
   <xref target="RFC4798"/> and AFI/SAFI = &lt;2/128&gt; with IPv4 Next Hop as per
   <xref target="RFC4659"/>).</t>

	<t>
   It is expected that if new AFI/SAFIs are defined in the future, their
   definition will have provisions (where appropriate) for both IPv4 and
   IPv6 Next Hops from the onset, with determination based on Length of
   Next Hop Address field.  Thus, new AFI/SAFIs are not expected to make
   use of the Extended Next Hop Encoding capability.
	</t>
	
	<t>
   A BGP speaker MUST only advertise to a BGP peer the IPv4 or VPN-IPv4
   NLRI with an IPv6 Next Hop if the BGP speaker has first ascertained
   via BGP Capability Advertisement that the BGP peer supports the
   Extended Next Hop Encoding capability for the relevant AFI/SAFI pair.
	</t>

	<t>
   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 a AFI/SAFI can be used between the BGP peers is
   purely determined through the Multiprotocol Extensions capability
   defined in <xref target="RFC4760"/>.
	</t>
	<t>
   The Extended Next Hop Encoding capability MAY be dynamically updated
   through the use of the Dynamic Capability capability and associated
   mechanisms defined in <xref target="I-D.ietf-idr-dynamic-cap"/>.
	</t>
	</section>
	<section anchor="operations" title="Operations">
	<t>
	As Enterprises and Service Providers migrate their IPv4 core to an MPLS LDPv6 
	or SRv6 transport, they must continue to be able to support legacy IPv4 customers. 
	With the new extensions defined in <xref target="RFC4760"/>, supporting Network Layer Reachability 
	Information (NLRI) and next hop address family mismatch, the BGP peer session 
	can now be treated as a pure transport and carry both IPv4 and IPv6 NLRI at the PE-CE edge.  
	This paves the way to now eliminate dual stacking on all PE-CE peering points 
	to customers making the peering IPv6 only. With this change all IPv4 and IPv6 
	Network Layer Reachability Information (NLRI) will now be carried over a single 
	BGP session.  This also solves the dual stack issue with IXP (Internet Exchange Points) 
	having to maintain separate peering for both IPv4 and IPv6.
	From an operations perspective the PE-CE edge peering will be 
	drastically simplified with the elimination of IPv4 peers yielding a reduction 
	of peers by 50 percent. From an operations perspective prior to elimination 
	of IPv4 peers an audit is recommended to identify and IPv4 and IPv6 peering 
	incongruencies that may exist and to rectify prior to elimination of the IPv4 peers. 
	No operational impacts or issues are expected with this change.
   </t>
   <t>
   When a next hop address needs to be passed along unchanged (e.g., as
   a Route Reflector (RR) would do), its encoding MUST NOT 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" title="Softwire Framework Use Cases of IPv4 NLRI with IPv6 Next Hop">
		<section anchor="example-vpnv4oipv6" title="VPN-IPv4 over MPLS LDPv6 or SRv6 Core">
			
	<t>
	The new MP-BGP extensions defined in <xref target="RFC5549"/> is used to support 
    IPV4 VPNs over an IPv6 MPLS LDPv6 or SRv6 backbone.  In this scenario the PE routers
    would advertise and receive VPN-IPv4 NLRI in the MP_REACH_NLRI along with an    
    IPv6 Next Hop from the Route Reflector (RR).   
    </t>
    
    <t>MP-BGP Reach Pseudo code: </t>
    
   <t>If ((Update AFI == VPN-IPv4)</t>
   <t>and (Length of next hop == 24 Bytes || 48 Bytes))</t>
       <t>{</t>
       <t>This is an VPN-IPv4 route, but</t>
       <t>with an IPv6 next hop;</t>
       <t>} </t> 
  
	<t>
   The MP_REACH_NLRI is encoded with:
	<list style="symbols">
	
	<t>AFI = 1</t>

	<t>SAFI = 128</t>

	<t>Length of Next Hop Network Address = 24 (or 48)</t>

	<t>Network Address of Next Hop = VPN-IPv6 address of Next Hop whose RD is set to zero</t>

	<t>NLRI = IPv4-VPN routes</t>
	</list>
	</t>
	<t>

   During BGP Capability Advertisement, the PE routers would include the
   following fields in the Capabilities Optional Parameter:
	<list style="symbols">
	<t>Capability Code set to "Extended Next Hop Encoding"</t>

	<t>Capability Value containing &lt;NLRI AFI=1, NLRI SAFI=128, Nexthop
      AFI=2&gt;</t>
	</list>
		</t>
		</section>
		<section anchor="example-vpnv4multoipv6" title="IPv4 VPN multicast over MPLS LDPv6 or SRv6 Core">
		<t>
		  The new MP-BGP extensions defined in <xref target="RFC8126"/> is used to support 
          IPV4 Multicast VPNs over an MPLS LDPv6 or SRv6 backbone. In this scenario, the PE
          routers would advertise and receive VPN-IPv4 NLRI in the MP_REACH_NLRI 
          along with an IPv6 Next Hop from the Route Reflector (RR).
       </t>
       
          <t>MP-BGP Reach Pseudo code: </t>
    
   <t>If ((Update AFI == MVPN-IPv4)</t>
   <t>and (Length of next hop == 24 Bytes || 48 Bytes))</t>
       <t>{</t>
       <t>This is an MVPN-IPv4 route, but</t>
       <t>with an IPv6 next hop;</t>
       <t>} </t> 
       
	<t>
   The MP_REACH_NLRI is encoded with:
	<list style="symbols">
	
	<t>AFI = 1</t>

	<t>SAFI = 129</t>

	<t>Length of Next Hop Network Address = 24 (or 48)</t>

	<t>Network Address of Next Hop = VPN-IPv6 address of Next Hop whose RD is set to zero</t>

	<t>NLRI = IPv4-VPN routes</t>
	</list>
	</t>
	<t>

   During BGP Capability Advertisement, the PE routers would include the
   following fields in the Capabilities Optional Parameter:
	<list style="symbols">
	<t>Capability Code set to "Extended Next Hop Encoding"</t>

	<t>Capability Value containing &lt;NLRI AFI=1, NLRI SAFI=129, Nexthop
      AFI=2&gt;</t>
	</list>
		</t>
		</section>
		<section anchor="example-ipv4oipv6" title="IPv4 Islands over MPLS LDPv6 or SRv6 Core">
			
	<t>
	The new MP-BGP extensions defined in <xref target="RFC5549"/> is used to support 
    IPV4 islands over an IPv6 MPLS LDPv6 or SRv6 backbone.  In this scenario the PE routers
    would use BGP labeled unicast address family (BGP-LU) to advertise BGP with label binding and receive 
    labeled IPv4 NLRI in the MP_REACH_NLRI along with an IPv6 Next Hop from the Route Reflector (RR).   
    </t>
    
    <t>MP-BGP Reach Pseudo code: </t>
    
   <t>If ((Update AFI == IPv4)</t>
   <t>and (Length of next hop == 16 Bytes || 32 Bytes))</t>
       <t>{</t>
       <t>This is an IPv4 route, but</t>
       <t>with an IPv6 next hop;</t>
       <t>} </t> 
  
	<t>
   The MP_REACH_NLRI is encoded with:
	<list style="symbols">
	
	<t>AFI = 1</t>

	<t>SAFI = 1</t>

	<t>Length of Next Hop Network Address = 16 (or 32)</t>

	<t>Network Address of Next Hop = IPv6 address of Next Hop whose RD is set to zero</t>

	<t>NLRI = IPv4-VPN routes</t>
	</list>
	</t>
	<t>

   During BGP Capability Advertisement, the PE routers would include the
   following fields in the Capabilities Optional Parameter:
	<list style="symbols">
	<t>Capability Code set to "Extended Next Hop Encoding"</t>

	<t>Capability Value containing &lt;NLRI AFI=1, NLRI SAFI=1, Nexthop
      AFI=2&gt;</t>
	</list>
		</t>
		</section>
	</section>
	
    <section anchor="IANA" title="IANA Considerations">
    <t> There are not any IANA considerations.
    </t>
	
    </section>
    <section anchor="security" title="Security Considerations">
	<t>
   The extensions defined in this document allow BGP to propagate
   reachability information about IPv6 routes over an MPLS IPv4 core
   network.  As such, no new security issues are raised beyond those
   that already exist in BGP-4 and use of MP-BGP for IPv6.

   The security features of BGP and corresponding security policy
   defined in the ISP domain are applicable.

   For the inter-AS distribution of IPv6 routes according to case (a) of
   Section 4 of this document, no new security issues are raised beyond
   those that already exist in the use of eBGP for IPv6 <xref target="RFC2545"/>.
	   
    </t>

	</section>
	<section anchor="ack" title="Acknowledgments">
	</section>
  </middle>
  <back>
    <references title="Normative References">
      &RFC2119;
	  &RFC2545;
	  &RFC4291;
	  &RFC4364;
	  &RFC4760;
	  &RFC5492;
	  &RFC8174;
	  &RFC8277;
    </references>
	<references title="Informative References">
	&DYN-CAP;
	&RFC4659;
	&RFC4684;
	&RFC4798;
	&RFC4925;
	&RFC8126;
	&RFC5549;
	&RFC5565;
	&RFC6074;
	&RFC6513;
	&RFC6514;
    </references>
    <!-- references title="Informative References">
    </references -->


    <section title="IPv4 NLRI IPv6 Next Hop Vendor Testing">
      <t> 
		  IPv4 NLRI with IPv6 Next Hop encoding is supported for all BGP peers both iBGP and eBGP.  
      </t>
      
      <t> 		  		  
          This section details the vendor support and interoperability test results for router and switch vendors 
          as well as White Box vendors.     
      </t>  
          
      <section title="Router and Switch Vendors Support and Interoperability Test Results.">
		  
		        <texttable anchor="Vendors_Support" title="Vendor Interop">
                    <ttcol align="left"></ttcol>
                    <ttcol align="center">Supports</ttcol>
                    <ttcol align="center">Interoperability</ttcol>
                        
                    <c>Alcatel-Lucent</c>
                    <c></c>
                    <c></c>
                    <c>Arista</c>
                    <c></c>
                    <c></c>
                    <c>Cisco</c>
                    <c>***</c>
                    <c></c>                    
                    <c>Ericsson</c>
                    <c></c>
                    <c></c>
                    <c>Extremenetworks</c>
                    <c></c>
                    <c></c>
                    <c>HP</c>
                    <c></c>
                    <c></c>                    
                    <c>Huawei</c>
                    <c></c>
                    <c></c>
                    <c>Juniper</c>
                    <c></c>
                    <c></c>                    
                                                         
                </texttable>   

      </section>

      <section title="White Box Vendors Support and Interoperability Test Results.">
		  
		        <texttable anchor="White_Box_Vendors_Support" title="White Box Vendor Interop">
                    <ttcol align="left"></ttcol>
                    <ttcol align="center">Supports</ttcol>
                    <ttcol align="center">Interoperability</ttcol>
                        
                    <c>Cumulus Networks</c>
                    <c></c>
                    <c></c>
                    <c>PICA8</c>
                    <c></c>
                    <c></c>
                    <c>Pluribus Networks Netvisor</c>
                    <c></c>
                    <c></c>                    
                                                            
                </texttable>         
      
       </section>  
   </section>
       
  </back>
</rfc>       
       
