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
) NGAPPeerAddr
indicates the IP address for N2 used by the AMF side.GTPuIFname
indicates the interface name for GTP-U used by gnbsim.GTPuLocalAddr
indicates the IP address for GTP-U used by gnbsim.url
indicates 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
OPc
andK
are both correct.
***** Integrity check passed
- And you could also find your UEs in 'subscriber' page in the free5gc web console.