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 downlink 5GMS Application Function (AF), which can be deployed in the Trusted Data Network or in an External Data Network, is responsible for managing the downlink 5G Media Streaming System. The AF is a logical Network Function which embodies the provisioning, configuration and reporting aspects of the 5GMS system, among others. A 5GMSd Application Provider provisions 5GMS services 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.
A setup comprising the 5GMSd AF and 5GMSd AS based on Docker Compose can be found in the rt-5gms-examples project.
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 are different.
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.