PFCP

Packet Forwarding Control Protocol

Protocol
Introduced in Rel-14
A 3GPP protocol used in 5G Core and EPC to separate the control plane from the user plane. It enables the control plane (SMF/CP-function) to program forwarding rules, QoS policies, and charging instructions into the user plane (UPF/UP-function) over the N4/Sx interface.

Description

The Packet Forwarding Control Protocol (PFCP) is a key protocol defined by 3GPP for communication between the control plane and the user plane in both the Evolved Packet Core (EPC) and the 5G Core (5GC) network architectures. It operates over the Sx interface (between SGW-C/PGW-C and SGW-U/PGW-U) in EPC and the N4 interface (between SMF and UPF) in 5GC. PFCP is a master-slave protocol where the control plane function (CPF), such as the Session Management Function (SMF), acts as the master node, and the user plane function (UPF), such as a UPF or PGW-U, acts as the slave node. The protocol uses a request-response mechanism, with the CPF sending commands and the UPF executing them and reporting back.

The core function of PFCP is to allow the control plane to remotely manage the behavior of the user plane without being in the data path. This is achieved through the management of Packet Detection Rules (PDRs), Forwarding Action Rules (FARs), QoS Enforcement Rules (QERs), and Usage Reporting Rules (URRs), collectively known as PFCP Association, Session, and Rules. A PDR contains packet matching information (like IP headers and ports) to identify a specific flow. Each PDR is linked to a FAR, which dictates what to do with matched packets (e.g., forward, drop, buffer, or send to the CPF). QERs apply rate policing and marking, while URRs trigger usage reporting for charging.

When a user session is established, the SMF uses PFCP Session Establishment procedures to program these rules into the UPF. As data packets arrive, the UPF's fast-path processing matches them against the installed PDRs and executes the corresponding FARs and QERs. This enables features like uplink classifier, branching point, traffic steering, and QoS enforcement directly in the user plane. PFCP also supports heartbeat mechanisms for node liveness detection and session reporting procedures, where the UPF can inform the CPF of events like usage thresholds being reached or the detection of the start/end of a traffic flow. This clear separation, enabled by PFCP, is the foundation of the Control and User Plane Separation (CUPS) architecture.

Purpose & Motivation

PFCP was created to enable the Control and User Plane Separation (CUPS) architecture, a major evolution in core network design. Traditional network elements like the SGW and PGW were monolithic, combining both control signaling and data forwarding in a single physical or logical node. This tight coupling limited scalability, as control and user plane resources had to scale together, and hindered flexible deployment, as the data plane could not be distributed independently to be closer to users.

The development of PFCP directly addressed these limitations. By defining a standard protocol, it allowed the control plane (responsible for signaling, policy, and session management) to be separated from the user plane (responsible for high-speed packet forwarding). This enables independent scaling of control and user plane resources. Network operators can deploy centralized control functions for efficiency while distributing stateless user plane functions (UPFs) to the network edge for low-latency services. PFCP provides the precise language for the control plane to 'program' the forwarding behavior of the user plane dynamically, which is essential for supporting network slicing, on-demand service creation, and efficient traffic management in modern 5G and advanced 4G networks.

Key Features

  • Enables Control and User Plane Separation (CUPS) architecture
  • Defines procedures for association management, session establishment, modification, and deletion
  • Uses a rule-based system (PDR, FAR, QER, URR) to program user plane behavior
  • Supports node-level and session-level reporting for monitoring and charging
  • Provides heartbeat mechanism for node liveness and failure detection
  • Protocol independent of the underlying transport layer (can use SCTP or UDP)

Evolution Across Releases

Rel-14 Initial

Initially introduced to standardize the Sx interface for EPC CUPS. Defined the core PFCP protocol, message set (Association, Session, Node Reporting), and the fundamental rule types (PDR, FAR) for basic packet forwarding control between the CP and UP functions of the SGW and PGW.

Defining Specifications

SpecificationTitle
TS 23.527 3GPP TS 23.527
TS 26.804 3GPP TS 26.804
TS 29.244 3GPP TS 29.244
TS 29.820 3GPP TS 29.820
TS 29.866 3GPP TS 29.866