Use case: Creating a new PDU session to try to improve latency

, ,

Good afternoon everyone,

I’ll write a brief description of the purpose of my work to see if you can help me.

#Start of description

  1. Definitions:
    1.1 Latency: Refers to the time it takes a data packet to travel from a point of origin to a point of destination. This delay, often measured in milliseconds, is a critical measure of a network’s response speed.
    1.2. Delay: Synonym for latency.

  2. Assumptions:
    2.1. We assume that there is an XR Server application, running perfectly on a MEC server in the DN waiting for a connection request to start a video stream.
    2.2. We assume that there is an XR Client application, running and working perfectly on a physical UE and is capable of requesting connection with the XR Server, at this point the transmission session has not yet been established.
    2.3. We assume that all components described in the topology are fully functional.
    2.4. We assume that given the nature of the XR application and the organized topology, the application has metrics that measure application latency more accurately.
    2.5. We assume that the initial registration/creation of the PDU session to start communication between the client application and the server goes through UERANSIM and free5gc.

  3. Use case:
    Initially route from the physical UE to the XR Server once the session is established, the reads meet the latency requirements of the application and the video transmission begins accordingly. At a certain point, traffic is injected into the network that directly impacts the application’s performance, degrading the user experience due to increased latency. Based on the new latency readings, the UE requests a route change in an attempt to improve the performance of the XR application.

  4. Questions
    4.1. What is the correct and appropriate procedure for cloning the code version and using VSCode to perform the implementations and try to contribute?
    4.2. In the context of my use case, does creating a “new route” mean creating a new PDU session?
    4.3. I’m using free5gc 3.3.0, does it support a request to create a new PDU session dynamically?
    4.4. If so, what is the correct call sequence (API) so that I can make this request?
    4.5. If possible, how can I identify this change?

Hi @pabllobc , sorry for the slow response.

In the standard 5G architecture, UE (User Equipment) cannot actively initiate route modifications. The main role of UE is to serve as an interface between the user and the network. It can communicate with the network through NAS (Non-Access Stratum) signaling to request services or resources, but it cannot directly control the network’s routing mechanisms. These operations are typically managed and controlled by core network functions.

Based on your description, I consider that the traffic influence provided by NEF (Network Exposure Function) can meet your needs. NEF can interact with AF (Application Function) for requests targeting individual UE. NEF stores the AF request information in the UDR (Unified Data Repository). If PCF (Policy Control Function) has subscribed to the creation/modification/deletion of AF request information corresponding to UDR data keys/data sub-keys, it will receive the corresponding notifications.

The flow diagram for UE initiating route modification through AF to NEF is as follows:

For more information, you can refer to 3GPP TS 23.502 v17.5, section 4.3.6.1.

Additionally, free5GC’s Traffic Influence for NEF is currently in development. If needed, you can look forward to our future updates.

image

As far as I know, free5GC codebase lacks an NEF implementation.

Hello, @pabllobc, thank you for your question.

Follow is my response.

4.1 If you want to clone code version 3.x.x, you can use this command

git clone --recursive -b v3.x.x -j `nproc` https://github.com/free5gc/free5gc.git

In addition, you can refer to here for information on how to contribute.
4.2 If you want to add a new route, you can update the PDUSession without needing to create a new one. Therefore, in your case, a new route is not equal to creating a new PDUSession
4.3-4.5 free5GC currently does not support the functionality to dynamically create PDU sessions. If you require this feature, you are welcome to submit a PR, or you can wait for future updates.

If you have any other confusion, please let me know.

Good morning, I hope you are well. Thank you for your help, but I would like to explore your knowledge a little more. Can you tell me how to create a new route and then update the PDU session? Thank you very much in advance.

Hello, @pabllobc
To clarify your question, may I ask what you mean by “dynamic create new PDU session”?

Additionally, you cannot control detailed routing information unless you configure each device accordingly.

Good morning, thank you in advance for your help! In my study and use case I am using free5gc (version 3.3.0 https://github.com/free5gc/free5gc/tree/v3.3.0) and UERANSIM (version 3.2.6 aligungr (Ali Güngör) · GitHub /UERANSIM) trying to get a UE to establish the initial connection by defining the route (in the image it is the blue dotted line) and initial PDU session for transmitting data from an XR application so that the 5G core can forward requests from this application to the server EDGE, at some point I am assuming that the latency increases and as a result the user experience in the XR application becomes bad, the application, depending on this latency, requests the 5G core to: 1. Create a new route (in the image it is the red dotted line) to try to reduce latency. I ask, is it possible to create a new route based on the UE request? Another question, is the creation of a PDU session the same as the creation of a route, based on the 3GPP TS23501 references, it seems to me that creating a new PDU session does not necessarily imply creating a new route? Can you clarify these differences for me and where can I apply them in my case study?

Reference for the XR application: MR-Leo (Server available at ida-rtslab / public-code / 2019_MRLEO_server · GitLab and Client available at ida-rtslab · GitLab public-code/2019_mrleo_client)

Topology proposed in the use case: