Skip to content

Prabhjot-Sethi/gnbsim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gnbsim

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.

Getting Started

Prerequisites

  • 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
        

Installing and testing

  • 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
    
  • 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 and K are both correct.
    ***** Integrity check passed
    
    • And you could also find your UEs in 'subscriber' page in the free5gc web console.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •