There is a newer version of the record available.

Published March 30, 2026 | Version v2.1.0

bLEO: An eBPF-based emulator for large-scale LEO satellite networks

Description

bLEO is a Linux-based tool designed to emulate large-scale LEO (Low Earth Orbit) satellite networks. It is implemented using shell scripting (bleo.sh) and makes use of the following general-purpose Linux tools:
- Docker containers
- eBPF modules
- Linux bridging
- Network namespaces
- Python (for event generation)
- gcc and clang (LLVM) compilers

The core idea is to run one container per network element (satellites, ground stations, and terminals) and connect them through virtual Ethernet interfaces (veth) and network namespaces. bLEO models time-varying connectivity between satellites and ground stations, driven by satellite movement and Earth rotation. Instead of using tc-netem, link delay is controlled via an eBPF module, enabling near-instantaneous updates directly in the kernel datapath. In LEO constellations, link characteristics such as delay and connectivity change frequently, requiring efficient mechanisms to update network conditions at high rates.

A typical execution workflow is:
1. Configure the scenario in bleo.conf
2. Generate dynamic events using eventGenerator.py
3. Deploy the network using bleo.sh
4. Run the dynamic event script (events_dynamic.sh generated by eventGenerator.py) to simulate satellite movement

Acknowledgements

This work is part of the project PID2023-148214OB-C21, funded by MICIU/AEI/10.13039/501100011033 and by ERDF/EU.

Files

leonetlab-upct/bleo-v2.1.0.zip

Files (84.0 kB)

Name Size Download all
md5:e1fb7dd5babd8da8d60b244db4645404
84.0 kB Preview Download

Additional details

Related works

Funding

Agencia Estatal de Investigación
Proyecto de I+D de generación de conocimiento PID2023-148214OB-C21

Software

Repository URL
https://github.com/leonetlab-upct/bleo
Programming language
Shell , C , Python
Development Status
Active