Packet Forwarding Control Protocol
- Summary
-
Discussion
- Where does PFCP fit in?
- Which are the main procedures in PFCP?
- What's meant by PFCP Association?
- What's the packet forwarding model in PFCP?
- Which are the rules signalled by PFCP?
- Which are the identities signalled by PFCP?
- How are messages and IEs encoded in PFCP?
- Are there open source implementations of PFCP?
- Which are the patents concerning PFCP?
- References
- Article Stats
- Cite As

Packet Forwarding Control Protocol (PFCP) is a protocol used for communicating between control plane (CP) and user plane (UP) functions in 4G (Release 14 onwards) and 5G networks. In these networks, the two planes are separated via what's called Control and User Plane Separation (CUPS). However, there was a need for these two planes to communicate across newly define interfaces that connected them. For this purpose, PFCP was defined.
PFCP sits on top on UDP/IP. It functions only in the control plane. A control plane node uses PFCP to associate with one or more user plane nodes and subsequently configure PDU sessions for the user plane. PFCP consists of node-related or session-related messages. Messages and IEs are encoded in TLV format.
Open source implementations of PFCP are available, often in Go language.
Discussion
-
Where does PFCP fit in? In 4G EPC, PFCP is used on the Sx interfaces. In particular, these are Sxa (SGW-C and SGW-U), Sxb (PGW-C and PGW-U) and Sxa (TDF-C and TDF-U). Due to CUPS, traditional Serving Gateway (SGW) and PDN Gateway (PGW) were split into SGW-C and SGW-U, and PGW-C and PGW-U respectively. PFCP was defined to help these split entities to communicate. The Traffic Detection Function (TDF) is an optional function and it was also split. Its parts also use PFCP.
It's also possible to combine SGW-C and PGW-C into a single control plane node. Likewise, SGW-U and PGW-U can be combined. These combined entities can communicate using PFCP.
In 5G, CUPS was applied from the outset, that is, in Release 15. The equivalent control plane and user plane nodes are Session Management Function (SMF) and User Plane Function (UPF). These are connected via the N4 interface. PFCP is used on this interface.
In some scenarios, user plane data packets may be sent on these interfaces between CP and UP functions. However, such packets don't use PFCP. They're sent using GTP-U over UDP/IP.
-
Which are the main procedures in PFCP? The figure shows the list of PFCP messages, which follow the procedures that PFCP needs to perform:
- Node-related: Heartbeat (to know if the peer node is alive); Load Control (UP sends CP its current load); Overload Control (UP informs CP that it's overloaded); Association Setup/Update/Release (relate to associating UP with CP); Packet Flow Description (PFD) Management (provision PFDs to UP); Node Report (UP reports non-session-related information to CP).
- Session-related: Session Establishment/Modification/Release (configure rules in the UP to handle packets on a per-session basis); Session Report (UP reports session-specific information to CP).
PFCP runs on top of UDP, which doesn't guarantee packet delivery. For this reason, PFCP retransmits every request for which a response is not received within a defined timeout. Timeout value and number of retransmissions are implementation specific. A request-response pair share the same sequence number.
For efficiency, many session-related messages targeting the same peer PFCP entity can be bundled together. If bundled messages remain unacknowledged, they may be retransmitted individually. Bundling is not applicable for node-related messages.
-
What's meant by PFCP Association? Before a UP function can carry packets, it must first be configured by a CP function. It's for this purpose that PFCP exists. However, even before CP configures UP for a session, it must first select a suitable UP. This is exactly what the association procedure achieves. A CP associates with a UP before establishing sessions on the UP. Association allows CP to subsequently use the resources of the UP.
The association setup procedure may be initiate by either CP or UP. Support for UP-initiated association is optional. Either way, CP and UP exchange their support for PFCP optional features during the association procedure.
Either CP or UP may initiate the association update procedure. Only CP may initiate the association release procedure. UP receiving the release request message shall delete all PFCP sessions and then delete its association with the CP.
A CP node may be associated with many UP nodes and vice versa. However, a CP-UP pair shall have only one association.
-
What's the packet forwarding model in PFCP? The CP function configures an associated UP function with Packet Detection Rules (PDRs) for each session. a When a data packet comes into the UP function, the
-
Which are the rules signalled by PFCP? A PFCP session is configured with many packet rules of the following types:
- Packet Detection Rules (PDRs): Rules for packet detection.
- Forwarding Action Rules (FARs): Rules for forwarding packets.
- QoS Enforcement Rules (QERs): Rules for applying QoS.
- Usage Reporting Rules (URRs): Rules for generating reports.
- Buffer Action Rules (BARs): Rules for buffering packets.
- Multi-Access Rules (MARs): Rules for traffic steering functionality.
Only PDR and FAR are mandatory for a session. These rules are configured during session establishment or modification procedures. However, to reduce signalling load, the UP function may be asked to activate pre-defined PDRs. This is permitted for a UP function that has pre-defined FAR, QER and/or URR.
-
Which are the identities signalled by PFCP? -
How are messages and IEs encoded in PFCP? PFCP messages and IEs are encoded using TLV format.
-
Are there open source implementations of PFCP? -
Which are the patents concerning PFCP?
References
- ETSI. 2022a. "TS 123 214: Universal Mobile Telecommunications System (UMTS); LTE; Architecture enhancements for control and user plane separation of EPC nodes." V17.0.0, May. Accessed 2023-03-09.
- ETSI. 2023a. "TS 123 501: 5G; System architecture for the 5G System (5GS)." V17.7.0, January. Accessed 2023-03-09.
- ETSI. 2023b. "TS 123 502: 5G; Procedures for the 5G System (5GS)." V17.7.0, January. Accessed 2023-03-09.
- ETSI. 2023c. "TS 129 244: LTE; 5G; Interface between the Control Plane and the User Plane nodes." V17.7.1, January. Accessed 2023-03-09.
- Nick. 2020. "CUPS – Control and User Plane Separation in LTE & NR with PFCP (Sx & N4)." Blog, Nick vs Networking, September 13. Accessed 2023-03-09.
Article Stats
Cite As
See Also
- Control and User Plane Separation
- Stream Control Transmission Protocol
- GPRS Tunnelling Protocol
- 5G PDU Session
- TLV Format
- Software-Defined Networking
Article Warnings
- Summary has no citations. Include at least one.
- Discussion questions at these positions have no answers: 6
- Discussion answers at these positions have no citations: 1, 4, 6, 8
- Following sections are empty: Milestones, Further Reading
- A good article must have at least 1.5 references per 200 words. This article has 1.3.