The 5GMS Application Function (AF) is a Network Function that forms part of the 5G Media Services framework as defined in ETSI TS 126.501.
Additional information can be found at: https://5g-mag.github.io/Getting-Started/pages/5g-media-streaming/
A 5GMSd Application Function (AF), which can be deployed in the 5G Core Network or in an External Data Network, is responsible for managing the 5GMSd System. The AF is a logical function which embodies the control plane aspects of the system, including provisioning, configuration, and reporting, among others. A 5GMSd Application Provider provisions 5GMS functions using a RESTful HTTP-based provisioning interface at reference point M1d. Another RESTful HTTP-based configuration and reporting interface is exposed to UE-based 5GMSd Clients at reference point M5d.
This AF uses the Open5GS framework to implement the network function.
A list of currently supported features is available here.
sudo apt install git python3-pip python3-venv python3-setuptools python3-wheel ninja-build build-essential flex bison git 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 libpcre2-dev curl wget default-jdk cmake
sudo python3 -m pip install meson
python3 -m pip install build pyOpenSSL
Release tar files can be downloaded from https://github.com/5G-MAG/rt-5gms-application-function/releases.
The source can be obtained by cloning the github repository.
For example to download the latest release you can use:
cd ~
git clone --recurse-submodules https://github.com/5G-MAG/rt-5gms-application-function.git
cd rt-5gms-application-function
git submodule update
The build process requires a working Internet connection as the API files are retrieved at build time.
To build the 5GMS Application Function from the source:
cd ~/rt-5gms-application-function
meson build
ninja -C build
Note: Errors during the meson build
command are often caused by missing dependencies or a network issue while trying to retrieve the API files and openapi-generator
JAR file. See the ~/rt-5gms-application-function/build/meson-logs/meson-log.txt
log file for the errors in greater detail. Search for generator-5gmsaf
to find the start of the API fetch sequence.
To install the built Application Function as a system process:
cd ~/rt-5gms-application-function/build
sudo meson install --no-rebuild
The Application Function requires a 5GMS Application Server (release v1.1.2 or above) to be running. Please follow the instructions for installing and running the 5GMS Application Server before starting the Application Function.
The Application Function can be executed with the command:
/usr/local/bin/open5gs-msafd
This uses the installed configuration file at /usr/local/etc/open5gs/msaf.yaml
. You can use the -c
command line parameter to
specify an alternative configuration file. For example:
/usr/local/bin/open5gs-msafd -c alternate-msaf.yaml
The source example configuration file can be found in ~/rt-5gms-application-function/src/5gmsaf/msaf.yaml
.
Also see the Configuring the Application Function page for details on configuration.
Follow the Testing as a Local User page for setting up a test environment without requiring full system installation.
The details of these tests change with different versions of the 5GMSd Application Function.
If you are testing the v1.2.x versions then please visit the Testing the M1 Interface on v1.2.0 page.
If you are testing the M1 interface on 5GMSd Application Function v1.3.0 to v1.4.0 then please visit the Testing the M1 Interface on v1.3.0 page.
For testing the M1 interface on 5GMSd Application Function v1.4.1 or later, then please visit the Testing the M1 Interface on v1.4.1 page.
Depending on which version of the 5GMSd Application Function you wish to test, the commands to test the interface at reference point M3 change.
If you wish to test 5GMSd Application Function v1.1.x then please see the Testing the M3 Interface on v1.1.0 page.
For versions after v1.1.x (i.e. v1.2.0 and above) please use the Testing the M3 Interface on v1.2.0 page.
The details of these tests change with different versions of the 5GMSd Application Function.
If you are testing versions up to v1.1.x then please visit the Testing: M5 Interface on v1.0.0 page.
If you are testing the M5 interface on 5GMSd Application Function v1.2.x please visit the Testing the M5 Interface on v1.2.0 page.
If you are testing the M5 interface on 5GMSd Application Function v1.3.0 or later please visit the Testing the M5 Interface on v1.3.0 page.
For detailed instructions on how to use the Postman Collection please refer to this documentation.
This project follows
the Gitflow workflow. The
development
branch of this project serves as an integration branch for new features. Consequently, please make sure to
switch to the development
branch before starting the implementation of a new feature.
The reference implementation of the Network Assistance and Dynamic Policies features was funded by the UK Government through the REASON project.