This repository provides a 5G Data Collection Service Provider library and Application Function. The library is designed to be used by this stand alone Application Function or to be used as an embedded service within other Application Functions such as the 5GMS Application Function. The library can provide the interfaces designated as R1-R6 in the 3GPP TS 26.531 specification (See Clause 4.2). The defautl Application Function implementation here implements some of the data reports and events defined in 3GPP TS 26.531, 3GPP TS 26.532 and 3GPP TS 29.517.
Additional information can be found at: https://5g-mag.github.io/Getting-Started/pages/ue-data-collection-reporting-exposure/
The library is designed to be used by this stand alone Application Function or to be used as an embedded service within other Application Functions such as the 5GMS Application Function. The library can provide the interfaces designated as R1-R6 in the 3GPP TS 26.531 specification (See Clause 4.2). Individual interfaces can be disabled at application start up by the controlling Application Function if it implements those, or similar, interfaces itself. The Application Function interacts with the Service Provider library via a C function API designed to work with Network Functions written for Open5GS.
This Application Function uses the Service Provider library to implement some of the data reports and events defined in 3GPP TS 26.531, 3GPP TS 26.532 and 3GPP TS 29.517.
This is implemented as a Network Function based on the Open5GS framework. The runtime should integrate with other 5G application suites via the HTTP APIs.
A list of currently supported features is available here (actual page TDB).
If you wish to run the optional regression tests then you will need to use Ubuntu 24.04 (Noble Numbat) or later as the regression tests rely on command line tools from curl v8.3.0 or later and util-linux v2.39 or later. To install the dependencies, including those for the regression tests, then you can use the following commands on Ubuntu 24.04 or later.
sudo apt install git ninja-build build-essential flex bison libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libtins-dev libtalloc-dev libpcre2-dev curl wget default-jdk cmake jq util-linux-extra python3-h2
sudo python3 -m pip install --upgrade meson
If you are not planning on running the regression tests then you can use these commands on Ubuntu to install the build dependencies.
sudo apt install git ninja-build build-essential flex bison libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libtins-dev libtalloc-dev libpcre2-dev curl wget default-jdk cmake
sudo python3 -m pip install --upgrade meson
Release tar files can be downloaded from https://github.com/5G-MAG/rt-data-collection-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-data-collection-application-function.git
The build process requires a working Internet connection as the API files are retrieved at build time.
To build the 5G Data Collection Application Function from the source:
cd ~/rt-data-collection-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-data-collection-application-function/build/meson-logs/meson-log.txt
log file for the errors in greater detail. Search for
generator-libspdc
to find the start of the API fetch sequence.
There are some regression tests that can be run to check that the data collection library and application function are behaving as expected. Please note the dependencies in the "Install dependencies" section above for running the regression tests. The regression tests can be executed using:
cd ~/rt-data-collection-application-function
meson test -C build regression
This will build the Data Collection AF (if not already built) and then will start an Open5GS NRF and the Data Collection AF, run the regression tests and shutdown the Open5GS NRF and Data Collection AF. The results of the testing are displayed.
To install the built Application Function as a system process:
cd ~/rt-data-collection-application-function/build
sudo meson install --no-rebuild
The Application Function requires a running 5G Core NRF Network Function to register with. If you do not have a running 5G Core, the Open5GS Network Functions are installed as part of the installation procedure and the Open5GS NRF can be started using:
sudo /usr/local/bin/open5gs-nrfd &
Make sure the IP address and port details of the NRF you are running are configured in the nrf
section of /usr/local/etc/open5gs/dcaf.conf
and then run the Data Collection Application Function. For example:
sudo /usr/local/bin/open5gs-dcafd &
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.