Skip to content

Requirements

Tools and versions needed to run the testbed. Requirements are split into cluster (Vagrant, K3s, Ansible) and UE probe (host-side physical dongle experiments with 5g-probe).


Cluster Requirements

For vagrant up, Ansible provisioning, and the K3s cluster:

Tool / Resource Version / Spec Notes
Vagrant >= 2.3.0 VM orchestration
VirtualBox >= 6.1.0 Hypervisor
gum (optional) >= 0.13 Interactive TUI for testbed-config. Without it, the tool falls back to basic prompts
Host RAM 16 GB recommended laptop profile: 4 VMs (17 GB); server profile: 3 VMs (14 GB). See Server Setup for NUC/server deployments
Host CPU 4+ cores recommended 8+ threads for laptop profile; 4c/8t sufficient for server profile
OS Ubuntu 24.04 LTS Tested on Server and Desktop. macOS and Windows are a v1 target, currently untested. Virtualization must be enabled in BIOS/UEFI
Python (optional) 3.8+ Only for running tests locally (tests/)

The Ansible VM is provisioned with Python, Ansible, and Kubernetes collections; no host-side Ansible is required for deployment.

Platform support: Tested on Ubuntu 24.04 LTS (Server and Desktop). macOS and Windows are a v1 target and currently untested. The commands below are a starting point, not a validated path.

Install VirtualBox

# Debian/Ubuntu
sudo apt update
sudo apt install -y virtualbox virtualbox-ext-pack

On macOS: brew install --cask virtualbox. On Windows: download the installer from virtualbox.org.

BIOS: Ensure VT-x (Intel) or AMD-V is enabled. On NUC/server hardware, also enable VT-d for direct I/O.

Install Vagrant

# Debian/Ubuntu
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" \
  | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install -y vagrant

On macOS: brew install --cask vagrant. On Windows: download from vagrantup.com.

gum provides the interactive TUI for testbed-config. Without it, the tool still works but uses basic terminal prompts.

# Debian/Ubuntu
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt update && sudo apt install gum

See testbed-config docs for the full CLI reference.


UE Probe Requirements

For the host-side 5G UE Probe (5g-probe/) when using a physical UE dongle or USB NIC:

Tool / Resource Version / Spec Notes
OS Linux ip netns is Linux-specific
iproute2 Provides ip link, ip netns; usually pre-installed
isc-dhcp-client Provides dhclient; required for DHCP inside the namespace
iperf3 Required for throughput benchmarks
socat Required for the dongle WebUI tunnel
Python 3.8+ For the Flask + SocketIO app
Root / sudo Required for netns and interface operations

Install (Debian/Ubuntu)

sudo apt install iproute2 isc-dhcp-client iperf3 socat python3 python3-pip python3-venv

Install (Fedora/RHEL)

sudo dnf install iproute dhclient iperf3 socat python3 python3-pip

See docs/tools/5g-probe.md for the full 5g-probe guide.