Packet Forwarding Control Protocol

The control plane stack over Sx/N4/N4mb interfaces. Source: ETSI 2023c, fig. 4.1-1.
The control plane stack over Sx/N4/N4mb interfaces. Source: ETSI 2023c, fig. 4.1-1.

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?
    Architecture reference model showing CUPS in LTE EPC. Source: ETSI 2022a, fig. 4.2.1-1.
    Architecture reference model showing CUPS in LTE EPC. Source: ETSI 2022a, fig. 4.2.1-1.

    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?
    PFCP messages and applicability on Sxa/Sxb/Sxc/N4/N4mb interfaces. Source: ETSI 2023c, table 7.3-1.
    PFCP messages and applicability on Sxa/Sxb/Sxc/N4/N4mb interfaces. Source: ETSI 2023c, table 7.3-1.

    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?
    Packet processing flow in the user plane. Source: Navarro do Amaral et al. 2022, fig. 5.
    Packet processing flow in the user plane. Source: Navarro do Amaral et al. 2022, fig. 5.

    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?
    Applicable packet rules across UP-CP interfaces. Source: Navarro do Amaral et al. 2022, table 1.
    Applicable packet rules across UP-CP interfaces. Source: Navarro do Amaral et al. 2022, table 1.

    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?
    An example showing TLV encoding of a PFCP message and its IEs. Source: Nick 2020.
    An example showing TLV encoding of a PFCP message and its IEs. Source: Nick 2020.

    PFCP messages and IEs are encoded using TLV format.

  • Are there open source implementations of PFCP?

    go-pfcp

    openair-uml

    upf

    upf_p4_poc

  • Which are the patents concerning PFCP?

    TBD.

References

  1. 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.
  2. ETSI. 2023a. "TS 123 501: 5G; System architecture for the 5G System (5GS)." V17.7.0, January. Accessed 2023-03-09.
  3. ETSI. 2023b. "TS 123 502: 5G; Procedures for the 5G System (5GS)." V17.7.0, January. Accessed 2023-03-09.
  4. 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.
  5. 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

Author-wise Stats for Article Edits

Author
No. of Edits
No. of Chats
DevCoins
6
0
656
936
Words
2
Likes
714
Hits

Cite As

Devopedia. 2023. "Packet Forwarding Control Protocol." Version 6, April 25. Accessed 2023-05-02. https://devopedia.org/packet-forwarding-control-protocol
Contributed by
1 author


Last updated on
2023-04-25 05:11:20

Improve this article

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.