5glab Architecture¶
Overview¶
Basically there is a .gitlab-ci.yml file which allow to deploy the project on the Plug'in platform.
Since the project is on Gitlab, there is a .gitignore in order to avoid pushing some useless files.
Then, there are two directories :
- "docs" : It contains the whole documentation of the 5glab
- "src" : It contains multiple directories which correspond for each to a dockerized application.
src directory¶
1 2 3 4 5 6 7 8 9 10 | └───src ├───apache2-http2-python3 ├───client ├───NRF │ ├───nf-discovery-webapp │ ├───nf-management-webapp │ ├───nrf-callback_handler │ ├───nrf-db │ └───oauth-authorization └───swagger |
The src directory contains four directories, each one corresponds to an application, a network function or a base Dockerfile.
There is also a docker-compose.yml in order to deploy docker containers.
apache2-http2-python3¶
This directory only contains a Dockerfile which allow to build a common image for the other applications.
client¶
This directory contains several Python files used to launch the NfApiTester tool.
NRF¶
This directory contains the NRF services interfaces and business logic except for oauth-authorization because it's handled by another project on Gitlab.
nrf-discovery-webapp¶
This directory is a Django project which emulates the discovery service of the NRF exposing REST APIs from TS 29.510.
nrf-management-webapp¶
This directory is a Django project which emulates the management service of the NRF exposing REST APIs from TS 29.510.
nrf-callback_handler¶
This a temporary application that allows to handle and view the notifications sent by the NRF.
nrf-db¶
This directory only contains a Dockerfile to create MongoDB container for the NRF.
oauth-authorization¶
This directory contains a Dockerfile and needs to be updated. OAuth2 server is coded with Java. See the "5glab_implementation" for more information.
swagger¶
This directory contains a Dockerfile and OAS files related to the NFs in order to provide a OAS tool to view and the APIs.
docs directory¶
Nothing to say here except that it contains Markdown files to document the project on the AtomStore.