<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7752 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7752.xml">
<!ENTITY RFC8402 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ssangli-bess-bgp-vpn-srm6-02"
     ipr="trust200902">
  <front>
    <title abbrev="BGP based VPN Services over SRm6 enabled IPv6">BGP based
    Virtual Private Network (VPN) Services over SRm6 enabled IPv6
    networks</title>

    <author fullname="Srihari Sangli" initials="S." surname="Sangli">
      <organization>Juniper Networks Inc.</organization>

      <address>
        <postal>
          <street>Exora Business Park</street>

          <city>Bangalore</city>

          <region>KA</region>

          <code>560103</code>

          <country>India</country>
        </postal>

        <email>ssangli@juniper.net</email>
      </address>
    </author>

    <author fullname="Ron Bonica" initials="R." surname="Bonica">
      <organization>Juniper Networks Inc.</organization>

      <address>
        <postal>
          <street>2251 Corporate Park Drive</street>

          <city>Herndon</city>

          <region>Virginia</region>

          <code>20171</code>

          <country>USA</country>
        </postal>

        <email>rbonica@juniper.net</email>
      </address>
    </author>

    <date day="07" month="September" year="2020"/>

    <area>Routing</area>

    <workgroup>IDR</workgroup>

    <keyword>VPN</keyword>

    <keyword>BGP</keyword>

    <keyword>SRm6</keyword>

    <abstract>
      <t>This document defines BGP protocol extensions for encoding and
      carrying SRm6 Tunnel Payload Forwarding information (TPF) to support
      Virtual Private Network services. This is applicable when the VPN
      services are offered in a SRm6 enabled IPv6 network such that the VPN
      payload is transported over IPv6. The Tunnel Payload Information is 
      encoded in the IPv6 Destination Option Header in the IPv6 data 
      packets.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="Intro" title="Introduction">
      <t>Virtual Private Network (VPN) technologies allow network providers to
      emulate private networks with shared infrastructure. For example, assume
      that a set of red sites, set of blue sites and a set of green sites
      connect to a provider network. Furthermore, assume that red sites and
      blue sites wish to interconnect, exchange packets. However, the green
      sites wish to communicate with green sites only. The provider should
      allow its infrastructure network to scale to both the requirements
      without having to create multiple parallel network infrastructures. The
      IETF has standardized many VPN technologies viz. <xref
      target="RFC4364">Layer 3 VPN (L3VPN) </xref>, <xref
      target="RFC6624">Layer 2 VPN (L2VPN)</xref>, <xref target="RFC4761">
      Virtual Private LAN Service (VPLS) </xref>, <xref target="RFC4762"/>,
      <xref target="RFC7432">Ethernet VPN (EVPN) </xref>, <xref
      target="RFC8077"> Pseudowires </xref> to enable Layer 3 and Layer 2 VPN
      services.</t>

      <t>The aforementioned technologies leverage MPLS network architecture
      :</t>

      <t><list style="symbols">
          <t>to establish a MPLS tunnel from ingress PE to egress PE, thus
          making all P routers agnostic of VPN state.</t>

          <t>to provide demultiplexing abstraction in the tunnelled packet so
          the payload packet can be forwarded at the egress router based on
          Routing table and/or interface.</t>
        </list></t>

      <t>In pure IPv6 deployments where there may be non-MPLS capable routers,
      it would be desirable to have alternate mechanism to provide VPN
      connectivity. This document describes BGP extensions and procedures
      applicable for SRm6 enabled IPv6 networks, to provide VPN services over
      BGP.</t>
    </section>

    <section anchor="ReqLang" 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 <xref
      target="RFC2119">BCP 14</xref> <xref target="RFC8174"/> when, and only
      when, they appear in all capitals, as shown here.</t>
    </section>

    <section anchor="PerPathServiceInfo"
             title="Per-Path Service Instruction Information">
      <t>A <xref target="I-D.bonica-spring-sr-mapped-six">SRm6 </xref> segment
      provides unidirectional connectivity from an ingress node to an egress
      node. A SRm6 path contains one or more such segments. SRm6 introduces
      the concept of Per-Segment Service Instruction and Per-Path Service
      Instruction. These instructions describe the additional packet
      processing performed on a node. The Per-Segment Service Instruction is
      executed on the segment egress node while the Per-Path Service
      Instruction is executed on the path egress node. The SR Path egress node
      advertises the service prefix reachability information to SR Path 
      ingress node via Multi-Protocol extensions in BGP <xref 
      target="RFC4760"/>.</t>

      <t>For providing VPN services, aforementioned BGP extensions rely on
      MPLS architecture <xref target="RFC3031"/>. The BGP extensions specify
      the new encoding for Network Layer Reachability Information (NLRI) to
      include the MPLS VPN labels <xref target="RFC8277"/>. Such a MPLS VPN
      label is associated with a forwarding decision in the VPN Routing
      Instance on the egress BGP Router. The ingress BGP router will push the
      VPN label on the data packet destined to the egress BGP router. The
      transport tunnel from ingress router to egress router can be MPLS or GRE
      or L2TPv3, but inner payload is a MPLS packet as described in <xref
      target="RFC4023"/>, <xref target="RFC4817"/>, <xref target="RFC7510"/>.
      The intermediate routers do not process the VPN label [a.k.a.] embedded
      label as described in <xref target="I-D.ietf-idr-tunnel-encaps"/>.</t>

      <t>To provide BGP based VPN services on a non-MPLS IPv6 networks, it
      would be beneficial to retain the benefits of BGP protocol extensions
      while leveraging the benefits of IPv6 <xref target="RFC8200"/>. <xref
      target="I-D.bonica-6man-vpn-dest-opt"/> describes SRm6 paths as
      programmable with Tunnel Payload Forwarding information (TPF) that 
      determine how egress nodes process SRm6 payloads. The TPF information
      is carried in the Tunnel Payload Forwarding Option encoded in the 
      IPv6 Destination Option Header <xref target="RFC8200"> </xref>.</t>

      <t>The Tunnel Payload Forwarding (TPF) information is defined as
      follows:</t>

      <t><list style="symbols">
          <t>32 bit quantity.</t>
        </list></t>

      <t>The TPF information have node-local significance and is assigned by
      the egress BGP router. The value of zero is reserved. The TPF
      information will serve 2 purposes.</t>

      <t><list style="symbols">
          <t>It MUST uniquely identify the VPN Routing Instance for L3VPN or
	     identify an Ethernet Segment for EVPN or identify a leaf property
	     for EVPN TREE upon which forwarding decision can be taken.</t>

          <t>It MAY provide information for special processing before the
          packet is forwarded.</t>
        </list></t>

      <t>The structure of TPF information will be updated in the next
      version of this document.</t>

      <t>The encoding of the Tunnel Payload Forwarding information for VPNs
      is described in <xref target="BGPL3VPNonIPv6"/> and <xref
      target="BGPEVPNonIPv6"/>.</t>
    </section>

    <section anchor="TunnelEncap"
             title="Usage of Tunnel Encapsulation Attribute ">
      <t>This document defines a new Tunnel type : SRm6. The format is as per
      below.</t>

      <t><list style="symbols">
          <t>Tunnel Type (2 Octets) : To be assigned</t>

          <t>Tunnel Length (2 Octets) : 1</t>

          <t>Value : List of Sub-TLVs</t>
        </list></t>

      <t><xref target="I-D.ietf-idr-tunnel-encaps"/> defines many sub-TLVs for
      the tunnels. The encoding for them are as follows:</t>

      <t><list style="symbols">
          <t>Tunnel Endpoint Sub-TLV : As per <xref
          target="I-D.ietf-idr-tunnel-encaps"/></t>

          <t>Encapsulation Sub-TLV : Not needed.</t>

          <t>IPv4 DS Field Sub-TLV : Not needed.</t>

          <t>UDP Destination Port Sub-TLV : Not needed.</t>

          <t>Protocol Type Sub-TLV : As per <xref
          target="I-D.ietf-idr-tunnel-encaps"/>.</t>

          <t>Color Sub-TLV : As per <xref
          target="I-D.ietf-idr-tunnel-encaps"/>.</t>

          <t>Embedded Label Handling Sub-TLV : 3.</t>

          <t>MPLS Label Stack Sub-TLV : Not needed.</t>

          <t>Prefix SID Sub-TLV : Not Needed.</t>
        </list></t>

      <t>The Tunnel Encapsulation Attribute is a an Optional Transitive
      attribute as described in <xref target="I-D.ietf-idr-tunnel-encaps"/>.
      This attribute with SRm6 tunnel type MUST be present in the BGP update
      carrying the Network Layer Reachability Information encoded with the
      TPF information. This document refers to the NLRI that is associated
      with SRm6 Tunnel Encapsulation attribute as SRm6_NLRI. The document
      <xref target="I-D.ietf-idr-tunnel-encaps"/> defines the encoding for 
      sub-TLV as follows.</t>

      <t><list style="symbols">
          <t>Sub-TLV Type : 1 octet</t>

          <t>Sub-TLV Length : 1 or 2 octets</t>

          <t>Sub-TLV Value : defined per Sub-TLV as per below.</t>
        </list></t>

      <t>The Tunnel Endpoint Sub-TLV can specify the IPv6 address of the
      egress router as the final destination address of SRm6 packet which is
      also referred to as SR Path destination address. The sub-fields on this
      sub-TLV is encoded as below.</t>

      <t><list style="symbols">
          <t>Autonomous System Number : AS number of the IPv6 SR domain.</t>

          <t>Address Family : 2 (refers to IPv6).</t>

          <t>Address : IPv6 address of the egress interface present in SRm6
          domain.</t>
        </list></t>

      <t>The Value field may be set to 0 which indicates that next hop value
      in the NLRI should be chosen for the SRm6 Path destination address.</t>

      <t>The Embedded Label Handling Sub-TLV describes how the label field in
      the NLRI should be interpreted.</t>

      <t><list style="symbols">
          <t>Value : MUST be set to 3.</t>
        </list></t>

      <t>The <xref target="I-D.ietf-idr-tunnel-encaps"/> specifies only 2
      values. While the value 1 refers to label field as MPLS embedded label
      that is carried at the top of the label stack of the MPLS payload packet,
      the value 2 refers to label field to be either ignored or carried in the
      virtual network field of the encapsulation header.</t>

      <t>This document defines another behavior for the label field. The value
      3 will indicate that value in the label field MUST be inserted in the
      Destination Options Header of the IPv6 Tunnel header.</t>

      <t>The Tunnel Encapsulation attribute can carry one or more Tunnel types.
      The local policy on the ingress router can determine which Tunnel type
      to be used for the NLRI. The Tunnel Endpoint address MUST be set only
      by the egress BGP router that is the endpoint of the SRm6 path.</t>
    </section>

    <section anchor="ProcEgressBGP" title="Procedures for Egress BGP Speaker">
      <t>The TPF information instructs the egress router to de-encapsulate
      the packet and forward the newly exposed payload inner packet through
      the specified interface or forward using the specified Routing Instance.
      The TPF information described in <xref target="PerPathServiceInfo"/>
      will be assigned by the egress BGP Router.</t>

      <t>When the egress BGP Speaker advertises the NLRI, it will include the
      TPF information in the encoding described in <xref
      target="BGPL3VPNonIPv6"/> and <xref target="BGPEVPNonIPv6"/>. The egress
      BGP Speaker MUST include the Tunnel Encapsulation Attribute with Route
      type SRm6 as described in <xref target="TunnelEncap"/> in such BGP
      updates.</t>

      <t>By tagging the BGP update with Tunnel Encapsulation attribute of
      SRm6 type, the BGP Speaker informs how the SRm6_NLRI should be decoded
      and processed by the receiving BGP Speaker.</t>

      <t>Via the Remote Tunnel Endpoint Sub-TLV encoding, the egress BGP
      router may specify the SRm6 Path Destination Address. The Protocol type
      Sub-TLV and the Color Sub-TLV may be used by the egress BGP router to
      influence the payload packets to be put on SRm6 path. The Embedded
      Label Handling Sub-TLV MUST be set to 3 to inform that the label
      field MUST be used to form the TPF option that is inserted in the 
      Destination Options Header at the ingress router as described in 
      <xref target="I-D.bonica-6man-vpn-dest-opt"/>.</t>

      <t>A single TPF information may be associated with all the prefixes in a
      Routing Instance or a unique TPF information may be associated for each
      prefix in the Routing Instance. Similarly, a TPF information may be 
      assigned to identify an Ethernet segment or leaf AC property by EVPN. 
      The choice is left to the Network Operator and is outside the scope of 
      this document.</t>
    </section>

    <section anchor="ProcIngressBGP"
             title="Procedures for Ingress BGP Speaker">
      <t>Upon receiving a BGP update, the receiving BGP Speaker will look for
      Tunnel Encapsulation attribute. If the tunnel type carried in the Tunnel
      Encapsulation attribute is SRm6, the BGP updates is said to be carrying
      the SRm6_NLRI and the Label field in the Network Layer Reachability
      Information is treated as Tunnel Payload Forwarding information (TPF).</t>

      <t>The tuple (TPF information, Prefix) is programmed in the forwarding
      infrastructure of the router. The manner in which this tuple is stored
      in the router is outside the scope of this document. If SRm6 has been
      enabled on the router, such a tuple SHOULD be used for encoding the
      Destination Options Header as described in <xref
      target="I-D.bonica-6man-vpn-dest-opt"/>.</t>

      <t>The <xref target="I-D.ietf-idr-tunnel-encaps"/> describes how Tunnel 
      Endpoint Sub-TLV has to be processed. It also describes the usage of 
      the Protocol type Sub-TLV and the Color Sub-TLV. This may be used by 
      the ingress BGP router to select the payload packets that should be put 
      on SRm6 path.</t>

      <t>The Embedded Label Handling Sub-TLV value that is set to 3 indicates
      that ingress BGP router to use the value of label field to construct the
      Tunnel Payload Forwarding Option that is inserted in the Destination 
      Options Header of the Tunnel IPv6 packet.</t>
    </section>

    <section anchor="BGPNexthophandling"
             title="BGP Nexthop and Tunnel Endpoint address handling 
                   procedures">
      <t>The BGP Nexthop attribute handling procedures are described in
      <xref target= "RFC4271"/> while <xref target="RFC4760"/> describe the
      handling procedures for the Nexthop field in the MP_REACH attribute. The
      target="I-D.ietf-idr-tunnel-encaps"/> describes the Tunnel Endpoint
      sub-TLV in the Tunnel Encapsulation Attribute as the next hop address to
      which the prefix should be forwarded to. If a BGP update has such a
      Tunnel Encapsulation Attribute it prescribes that the Tunnel Endpoint Sub-TLV
      if non-zero, MUST be used as the next hop to send the packet to.</t>

      <t>There may be instances where the BGP update carrying the SRm6 NLRI will
      cross Autonomous boundary. The BGP update with SRm6 NLRI MUST always carry
      the Tunnel Encapsulation Attribute. If any router along the path wishes
      to change the Tunnel Endpoint Sub-TLV next hop address, it MUST also
      update the TPF information field of the The BGP update carrying the SRm6 NLRI.</t>

      <t> It should be noted that router that modifies the Tunnel Endpoint
      sub-TLV of the Tunnel Encapsulation attribute present in the SRm6
      update must be able to stitch the egress tunnel and ingress tunnel.</t>
    </section>

    <section anchor="BGPL3VPNonIPv6"
             title="BGP based L3 VPN services over IPv6">
      <t>The Egress and Ingress BGP speakers form a BGP peering session to
      exchange a set of prefixes described in <xref target="RFC4271"/> and
      Multi-Protocol extensions <xref target="RFC4760"/>. The BGP Router
      capable of SRm6 that is enabled to carry L3 VPN services over IPv6
      networks should follow the procedures mentioned in <xref
      target="ProcEgressBGP"/> and <xref target="ProcIngressBGP"/>. The manner
      in which a BGP Router is configured for SRm6 underlay and L3 VPN
      overlay is outside the scope of this document.</t>

      <section title="IPv4 VPN on SRm6 enabled IPv6 Core">
        <t>The IPv4 L3 VPN over IPv6 is defined in <xref target="RFC5549"/>.
        The MP_REACH NLRI and Tunnel Encapsulation attribute encoding is as
        per below:</t>

        <t><list style="symbols">
            <t>AFI : 1; SAFI : 128</t>

            <t>Length of the Next Hop : 16 (or 32 if Link Local)</t>

            <t>Network address of the Next Hop : IPv6 address of the egress
            BGP Router</t>

            <t>NLRI : IPv4-VPN routes</t>

            <t>Label : Low order 24 bits of Tunnel Payload Forwarding (TPF) 
            information </t>

            <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described
            in <xref target="TunnelEncap"/></t>
          </list></t>

        <t>The TPF information is associated with VPN Routing Instance on the
        Egress PE. The Tunnel Encapsulation attribute with SRm6 type MUST be
        appended to the Path attributes associated with the NLRI.</t>
      </section>

      <section title="IPv6 VPN on SRm6 enabled IPv6 Core">
        <t>The IPv6 L3 VPN over IPv6 is defined in <xref target="RFC4659"/>.
        The MP_REACH NLRI and Tunnel Encapsulation attribute encoding is as
        per below:</t>

        <t><list style="symbols">
            <t>AFI : 2; SAFI : 128</t>

            <t>Length of the Next Hop : 16 (or 32 if Link Local)</t>

            <t>Network address of the Next Hop : IPv6 address of the egress
            BGP Router</t>

            <t>NLRI : IPv6-VPN routes</t>

            <t>Label : Low order 24 bits of Tunnel Payload Forwarding (TPF) 
            information</t>

            <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described
            in <xref target="TunnelEncap"> </xref></t>
          </list></t>

        <t>The TPF information is associated with VPN Routing Instance on the
        Egress PE. The Tunnel Encapsulation attribute with SRm6 type MUST be
        appended to the Path attribute associated with the NLRI.</t>
      </section>

      <section title="IPv4 Global Routes on SRm6 enabled IPv6 Core">
        <t>The IPv4 L3 VPN over IPv6 is defined in <xref target="RFC5549"/>.
        The MP_REACH NLRI and Tunnel Encapsulation attribute encoding is per
        below:</t>

        <t><list style="symbols">
            <t>AFI : 1; SAFI : 1</t>

            <t>Length of the Next Hop : 16 (or 32 if Link Local)</t>

            <t>Network address of the Next Hop : IPv6 address of the egress
            BGP Router</t>

            <t>NLRI : IPv4 routes</t>

            <t>Label : Low order 24 bits of Tunnel Payload Forwarding (TPF) 
            information</t>

            <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described
            in <xref target="TunnelEncap"> </xref></t>
          </list></t>

        <t>The TPF information is associated with VPN Routing Instance on the
        Egress PE. The Tunnel Encapsulation attribute with SRm6 type MUST be
        appended to the Path attribute associated with the NLRI.</t>
      </section>
    </section>

    <section anchor="BGPEVPNonIPv6"
             title="BGP based Ethernet VPN services over IPv6">
      <t>The <xref target="RFC7432"> </xref> describes the BGP extensions for
      carrying the Ethernet Virtual Private Network Overlay on MPLS network.
      It defines 4 types of EVPN NLRI. This document specifies changes to
      certain fields for those NLRIs.</t>

      <t><list style="symbols">
          <t>Ethernet Auto-Discovery (A-D) route</t>

          <t>MAC/IP Advertisement route</t>

          <t>Inclusive Multicast Ethernet Tag route</t>

          <t>IP Prefix route</t>
        </list></t>

      <section title="Ethernet Per ES Auto-Discovery (A-D) route">
        <t>The MP_REACH and MP_UNREACH attributes will carry this route in the
        NLRI encoding described in <xref target="RFC7432"> </xref>. In
        addition to Tunnel Encapsulation attribute encoding, this document
        recommends to follow the <xref target="RFC7432"> </xref> encoding
        except the following. For MPLS label carried in the Ethernet A-D 
	per ESI route:</t>

	<t><list style="symbols">
            <t>MPLS label : Per <xref target="RFC7432"></xref>, it is set
               to zero.</t>

            <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described
            in <xref target="TunnelEncap"> </xref></t>
          </list>
        </t>

	<t>The MPLS label field is not part of the route but treated as route
        attribute. For procedures and usage of this route, refer to <xref
        target="RFC7432"> </xref>. The Tunnel Encapsulation attribute with
        SRm6 type MUST be appended to the Path attribute associated with the
        NLRI.</t>

	<t>An EVPN Ethernet per ES A-D route is usually signaled together
        with an ESI label extended community. For ESI Label carried in the
        ESI label extended community:</t>

        <t><list style="symbols">
           <t>ESI Label: Low order 24 bits of the Tunnel Payload Forwarding 
           (TPF) information</t>
           </list>
        </t>

	<t>The TPF information is used to identify an Ethernet segment 
        attached to the BGP PE for EVPN.</t>

      </section>

      <section title="Ethernet per EVI Auto-Discovery (A-D) route">
	<t>The MP_REACH and MP_UNREACH attributes will carry this route in 
	the NLRI encoding described in <xref target="RFC7432"></xref>. In 
	addition to Tunnel Encapsulation attribute encoding, this document 
	recommends to follow the <xref target="RFC7432"></xref> encoding 
	except the following:</t>
 
	<t><list style="symbols">
           <t>MPLS label : Low order 24 bits of Tunnel Payload Forwarding (TPF) 
           information</t>

            <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described
            in <xref target="TunnelEncap"> </xref></t>
           </list>
        </t>

	<t>The MPLS label field is not part of the route but treated as 
	route attribute. For procedures and usage of this route, refer to
   	<xref target="RFC7432"></xref>. The Tunnel Encapsulation attribute 
	with SRm6 type MUST be appended to the Path attribute associated 
	with the NLRI.</t>
 
	<t>In addition, for EVPN E-tree service, this route may be signaled 
	together with an E-Tree Extended Community as it is specified in 
	<xref target="RFC8317"></xref>. For the leaf label carried in the 
	E-Tree Extended Community:</t>
           
	<t><list style="symbols">
	   <t>Leaf Label:  Low order 24 bits of the Tunnel Payload Forwarding 
           (TPF) information</t>
	   </list>
	</t>
 
	<t>In case of EVPN E-tree service, the TPF information carried in the E-Tree 
        extended community is used to signal a leaf AC property.</t>
 
	<t>In the data plane, this TPF information specified in the 
	Destination Option header is used by an egress router to identify 
	that a data packet is ingressed from a leaf AC such that appropriate 
	forwarding decision can be made.</t>
 
      </section>

      <section title="MAC/IP Advertisement route">
        <t>The MP_REACH and MP_UNREACH attributes will carry this route in the
        NLRI encoding described in <xref target="RFC7432"> </xref>. In
        addition to Tunnel Encapsulation attribute encoding, this document
        recommends to follow the <xref target="RFC7432"> </xref> encoding 
	except the following.</t>

        <t><list style="symbols">
            <t>MPLS label1 : Low order 24 bits of the Tunnel Payload Forwarding 
	    (TPF) information1</t> 

            <t>MPLS label2 : Low order 24 bits of the Tunnel Payload Forwarding 
	    (TPF)  information2</t>

            <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described
            in <xref target="TunnelEncap"> </xref></t>
          </list></t>

        <t>The MPLS label field is not part of the route but treated as route
        attribute. For procedures and usage of this route, refer to <xref
        target="RFC7432"> </xref>. The Tunnel Encapsulation attribute with
        SRm6 type MUST be appended to the Path attribute associated with the
        NLRI.</t>
      </section>

      <section title="Inclusive Multicast Ethernet Route">
	<t>The MP_REACH and MP_UNREACH attributes will carry this route in 
	the NLRI encoding described in [RFC7432]. In addition to Tunnel
   	Encapsulation attribute encoding, this document recommends to follow
   	the [RFC7432] encoding except the following.</t>
 
	<t><list style="symbols">
	   <t>If MPLS label field in the PMSI Tunnel Attributed is non-zero, 
	   it is set to Low order 24 bits of the Tunnel Payload Forwarding 
           (TPF) information.</t>

	   <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described 
           in <xref target="TunnelEncap"> </xref></t>
   	   </list></t>

   	<t>The Tunnel Encapsulation attribute with SRm6 type MUST be 
	appended to the Path attribute associated with the NLRI.</t>
      </section>

      <section title="IP Prefix Route">
	<t>The MP_REACH and MP_UNREACH attributes will carry this route in 
	the NLRI encoding described in 
	<xref target="I-D.ietf-bess-evpn-prefix-advertisement"/>. In 
  	addition to Tunnel Encapsulation attribute encoding, this document 
	recommends the following change:</t>
 
	<t><list style="symbols">
	  <t>MPLS label: if it is non-zero, it is set to Low order 24 bits 
	   	     	 of the Tunnel Payload Forwarding (TPF) information.</t>
 
	  <t>Tunnel Encapsulation Path Attribute : SRm6 Type as described 
          in <xref target="TunnelEncap"> </xref></t>
	  </list></t>
 
  	<t>The MPLS label field is not part of the route but treated as route
	attribute. For procedures and usage of this route, refer to
   	<xref target="I-D.ietf-bess-evpn-prefix-advertisement"/>. The 
	Tunnel Encapsulation attribute with SRm6 type MUST be appended to the 
	Path attribute associated with the NLRI.</t>
      </section>
    </section>

    <section anchor="DeploymentCons" title="Deployment Considerations">
      <t>This document proposes to reuse the NLRI encoding for BGP L3VPN and
      EVPN Network Layer Routing Information. However, care should be taken
      when BGP VPN overlay services are enabled on SRm6 underlay such that
      Tunnel Encapsulation Path attribute with SRm6 type MUST be appended.
      When a BGP router advertises SRm6_NLRI, it MUST NOT remove the Tunnel
      Encapsulation Path attribute.</t>

      <t>The SRm6 underlay is similar to other "tunnel" technologies viz
      MPLS, GRE, IP-in-IP, L2TPv3. The egress and ingress BGP routers can be
      connected via one or more such underlay technologies. A BGP speaker can
      advertise the VPN NLRI with the nexthop reachable via one or more such
      underlay paths. Each such mechanism can co-exist together as
      ships-in-night. However, when SRm6_NLRI is advertised by a egress BGP
      speaker and received by an ingress BGP speaker, they MUST follow the
      procedures mentioned in this document.</t>

      <t>For migrating a BGP router to SRm6 the following procedures can be
      followed.</t>

      <t><list style="symbols">
          <t>Operator will enable SRm6 underlay on the ingress and egress
          routers identifying the SRm6 path from ingress router's interface
          to egress router's interface. The way to configure the ingress and
          egress routers are outside the scope of this document.</t>

          <t>SRm6 enabled ingress BGP router will setup the additional
          information in the forwarding table such that it can append an IPv6
          tunnel header and encode the TPF Option in the Destination Options
          Header.</t>

          <t>SRm6 enabled egress BGP router will setup the additional
          information in the forwarding table such that TPF information can be
          used to lookup to find the Routing Instance and make the forwarding
          decision.</t>

          <t>Operator will enable BGP VPN overlay over SRm6 underlay on
          ingress router. This means that ingress router will start looking
          for SRm6_NLRI in the BGP updates. The way to enable the BGP VPN
          overlay over SRm6 underlay is outside the scope of this
          document.</t>

          <t>The operator will enable BGP VPN overlay over SRm6 underlay on
          egress router. With this, the egress router will create TPF
          information and associate it with Routing Instances. It then
          advertises the SRm6_NLRIs to the ingress BGP router.</t>

          <t>The ingress router will interpret the SRm6_NLRIs and use TPF
          information and follow the procedures in <xref 
	  target="I-D.bonica-spring-sr-mapped-six"/> to encode the Destination 
	  Options Header to forward the data packet.</t>

          <t>Now that SRm6 path is setup between ingress and egress BGP
          routers, on the egress BGP router the Operator can migrate the
          Routing Instances from MPLS VPN set of Instances to SRm6 enabled
          set of Instances. The way to configure Routing Instances to achieve
          the above is outside the scope of this document.</t>
        </list></t>
    </section>

    <section anchor="backward_compatibility" title="Backward Compatibility">
      <t>The extension proposed in this document is backward compatible with
      procedures described for BGP enabled services.</t>
    </section>

    <section anchor="SecurityCons" title="Security Considerations">
      <t>This document does not introduce any new security considerations
      beyond those already specified in <xref target="RFC4271"> </xref>, <xref
      target="RFC8277"> </xref> and <xref 
      target="I-D.ietf-idr-tunnel-encaps"/>.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>IANA is requested to assign a code point for SRm6 Route Type for BGP
      Tunnel Encapsulation Path Attribute from BGP Tunnel Encapsulation
      Attribute Tunnel Types Registry.</t>
    </section>

    <section anchor="ack" title="Acknowledgements">
      <t>The authors would like to thank Jeff Haas, Wen Lin and Shraddha Hegde 
      for careful review and suggestions.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.8200'?>

      <?rfc include='reference.RFC.0791"?>

      <?rfc include='reference.RFC.4443'?>

      <?rfc include='reference.RFC.4303'?>

      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.I-D.bonica-spring-sr-mapped-six'?>

      <?rfc include='reference.I-D.bonica-6man-vpn-dest-opt'?>

      <?rfc include='reference.I-D.ietf-idr-tunnel-encaps'?>

      <?rfc include='reference.I-D.ietf-bess-evpn-prefix-advertisement'?>

    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.3031'?>

      <?rfc include='reference.RFC.6624'?>

      <?rfc include='reference.RFC.7432'?>

      <?rfc include='reference.RFC.4364'?>

      <?rfc include='reference.RFC.4761'?>

      <?rfc include='reference.RFC.4762'?>

      <?rfc include='reference.RFC.8077'?>

      <?rfc include='reference.RFC.4271'?>

      <?rfc include='reference.RFC.4760'?>

      <?rfc include='reference.RFC.8277'?>

      <?rfc include='reference.RFC.5549'?>

      <?rfc include='reference.RFC.4659'?>

      <?rfc include='reference.RFC.4817'?>

      <?rfc include='reference.RFC.4023'?>

      <?rfc include='reference.RFC.7510'?>

      <?rfc include='reference.RFC.8317'?>
    </references>
  </back>
</rfc>
