Skip to content

Reference implementations of middleboxes for enhancing the fronthaul capabilities of Open RAN DU network functions

License

Notifications You must be signed in to change notification settings

NUS-CIR/RANBooster

 
 

Introduction

Reference middlebox implementations for enhancing the fronthaul capabilities of Open RAN DU network functions.

The repository currently provides the following implementations:

  • Distributed Antenna System (DPDK and XDP implementation)
  • Distributed MIMO (DPDK and XDP implementation)
  • Real-time PRB monitoring (DPDK and XDP implementation)
  • RU sharing (DPDK implementation)

Build instructions

Here we present instructions for building the middleboxes in Ubuntu 24.04. The guide uses the variable $RANBOOSTER_SRC_PATH to refer to the root directory of the repo.

Note: The guide assumes the use of a Mellanox ConnectX-6 Dx NIC. For a different NIC, you might need to adjust the dependencies accordingly.

First, we install the system dependencies:

sudo apt install -y wget cmake clang gcc g++ git libnuma-dev python3-pyelftools \
            meson ninja-build pkg-config libbpf-dev libelf-dev iproute2 \
            linux-tools-common linux-tools-generic libxdp-dev libibverbs-dev \
            ibverbs-providers libibverbs1 rdma-core

Next, we build DPDK. The code has been tested with DPDK 24.11.3 LTS:

mkdir -p $RANBOOSTER_SRC_PATH/dpdk-ranbooster
wget -O - https://fast.dpdk.org/rel/dpdk-24.11.3.tar.xz | tar -xJ -C $RANBOOSTER_SRC_PATH/dpdk-ranbooster --strip-components=1
cd $RANBOOSTER_SRC_PATH/dpdk-ranbooster
meson build
cd build && ninja

We then prepare the code, setup the environment and build the code:

cd $RANBOOSTER_SRC_PATH
source setup_ranbooster_env.sh
./init_and_patch_submodules.sh
export RTE_SDK=$RANBOOSTER_SRC_PATH/dpdk-ranbooster
export PKG_CONFIG_PATH=$RANBOOSTER_SRC_PATH/dpdk-ranbooster/build/meson-uninstalled
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && make -j

Running the middleboxes

To run the middleboxes, you can check the documentation and scripts provided in the following directories:

TODO: Add documentation for XDP middleboxes.

Supported Hardware

The middleboxes assume support for SIMD instructions and have been tested with the following hardware:

  • CPU: Intel Xeon Gold 6338N
  • NIC: Mellanox ConnectX-6 Dx

Tested RAN components

The middleboxes have been verified with the following RAN stacks and O-RAN RUs:

  • srsRAN DU
  • CapGemini DU
  • Radisys DU
  • Foxconn RPQN 7800 O-RU

Additional documentation

For more details about the project, you can check our technical report that has been published at ACM SIGCOMM'25:

@inproceedings{ranbooster_sigcomm25,
  title={{RANBooster: Democratizing advanced cellular connectivity through fronthaul middleboxes}},
  author={Foukas, Xenofon and Ukyab, Tenzin Samten and Radunovic, Bozidar and Ratnasamy, Sylvia and Shenker, Scott},
  booktitle={Proceedings of the ACM SIGCOMM 2025 Conference},
  pages={742--757},
  year={2025}
}

Trademarks This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.

About

Reference implementations of middleboxes for enhancing the fronthaul capabilities of Open RAN DU network functions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 84.0%
  • Shell 10.1%
  • CMake 5.9%