<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-rfcxml-general-template-standard-00
  
     This template includes examples of the most commonly used features of RFCXML with comments 
     explaining how to customise them. This template can be quickly turned into an I-D by editing 
     the examples provided. Look for [REPLACE], [REPLACE/DELETE], [CHECK] and edit accordingly.
     Note - 'DELETE' means delete the element or attribute, not just the contents.
     
     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-dcn-dmm-cats-mup-service-segmentation-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
-->

  <front>
    <title abbrev="Abbreviated Title">Service Segmentation Considerations for CATS-MUP</title>
    <!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="Internet-Draft" value="draft-dcn-dmm-cats-mup-service-segmentation-00"/>
   
    <author fullname="Kiem Nguyen Trung" initials="K." surname="Nguyen-Trung">
      <organization> Soongsil University </organization>
      <address>
        <postal>
          <street>369, Sangdo-ro, Dongjak-gu</street>
          <city>Seoul</city>
          <code>06978</code>
          <country>Republic of Korea</country>
        </postal>
        <email>kiemnt@dcn.ssu.ac.kr</email>
      </address>
    </author>
    <author initials="N." surname="Tran" fullname="Minh-Ngoc Tran">
      <organization> Soongsil University </organization>
      <address>
        <postal>
          <street>369, Sangdo-ro, Dongjak-gu</street>
          <city>Seoul</city>
          <code>06978</code>
          <country>Republic of Korea</country>
        </postal>
        <email>mipearlska1307@dcn.ssu.ac.kr</email>
      </address>
    </author>
    <author initials="Y." surname="Kim" fullname="Younghan Kim">
      <organization> Soongsil University </organization>
      <address>
        <postal>
          <street>369, Sangdo-ro, Dongjak-gu</street>
          <city>Seoul</city>
          <code>06978</code>
          <country>Republic of Korea</country>
        </postal>
        <phone>+82 10 2691 0904</phone>
        <email>younghak@ssu.ac.kr</email>
      </address>
    </author>
   
    <date year="2026"/>
    <area>Routing Area</area>
    <workgroup>Distributed Mobility Management</workgroup>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>Service segmentation introduces an emerging deployment paradigm in which a service is composed of multiple distributed subtasks forming a service pipeline. This document discusses architectural considerations for a MUP Sequence Session Transform to support ordered traversal across multiple subtask instances and to maintain service continuity during pipeline updates, particularly when stateful subtasks are involved.</t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
      <t>The document <xref target="I-D.draft-dcn-dmm-cats-mup"/> describes how to integrate Computing-Aware Traffic Steering (CATS) capabilities into the Mobile User Plane (MUP) architecture. In that design, when multiple candidate service instances are deployed at different locations, the MUP Controller (MUP-C), as the core component of the architecture, selects the optimal service instance by considering computing and network information. The MUP-C receives user mobility session information from the control plane entity and converts such session information into IPv6 dataplane routing information. Instead of relying on traditional anchoring mechanisms or intermediate user plane forwarding nodes, the session is directly mapped into SRv6-based routing instructions in the underlay network. The Type 2 Session Transformed Route (T2ST) and Type 1 Session Transformed Route (T1ST) are used to convert session information into SRv6-based routing paths toward the selected service endpoint. As a result, traffic steering is realized at the IP routing level without requiring dedicated anchor or intermediate nodes in the mobile user plane. </t>

      <t>However, emerging 6G applications introduce a new deployment paradigm, where a service is decomposed into multiple subtasks that are distributed across different edge locations. These subtasks can be organized as a sequential service pipeline, where traffic must traverse service instances in a predefined sequence, or as a parallel service pipeline, where traffic is distributed to multiple service instances and later merged. Such service segmentation scenarios are discussed in <xref target="I-D.draft-dcn-cats-req-service-segmentation"/>.</t>

      <t>The existing T1ST and T2ST mechanisms are defined for mapping a session to a selected service instance, where traffic is steered toward a specific execution endpoint. While this model is suitable when a session is directed to one optimal service instance, service segmentation introduces scenarios in which a sequential service pipeline spans multiple service instances as part of a single service execution. In such cases, the session-to-route transformation must not only select appropriate service instances, but also support ordered traversal across them and preserve overall service continuity, particularly when the pipeline includes stateful subtasks.</t>

      <t> The existing CATS-MUP architecture focuses on mapping a session to a selected service instance. This document discusses scenarios where a service execution consists of multiple distributed subtasks forming a pipeline. It discusses extensions to session transformation behavior to enable ordered traversal across multiple subtask instances and to support service continuity during pipeline updates, particularly when stateful subtasks are involved. </t>
    </section>

    <section title="Terminology">

    <t>
    This document uses the terminology defined in 
    <xref target="I-D.draft-dcn-dmm-cats-mup"/> and 
    <xref target="I-D.draft-dcn-cats-req-service-segmentation"/>.
    </t>

    <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 [RFC2119] [RFC8174].</t>

    </section>
    
    <section>
      <name>Architecture Overview</name>
      <t> This document does not define mechanisms for constructing or orchestrating service pipelines. Pipeline composition, subtask placement, and lifecycle management are considered out of scope. Furthermore, it does not modify or redefine existing SRv6 behavior definitions and relies on procedures specified in existing SRv6 and SFC specifications. </t>

      <figure>
        <name>Service Segmentation Extensions for CATS-MUP Architecture</name>
        <artwork><![CDATA[
                             +----------------+
                             |    Mobility    |
                             |   Management   |
                             |     System     |
                             +----------------+
                                      |
                             Session Information
                                      |
                     STR    +--------v-------+  
                     +------|   CATS-MUP-C   |
                  +--|------|    +------+    |----------+
                  |  |      |    | C-PS |    |          |
                  |  |      +----------------+          |    +-----------------+
      UE-         |  v                                  |    |      C-SMA      |
         \+---+   +------+          DSD          +------+    |-----------------|
      UE--|RAN|---|  PE  |<----------------------|  PE  |----|  Service Site A |
          +---+   +------+<-----------\          +------+    |    Subtask 1    |
      UE-/        |Buffer|             \         |Buffer|    |    Subtask 3    |
                  +------+              \        +------+    +-----------------+
                  |                      \              |
                  |     MUP network       \      +------+    +-----------------+
                  |      +-------+         \-----|  PE  |----|      C-SMA      |
                  |      | C-NMA |               +------+    |-----------------|
                  |      +-------+               |Buffer|    |  Service Site B |
                  +------------------------------+------+    |    Subtask 1    |
                                                             |    Subtask 2    |
                                                             +-----------------+
      ]]>
        </artwork>
      </figure>

      <t> Figure 1 illustrates the high-level architecture for supporting service segmentation in the CATS-MUP environment, where an application is decomposed into multiple subtasks deployed across different edge sites. Depending on deployment and execution logic, these subtasks may form sequential chains or parallel branches, requiring traffic steering to evolve from single-instance selection toward pipeline-aware steering across distributed subtasks. </t>

      <t> For sequential pipelines, existing Session Transform Routes, including T1ST and T2ST, require the C-PS to configure traffic steering independently for each MUP-PE along the execution chain. As a result, the completion time of the CATS-MUP-C operation increases proportionally with the number of subtasks composing the pipeline. The situation becomes more complex when the active pipeline must be updated or replaced due to mobility events or changing resource conditions, since multiple steering configurations must be recomputed and consistently applied across all participating nodes. To address this limitation, this document proposes a new Session Transform Route referred to as the <em>MUP Sequence Session Transform</em>, enabling pipeline-level traffic steering for sequential service execution. The detailed design is presented in <xref target="mup-sequence-session-transform"/>. </t>

      <t> For parallel pipelines, existing T1ST and T2ST mechanisms remain applicable because traffic distribution and result aggregation can be handled by split and merge functions. User requests may be distributed across parallel subtasks, and intermediate results are combined before delivering the final outcome to the UE. However, each parallel branch may itself consist of a sequential chain of subtasks, in which case the same scalability and steering reconfiguration issues as observed in sequential pipelines arise. Therefore, the proposed <em>MUP Sequence Session Transform</em> can also be applied within such branches to enable pipeline-level traffic steering. </t>

      <t> Service segmentation may involve stateful subtasks, making subtask migration necessary when an existing pipeline no longer satisfies QoS requirements. Maintaining service continuity during pipeline transitions requires preventing packet loss while new subtask instances are activated and traffic steering is updated. One approach to enabling such transitions is the use of SRv6-based buffering, which temporarily stores packets during path updates and releases them once the new execution pipeline becomes operational. </t>
      
      <t> Furthermore, a single subtask type may have multiple instances deployed across different MEC sites. Selecting an optimal pipeline based solely on per-instance evaluation may introduce significant decision overhead as deployment scale increases. To address this challenge, Service Pipeline Metrics are introduced to evaluate pipelines as unified entities rather than independent instances, enabling efficient pipeline selection as described in <xref target="I-D.draft-dcn-cats-req-service-segmentation"/>. </t>
    </section>

    <section anchor="mup-sequence-session-transform">
      <name>MUP Sequence Session Transform Mechanism</name>

      <t> The MUP Sequence Session Transform defines how the Mobile User Plane steers packets across an ordered set of service stages using a single session transformation operation. Under this mechanism, the execution sequence of a service pipeline is encoded directly into packet forwarding behavior at MUP-PE nodes. </t>


      <figure anchor="fig-mup-sst">
        <name>MUP Sequence Session Transform Example</name>
        <artwork><![CDATA[
                              +-----------+                +-----------+           
                              | Subtask 1 |                | Subtask 2 |           
                              +-----------+                +-----------+           
                                    |                            |                 
                              +-----------+                +-----------+           
                              | SFC Proxy |                | SFC Proxy |           
                              +-----------+                +-----------+           
                                    ^                            ^               
                       +----------+ | +----------+  +----------+ | +----------+
                       |NSH(X,255)| | |Inner Pkt |  |NSH(X,254)| | |Inner Pkt |
                       +----------+ | +----------+  +----------+ | +----------+
                       |Inner Pkt | | |NSH(X,254)|  |Inner Pkt | | |NSH(X,253)|
                       +----------+ v +----------+  +----------+ v +----------+
      +--+  +------+           +--------+                   +--------+           
      |UE|->|RAN PE|---------->|MUP PE 1|------------------>|MUP PE 2|
      +--+  +------+           +--------+                   +--------+
                  +-------------+            +-------------+                                                
                  |     SRH     |            |     SRH     |                                                
                  |[0]: MUP PE 2|            |[0]: MUP PE 2|                                                
                  |[1]: MUP PE 1|            |[1]: MUP PE 1|                                                                                              
                  |    SL: 2    |            |    SL: 1    |                                                
                  +-------------+            +-------------+                                                      
                  |  NSH(X,255) |            |  NSH(X,254) |                                                        
                  +-------------+            +-------------+                                                        
                  |  Inner Pkt  |            |  Inner Pkt  |                                                        
                  +-------------+            +-------------+                                                        
                             
        ]]></artwork>
      </figure>
      <t> The execution order of a service pipeline is encoded directly into packet forwarding state. Specifically, the SRv6 segment list carried in the SRH defines the traversal sequence across MUP-PE nodes, while service processing context is maintained within the packet using SRv6 Service Function Chaining (SFC) mechanisms, as specified in <xref target="RFC9491"/>. As illustrated in Figure 2, packets advance along the pipeline as each MUP-PE processes its local segment and updates the associated service context. </t>

      <ul>
        <li> The MUP Sequence Session Transform is installed by the CATS-MUP-C at the ingress MUP-PE located at the RAN side. For UE traffic matching the corresponding session policy, the ingress MUP-PE decapsulates the GTP header and re-encapsulates the packet using SRv6 Service Function Chaining (SFC). </li>

          <li>
            <t> When traffic is steered according to the SRv6 segment list, each MUP-PE performs the following processing steps: </t>
            <ul>
              <li> The MUP-PE processes its local SRv6 SID and removes the outer SRv6 encapsulation, leaving the NSH and inner packet intact. </li>
              <li> The packet is delivered toward the corresponding subtask instance. Depending on deployment, the MUP-PE MAY apply a site-specific encapsulation (such as VXLAN-gre, GRE <xref target="ieee-sfc-over-srv6"/>) before forwarding the packet to the service instance. </li>
              <li> If the subtask instance does not support NSH processing, an SFC proxy MAY be used to terminate or translate the NSH on behalf of the service function. </li>
              <li> After processing, the packet is returned to the MUP-PE together with updated service context. </li>
              <li> The MUP-PE re-applies the SRv6 encapsulation, updates SRH processing state, and forwards the packet toward the next segment indicated in the remaining SRv6 segment list without additional control-plane interaction. </li>
            </ul>
          </li>
        <li> The NSH context header may include service pipeline identifiers, UE-related attributes, or intermediate processing state, enabling distributed service functions to coordinate execution and maintain continuity across the pipeline. </li>
      </ul>

      <t> By embedding pipeline progression into dataplane processing, the MUP Sequence Session Transform enables ordered service execution across multiple edge locations. </t>

    </section>

    <section anchor="service-continuity-stateful">
      <name>Service Continuity for Stateful Service Segmentation</name>

      <t> In practical deployments, service segmentation often involves stateful service instances, where execution state must be preserved across service instance relocation or pipeline reconfiguration. In such scenarios, immediate redirection of traffic to a newly selected service pipeline may result in service disruption if the target instances are not yet ready to process incoming requests or if state migration is still in progress. </t>

      <t> For example, consider a sequential service pipeline composed of five subtasks executed in order. The first four subtasks are stateless, while the fifth subtask is a stateful application. When the stateful subtask is migrated due to mobility events or computing resource degradation, packets processed by the upstream stateless subtasks (i.e., Subtasks 1 through 4) may reach at the stateful subtask before migration is completed. As a result, these packets may be dropped or fail to be processed correctly, leading to wasted computing resources and unnecessary consumption of network bandwidth. </t>

      <t> To preserve service continuity during pipeline transition, this document considers new use behaviors <xref target="future-SRv6-service-continuity"/>, such as <em>End.M.GTP6.D.Buffer</em>, an extension of the End.M.GTP6.D function, integrated into all MUP Session Transform Routes. These behaviors enable traffic to be temporarily held while stateful service instances are being migrated. </t>

        <ul>
          <li> The MUP-C installs MUP Session Transform Routes with buffer <xref target="ieee-access-service-continuity-stateful-service-segmentation"/> at the relevant MUP-PEs, inserting a buffer SID as the first segment in the SRv6 segment list. As a result, packets matching the session policy are first steered toward the buffer. The buffer MAY be realized as a dedicated virtual network function (VNF). </li>

          <li> Furthermore, the MUP-C updates the MUP-PE of all subtasks (current pipeline) so that packets returning from upstream subtask are re-encapsulated using <em>SR Policy headend behaviors</em> with a new SRH. The new segment list places the buffer SID as the first segment, followed by the MUP-PE of the next subtask in the newly selected service pipeline. </li>

          <li> Once a new optimal service pipeline is determined, incoming traffic is redirected toward buffer, allowing migration of multiple stateful subtasks to be performed <strong>in parallel</strong> while maintaining service continuity. Parallel migration reduces service disruption time and increases efficiency. </li>

          <li> After migration is completed, the MUP-C triggers buffer release procedures. Buffered packets are flushed toward the new pipeline, and the buffer removes its SID from the SRH. </li>

          <li> Following buffer release, MUP-PE are updated so that subsequent packets bypass the buffer and are steered directly along the new service pipeline. </li>

        </ul>
    </section>   

    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    
  </middle>

  <back>
    <references>
      <name>References</name>

      <!-- ================= Normative ================= -->

      <references>
        <name>Normative References</name>

        <reference anchor="I-D.draft-dcn-dmm-cats-mup"
          target="https://datatracker.ietf.org/doc/draft-dcn-dmm-cats-mup/">
          <front>
            <title>Computing Aware Traffic Steering Consideration for Mobile User Plane Architecture</title>
            <author initials="N." surname="Tran"/>
            <date year="2026"/>
          </front>
        </reference>

        <reference anchor="I-D.draft-dcn-cats-req-service-segmentation"
          target="https://datatracker.ietf.org/doc/draft-dcn-cats-req-service-segmentation/">
          <front>
            <title>Additional CATS Requirements Consideration for Service Segmentation-related Use Cases</title>
            <author initials="N." surname="Tran"/>
            <date year="2026"/>
          </front>
        </reference>

        <reference anchor="RFC9491"
          target="https://datatracker.ietf.org/doc/rfc9491/">
          <front>
            <title>Integration of the Network Service Header (NSH) and Segment Routing for Service Function Chaining (SFC)</title>
            <author initials="J." surname="Guichard"/>
            <author initials="J." surname="Tantsura"/>
            <date month="November" year="2023"/>
          </front>
        </reference>

      </references>

      <!-- ================= Informative ================= -->

      <references>
        <name>Informative References</name>

        <reference anchor="ieee-access-service-segmentation"
          target="https://doi.org/10.1109/ACCESS.2025.3630182">
          <front>
            <title>Design of 5G Architecture Enhancements for Supporting Edge Split Computing Service Pipeline</title>
            <author initials="M-N." surname="Tran"/>
            <date year="2025"/>
          </front>
        </reference>

        <reference anchor="ieee-access-service-continuity-stateful-service-segmentation"
          target="https://doi.org/10.1109/ACCESS.2026.3661972">
          <front>
            <title>Enabling Service Continuity for Stateful Service Segmentation in Mobile Edge Computing Toward 6G</title>
            <author initials="K." surname="Nguyen Trung"/>
            <date year="2026"/>
          </front>
        </reference>

        <reference anchor="ieee-sfc-over-srv6"
          target="https://doi.org/10.1109/ICTC62082.2024.10827193">
          <front>
            <title>A Design and Implementation of Service Function Chaining Over Segment Routing IPv6 Network</title>
            <author initials="K." surname="Nguyen Trung"/>
            <date year="2024"/>
          </front>
        </reference>

        <reference anchor="future-SRv6-service-continuity"
          target="https://doi.org/10.3390/fi16040138">
          <front>
            <title>SRv6-Based Edge Service Continuity in 5G Mobile Networks</title>
            <author initials="J." surname="Lemmi"/>
            <date year="2023"/>
          </front>
        </reference>

      </references>

    </references>
    
 </back>
</rfc>