L25GC+ is a re-architected 5G Core (5GC) that reduces latency and improves user experience by minimizing control plane impact on the data plane and optimizing packet processing. Built on free5GC and OpenNetVM, L25GC+ uses X-IO to eliminate message serialization and HTTP overheads in 3GPP SBI, enabling fast, synchronous communication between NFs. L25GC+ integrates with free5GC NFs via compatible SBI APIs from X-IO, easing adoption with minimal code changes. In testbed evaluations, L25GC+ achieves 2× lower data plane latency during paging and handover compared to free5GC.
For more design details, please refer to:
- SIGCOMM 2022: L25GC: A Low Latency 5G Core Network based on High-Performance NFV Platforms
- CloudNet 2023: L25GC+: An Improved, 3GPP-compliant 5G Core for Low-latency Control Plane Operations
- Apr 2026: Released Tutorial 1 and Tutorial 2 for hands-on L25GC+ deployment and experiments on NSF Fabric.
We recommend starting with the following tutorial on NSF Fabric. This tutorial walks through how to deploy L25GC+ and validate basic end-to-end connectivity using UERANSIM. It also offers more advanced experiment workflows using OAI UE/RAN, including handover experiments.
🔥 Tutorial README 🔥
L25GC+ supports multiple deployment and experiment workflows.
- CloudLab deployment guide: Full setup, installation, and experiment workflow on CloudLab
- FABRIC deployment guide: Deployment and experiment workflow on FABRIC
See:
| OS Distribution | Status | Notes |
|---|---|---|
| Ubuntu 24.04 | All dependencies available via apt or pip |
|
| Ubuntu 22.04 | ✅ Works out of the box | All dependencies available via apt or pip |
| Ubuntu 20.04 | ✅ Works out of the box | All dependencies available via apt or pip |
| Ubuntu 18.04 | Likely requires upgrading GCC, Python, and installing recent Meson manually |
| Component | Version | Installation Notes |
|---|---|---|
| DPDK | 24.07.0 |
Built from source using Meson |
| Pktgen-DPDK | 24.07.0 |
Compatible with the same DPDK version |
| dpdk-kmods | commit@9b182be |
Required only for igb_uio (optional) |
| Meson | >=0.58.0 |
Recommended: 0.61.2+; use pip3 install meson |
| Ninja | >=1.10.0 |
Usually installed via apt |
The NFs/ directory contains X-IO and all the L25GC+ NFs.
| Module | Description | Language | Commit |
|---|---|---|---|
amf |
Access and Mobility Management Function — handles UE registration and mobility | Go | a186198 |
ausf |
Authentication Server Function — performs UE authentication procedures | Go | 0cb2ece |
chf |
Charging Function — manages charging-related interfaces (if implemented) | Go | 088bd10 |
nrf |
Network Repository Function — supports service registration/discovery | Go | e4c12be |
nssf |
Network Slice Selection Function — selects network slice per UE session | Go | a6b6472 |
onvm-upf |
User Plane Function — data plane packet handling implemented via ONVM | C | f4423e8 |
pcf |
Policy Control Function — enforces policy rules for QoS, access, charging | Go | 1de2b6c |
smf |
Session Management Function — handles PDU sessions and tunnel setup | Go | fbb1e3e |
udm |
Unified Data Management — manages user identity and subscription access | Go | 147cabe |
udr |
Unified Data Repository — stores structured user data | Go | fce77b3 |
xio |
Unified I/O interface between Golang NFs and ONVM stack | Go/C | 464d9d5 |
For questions, feedback, or collaboration inquiries:
Email: l25gc@googlegroups.com
Join our Google Group
L25GC+ is released under the Apache 2.0 License.