User Plane Function¶
Overview¶
The UPF (User Plane Function) is one of the most important NF(Network Function) of the 5G Core network. It is the second network function with which NR RAN interacts(during PDUs flow). UPF is the evolution of the CUPS(Control and User Plane Separation). It inspects, routes, and forwards the packets inside the QoS flows within the subscription policies. It also enforces the UL and DL traffic rules using SDF templates sent by the SMF over the N4 interface. It allocates or terminates the QoS Flows within the PDU Sessions when the corresponding services end.
User Plane Setup¶
Initial User Plane Setup¶
When a UE wanted to access the 5G network, it undergoes a registration process. After completing all the control plane procedures, when it comes to user plane setup, SMF handles all the session-related information. AMF requests for the DL TEID for all the PDU sessions that passed to SMF. SMF then selects the best UPF for the UE in the range and sends a session establishment request containing all the parameters for the default PDU session setup.
A session along with a default QoS flow of Non-GBR is created to exchange the best-effort traffic with the Data Network(DN). The best-effort traffic contains longer routes to figure out the latency and maintain the traffic.
First UL/DL Data Transfer¶
When the actual data transfer takes place i.e. either UL or DL data, then AMF sends another SM context request to the SMF. SMF sends session modification requests containing information related to the type of session requested. UPF setup the PDU session according to the user needs within the rules and regulations.
After that, UPF maps QoS flows, setup TEID, insert different rules like PDR, FAR, URR, etc, and some session-related policies to the PDU session. It also charges per data packet exchange and adds a unique session ID which helps in differentiating it from other PDU sessions. UPF adds an IMSI number to identify the ongoing session belongs to which UE.
The session context is prepared by the UPF which is sent to the AMF via SMF to transmit it to the gNB. It contains information like UPF local TEID, QoS context, messages for the release of the session, etc.
[2] QoS policy management(policy type)
[2] Setting up of dynamic rules
[2] Update the static and dynamic rules
[3] Mapping FDR, PDR, QDR, BAR, URR
[3] Attaching rules to the sessions
[3] Create a new TEID and insert PDR
[2] Setup TEID to pass to the UPF
[2] QoS/Bearer management
[5] Create session request
[9] Update and create sessions
[6] Handle rule scheduling
[7] Receive charging grant
[2] Initialize charging credit
[2] Get all active policies
[10] Setup UPF session
[4] Read, create, update, and search sessions
[8] Read, and write sessions and serialize, and deserialize all session vectors
[5] PDU Session inactive when moved to the IDLE state
[6] Handle session update response
[5] Handling set messages(either initial request or existing PDU Session) from AMF
[3] Update the state change notification to AMF
[3] Preparing response(session context) to the AMF to transmit it to gNB
[3] Sending UPF local TEID to AMF which are going to be used by gNB
[3] Sending corresponding QoS context to the AMF
[5] Fetch PDU Session ID from the RAT context
[5] Requested message from AMF to release the session
Modification of the ongoing sessions¶
In addition to any changes to the session, a modification request is sent to the UPF which consists of all the policies related to a session being re-authenticated, and updated rules and regulations are also added to the session. UPF dynamically allocates session rules to the PDU sessions. It updates the charging credits and requests for charging re-authentication.
UPF deactivates all the QoS flows and TEID when the services ended or when the user no longer wanted to access the 5G network. It removes all the static and dynamic rules that are inserted into the session. It also terminates the session and the rules related to the termination of the session.
[6] Scheduling static rules activation/ deactivation
[3] Updating session rules
[3] Change PDR and update UPF
[3] Insert PDR along with TEID into the session
[6] Insert IMSI and Session ID for the sessions
[3] Configure subscribed QoS
[6] Update charging credits
[6] Initiating charging reauthentication
[5] Update the session changes back to the session store
[10] Deactivate flow request
[10] Deactivate request by TEID
[6] Deactivate QoS flows for dead sessions
[6] Schedule static and dynamic rule deactivation
[2] Removal of dynamic rules
[4] Read session for deletion
[5] Initiate session release
[6] Complete termination for the released sessions
[2] Removal of rules related to the termination of the session
[6] Delete session from session map
[1] Periodic messages about UPF Session configuration