gnbsim is a 5G SA gNB/UE (Rel. 16) simulator for testing 5G System. The project is aimed to understand 5GC more efficiently than just reading 3GPP standard documents.
-
Golang environment on a Linux server to run gnbsim.
- The project is tested on Raspbian GNU/Linux 10 (buster)
-
free5gc is running somewhere.
- free5gc/free5gc v3.0.5 is used for testing the project.
- Tested subscriber(s) have been provisioned by the free5gc web console.
- change the free5gc configurations.
-
free5gc/config/amfcfg.conf
ngapIpList: - 192.168.1.17 # external IP address for N2 address. # - 127.0.0.1 -
free5gc/config/smfcfg.conf
interfaces: - interfaceType: endpoints: - 192.168.1.18 # external IP address for GTP-U (N3) address. # - 127.0.0.8 -
free5gc/src/upf/build/config/upfcfg.yaml
gtpu: - addr: 192.168.1.18 # external IP address for GTP-U (N3) address. # - addr: 127.0.0.8
-
-
Download the related files.
$ git clone https://github.com/hhorai/gnbsim.git $ cd gnbsim -
Build the example binary.
$ make test # (optional) unit test for each libary. $ make -
Edit the configuration file (example.json).
- SUPI(IMSI) is formed by
mcc+mnc+msin. (e.g.208930123456789) NGAPPeerAddrindicates the IP address for N2 used by the AMF side.GTPuIFnameindicates the interface name for GTP-U used by gnbsim.GTPuLocalAddrindicates the IP address for GTP-U used by gnbsim.urlindicates the destined URL for testing U-plane directly accessed by UEs.- wiki page might be helpful to understand the environment.
$ cd example $ vi example.json - SUPI(IMSI) is formed by
-
Run gnbsim
- root privilege is required to set an IP address which is dynamically assigned by the SMF.
$ sudo ./example- Then you can find the following line in the debug message. In this case, your configuration for
OPcandKare both correct.
***** Integrity check passed- And you could also find your UEs in 'subscriber' page in the free5gc web console.