Testing the 5GMSd Application Function as a Local User
TODO: Intro
Build Dependencies
Before building the 5GMSd Application Function, there are a few build dependencies that are needed.
The following are needed:
- Commands
- bison
- C compiler
- curl
- flex
- git
- java
- meson (version 0.63.0 or higher)[1]
- ninja
- pip
- python3
- wget
- Development libraries
- sctp
- gnutls
- yaml
- nghttp2
- talloc
- microhttpd
- curl
- mongo DB
- openssl
- gcrypt
- tins
- idn
- Python modules
- venv
- yaml
Notes:
- [1]:
meson
must be at least version 0.63.0 to patch open5gs properly, therefore it is suggested that this be installed using the python pip module to pull the latest version rather than relying on the packaged version from your operating system.
These can be installed using your system package manager, for example:
Ubuntu and derivatives
sudo apt install bison build-essential curl flex git default-jdk ninja-build wget python3-pip python3-venv python3-setuptools python3-wheel python3-yaml libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev
sudo python3 -m pip install build meson
Retrieving the source
When developing always use the development
branch of the 5GMSd Application Function.
If you are intending to commit code back to the project then we advise creating your own “Fork” of the repository at https://github.com/5G-MAG/rt-5gms-application-function, and working on your own fork.
To clone the source use:
cd
git clone -b development --recurse-submodules git@github.com:${github_username}/rt-5gms-application-function.git
Where ${github_username}
is your GitHub user name.
If you are not intending committing changes back to the repository (only testing the latest development version) then you can obtain a clone using:
cd
git clone -b development --recurse-submodules https://github.com/5G-MAG/rt-5gms-application-function.git
If you wish to commit back changes then these should be pushed to a branch on your fork and PR raised to submit the changes back to the development branch of the 5G-MAG repository.
Building
cd ~/rt-5gms-application-function
meson setup --prefix=`pwd`/install build
ninja -C build
Installing
If you are upgrading from one release to the next then it is advisable to delete the old installed msaf.yaml
configuration and replace it with a new one. To delete the old installed configuration use:
cd ~/rt-5gms-application-function
rm -f install/etc/open5gs/msaf.yaml
To install the Application Function, its default configuration and supporting scripts:
cd ~/rt-5gms-application-function
meson install -C build --no-rebuild
It is advisable to review the configuration file in ~/rt-5gms-application-function/install/etc/open5gs/msaf.yaml
before running the 5GMSd Application Function for the first time after installation.
Configuring
The configuration can be found in ~/rt-5gms-application-function/install/etc/open5gs/msaf.yaml
. Edit this YAML file to change the operating configuration of the 5GMSd Application Function.
See the Configuring the Application Function page for more details on the settings.
Running
Once the configuration has been set, execute the 5GMSd Application Function using:
~/rt-5gms-application-function/install/bin/open5gs-msafd
For v1.2.0 to v1.4.0:
To run the m1-session
tool with a local user installation the python path for the user installed module needs to be included in the PYTHONPATH
environment variable.
PYTHONPATH=`find ~/rt-5gms-application-function/install -type d '(' -name 'site-packages' -o -name 'dist-packages' ')' -print` export PYTHONPATH
The default configuration for the m1-session
tool will try to write the persistent store to /var/cache/rt-5gms/m1-client
. This may not be accessible as a local user and therefore it is a good idea to change the data_store
configuration setting to a place where the local user can write to:
~/rt-5gms-application-function/install/bin/m1-session configure set data_store ~/m1-client-data-store
For v1.4.1 and above:
The m1-session
tool has moved to the rt-5gms-application-provider repository. Please follow the instructions in that repository for manual installation of the M1 python tools and classes to install the msaf-configuration
, m1-session
and m1-client
tools either to your system or to a virtual python environment.
If you have installed the tools in the python virtual environment then activate the environment before proceeding, for example:
source venv/bin/activate
Then you can change the data store directory, for example:
m1-session configure set data_store ~/m1-client-data-store
Stopping
Press CTRL-C on the terminal from which the 5GMSd Application Function is running.