Description
The User Plane Function (UPF) is a fundamental network function within the 5G Core (5GC) based on the Service-Based Architecture (SBA). It is responsible for all tasks related to the processing and forwarding of user data packets. The UPF acts as the interconnect point between the Radio Access Network (RAN) – either NG-RAN or non-3GPP access – and external Data Networks (DNs), such as the internet or operator services. Its architecture is designed to be highly flexible and distributable, allowing multiple UPF instances to be deployed in different parts of the network (e.g., central, regional, edge locations) to meet diverse latency and bandwidth requirements.
How the UPF works is governed by rules installed by the Session Management Function (SMF). The SMF provisions Packet Detection Rules (PDRs), Forwarding Action Rules (FARs), QoS Enforcement Rules (QERs), and Usage Reporting Rules (URRs) into the UPF via the N4 interface. Upon receiving a packet, the UPF inspects it (matching against PDRs) and executes the associated actions. These actions can include forwarding the packet to a specific tunnel or interface (FAR), applying QoS marking and rate limiting (QER), measuring traffic volume for charging (URR), and even duplicating packets for analytics or redundancy. A single UE session may involve multiple UPFs, such as a branching point UPF for multi-homed connectivity or an intermediate UPF for localized breakouts.
Key components of the UPF's role include being the anchor point for mobility—both intra-system and between 3GPP and non-3GPP access. It provides the external PDU Session interface, making it the official 'exit point' of the 5G network. Furthermore, the UPF is the critical enabler for several advanced 5G capabilities. For Network Slicing, different UPF instances can be dedicated to specific slices, providing isolated data paths. For Edge Computing, the UPF can be deployed at the network edge to locally route traffic to nearby application servers, drastically reducing latency. It also performs deep packet inspection for application-aware steering and supports features like traffic aggregation and IPv6 multi-homing.
Purpose & Motivation
The UPF was created as part of the clean-slate design of the 5G Core network to address the limitations of the 4G EPC's user plane, particularly the split SGW/PGW architecture. The motivations were to achieve greater flexibility, scalability, and support for new service paradigms. Key problems it solves include: enabling ultra-low latency services by allowing decentralized deployment at the network edge; providing the architectural foundation for end-to-end network slicing by offering an isolatable data plane component; and supporting a wider range of access technologies (5G NR, LTE, Wi-Fi, fixed) with a unified anchor point.
Historically, the 4G EPC gateways (SGW, PGW) were monolithic entities with control and user plane tightly coupled, making them difficult to scale independently and deploy flexibly. The 5G design principles of cloud-nativity, SBA, and Control and User Plane Separation (CUPS) directly led to the UPF's creation. The UPF is a pure, scalable user plane element that can be instantiated on demand anywhere in the network cloud. This addresses the need for a dynamic, software-driven architecture capable of supporting diverse 5G use cases, from enhanced mobile broadband (eMBB) to massive IoT (mIoT) and critical communications, each with distinct bandwidth, latency, and reliability requirements.
Key Features
- Packet routing, forwarding, and GTP-U/encapsulation tunneling
- Traffic detection and enforcement via rules from SMF (PDR/FAR/QER/URR)
- Anchor point for mobility and session continuity
- Support for local breakout and edge computing (UL CL, IPv6 multi-homing)
- Integral component for per-slice isolation in Network Slicing
- Deep Packet Inspection (DPI) and application-aware traffic steering
Evolution Across Releases
The User Plane Function (UPF) was initially introduced in the 5G system study phase (e.g., TS 23.501 study). It was defined as the standalone user plane element for the next-generation core, establishing the principle of Control and User Plane Separation (CUPS) extended from EPC and setting the stage for a service-based 5G Core architecture.
Fully standardized as the core user plane network function in the first drop of the 5G System. The N4 interface protocol (PFCP) between SMF and UPF was specified, along with detailed procedures for packet detection, forwarding, QoS enforcement, and charging support, enabling the foundational 5G standalone architecture.
Enhanced with support for Time Sensitive Communication (TSC), integration with LAN-type services, and improved capabilities for edge computing scenarios. Enhancements to the N4 interface and support for more sophisticated traffic steering and redundancy mechanisms were introduced.
Further enhancements for integration with non-3GPP access (e.g., wireline), support for enhanced network slicing, and improvements for IoT and industrial applications. Refinements to support service continuity for edge computing and multicast-broadcast services were added.
Defining Specifications
| Specification | Title |
|---|---|
| TS 23.380 | 3GPP TS 23.380 |
| TS 23.501 | 3GPP TS 23.501 |
| TS 23.527 | 3GPP TS 23.527 |
| TS 23.700 | 3GPP TS 23.700 |
| TS 23.758 | 3GPP TS 23.758 |
| TS 24.193 | 3GPP TS 24.193 |
| TS 24.501 | 3GPP TS 24.501 |
| TS 24.502 | 3GPP TS 24.502 |
| TS 26.113 | 3GPP TS 26.113 |
| TS 26.501 | 3GPP TS 26.501 |
| TS 26.522 | 3GPP TS 26.522 |
| TS 26.802 | 3GPP TS 26.802 |
| TS 26.803 | 3GPP TS 26.803 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.806 | 3GPP TS 26.806 |
| TS 26.822 | 3GPP TS 26.822 |
| TS 26.857 | 3GPP TS 26.857 |
| TS 26.891 | 3GPP TS 26.891 |
| TS 26.919 | 3GPP TS 26.919 |
| TS 26.926 | 3GPP TS 26.926 |
| TS 26.942 | 3GPP TS 26.942 |
| TS 28.802 | 3GPP TS 28.802 |
| TS 28.822 | 3GPP TS 28.822 |
| TS 28.833 | 3GPP TS 28.833 |
| TS 28.836 | 3GPP TS 28.836 |
| TS 28.874 | 3GPP TS 28.874 |
| TS 29.244 | 3GPP TS 29.244 |
| TS 29.502 | 3GPP TS 29.502 |
| TS 29.508 | 3GPP TS 29.508 |
| TS 29.512 | 3GPP TS 29.512 |
| TS 29.513 | 3GPP TS 29.513 |
| TS 29.514 | 3GPP TS 29.514 |
| TS 29.519 | 3GPP TS 29.519 |
| TS 29.520 | 3GPP TS 29.520 |
| TS 29.523 | 3GPP TS 29.523 |
| TS 29.532 | 3GPP TS 29.532 |
| TS 29.552 | 3GPP TS 29.552 |
| TS 29.561 | 3GPP TS 29.561 |
| TS 29.564 | 3GPP TS 29.564 |
| TS 29.574 | 3GPP TS 29.574 |
| TS 29.575 | 3GPP TS 29.575 |
| TS 29.585 | 3GPP TS 29.585 |
| TS 29.820 | 3GPP TS 29.820 |
| TS 29.866 | 3GPP TS 29.866 |
| TS 29.889 | 3GPP TS 29.889 |
| TS 29.890 | 3GPP TS 29.890 |
| TS 29.892 | 3GPP TS 29.892 |
| TS 32.240 | 3GPP TR 32.240 |
| TS 32.255 | 3GPP TR 32.255 |
| TS 32.279 | 3GPP TR 32.279 |
| TS 32.899 | 3GPP TR 32.899 |
| TS 33.127 | 3GPP TR 33.127 |
| TS 33.501 | 3GPP TR 33.501 |
| TS 33.515 | 3GPP TR 33.515 |
| TS 33.739 | 3GPP TR 33.739 |
| TS 33.749 | 3GPP TR 33.749 |
| TS 33.835 | 3GPP TR 33.835 |
| TS 33.851 | 3GPP TR 33.851 |
| TS 33.861 | 3GPP TR 33.861 |
| TS 38.300 | 3GPP TR 38.300 |
| TS 38.305 | 3GPP TR 38.305 |
| TS 38.410 | 3GPP TR 38.410 |
| TS 38.413 | 3GPP TR 38.413 |
| TS 38.414 | 3GPP TR 38.414 |
| TS 38.415 | 3GPP TR 38.415 |
| TS 38.423 | 3GPP TR 38.423 |