Skip to content

cl0713/vota

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VOTA: Parallelizing 6G-RAN Experimentation with Virtualized Over-The-Air Workloads

lab

Demo video

Overview

This repository contains instructions and files for setting up a virtualized 5G/6G testbed from our paper.

Our setup

  • Workstation for gNB and core network
    • CPU: Intel Core i9-14900K
    • OS: Ubuntu 24.04 LTS (64-bit)
    • RAM: 128 GB DDR5 RAM
    • GPU: NVIDIA RTX 4090
  • Desktop for UE
    • CPU: Intel Core i7-8700
    • OS: Ubuntu 22.04.5 LTS
    • RAM: 16 GB DDR4 RAM
  • RU: USRP X310
  • UE: Quectel 520/530

Install LXD in both machines

Please refer to the offical documentaion: link

Install LXD as a snap

snap install lxd

Configure LXD

lxd init

Set up the web UI, for details: link

lxc config set core.https_address :8443

Set up workstation

1. Create a container

lxc launch <image_server>:<image_name> <instance_name>

2. USRP X310 passthrough

2.1 Create a Physical Nework for the network interface connecting to the USRP

lxc network create <network> --type=physical parent=<interface>

2.2 Attach USRP to the container

lxc network attach [<remote>:]<network> <instance> [<device name>] [<interface name>] [flags]

2.3 Set up USRP in the container

sudo ifconfig <network> 192.168.40.1
sudo ethtool -G <network> tx 4096 rx 4096
sudo ip link set dev <network> mtu 9000

2.4 Install openairinterface with UHD, please refer to the offical documentation

2.5 Verify if USRP is connected, there should be no errors

sudo uhd_usrp_probe

3 Quectel modem passthrough

3.1 Attach /dev/cdc-wdmX, wwanX, USB device according to productid and vendorid as unix-hotplug

3.2 Get Quectel-CM from your vendor and compile it

3.3 Config the modem using minicom

sudo minicom ttyUSB<X>
AT+QMBNCFG="select","ROW_Commercial"
at+cfun=1,1
at+qnwprefcfg="mode_pref",nr5g
at+qnwprefcfg="nr5g_band",78
at+cgdcont=1,"IP","oai"

4. Run the experiment

4.1 Run Open5gs core

cd config/open5gs_docker
docker compose up --build 5gc

You can access the webui in port 9999

In another terminal

docker exec -it open5gs_5gc /bin/bash
iperf3 -s

4.2 Run gNB, list of config files we use n78 40mhz, n77 100mhz

sudo taskset -c <range of cores> nice -n -20 <path to oai>/cmake_targets/ran_build/build/nr-softmodem -O <path to config file> --gNBs.[0].min_rxtxtime 2 --sa --usrp-tx-thread-config 1 -E --continuous-tx

4.3 Run Quectel UE: script

sudo -E python3 quectel_at.py --interface <inetface_of_quectel> --port_location </dev/ttyUSBX>

To cite our work

@inproceedings{vota,
author = {Liu, Chang and Le, T. D. Khoa and Saini, Rahul and Joshi, Kishor C. and Exarchakos, George},
title = {VOTA: Parallelizing 6G-RAN Experimentation with Virtualized Over-The-Air Workloads},
year = {2025},
booktitle = {Proceedings of the 1st Workshop on Open Research Infrastructures and Toolkits for 6G},
}

About

VOTA: Parallelizing 6G-RAN Experimentation with Virtualized Over-The-Air Workloads

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors