UPF Deep Dive

:light_bulb: Simple View First

Think of UPF as:

:rocket: The data plane engine of 5G

It is the function that:

:check_mark: Carries your internet traffic

:check_mark: Connects you to external data networks (DN)

:check_mark: Applies QoS and forwarding rules


:bar_chart: End-to-End Data Path (3GPP)

When you use mobile data:

:mobile_phone: UE β†’ :satellite_antenna: gNB β†’ :rocket: UPF β†’ :globe_showing_europe_africa: Data Network (DN)

image


:gear: UPF Responsibilities (3GPP View)

According to 3GPP TS 23.501, UPF performs:

:check_mark: Packet routing & forwarding

:check_mark: Traffic steering (UL/DL)

:check_mark: QoS enforcement

:check_mark: Usage reporting (charging)

:check_mark: Lawful Intercept support

:check_mark: Buffering (for DL data when UE idle)


:small_blue_diamond: How UPF is Controlled (N4 Interface)

UPF is not autonomousβ€”it is fully controlled by SMF.

:backhand_index_pointing_right: Interface: N4 (SMF ↔ UPF)

image


:gear: Inside UPF β€” Rule-Based Forwarding

SMF programs UPF using:


:small_orange_diamond: PDR β€” Packet Detection Rule

:backhand_index_pointing_right: Identifies incoming packets (UL/DL)


:small_orange_diamond: FAR β€” Forwarding Action Rule

:backhand_index_pointing_right: Defines action:

  • Forward
  • Drop
  • Buffer
  • Duplicate

:small_orange_diamond: QER β€” QoS Enforcement Rule

:backhand_index_pointing_right: Applies:

  • Bitrate limits
  • QoS Flow mapping (5QI)


:magnifying_glass_tilted_left: Uplink & Downlink Flow (Simplified)

:small_blue_diamond: Uplink (UL)

:mobile_phone: UE β†’ :satellite_antenna: gNB β†’ :rocket: UPF β†’ :globe_showing_europe_africa: DN

:check_mark: UPF classifies traffic using PDR

:check_mark: Applies QoS via QER

:check_mark: Forwards via FAR


:small_blue_diamond: Downlink (DL)

:globe_showing_europe_africa: DN β†’ :rocket: UPF β†’ :satellite_antenna: gNB β†’ :mobile_phone: UE

:check_mark: UPF may buffer DL packets if UE is idle

:check_mark: Paging triggered via AMF

:fire: Advanced Concept β€” Distributed UPF

3GPP allows multiple UPFs in a session:

:check_mark: Central UPF (core)

:check_mark: Edge UPF (closer to user)


:pushpin: Why?

:backhand_index_pointing_right: Enables:

:check_mark: Low latency (URLLC)

:check_mark: Local breakout

:check_mark: Traffic steering


:light_bulb: Simple Analogy

:backhand_index_pointing_right: UPF = Courier Network

  • Receives packets
  • Decides routing
  • Delivers to correct destination


For 5G deployment (especially in Pakistan):

:backhand_index_pointing_right: UPF design directly impacts:

:check_mark: Latency

:check_mark: Throughput

:check_mark: User experience


:bar_chart: In Simple Words

UPF = :rocket: Actual data movement in 5G

LinkedIn: :backhand_index_pointing_down:

1 Like

Hi mate this is very useful info but just wanted to correct one minor things which will enhance the knowledge people will refer.the 5G paging actually not going via UPF what actually UPF does is UPF sends the Downlink data notification towards SMF to send to AMF to inform there is data towards UE.Original paging which is a control plane packet is going via AMF togNB to UE.