Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thor: Fine-grained Per-UE Baseband Routing in vRAN

This repository contains the reference implementation of Thor, presented in the ACM MobiCom'26 paper, "Thor: Fine-grained Per-UE Baseband Routing in vRAN".

Today's vRANs bind every UE in a cell to a single L1 (PHY) implementation. Thor removes that constraint: it lets multiple L1 instances run concurrently within the same cell and routes each UE to its designated L1, enabling incremental L1 updates, in-cell A/B testing, and per-UE service differentiation. Thor works over the standard FAPI and O-RAN fronthaul (OFH) interfaces and requires no changes to the L2+ stack or the RU.

Overview

Thor interposes two lightweight, standards-compliant middleboxes on the existing vRAN datapath:

  • thor-fapi/ — a user-space nFAPI middlebox at the MAC–PHY interface. It virtualizes the FAPI endpoint between one L2+/MAC stack and multiple L1s, routes control-plane scheduling messages per UE using an RNTI-to-L1 mapping, mirrors bulk user-data messages, and merges uplink indications back into a single logical FAPI stream.
  • thor-ofh/ — a DPDK-based fronthaul middlebox at the OFH interface. It merges the downlink IQ output of multiple L1s into a single coherent resource grid and mirrors uplink IQ samples to all L1s, enabling concurrent multi-L1 operation over an unmodified O-RU.

Both directories include their own build scripts, unit/integration tests, and the control clients used to manage L1 lifecycles at runtime (add/ remove/ activate/ deactivate).

In addition, oai-patch/ contains the PRB-skipping patch for the OpenAirInterface5G (OAI) gNB L1. Thor-FAPI masks uplink PUSCH/PUCCH allocations with the reserved RNTI 0xFFF0 on every L1 that does not own the UE. The patch makes OAI skip decoding those allocations, so each L1 only processes the PRBs of the UEs routed to it. It is required on every OAI L1 attached to Thor and was used with OAI tags 2026.w08 and 2026.w09 in the paper. See oai-patch/README.md.

Getting started

Requirements: an x86-64 host with AVX-512 support (Ice Lake or newer, required by Thor-OFH), ≥ 8 GB RAM, ≥ 10 GB free disk, and Docker. The bundled tests need no NIC, DPDK hugepages, or radio hardware.

git clone https://github.com/NUS-CIR/Thor.git
cd Thor

Note: Instructions for the end-to-end setup (Thor-CTRL and the full over-the-air testbed deployment) will be added at a later stage.

Running the tests

Build the image and run the unit/integration tests for each middlebox:

cd thor-fapi/ && ./build_image.sh --test
cd thor-ofh/ && ./build_image.sh all --run

See thor-fapi/README.md and thor-ofh/README.md for build options, runtime control commands, and deployment details.

Citation

If you find this work relevant to your research, please cite the following:

@INPROCEEDINGS{2026-MOBICOM-Thor,
  author={Xin Zhe Khooi and Satis Kumar Permal and Dong Hyeok Kim and Robert Schmidt and Min Suk Kang and Mun Choon Chan},
  booktitle={ACM MobiCom},
  title={{Thor: Fine-grained Per-UE Baseband Routing in vRAN}},
  year={2026},
  doi={10.1145/3795866.3844159}
}

License

Thor-specific components are released under the MIT License unless otherwise stated.

Third-party dependencies remain under their own licenses: thor-ofh builds on RANBooster (MIT, see thor-ofh/LICENSE) and O-RAN SC o-du/phy (Apache 2.0, see thor-ofh/NOTICE); thor-fapi integrates OpenAirInterface5G components, and oai-patch modifies OpenAirInterface5G source code; both are under the OAI Public License V1.1.

Contact

For any questions, or if you have any comments or feedback, there are two ways to reach out.

  • File a GitHub issue under this repo.
  • Drop an email to khooixz [at] comp [dot] nus [dot] edu [dot] sg.

About

ACM MobiCom'26 -- "Thor: Fine-grained Per-UE Baseband Routing in vRAN".

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages