Table of Contents Hardware Tested Questions Recommended Environment Installation A. Pre-requisite B. Install Control Plane Entities C. Install User Plane Function (UPF) Run A. Run Core Network B. Run...

Table of Contents

Hardware Examined

There are no gNB and UE for standalone 5GC on hand within the market yet.


For questions and assist please utilize the legitimate forum. The project record of this repo is exclusively
for malicious program stories and efficiency requests.

Counseled Ambiance

  • Software
    • OS: Ubuntu 18.04
    • gcc 7.3.0
    • Trip 1.12.9 linux/amd64
    • kernel version 5.0.0-23-generic (MUST for UPF)

Present: Please utilize Ubuntu 18.04 and kernel version 5.0.0-23-generic

You would utilize coast version to take a look at your most fresh Trip version.

- Hardware
    - CPU: Intel i5 processor
    - RAM: 4GB
    - Onerous power: 160G
    - NIC card: 1Gbps ethernet card

- Hardware suggested
    - CPU: Intel i7 processor
    - RAM: 8GB
    - Onerous power: 160G
    - NIC card: 10Gbps ethernet card


A. Pre-requisite

  1. Required kernel version 5.0.0-23-generic. This quiz is from the module
    gtp5g that we has mature. Any longer cramped print
    please take a look at right here

    # Test kernel version
    $ uname -r
  2. Require coast language

    • If one other version of Trip is installed
      • Please establish away the outdated Trip version
        • sudo rm -rf /usr/native/coast
      • Set up Trip 1.12.9
        sudo tar -C /usr/native -zxvf go1.12.9.linux-amd64.tar.gz
    • Beautiful set up
      • Set up Trip 1.12.9
        sudo tar -C /usr/native -zxvf go1.12.9.linux-amd64.tar.gz
        mkdir -p ~/coast/{bin,pkg,src}
        echo 'export GOPATH=$HOME/coast' >> ~/.bashrc
        echo 'export GOROOT=/usr/native/coast' >> ~/.bashrc
        echo 'export PATH=$PATH:$GOPATH/bin:$GOROOT/bin' >> ~/.bashrc
        echo 'export GO111MODULE=off' >> ~/.bashrc
        offer ~/.bashrc
  3. Required programs for defend watch over plane

    sudo upright -y replace
    sudo upright -y set up mongodb wget git
    sudo systemctl inaugurate mongodb
  4. Required programs for user plane

    sudo upright -y replace
    sudo upright -y set up git gcc cmake autoconf libtool pkg-config libmnl-dev libyaml-dev
    coast bring collectively -u
  5. Network Surroundings

    sudo sysctl -w salvage.ipv4.ip_forward=1
    sudo iptables -t nat -A POSTROUTING -o <dn_interface> -j MASQUERADE
    sudo systemctl conclude ufw

B. Set up Retain watch over Airplane Entities

  1. Clone free5GC project in $GOPATH/src

    cd $GOPATH/src
    git clone --recursive -b v3.0.2 -j `nproc`
    cd free5gc

    (Now not compulsory) If you will must make utilize of the nightly version, runs:

    cd $GOPATH/src/free5gc
    git checkout grasp
    git submodule sync
    git submodule replace --init --jobs `nproc`
    git submodule foreach git checkout grasp
    git submodule foreach git pull --jobs `nproc`
  2. Flee the script to set up dependent programs

    cd $GOPATH/src/free5gc
    chmod +x ./
    Please ignore error messages at some stage within the kit dependencies set up project.

    In step 2, the folder name will must remain free5gc. Please attain no longer modify it or the compilation would fail.

  3. Assemble network purpose products and services in $GOPATH/src/free5gc individually, e.g. AMF (redo this step for each NF), or

    cd $GOPATH/src/free5gc
    coast construct -o bin/amf -x src/amf/amf.coast

    To construct all network capabilities in one divulge

C. Set up Client Airplane Purpose (UPF)

  1. Please take a look at Linux kernel version if it is 5.0.0-23-generic

    Rep Linux kernel module 5G GTP-U

    git clone
    cd gtp5g
    sudo construct set up
  2. Kind from sources

    cd $GOPATH/src/free5gc/src/upf
    mkdir construct
    cd construct
    cmake ..
    construct -j`nproc`

Present: Config is located at $GOPATH/src/free5gc/src/upf/construct/config/upfcfg.yaml


A. Flee Core Network

Possibility 1. Flee network purpose carrier individually, e.g. AMF (redo this for each NF), or

cd $GOPATH/src/free5gc

Present: For N3IWF desires divulge configuration in fragment B

Possibility 2. Flee whole core network with divulge


B. Flee N3IWF (For my fragment)

To bustle N3IWF, make certain the machine is equipped with three network interfaces. (one is for connecting AMF, one other is for connecting UPF, the opposite is for IKE daemon)

We must configure each interface with a correct IP take care of.

We have now to abolish an interface for IPSec visitors:

# replace <...> to correct price
sudo ip link add ipsec0 form vti native <IKEBindAddress> distant key <IPSecInterfaceMark>

Put an take care of to this interface, then teach it up:

# replace <...> to correct price
sudo ip take care of add <IPSecInterfaceAddress/CIDRPrefix> dev ipsec0
sudo ip link converse dev ipsec0 up

Flee N3IWF (root privilege is required):

cd $GOPATH/src/free5gc/
sudo ./bin/n3iwf

Take a look at

Originate Wireshark to decide on any interface with pfcp||icmp||gtp filter and bustle the tests below to simulate the procedures:

cd $GOPATH/src/free5gc
chmod +x ./take a look

a. TestRegistration

(In listing: $GOPATH/src/free5gc)
./take a look TestRegistration

b. TestServiceRequest

./take a look TestServiceRequest

c. TestXnHandover

d. TestDeregistration

./take a look TestDeregistration

e. TestPDUSessionReleaseRequest

./take a look TestPDUSessionReleaseRequest

f. TestPaging

./take a look TestPaging

g. TestN2Handover

./take a look TestN2Handover

h. TestNon3GPP

i. TestULCL

./ -om 3 TestRegistration

For extra cramped print, you would perchance maybe reference to our wiki

Launch Present

Detailed modifications for each birth are documented within the birth notes.

Learn Extra

Internet of Things
No Comment

Leave a Reply