gnbsim

module
v0.0.0-...-8b9ded4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2021 License: MIT

README

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.

Directories

Path Synopsis
encoding
per
Package per is implementation for Basic Pckage Encoding Rule (PER) in ALIGNED variant.
Package per is implementation for Basic Pckage Encoding Rule (PER) in ALIGNED variant.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL