- Software
- OS: Ubuntu 18.04 or later versions
- gcc 7.3.0
- Go 1.12.9 linux/amd64
- QEMU emulator 2.11.1
**Note:** Please use Ubuntu 18.04 or later versions and go 1.12.9 linux/amd64You can use go version to check your current Go version.
- Hardware
- CPU: Intel i5 processor
- RAM: 4GB
- Hard drive: 160G
- NIC card: 1Gbps ethernet card
- Hardware recommended
- CPU: Intel i7 processor
- RAM: 8GB
- Hard drive: 160G
- NIC card: 10Gbps ethernet cardThere are no gNB and UE for standalone 5GC available in the market yet.
-
Install the required packages
sudo apt -y updatesudo apt -y install mongodb wget gitsudo systemctl start mongodb
-
Go installation
- If another version of Go is installed
- Please remove the previous Go version
sudo rm -rf /usr/local/go
- Install Go 1.12.9
wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gzsudo tar -C /usr/local -zxvf go1.12.9.linux-amd64.tar.gz
- Please remove the previous Go version
- Clean installation
- Install Go 1.12.9
wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gzsudo tar -C /usr/local -zxvf go1.12.9.linux-amd64.tar.gzmkdir -p ~/go/{bin,pkg,src}echo 'export GOPATH=$HOME/go' >> ~/.bashrcecho 'export GOROOT=/usr/local/go' >> ~/.bashrcecho 'export PATH=$PATH:$GOPATH/bin:$GOROOT/bin' >> ~/.bashrcecho 'export GO111MODULE=off' >> ~/.bashrcsource ~/.bashrc
- Install Go 1.12.9
- If another version of Go is installed
-
Clone free5GC project in
$GOPATH/srccd $GOPATH/srcgit clone https://bitbucket.org/free5GC/free5gc-stage-2.git free5gc
-
Run the script to install dependent packages
-
cd $GOPATH/src/free5gc -
chmod +x ./install_env.sh -
./install_env.sh -
Please ignore error messages during the package dependencies installation process.
-
-
Extract the
free5gc_libs.tar.gzto setup the environment for compilingcd $GOPATH/src/free5gctar -C $GOPATH -zxvf free5gc_libs.tar.gz
-
Compile network function services in
$GOPATH/src/free5gc, e.g. AMF:cd $GOPATH/src/free5gcgo build -o bin/amf -x src/amf/amf.go
-
Run network function services, e.g. AMF:
-
cd $GOPATH/src/free5gc -
./bin/amf -
In step 3, the folder name should remain free5gc. Please do not modify it or the compilation would fail.
-
- Install the required packages
sudo apt -y update sudo apt -y install git gcc cmake autoconf libtool pkg-config libmnl-dev libyaml-dev go get -u github.com/sirupsen/logrus
- Enter the UPF directory
cd $GOPATH/src/free5gc/src/upf
- Build from sources
mkdir buildcd buildcmake ..make -j `nproc`
- Run UPF library test
(In directory: $GOPATH/src/free5gc/src/upf/build)sudo ./bin/testgtpv1
- Config is located at
$GOPATH/src/free5gc/src/upf/build/config/upfcfg.yaml
Start Wireshark to capture any interface with pfcp||icmp||gtp filter and run the tests below to simulate the procedures:
cd $GOPATH/src/free5gc
chmod +x ./test.sha. TestRegistration
(In directory: $GOPATH/src/free5gc)
sudo ./test.sh TestRegistrationb. TestServiceRequest
sudo ./test.sh TestServiceRequestc. TestXnHandover
sudo ./test.sh TestXnHandoverd. TestDeregistration
sudo ./test.sh TestDeregistratione. TestPDUSessionReleaseRequest
sudo ./test.sh TestPDUSessionReleaseRequestThe below commands may be helpful for development purposes.
- Remove POSIX message queues
ls /dev/mqueue/rm /dev/mqueue/*
- Remove gtp tunnels (using tools in libgtpnl)
cd ./src/upf/lib/libgtpnl-1.2.1/tools./gtp-tunnel list
- Remove gtp devices (using tools in libgtpnl)
cd ./src/upf/lib/libgtpnl-1.2.1/toolssudo ./gtp-link del {Dev-Name}
Install packages:
sudo apt-get install pcscd pcsc-tools libccid python-dev swig python-setuptools python-pip libpcsclite-dev
sudo pip install pycryptoDownload PySIM
git clone git://git.osmocom.org/pysim.gitChange to pyscard folder and install
cd <pyscard-path>
sudo /usr/bin/python setup.py build_ext installVerify your reader is ready
sudo pcsc_scanCheck whether your reader can read the SIM card
cd <pysim-path>
./pySim-read.py –p 0Program your SIM card information
./pySim-prog.py -p 0 -x 208 -y 93 -t sysmoUSIM-SJS1 -i 208930000000003 --op=8e27b6af0e692e750f32667a3b14605d -k 8baf473f2f8fd09487cccbd7097c6862 -s 8988211000000088313 -a 23605945You can get your SIM card from sysmocom. You also need a card reader to write your SIM card. You can get a card reader from here or use other similar devices.
- Add debug mode on NFs
- Auto add Linux routing when UPF runs
- Add AMF consumer for AM policy
- Add SM policy
- Allow security NIA0 and NEA0
- Add handover feature
- Add webui
- Update license
- Bugfix for incorrect DNN
- Bugfix for NFs registering to NRF