<?xml version='1.0' encoding='utf-8'?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent" [
  <!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
  <!ENTITY rfc4360 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4360.xml">
  <!ENTITY rfc4684 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4684.xml">
  <!ENTITY rfc5213 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5213.xml">
  <!ENTITY rfc7333 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7333.xml">
  <!ENTITY rfc8402 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402.xml">
  <!ENTITY rfc8754 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8754.xml">
  <!ENTITY rfc8885 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8885.xml">
  <!ENTITY rfc8986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8986.xml">
  <!ENTITY I-D.ietf-dmm-srv6-mobile-uplane SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-dmm-srv6-mobile-uplane.xml">
  <!ENTITY I-D.ietf-spring-segment-routing-policy SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-spring-segment-routing-policy.xml">
  <!ENTITY I-D.ietf-spring-sr-service-programming SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-spring-sr-service-programming.xml">
  <!ENTITY rfc8754 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8754.xml">
  <!ENTITY I-D.ietf-spring-segment-routing-central-epe SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-spring-segment-routing-central-epe.xml">
  <!ENTITY I-D.ietf-lsr-flex-algo SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-lsr-flex-algo.xml">
  <!ENTITY I-D.ietf-dmm-fpc-cpdp SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-dmm-fpc-cpdp.xml">
  <!ENTITY I-D.matsushima-spring-srv6-deployment-status SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.matsushima-spring-srv6-deployment-status.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="std"
      docName="draft-mhkk-dmm-srv6mup-architecture-03"
      ipr="trust200902"
      obsoletes=""
      updates=""
      submissionType="IETF"
      xml:lang="en"
      tocInclude="true"
      tocDepth="4"
      symRefs="true"
      sortRefs="true"
      version="3">
  <!-- xml2rfc v2v3 conversion 2.38.1 -->
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="SRv6 MUP Architecture">Segment Routing IPv6 Mobile User Plane
   Architecture for Distributed Mobility Management</title>
    <seriesInfo name="Internet-Draft" value="draft-mhkk-dmm-srv6mup-architecture-03"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

   <author fullname="Satoru Matsushima" initials="S." surname="Matsushima">
      <organization>SoftBank</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city></city>
          <region/>
          <code/>
          <country>Japan</country>
        </postal>
        <email>satoru.matsushima@g.softbank.co.jp</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
   <author fullname="Katsuhiro Horiba" initials="K." surname="Horiba">
      <organization>SoftBank</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city></city>
          <region/>
          <code/>
          <country>Japan</country>
        </postal>
        <email>katsuhiro.horiba@g.softbank.co.jp</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
   <author fullname="Ashiq Khan" initials="A." surname="Khan">
      <organization>SoftBank</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city></city>
          <region/>
          <code/>
          <country>Japan</country>
        </postal>
        <email>ashiq.khan@g.softbank.co.jp</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
   <author fullname="Yuya Kawakami" initials="Y." surname="Kawakami">
      <organization>SoftBank</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city></city>
          <region/>
          <code/>
          <country>Japan</country>
        </postal>
        <email>yuya.kawakami01@g.softbank.co.jp</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Tetsuya Murakami" initials="T." surname="Murakami">
      <organization abbrev="Arrcus, Inc">
            Arrcus, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>USA</country>
        </postal>
        <email>tetsuya@arrcus.com</email>
      </address>
    </author> 
    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization abbrev="Arrcus, Inc">
            Arrcus, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>USA</country>
        </postal>
        <email>keyur@arrcus.com</email>
      </address>
    </author> 
    <author fullname="Miya Kohno" initials="M." surname="Kohno">
      <organization abbrev="Cisco Systems, Inc.">
            Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Japan</country>
        </postal>
        <email>mkohno@cisco.com</email>
      </address>
    </author> 
    <author fullname="Teppei Kamata" initials="T." surname="Kamata">
      <organization abbrev="Cisco Systems, Inc.">
            Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Japan</country>
        </postal>
        <email>tkamata@cisco.com</email>
      </address>
    </author> 
    <author fullname="Pablo Camarillo Garvia" initials="P." surname="Camarillo">
      <organization abbrev="Cisco Systems, Inc.">
            Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Spain</country>
        </postal>
        <email>pcamaril@cisco.com</email>
      </address>
    </author> 
    <author fullname="Daniel Voyer" initials="D." surname="Voyer">
      <organization abbrev="Bell Canada">Bell Canada</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country>Canada</country>
        </postal>
        <email>daniel.voyer@bell.ca</email>
      </address>
    </author>
    <author fullname="Shay Zadok" initials="S." surname="Zadok">
      <organization abbrev="Broadcom">
            Broadcom</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Israel</country>
        </postal>
        <email>shay.zadok@broadcom.com</email>
      </address>
    </author> 
    <author fullname="Israel Meilik" initials="I." surname="Meilik">
      <organization abbrev="Broadcom">
            Broadcom</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Israel</country>
        </postal>
        <email>israel.meilik@broadcom.com</email>
      </address>
    </author> 
    <author fullname="Ashutosh Agrawal" initials="A." surname="Agrawal">
      <organization abbrev="Intel">
            Intel</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>USA</country>
        </postal>
        <email>ashutosh.agrawal@intel.com</email>
      </address>
    </author> 
    <author fullname="Kumaresh Perumal" initials="K." surname="Perumal">
      <organization abbrev="Intel">
            Intel</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>USA</country>
        </postal>
        <email>kumaresh.perumal@intel.com</email>
      </address>
    </author> 
    <author fullname="Jakub Horn" initials="J." surname="Horn">
      <organization abbrev="Cisco Systems, Inc.">
            Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Czech Republic</country>
        </postal>
        <email>jakuhorn@cisco.com</email>
      </address>
    </author> 

    <date year="2022"/>
    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
   in the current day and month for you. If the year is not the current one, it is 
   necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
   purpose of calculating the expiry date).  With drafts it is normally sufficient to 
   specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
   If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>mobile userplane, srv6</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

    <abstract>
        <t>This document defines the Segment Routing IPv6 Mobile User Plane 
        (SRv6 MUP) architecture for Distributed Mobility Management. 
        The requirements for Distributed Mobility Management described in 
        <xref target="RFC7333"/> can be satisfied by routing fashion.</t>

        <t>Mobile services are deployed over several parts of IP networks. 
        A Segment Routing over IPv6 (SRv6) network can accommodate all, 
        or part of those networks thanks to the large address space of 
        IPv6 and the network programming capability described in
        <xref target="RFC8986"/>.</t>

        <t>Segment Routing IPv6 Mobile User Plane Architecture can 
        incorporate existing session based mobile networks. 
        By leveraging SRv6 network programmability, mobile user plane 
        can be integrated into the SRv6 data plane. 
        In that routing paradigm, session information between 
        the entities of the mobile user plane is turned to 
        routing information.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Mobile services require IP connectivity for communication 
      between the entities of mobile service architecture
      <xref target="RFC5213"/><xref target="TS.23501"/>. 
      To provide the IP connectivity, Segment Routing (SR) 
      <xref target="RFC8402"/>can be a candidate solution.</t>

      <t>In PMIPv6 <xref target="RFC5213"/>, IP connectivity between 
      LMA and MAG can be provided over SR networks, as well as LMA and 
      Internet. In 3GPP 5G <xref target="TS.23501"/>,
      IP connectivity for N3 interface between gNodeB(es) 
      and UPFs can also be provided by SR, as well as for N6 interface 
      between UPFs and DNs (Data Network).</t>

      <t>These IP connectivities may be covered by multiple SR networks, 
      or just one SR network, depending on the size of the 
      deployment. In the latter case, it is expected that 
      the address space of the SR network should be large enough 
      to cover a vast number of nodes, such as millions of base stations. 
      For this reason, use of IPv6 for the SR dataplane looks 
      sufficiently suitable.</t>

      <t>SRv6 is an instantiation of SR over IPv6 dataplane 
      in which a single network can accommodate all entities of 
      mobile services thanks to the huge available address space 
      and network programming capability described in 
      <xref target="RFC8986"/>.</t>

      <t>Meanwhile, SRv6 network programmability enhances SRv6 dataplane 
      to be integrated with mobile user plane 
      <xref target="I-D.ietf-dmm-srv6-mobile-uplane"/>. 
      It will make an entire SRv6 network support the user plane 
      in a very efficient distributed routing fashion.</t>

      <t>On the other hand, the requirements for 
      Distributed Mobility Management (DMM) described in 
      <xref target="RFC7333"/> can be satisfied by session management 
      based solutions. <xref target="RFC8885"/> defines 
      protocol extension to PMIPv6 for the DMM requirements. 
      3GPP 5G defines an architecture in which 
      multiple session anchors can be added to one 
      mobility session by the session management.</t>

      <t>As a reminder, the user plane related requirements 
      in <xref target="RFC7333"/> are reproduced here:</t>

      <dl newline="true" spacing="normal" indent="8">

        <dt>REQ1: Distributed mobility management</dt>
        <dd>IP mobility, network access solutions, and forwarding 
        solutions provided by DMM MUST enable traffic to avoid 
        traversing a single mobility anchor 
        far from the optimal route. It is noted that the 
        requirement on distribution 
        applies to the data plane only.</dd>

        <dt>REQ3: IPv6 deployment</dt>
        <dd>DMM solutions SHOULD target IPv6 as the primary deployment 
        environment and SHOULD NOT be tailored specifically to support 
        IPv4, particularly in situations 
        where private IPv4 addresses and/or NATs are used.</dd>

        <dt>REQ4: Existing mobility protocols</dt>
        <dd>A DMM solution MUST first consider reusing and extending 
        IETF standard protocols before specifying new protocols.</dd>

        <dt>REQ5: Coexistence with deployed networks/hosts and 
        operability across different networks</dt>
        <dd>A DMM solution may require loose, tight, or no integration 
        into existing mobility protocols and host IP stacks. Regardless 
        of the integration level, DMM implementations MUST be able to 
        coexist with existing network deployments, end hosts, and routers 
        that may or may not implement existing mobility protocols. 
        Furthermore, a DMM solution SHOULD work across different networks, 
        possibly operated as separate administrative domains, 
        when the needed mobility management signaling, forwarding, 
        and network access are allowed by the trust relationship 
        between them.</dd>
      </dl>

      <t>This document defines the Segment Routing IPv6 
      Mobile User Plane (SRv6 MUP) architecture for 
      Distributed Mobility Management. 
      SRv6 MUP is not a mobility management system itself, 
      but an architecture to integrate 
      mobile user plane into the SRv6 data plane.</t>

      <t>In this routing paradigm, session information from 
      a mobility management system will be transformed to 
      routing information. It means that mobile user plane 
      specific nodes for the anchor or intermediate points 
      are no longer required. 
      The user plane anchor and intermediate functions 
      can be supported by SR throughout an SR domain (REQ1), 
      not to mention that SRv6 MUP will naturally be 
      deployed over IPv6 networks (REQ3).</t>

      <t>SRv6 MUP architecture is independent from the mobility 
      management system. For the requirements (REQ4, 5), 
      SRv6 MUP architecture is designed to be pluggable user plane 
      part of existing mobile service architectures. 
      Those existing architectures are for example defined in 
      <xref target="RFC5213"/>, <xref target="TS.23501"/>, 
      or if any.</t>

      <t>The level of SRv6 MUP integration for mobile networks 
      running based on the existing architecture will be varied 
      and depending on the level of SRv6 awareness of the control 
      and user plane entities.</t>

      <t>Specifying how to modify the existing architecture to 
      integrate SRv6 MUP is out of scope of this document. 
      What this document provides for the existing architecture 
      is an interface for SRv6 MUP which the existing or future 
      architectures can easily integrate.</t>


      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
       document are to be interpreted as described in <xref target="RFC2119" format="default">RFC 2119</xref>.</t>
      </section>
    </section>
    <section anchor="term" numbered="true" toc="default">
      <name>Terminology</name>
      <dl newline="false" spacing="normal" indent="8">
        <dt>MUP:</dt><dd>Mobile User Plane</dd>
        <dt>MUP Segment:</dt><dd>Representation of mobile user plane segment</dd>
        <dt>PE:</dt><dd>Provider Edge node in an SR network</dd>
        <dt>MUP Controller:</dt><dd>Controller node for an SR network</dd>
        <dt>UE:</dt><dd>User Equipment, as per <xref target="TS.23501"/></dd>
        <dt>MN:</dt><dd>Mobile Node, as per <xref target="RFC5213"/></dd>
      </dl>
    </section>
    <section anchor="overview" numbered="true" toc="default">
      <name>Architecture Overview</name>
        <t>SRv6 MUP architecture defined in this document introduces 
        new segment types of MUP segment called 
        "Direct segment", and "Interwork Segment". An SR node of PE 
        accommodates an Interwork Segment and/or a Direct Segment. 
        <xref target="fig_overview"/> depicts the overview.</t>

        <figure anchor="fig_overview" title="Overview of SRv6 MUP Architecture">
          <artwork align="center" type="" alt=""><![CDATA[


                        *   Mobility   *
                         * Management *
                          *  System  *
                           *........*
                                |
                       Session Information
                                |
                  ______________v______________
   _______       /           |MUP-C|           \       _______
  /       \     /            +-----+            \     /       \
 /Interwork\__  |                               |  __/ Direct  \
 \ Segment /  \ |----+                     +----| /  \ Segment /
  \_______/    \| PE |        SRv6         | PE |/    \_______/
   _______     /|----+       Network       +----|\     _______
  /       \   / |                               | \   /       \
 / Direct  \_/   \                              /  \_/Interwork\
 \ Segment /      \____________________________/     \ Segment /
  \_______/                                           \_______/

          ]]></artwork>
        </figure>

        <t> This document also defines new routing information 
        called "Segment Discovery route" and "Session Transformed route". 
        To carry these new routing information, this architecture 
        requires extending the existing routing protocols. 
        Any routing protocol can be used to carry this information 
        but this document recommends using BGP. 
        Thus, this document describes extensions on BGP as an example.</t>


    </section>
    <section numbered="true" toc="default">
      <name>Mobile User Plane Segment</name>
      <t>This document defines two new types of Mobile User Plane (MUP) 
      segment. A MUP segment represents a network segment 
      consisting of a mobile service. The MUP segment can be created by 
      a PE which provides connectivity for the mobile user plane.</t>

      <t>Direct Segment is a type of MUP segment that provides 
      connectivity between MUP segments through the SRv6 network. 
      Interwork Segment is another type of MUP segment. It
      provides connectivity between a user plane protocol of existing 
      or future mobile service architecture and other MUP segments
      through the SRv6 networks.</t>

      <t>An SRv6 SID (Segment Identifier) can represents a MUP segment.
      The SID can be any behavior defined in <xref target="RFC8986"/>, 
      <xref target="I-D.ietf-dmm-srv6-mobile-uplane"/>, 
      or any other extensions for further use cases.
      The behavior of the MUP segment will be chosen by the role 
      of the representing MUP segment. </t>

      <t>For example, in case of a PE interfaces to 5G user plane 
      on the access side defined as "N3" in <xref target="TS.23501"/>, 
      the PE accommodates the N3 network as Interwork Segment in a routing
      instance and then the behavior of created segment SID by the PE
      will be "End.M.GTP4.E", or "End.M.GTP6.E".
      In this case, the PE may associate the SID to
      the routing instance for the N3 access network (N3RAN).</t>

      <t>Another example here is that a PE interfaces to 5G DN on the 
      core side defined as "N6" in <xref target="TS.23501"/>, the PE
      accommodates the N6 network in a routing instance as Direct Segment
      and then the behavior of the created segment SID by the PE will be
      "End.DT4", "End.DT6", or "End.DT2".
      In this case, the PE may associate the SID to
      the routing instance for the N6 data network (N6DN).</t>
    </section>

   <section numbered="true" toc="default">
      <name>Distribution of Mobile User Plane Segment Information</name>
        <t>Distribution of MUP segment information can be done by 
        advertising routing information with the MUP segment for 
        mobile service. A PE distributes MUP segment information when
        a MUP segment is connected to the PE.</t>

        <t>A MUP Segment Discovery route is routing information
        that associates the MUP segment with network reachability. 
        This document defines the basic discovery route types, 
        Direct Segment Discovery route, and Interwork Segment Discovery route. 
        Other types of segment discovery route may be mobile service 
        architecture specific. 
        Defining the architecture specific network reachability is 
        out of scope of this document and it will be specified 
        in another document.</t>

      <section anchor="DD" numbered="true" toc="default">
        <name>Direct Segment Discovery Route</name>
        <t>When a PE accommodates a network through an interface
        or a routing instance as a Direct Segment,
        the PE advertises the corresponding Direct Segment Discovery 
        route for the interface or the routing instance. 
        The Direct Segment Discovery
        route includes an address of the PE in the network reachability 
        information with an extended community indicating the 
        corresponding Direct Segment,
        and SID of the routing instance to the SR domain.</t>

        <t>For example in 3GPP 5G specific case, an PE may 
        connect to N6 interface on a DN side, an MUP Segment 
        Discovery route for the DN will be advertised with an address of
        the PE, corresponding SID and Direct Segment extended community
        to the routing instance for the DN from the PE.</t>

        <t>When a PE receives a Direct Segment Discovery route from other PEs,
        the PE keeps the received Direct Segment Discovery route in the RIB.
        The PE uses the received Direct Segment Discovery route 
        to resolve Type 2 session transformed routes reachability, described in <xref target="ST2"/>.
        If the Direct Segment Discovery route resolves reachability for the endpoints, and match the 
        Direct Segment extended community of the Type 2 session transformed routes, 
        the PE updates the FIB entry for the Type 2 session transformed route with 
        the SID of the matched Direct Segment Discovery route.</t>


      </section>
      <section anchor="DI" numbered="true" toc="default">
        <name>Interwork Segment Discovery Route</name>
        <t>When a PE accommodates a network through an interface
        or a routing instance for the user plane protocol of the mobile
        service architecture as an Interwork Segment,
        the PE advertises the corresponding Interwork Segment Discovery 
        route with the prefixes of the Interwork Segment and the corresponding
        SID of the prefixes to the SR domain.</t>

        <t>For example in 3GPP 5G specific case, an Interwork Segment Discovery 
        route for N3 network accommodating RAN will be 
        incorporated in an N3RAN segment discovery route associated 
        with a RAN segment SID.</t>

        <t>When a PE receives a Interwork Segment Discovery route,
        the PE keeps the received Interwork Segment Discovery routes in the RIB. 
        The PE uses the received Interwork Segment Discovery 
        routes to resolve the reachability for remote endpoint of 
        Type 1 session transformed routes, described in <xref target="ST1"/>.
        If the Interwork Segment Discovery route resolves the reachability for Type 1 session transformed routes, 
        the PE updates the FIB entry for the prefix of Type 1 session transformed route with 
        the SID of the matched MUP segment discovery route.</t>

        <t>The received Interwork Segment Discovery routes MUST be used only 
        to resolve reachability for the remote endpoints of Type 1 session 
        transformed routes. The connectivity among the routing instances for 
        Interwork Segments may be advertised as VPN routes. This is to
        avoid forwarding entries to the prefixes of Interwork Segment mingled 
        in the other type of routing instance. A PE may
        discard the received Interwork segment discovery route if the 
        Route Target extended communities of the route does not meet the 
        PE's import policy.</t>


      </section>
    </section>
    <section anchor="ST_route" numbered="true" toc="default">
      <name>Distribution of Session Transformed Route</name>
      <t>SRv6 MUP architecture defines two types of session 
      transformed route.</t>

      <section anchor="ST1" numbered="true" toc="default">
        <name>Type 1 Session Transformed Route</name>
        <t>First type route, called Type 1 Session Transformed route,
        encodes IP prefix(es) for a UE or MN in a BGP
        MP-NLRI attribute with associated session information of the
        tunnel endpoint identifier on the access side. 
        The MUP controller advertises the Type 1 Session Transformed 
        route with the Route Target extended communities for the UE or MN 
        to the SR domain.</t>

        <t>A PE may receive the Type 1 Session Transformed routes from the MUP Controller
        in the SR domain. The PE may keep the received Type 1 Session Transformed
        routes advertised from the MUP Controller. The receiving PE will perform the
        importing of the received Type 1 Session Transformed routes in
        the configured routing instances based on the Route Target
        extended communities. A PE may discard the received Type 1 Session Transformed
        route if the PE fails
        to import the route based on the Route Target extended communities.</t>
      </section>

      <section anchor="ST2" numbered="true" toc="default">
        <name>Type 2 Session Transformed Route</name>
        <t>Second type route, called Type 2 Session Transformed route,
        encodes the tunnel endpoint identifier of 
        the session on the core side in a BGP MP-NLRI attribute with 
        the nature of tunnel decapsulation.
        Longest match algorithm for the prefix in this type of session 
        transformed route should be applicable to aggregate the routes 
        for scale. The MUP controller advertises the Type 2 Session Transformed 
        route with the Route Target and Direct Segment extended communities
        for the endpoint to the SR domain.</t>

        <t>A PE may receive the Type 2 Session Transformed routes
        from the MUP Controller in the SR domain.
        The PE may keep the received Type 2 Session Transformed routes advertised from
        the MUP Controller.  The receiving PE will perform the
        importing of the received Type 2 Session Transformed routes in
        the configured routing instances based on the Route Target
        extended communities. A PE may
        discard the received Type 2 Session Transformed route if the PE fails
        to import the route based on the Route Target extended communities.</t>
      </section>


      <section anchor="MUP-C" numbered="true" toc="default">
        <name>MUP Controller</name>
        <t>A MUP controller provides a northbound API. 
        A consumer of the API inputs session information for a UE or a MN 
        from mobility management system. The MUP controller transforms 
        the received session information to routing information and 
        will advertise the session transformed routes with the corresponding
        extended communities to the SR domain.</t>

        <t>The received session information is expected to include 
        the UE or MN IP prefix(es), tunnel endpoint identifiers for 
        both ends, and any other attributes for the mobile networks. 
        For example in a 3GPP 5G specific case, 
        the tunnel endpoint identifier will be a pair of the F-TEIDs on 
        both the N3 access side (RAN) and core side (UPF).</t>
      </section>
    </section>


    <section anchor="illustration" numbered="true" toc="default">
      <name>Illustration</name>
      <t>This section shows an illustration of SRv6 MUP deployment.
      The example deployment cases here is 3GPP 5G.</t>
      <t>Before enabling SRv6 MUP, how SRv6 networks can accommodate 
      existing mobile network service shown in <xref target="fig_deploy1"/>.
      The PEs of S1, S2, and S3 join an SR network. 
      A routing instance is configured to each network of the mobile 
      service. N6DN in S1 and S2 are supposed to provide connectivity 
      to edge servers and the Internet respectively.</t>

      <t>VRF (Virtual Routing Forwarding) is the routing instance 
      to accommodate MUP segments in this section.
      All example cases in this section follow the typical routing policy 
      control using the BGP extended community described 
      in <xref target="RFC4360"/> and <xref target="RFC4684"/></t>

      <figure anchor="fig_deploy1" title="">
        <artwork align="center" type="" alt=""><![CDATA[
   __ N3   /-----------+-----+------------\
  /  \RAN /            |MUP-C|             \
 / V/v\_  |            +-----+             | N6   __
 \    / \ |----+                      +----| DN  /  \
  \__/   \| S1 |                      | S2 |----/W/w \
   __    /|----+                      +----|    \    /
  /  \__/ |             +----+             |     \__/
 / E/e\N6 \             | S3 |             /
 \    /DN  \------------+----+------------/
  \__/             N3UPF  /\ N6UPF
                     X/x /  \ Y/y
                       +-----+
                       | UPF |
                       +-----+
           ]]></artwork>
      </figure>

      <t>The following routing instances are configured:</t>

      <ul>
        <li>N3RAN in S1</li>
        <li>
            <ul>
              <li>export route V/v with route-target (RT) community C1</li>
              <li>import routes which have route-target (RT) community C1 and C2</li>
            </ul>
        </li>
      </ul>

      <ul>
        <li>N6DN in S1</li>
        <li>
          <ul>
            <li>export route E/e with RT C4</li>
            <li>import routes which have RT C3 and C4</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>N6DN in S2</li>
        <li>
          <ul>
            <li>export route W/w with RT C4</li>
            <li>import routes which have RT C3 and C4</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>N3UPF in S3</li>
        <li>
          <ul>
            <li>export route X/x with RT C2</li>
            <li>import routes which have RT C1</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>N6UPF in S3</li>
        <li>
          <ul>
            <li>export route Y/y with RT C3</li>
            <li>import routes which have RT C4</li>
          </ul>
        </li>
      </ul>


      <dl newline="false" spacing="normal" indent="6">
        <dt>Note: </dt>
        <dd>The above configurations are just to provide typical IP 
        connectivity for 3GPP 5G.
        When the above configurations have been done, 
        each endpoint in V/v and X/x can communicate through S1 
        and S3, but they can not communicate with nodes in 
        E/e, W/w and Y/y.</dd>
      </dl>

      <t>Here, the PEs are configured to enable SRv6 MUP as following:</t>

      <ul>
        <li>S1</li>
        <li>
          <ul>
            <li>advertises Interwork type discovery route: V/v with SID S1::</li>
            <li>set S1:: behavior End.M.GTP4.E or End.M.GTP6.E</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>S1</li>
        <li>
          <ul>
            <li>advertise Direct type discovery route: MUP Direct Segment community D1 and SID S1:1::</li>
            <li>set S1:1:: behavior End.DT4 or End.DT6 for the N6DN in S1</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>S2</li>
        <li>
          <ul>
            <li>advertise Direct type route: MUP Direct Segment community D1 and SID S2::</li>
            <li>set S2:: behavior End.DT4 or End.DT6 for the N6DN in S2</li>
          </ul>
        </li>
      </ul>

      <t>S1 here adopts the local N6DN to prioritize
      closer segment for the same Direct Segment. Another PE 
      may adopt D1 from S2, if the PE has no local N6DN for D1 and closer
      to S2 than S1.</t>

      <figure anchor="fig_deploy2" title="">
        <artwork align="center" type="" alt=""><![CDATA[
                         U1
                          |
U/u                       v
  \__ N3   /-----------+-----+------------\
  /  \RAN /            |MUP-C|             \
 / V/v\_  |            +-----+             | N6   __
 \    / \ |----+                      +----| DN  /  \
  \__/   \| S1 |                      | S2 |----/W/w \
   __    /|----+                      +----|    \    /
  /  \__/ |             +----+             |     \__/
 / E/e\N6 \             | S3 |             /
 \    /DN  \------------+----+------------/
  \__/             N3UPF  /\ N6UPF
                     X/x /  \ Y/y
                       +-----+
                       | UPF |
                       +-----+
           ]]></artwork>
      </figure>

      <t>Now, session information U1 is put to a MUP Controller,
      MUP-C, and MUP-C is configured to transforms U1
      to the routes as follows:</t>

      <ul>
        <li>MUP-C</li>
        <li>
          <ul>
            <li>attach the RT C3 to the DN in U1</li>
            <li>transforms UE's prefix U/u, the F-TEID on access side (gNB) and QFI in U1 to the Type 1 session transformed route 
            for the prefix U/u with the F-TEID, the QFI, and RT C3</li>
            <li>transforms F-TEID on core side (UPF) X in U1 
            to the Type 2 session transformed route for X with MUP segment-ID D1 and RT C2</li>
          </ul>
        </li>
      </ul>

      <t>Then N3RAN and N6DN import route X and U/u respectively.
      S1 and S2 resolves U/u's remote endpoint with V/v and then install SID S1:: 
      for U/u in FIB. S1:: will not be appeared in the packet from E/e to 
      U/u over the wire.</t>

      <t>As S1 adopts local N6DN for D1, N3RAN in S1 decapsulates GTP-U 
      packets from V/v to X and then lookup the inner packets from U/u in N6DN
      after the decapsulation.
      </t>

      <dl newline="false" spacing="normal" indent="6">
        <dt>Note: </dt>
        <dd>When the above configurations have been done, 
        SRv6 MUP is applied only to the packets from/to U/u. 
        Each endpoint in U/u, W/w and E/e can communicate through S1 and S2.
        The rest of traffic from/to other UEs go through the usual 3GPP
        5G user plane path using UPF via S3.</dd>
      </dl>

      <t>Another case shown in <xref target="fig_deploy3"/> is that 
      S4 joins the SR network and accommodates edge servers in 
      the N6DN in S4.</t>

      <figure anchor="fig_deploy3" title="">
        <artwork align="center" type="" alt=""><![CDATA[
                         U1
                          |
U/u                       v                       __
  \__ N3   /-----------+-----+------------\      /  \
  /  \RAN /            |MUP-C|             \  __/W/w \
 / V/v\_  |            +-----+        +----|_/N6\    /
 \    / \ |----+                      | S2 |  DN \__/
  \__/   \| S1 |                      +----|      __
   __    /|----+                      +----|_    /  \
  /  \__/ |             +----+        | S4 | \__/E/e \
 /    \N6 \             | S3 |        +----/  N6\    /
 \    /DN  \------------+----+------------/   DN \__/
  \__/             N3UPF  /\ N6UPF
                     X/x /  \ Y/y
                       +-----+
                       | UPF |
                       +-----+
           ]]></artwork>
      </figure>

      <t>The following routing instances are configured:</t>

      <ul>
        <li>N3RAN in S1 (same with the previous case)</li>
        <li>
            <ul>
              <li>export route V/v with RT C1</li>
              <li>import routes which have RT C1 and C2</li>
            </ul>
        </li>
      </ul>

      <ul>
        <li>N6DN in S1</li>
        <li>
          <ul>
            <li>export no route</li>
            <li>import routes which have RT C4</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>N6DN in S2 (same with the previous case)</li>
        <li>
          <ul>
            <li>export route W/w with RT C4</li>
            <li>import routes which have RT C3 and C4</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>N3UPF in S3 (same with the previous case)</li>
        <li>
          <ul>
            <li>export route X/x with RT C2</li>
            <li>import routes which have RT C1</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>N6UPF in S3 (same with the previous case)</li>
        <li>
          <ul>
            <li>export route Y/y with RT C3</li>
            <li>import routes which have RT C4</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>N6DN in S4</li>
        <li>
          <ul>
            <li>export route E/e with RT C4</li>
            <li>import routes which have RT C3 and C4</li>
          </ul>
        </li>
      </ul>

      <t>Here, the PEs are configured to enable SRv6 MUP as following:</t>

      <ul>
        <li>S1 (same with the previous case)</li>
        <li>
          <ul>
            <li>advertises Interwork type route: V/v with SID S1::</li>
            <li>set S1:: behavior End.M.GTP4.E or End.M.GTP6.E</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>S1</li>
        <li>
          <ul>
            <li>advertise Direct type route: MUP Direct Segment community D1 for the local N6DN</li>
            <li>set S1:1:: behavior End.DT4 or End.DT6 for the N6DN in S1</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>S2 (same with the previous case)</li>
        <li>
          <ul>
            <li>advertise Direct type route: MUP Direct Segment community D1 and SID S2::</li>
            <li>set S2:: behavior End.DT4 or End.DT6 for the N6DN in S2</li>
          </ul>
        </li>
      </ul>

      <ul>
        <li>S4</li>
        <li>
          <ul>
            <li>advertise Direct type route: MUP Direct Segment community D2 and SID S4::</li>
            <li>set S4:: behavior End.DT4 or End.DT6 for the N6DN in S4</li>
          </ul>
        </li>
      </ul>

      <t>As same as the previous case, S1 adopts the local N6DN for D1 as long as S1 prioritizes 
      closer segment for the same MUP Direct Segment. The Direct type route from S4 for D2 
      with SID S4:: will be kept in S1.</t>

      <ul>
        <li>MUP-C (same with the previous case)</li>
        <li>
          <ul>
            <li>attach the RT C3 to the DN in U1</li>
            <li>transforms UE's prefix U/u, the F-TEID on access side (gNB) and QFI in U1 to the Type 1 session transformed route 
            for the prefix U/u with the F-TEID, the QFI, and RT C3</li>
            <li>transforms F-TEID on core side (UPF) X in U1 
            to the Type 2 session transformed route for X with MUP Direct Segment community D1 and RT C2</li>
          </ul>
        </li>
      </ul>

      <t>Then N3RAN and N6DN import route X and U/u respectively.
      S2 and S4 resolve U/u's remote endpoint with V/v and then install SID S1:: 
      for U/u in FIB.</t>

      <t>As same as the previous case, S1 adopts local N6DN for D1, 
      N3RAN in S1 decapsulates GTP-U packets from V/v to X and then 
      lookup the inner packets from U/u in N6DN after the decapsulation.
      </t>
      <t>For D2 on the other hand, no corresponding N6DN existed in S1. 
      However E/e with RT C4 from S4 is imported into N6DN in S1 as a 
      vpn route, E/e is reachable from U/u via N6DN for D1 in S1.</t>

      <t>If a session U1' includes DN corresponding to D2, MUP-C advertises
      Type 2 session transformed route X' with MUP Direct Segment community D2, and then
      N3RAN in S1 instantiates H.M.GTP4.D or End.M.GTP6.D for X with S4::
      as the last SID in the received Direct type route from S4.
      </t>

      <dl newline="false" spacing="normal" indent="6">
        <dt>Note: </dt>
        <dd>When the above configurations have been done, 
        SRv6 MUP is applied only to the packets from/to U/u. 
        Each endpoint in U/u, W/w and E/e can communicate through S1, S2 
        and S4. 
        The rest of traffic from/to other UEs go through the usual 3GPP
        5G user plane path using UPF via S3.</dd>
      </dl>


    </section>

    <!-- Filled after when substantial contributions are made: 

    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>TBD.</t>
    </section>
    ...   -->
    <!-- Possibly a 'Contributors' section ... -->

   <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

 <back>
    <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
            &rfc7333;
            &rfc8402;
            &rfc8986;
            &I-D.ietf-dmm-srv6-mobile-uplane;
            <!-- &I-D.ietf-spring-segment-routing-policy; -->

     <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>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>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <!-- Here we use entities that we defined at the beginning. -->
            &rfc4360;
            &rfc4684;
            &rfc5213;
            &rfc8885;


        <reference anchor="TS.23501" target="http://www.3gpp.org/ftp/Specs/html-info/23501.htm">
            <front>
                <title>System architecture for the 5G System (5GS)</title>
                <author>
                    <organization>3GPP</organization>
                </author>
                <date day="24" month="September" year="2021"/>
            </front>
            <seriesInfo name="3GPP TS" value="23.501 17.2.0" />
        </reference>
      </references>
    </references>
    <!-- Change Log

v00 2021-10-08  Matsushima   Skelton version
    -->
 </back>
</rfc>
