Skip to content

lpoclin/5gc-cloudnative-testbed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

177 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloud-Native 5G Standalone ULCL Testbed

A reproducible cloud-native 5G Standalone (SA) testbed on Kubernetes with free5GC in a ULCL configuration with one branching and two anchor UPFs, deployed over Proxmox with Cilium, Multus, Longhorn, and a Prometheus-Grafana-Loki observability stack, documented from bare metal and released publicly.

Testbed Architecture

Overview

The user plane follows a ULCL topology with three UPF instances: BranchingUPF (iUPF) classifies uplink flows by destination prefix and forwards them over N9; AnchorUPF1 (PSA-UPF1) allocates UE addresses and provides internet breakout over N6; AnchorUPF2 (PSA-UPF2) provides Multi-access Edge Computing (MEC) local breakout toward a campus application server.

ULCL Topology

Demo

ULCL steering verification using a security drone scenario, routing MEC and internet traffic through distinct anchors.

ULCL Steering Verification — Cloud-Native 5G Testbed Demo

Key Results

Experiment Result
Steering correctness Destination-based steering confirmed across both anchor paths, 0% packet loss over 90 ICMP samples per destination
Load characterization Forwarding ceiling at 9.60 Gbps imposed by the gtp5g kernel module on a single core, not by the ULCL topology; branching UPF introduces no measurable forwarding loss
Failure response Graceful termination achieves full infrastructure and control-plane recovery; forced termination leaves the UPF permanently inoperable due to stale kernel state

Full experimental results, figures, and raw measurement data are in experiments.

Quick Start

Deployment is documented step by step in docs, organized by chapter:

  1. Virtualization Setup
  2. VM Provisioning
  3. Kubernetes Setup
  4. Observability
  5. 5G Network Environment

Software Stack

Virtualization
├── Proxmox VE: 9.1.9
└── KVM
Kubernetes
├── Kubernetes: 1.35.4 (kubeadm)
├── Cilium: 1.19.3
├── Multus: 4.2.4
└── Gateway API: v1.4.1
Storage
└── Longhorn: 1.11.2
Observability
├── kube-prometheus-stack: 85.0.3
├── Grafana Alloy: v1.16.1
└── Loki: 3.7.2
5G Core
├── free5GC: v4.2.2 (free5gc-helm v4.2.2)
├── UERANSIM: v4.0.1
├── gtp5g: v0.10.2
└── PacketRusher (custom build)

Repository Structure

5gc-cloudnative-testbed/
├── docs/
│   ├── chapter-01-virtualization-setup
│   ├── chapter-02-vm-provisioning
│   ├── chapter-03-kubernetes-setup
│   ├── chapter-04-observability
│   └── chapter-05-5g-network-environment
├── experiments/
├── scripts/
├── values/
├── LICENSE
├── README.md
└── TROUBLESHOOTING.md

Affiliation

Faculty of Electronic and Electrical Engineering, UNMSM

Faculty of Electronic and Electrical Engineering, Universidad Nacional Mayor de San Marcos, Lima, Peru.

License

This project is licensed under the MIT License, allowing free use, modification, and redistribution for academic and non-academic purposes, with attribution. See LICENSE for details.

About

Reproducible cloud-native 5G standalone ULCL testbed on Kubernetes with free5GC

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages