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.The original repostitory has been deleted. This repo is for backup purpose.
-
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/AlohaLuo/gnbsim-backup.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.