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.
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 steering verification using a security drone scenario, routing MEC and internet traffic through distinct anchors.
| 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.
Deployment is documented step by step in docs, organized by chapter:
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)
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
Faculty of Electronic and Electrical Engineering, Universidad Nacional Mayor de San Marcos, Lima, Peru.
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.


