Skip to content

lasseufpa/connected-ai-testbed

Repository files navigation

Connected AI testbed

Connected AI testbed allows building flexible and realistic scenarios where different network topologies for 4G/5G and quickly deploy them.

UFPA_Live_5G_Network__2_

If you find this project useful in your research, please consider citing:

@ARTICLE{9290141,
  author={C. V. {Nahum} and L. {De Nóvoa Martins Pinto} and V. B. {Tavares} and P. {Batista} and S. {Lins} and N. {Linder} and A. {Klautau}},
  journal={IEEE Access}, 
  title={Testbed for 5G Connected Artificial Intelligence on Virtualized Networks}, 
  year={2020},
  volume={8},
  number={},
  pages={223202-223213},
  doi={10.1109/ACCESS.2020.3043876}
}

Quickstart Guide

This document is a quickstart and a getting started guide in one, intended for your first run-through of Connected AI testbed.

Open-source platforms used

  • Free5GC: The free5GC is an open-source project for 5th generation (5G) mobile core networks. The source code of free5GC stage 1 can be downloaded from here.

  • OAI Radio Access Network (OAI-RAN): This project implements 4G LTE and 5G Radio Access Network. Both ENodeB and User Equipment (UE) are implemented.

    • Already today OAI offers several functional splits, for example between the Radio Cloud Center (RCC) and a Remote Radio Unit (RRU), know as C-RAN mode of the OAI eNB.

    • Also, OAI can be run in both monolithic ENodeB mode and nFAPI mode (which PNF runs PHY and VNF runs MAC,etc).

  • FlexRAN: A Flexible and programmable platform for Software-Defined Radio Access Networks.

Requirements

Note: Please do not try if you don't have Free5GC and OAI-RAN Minimum Requirements as Free5GC and OAI needs lot of packages and its very sensitive to version numbers, linux kernel, etc.

Free5GC Minimum Requirements

OAI-RAN Minimum Requirements

OAI-RAN Kernel Requirements for RAN

Install Docker, Docker-Compose, and Kubernetes in all computers of your cluster.

CAI hardware and operating-system

We use the specific hardware and operating-system constraints below for our real-time operation:

In our setup, we associate each of the three machines with functions: cloud, edge and antenna

Installation

Step 1: create a Kubernetes Cluster.

Step 2: install Helm in your Master Node.

Step 3: Install a Container Network Interface (CNI):

kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

Step 4: Label the nodes as antenna, edge or cloud:

kubectl label nodes <nodename> environment=<node-label(for example: antenna, edge or cloud)>

Step 5: Clone this Git repository (and submodules):

git clone --recurse-submodules https://github.com/lasseufpa/connected-ai-testbed.git

Step 6: Build the OAI-RAN and Free5GC Docker images in all kubernetes cluster nodes

In README of /oai-ran-docker and /free5gc-docker-kube repos you will find a detailed explanation of how to perform the builds

Configuration

The default configuration is the Core, Radio Cloud Center (RCC) and Remote Radio Unit (RRU) on individual nodes. To change, modify core.yaml, ran.yaml and/or flexran.yaml according to the desired configuration.

UFPA_Live_5G_Network__1_

UFPA_Live_5G_Network__2_

UFPA_Live_5G_Network__3_

Real RAN and Emulated RAN

Our testbed has two possibilities for the RAN: using real equipment and using an emulated version.

The version using equipment is "rcc-rru" and the emulated version is "vnf-pnf".

The option key is defined in the RAN configuration file

Run

run.py

Run run.py to create CORE, RAN, and/or FLEXRAN.

-c: This option results in reading the indicate <.yaml> file and creating a Core that contain these file configuration.

-r: This option results in reading the indicate <.yaml> file and creating a RAN that contain these file configuration.

-f: This option results in reading the indicate <.yaml> file and creating a FlexRAN that contain these file configuration.

Usage example:

python3.6 run.py -c core.yaml -r ran.yaml -f flexran.yaml

python3.6 run.py -r ran.yaml

Multiple scenarios

Multiple scenarios are created by associating IDs of modified CORE, RAN, and FLEXRAN yaml files.

UFPA_Live_5G_Network__4_

UFPA_Live_5G_Network__5_

UFPA_Live_5G_Network__6_

User management

To acess the Core User management visit:

http://<CORE NODE IP>: <WEBAPP service port>/

The default username and password are “admin” and “1423”.

For a user to enter the network it is necessary that the IMSI, security context (K, OPc, AMF), and APN of the user SIMCARD are compatible with those inserted in the database