This repository is a docker compose version of free5GC for stage 3. It's inspire by free5gc-docker-compose and also reference to docker-free5GC.
You can setup your own config in config folder and docker-compose.yaml
- Prerequisites
- Start Free5gc
- Troubleshooting
- Integration with external eNB/UE simulators
- Vagrant Box Option
- NF dependencies and ports
- Reference
Due to the UPF issue, the host must be using kernel 5.0.0-23-generic
. And it should contain gtp5g
kernel module.
On you host OS:
git clone https://github.com/PrinzOwO/gtp5g.git
cd gtp5g
make
sudo make install
- Engine: to install docker on your favorite OS, you can follow instruction here: https://docs.docker.com/engine/install/
- Compose: you also need to install docker compose as detailed here: https://docs.docker.com/compose/install/
Because we need to create tunnel interface, we need to use privileged container with root permission.
$ git clone https://github.com/free5gc/free5gc-compose.git
$ cd free5gc-compose
$ make base
$ docker-compose build
$ sudo docker-compose up # Recommend use with tmux to run in frontground
$ sudo docker-compose up -d # Run in backbround if needed
Sometimes, you need to drop data from DB:
$ docker exec -it mongodb mongo
> use free5gc
> db.subscribers.drop()
> exit # (Or Ctrl-D)
You can see logs for each service using docker logs
command. For example, to access the logs of the SMF you can use:
docker logs smf
Please refer to the wiki for more troubleshooting information.
The integration with the UERANSIM eNB/UE simulator is documented here.
You can also refer to this issue to find out how you can configure the UPF to forward traffic between the UERANSIM to the DN (eg. internet) in a docker environment.
You can setup a working environment without the fuss of updating your kernel version just by using a vagrant box. You can follow the instructions provided here: https://github.com/abousselmi/vagrant-free5gc
NF | Exposed Ports | Dependencies | Dependencies URI |
---|---|---|---|
amf | 8000 | nrf | nrfUri: https://nrf:8000 |
ausf | 8000 | nrf | nrfUri: https://nrf:8000 |
nrf | 8000 | db | MongoDBUrl: mongodb://db:27017 |
nssf | 8000 | nrf | nrfUri: https://nrf:8000/, nrfId: https://nrf:8000/nnrf-nfm/v1/nf-instances |
pcf | 8000 | nrf | nrfUri: https://nrf:8000 |
smf | 8000 | nrf, upf | nrfUri: https://nrf:8000, node_id: upf1, node_id: upf2, node_id: upf3 |
udm | 8000 | nrf | nrfUri: https://nrf:8000 |
udr | 8000 | nrf, db | nrfUri: https://nrf:8000, url: mongodb://db:27017 |
n3iwf | N/A | amf, smf, upf | |
upf1 | N/A | pfcp, gtpu, apn | pfcp: upf1, gtpu: upf1, apn: internet |
upf2 | N/A | pfcp, gtpu, apn | pfcp: upf2, gtpu: upf2, apn: internet |
upfb (ulcl) | N/A | pfcp, gtpu, apn | pfcp: upfb, gtpu: upfb, apn: intranet |
webui | 5000 | db | MongoDBUrl: mongodb://db:27017 |