Skip to content

LABORA-INF-UFG/NetSoft2020-Tutorial4-Demo1-Exp1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NetSoft2020 - Tutorial4 - Demo1 - Exp1

Expected result

After installation, two containers are available: one running the UE and other running the eNB. As illustrated in the figure below, UE can communicate with eNB through the IP stack, i.e., conventional tools such 'ping' or 'iperf' must work. This environment is useful for studies relatated to RAN in general, e.g., LTE protocol stack.

Installation

Requirements

The installation can be done directly over the host operating system (OS) or inside a virtual machine (VM). System requirements:

  • CPU type: x86-64 (specific model and number of cores only affect performance)
  • RAM: 4 GB
  • Disk space: 40 GB
  • Ubuntu 18.04 LTS

Steps

Install python-minimal:

sudo apt update && apt -y install python-minimal

Install git:

sudo apt -y install git

Clone this repository:

git clone https://github.com/LABORA-INF-UFG/NetSoft2020-Tutorial4-Demo1-Exp1.git

Install Ansible:

sudo apt -y install ansible

Run the following Ansible playbook (password for sudo is required):

cd NetSoft2020-Tutorial4-Demo1-Exp1 && ansible-playbook -K Demo1Exp1.yml

Check if the containers are up:

sudo docker ps

The output should be similar to the following:

Done! The software is successfully installed.

Tests

In order to make the tests, create two (command-line) terminals, one for the eNB and the other for the UE.

Access the eNB container:

sudo docker exec -ti enb bash

List the network interfaces:

ifconfig

The output should be similar to the following (with only 2 interfaces):

Access the UE container:

sudo docker exec -ti ue bash

List the network interfaces:

ifconfig

The output should be similar to the following (with only 2 interfaces):

In the eNB terminal, start the eNB software:

cd /root/enb/cmake_targets/ran_build/build && sudo -E ./lte-softmodem -O /root/enb/ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf --noS1 > enb.log 2>&1&

Still in the eNB terminal, wait for some seconds until the software starts, then list the network interfaces:

sleep 10 && ifconfig

The output should be similar to the following (with 4 interfaces):

In the UE terminal, start the UE software:

cd /root/ue/cmake_targets/ran_build/build && ./lte-uesoftmodem -O /root/ue/ci-scripts/conf_files/ue.nfapi.conf --L2-emul 3 --num-ues 1 --nums_ue_thread 1 --nokrnmod 1 --noS1 > ue.log 2>&1&

Still in the UE terminal, wait for some seconds until the software starts and connects to the eNB, then list the network interfaces:

sleep 10 && ifconfig

The output should be similar to the following (with 4 interfaces):

Still in the UE terminal, verify the connectivity with the eNB:

ping -I oaitun_ue1 10.0.1.1 -c 5

The output should be similar to the following:

Additional comments

UE and eNodeB (eNB) are simulated by OpenAirInterface (OAI) L2 nFAPI Simulator. This simulator allows to test L2 and above Layers using the nFAPI interface.

In this experiment, we used the simulator in the 'noS1' mode, i.e., RAN without core.

Despite we'd simulated just one UE, you might run multiple UEs with the UE container. To do that you should modify the parameter '--num-ues' putting the desired UE number when running the command to start the UE software.

To create a different topology you need to modify the Demo1Exp1.yml file.

About

UE and RAN emulated by software, without the core

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages