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.