Skip to content

Virtual Time on L2 nFAPI simulator mode

Anurag Asokan requested to merge feature-virtual-time into develop

Introduction

L2-Simulator setup needs the OAI eNB to run on nFAPI mode, where the L1 layer is bypassed and communication between OAI UE and eNB or nrUE and gNB happens over the nFAPI/FAPI P7 messages.

To accommodate the requirement of testing slower UE’s or UE’s in development stage which has processing time higher than slot/subframe duration, a feature called virtual time is introduced. With this feature UE can govern the slot/subframe boundary by sending an acknowledgement indicating its completion all its UL/DL processing for the current TTI.

At present this feature works on L2 nFAPI simulation mode only.

Setup

Get the source code from OAI

$ git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git

To checkout any specific tag under this repository

$ cd openairinterface5g
$ git checkout feature-virtual-time

This document refer paths to openairinterface5g and Multi-Ue-Proxy; the paths to these folders will be referred to as<PATHTOOAI> and <PATHTOPROXY> respectively.

  • <PATHTOOAI> = /path/to/current/directory/openairinterface5g

  • <PATHTOPROXY> = /path/to/current/directory/Multi-Ue-Proxy

In future active stable branch will be ‘develop’ branch.

$ source oaienv
$ cd cmake_targets/
$ ./build_oai  --eNB --UE -c
$ ../targets/bin/conf2uedata -c ../ci-scripts/conf_files/episci/episci_ue_test_sfr.conf -o .
$ ../targets/bin/usim -g -c ../ci-scripts/conf_files/episci/episci_ue_test_sfr.conf -o .
$ ../targets/bin/nvram -g -c ../ci-scripts/conf_files/episci/episci_ue_test_sfr.conf -o .

OAI eNB

cd ../..
sudo -E  ./ran_build/build/lte-softmodem -O ../ci-scripts/conf_files/episci/proxy_rcc.band7.tm1.nfapi.conf --virtual-time  --log_config.global_log_options level,nocolor,time,thread_id

Multi-Ue-Proxy

$ git clone https://github.com/EpiSci/oai-lte-5g-multi-ue-proxy.git
$ cd <PATHTOPROXY>
$ git checkout a6169d8cb8ce4773ac03934b6723b26e70793b3e
$ make -j<number-of-jobs>

number-of-jobs can be based on the number of cores in your PC.

Use the -v option to enable virtual time mode.

sudo ./build/proxy 1 -v

OAI UE

$ cd <PATHTOOAI>/cmake_targets
$ sudo OPENAIR_DIR=../ ./ran_build/build/lte-uesoftmodem -O ../ci-scripts/conf_files/episci/proxy_ue.nfapi.conf --L2-emul 5 --virtual-time --num-ues 1 --node-number 2 2>&1 | tee ue.log

An additional argument --virtual-time was introduced to enable and disable virtual time on OAI-eNB & OAI-UE.

Edited by Anurag Asokan

Merge request reports