This testbed has been developped using Debian 12 (Bookworm), but it should also work on all other Linux distributions supported by Docker as long as a Linux kernel is used on the host system (incompatible with Microsoft WSL).
The following Debian's packages are required (or their equivalent on your distribution):
docker-ce
docker-compose-plugin
python3
python3-yaml
j2cli
make
acl
openssl
python3-matplotlib
Note
If you intend to use Free5GC’s UPF (with make set/dataplane/free5gc
),
install Free5CG's GTP5G kernel module on your host.
Please note that you need to have Linux headers installed on the host to be able to install the module
(for example, the package linux-headers-amd64
on Debian if you are on an amd64 architecture).
Important
Make sure to enable IPv6.
This can be done by adding the following in /etc/docker/daemon.json
:
{
"ipv6": true,
"fixed-cidr-v6": "fdd4:95c2:f557::/64",
}
make build # build
make pull # update docker images
make up # run containers
make down # stop containers
The Makefile provides some other commands you might want to use. They are described in doc/commands.md
Configuration is done in the file default-config.yaml
. Currently, it only contains a list of IP addresses.
Documentation is available in the doc
directory.
To enable syntax coloration in Vim, you can use the following plugin: nextmn/vim-yaml-jinja
.
To analyse RAN traffic, you can install the following Wireshark/Tshark plugin : nextmn/RLS-wireshark-dissector
.
Docker version 5:25.0.0
has a bug that prevent running the testbed. Use a different version (5:25.0.1
or higher, or 5:24.*
or lower).
Louis Royer
The testbed code in this repository is under the MIT license, but the various software used, which are distributed in particular in the form of Docker images, are under other licenses. Notably: