This blog series documents how I build a complete telco testing lab using the srsRAN Project. The goal is to create a practical, repeatable setup that shows how I configure a real-time RAN environment based on my own experiance. I will go from a clean Ubuntu installation all the way to a fully tuned system capable of running CU/DU workloads, fronthaul/backhaul traffic, and precise timing configurations.
Rather than focusing on theory, each post walks through real configurations, real hardware, and real troubleshooting steps. Over time, the series will cover the full stack around srsRAN deployments: system tuning, CPU isolation, DPDK, NIC optimization, timing setups, PTP, fronthaul, and everything in between.
What This Series Is About
The series focuses on the practical pieces required to run a reliable, real-time srsRAN setup, including topics such as:
- real-time kernel tuning
- CPU affinity and isolation
- cgroups and systemd configuration
- DPDK drivers, SR-IOV, and VF setup
- NIC driver and firmware tuning
- fronthaul/backhaul performance optimization
- PTP for LLS-C1 and LLS-C3 deployments
- integrating everything into a growing Tuned profile
Each chapter stands on its own, but also contributes to an evolving system configuration that grows throughout the series.
The Test System Used in All Examples
All examples in this series are executed on the same machine to keep the environment consistent:
- OS: Ubuntu 24.04
- Kernel:
6.8.1-1025-realtime - CPU: AMD Ryzen 9 7900X
- RAM: 64 GB
- NIC: Intel E810-XXVDA4T
- RU: Foxconn RPQN-7800E
- Timing: LLS-C1 (DU is PTP Grandmaster)
The setup is intentionally simple but powerful enough to demonstrate all relevant RAN components. Where hardware specifics matter, I explain what needs to be adapted for other systems.
How the Series Is Structured
The posts do not need to be read in a strict order, but they build naturally on one another. Each post focuses on a single area, for example CPU isolation, DPDK setup, network adapter tuning, or PTP configuration. All posts end with an updated Tuned system configuration files as examples.
Over time, these chapters form a complete toolkit for deploying and running srsRAN in a test lab environment. You can follow the full series, read only the sections relevant to your setup, or copy individual steps into your own environment.
Why I’m Writing This
A lot of RAN configuration knowledge is scattered across documentation, mailing lists, code comments, and personal notes. This series is my way of consolidating what I’ve learned by building and deploying test systems in practice. Everything here comes from real setups, real debugging sessions, and real lessons learned.
If you’re working with srsRAN, building a private 5G testbed, or just want to understand how these systems behave under real-time constraints, I hope this series helps.