Slide 1: Using DPDK APIs as the I/F Between UPF-C and UPF-U
x Using DPDK APIs as the I/F Between UPF-C and UPF-U BARAK PERLMAN & BRIAN KLAFF ETHERNITY NETWORKS
Slide 2: 5G System Architecture
5G System Architecture • UPF is a 5G architecture NSSF NEF NRF PCF UDM AF data plane element Nnssf Nnef Nnrf Npcf Nudm Naf • Replaces the user plane of SGW and PGW Nausf Namf Nsmf • Control and User Plane AUSF AMF SMF SCP Separation (CUPS) N2 N4 User Plane Function UE (R)AN N3 UPF N6 DN User Equipme
Slide 3: Accelerating UPF in 5G
Accelerating UPF in 5G Access Endpoints Core Edge • Many operators are now moving UPF to the edge AMF • Optimal UPF at aggregation N1 N2 N11 locations • Used for local breakout N4 PFCP SMF • Partial/complete data plane offloading over FPGA-based SmartNICs N3 N6 UPF UPF UPF SmartNIC • Programmable Ac
Slide 4: Packet Processing Flow in UPF
Packet Processing Flow in UPF PDR – Packet Detection Rule FAR – Forwarding Action Rule QER – QoS Enforcement Rule URR – Usage Reporting Rule BAR – Buffering Action Rule MAR – Multi-Access Rule 4
Slide 5: Separation of UPF to UPF-C and UPF-U
Separation of UPF to UPF-C and UPF-U SMF N4 PFCP VM/container #m UPF-C DPDK Hypervisor UPF x86 Server PCIe Access N3 GTP IP N6 Data UPF-U Network PM counters Network 25G/40G/100G 25G/40G/100G SmartNIC 5
Slide 6: Partial Offload
Partial Offload SMF N4 PFCP VM/container #m UPF-C PM Counters Control DPDK Packets Hypervisor UPF x86 Server PCIe N3 GTP UPF-U IP N6 Data Access Network Network 25G/40G/100G 25G/40G/100G SmartNIC 6
Slide 7: Full Offload
Full Offload SMF N4 PFCP VM/container #m UPF-C DPDK Hypervisor UPF x86 Server PCIe N3 GTP UPF-U IP N6 Access Data Network PM counters Network 25G/40G/100G 25G/40G/100G SmartNIC 7
Slide 8: FPGA SmartNIC Accelerates UPF Features
FPGA SmartNIC Accelerates UPF Features S-GW/UPF P-GW/UPF GW ACL Filters UPF-U features offloaded by SmartNIC H-QoS Lawful ➢ Packet routing forwarding HandOver I/F DPI Profile Mgmt Interception ➢ GTP termination (if needed) UPF-C ➢ Gating, redirection & traffic steering X86 ➢ QoS Server PCIe ➢ Packet
Slide 9: I/F Between UPF-C and UPF-U
I/F Between UPF-C and UPF-U SMF N4 PFCP VM/container #m UPF-C DPDK Hypervisor ? UPF x86 Server PCIe N3 GTP UPF-U IP N6 Access Data Network PM Counters Network 25G/40G/100G 25G/40G/100G SmartNIC 9
Slide 10: Options for UPF-C to UPF-U I/F
Options for UPF-C to UPF-U I/F • Control Plane Messages • Send in-band control packets between UPF-C and UPF-U • Option 1: dedicated control packets for this purpose, new standard • Option 2: use an existing SDN I/F (for example, OpenFlow, P4 & P4 run-time) • Use DPDK HW offload APIs • Use existing
Slide 11: Control Plane Messages
Control Plane Messages In-band SMF Approach N4 PFCP VM/container #m UPF-C DPDK Hypervisor UPF x86 Server PCIe N3 GTP UPF-U IP N6 Access Data Network PM Counters Network 25G/40G/100G 25G/40G/100G SmartNIC 11
Slide 12: Dedicated Control Plane Messages
Dedicated Control Plane Messages • Benefit: good performance • Control packets consume a small portion of the large data plane packets • Dedicated Control Plane Messages • Need to define a spec for control plane message content for all UPF-U features • Need to implement a specific design in both UPF
Slide 13: Using DPDK HW Offload APIs
Using DPDK HW Offload APIs Suggested SMF Approach N4 PFCP VM/container #m UPF-C DPDK flow APIs rte_flow DPDK Hypervisor UPF x86 Server PCIe N3 GTP UPF-U IP N6 Access Data Network PM Counters Network 25G/40G/100G 25G/40G/100G SmartNIC 13
Slide 14: DPDK-Based APIs for UPF-C to UPF-U
DPDK-Based APIs for UPF-C to UPF-U • Most UPF applications are already implemented in DPDK • For example, 5G UPF based on VPP: https://github.com/travelping/vpp • rte_flow is the natural choice for DPDK applications • UPF is flow based, maps nicely to DPDK rte_flow offload APIs (generic flow API) •
Slide 15: DPDK rte_flow Improvements Required for UPF Offload
SUGGESTED DPDK rte_flow IMPROVEMENTS REQUIRED FOR UPF OFFLOAD
Slide 16: Improve DPDK rte_flow APIs Performance
Improve DPDK rte_flow APIs Performance • UPF requires a large number of flows (e.g., 1M flows) • Need to improve the rte_flow configuration rate • Add burst write configurations • Batching of rte_flow entries and then committing the batch to the HW offload • Use shared memory and DMA for flow data s
Slide 17: GTP Header
GTP Header • GTP header match is already supported in rte_flow • Need to add GTP-U encap/decap • GTP-U header encapsulation and decapsulation rte_flow actions • Very similar to other tunnel headers that are already supported: VxLAN, NVGRE, MPLS and raw_encap/decap • Should include optional support f
Slide 18: GTP-U Extension Header for 5GS
GTP-U Extension Header for 5GS 18
Slide 19: Summary
Summary • UPF is the 5G element implementing user plane data path • UPF can be placed at the edge • There is a need for UPF HW offload • UPF can be split into UPF-C and UPF-U • Need to define an I/F between UPF-C and UPF-U • DPDK rte_flow APIs are a good option for implementing this I/F • Need to im
Slide 20: Thank You
x Thank You BARAK PERLMAN, CTO BRIAN KLAFF, MARKETING DIRECTOR BARAK@ETHERNITYNET.COM BRIANK@ETHERNITYNET.COM