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)
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-coreNext, 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 && ninjaWe 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 -jTo run the middleboxes, you can check the documentation and scripts provided in the following directories:
- DPDK DAS middlebox
- DPDK Distributed MIMO middlebox
- DPDK RU sharing middlebox
- DPDK PRB monitoring middlebox
TODO: Add documentation for XDP middleboxes.
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
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
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.