Virtual Time on L2 nFAPI simulator mode
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.