This repository contains the software switch implementation of DUNE. It allows running Mininet-based experiments to test inference models using Bmv2.
To run this project, you need to set up the P4 development environment. We rely on the scripts provided by the p4-guide repository to install all the necessary dependencies (e.g., PI, BMv2, P4C, Mininet).
Run the following commands to install the dependencies:
git clone https://github.com/jafingerhut/p4-guide.git
./p4-guide/bin/install-p4dev-v10.shbehavioral-model Thrift interface (p4lang/behavioral-model#1367) that prevents the controller from connecting to the switches. Until this is fixed upstream, you must apply a patch. Please refer to the Troubleshooting guide for instructions to apply the patch.
Ensure you activate the Python virtual environment created by the installation script before executing commands or make targets:
source ~/p4-guide/p4dev-python-venv/bin/activateBefore running the experiments, ensure you have the required ToN_IoT dataset files placed in a data/ directory at the root of the project:
data/ToN_IoT_Test_Flow_PktCounts.csvdata/ToN_IoT_test.pcapdata/ton_tcp_udp.pcapng(optional depending on your exact configuration)
(You can verify the expected paths in utils/params.ini)
To generate these data files, please follow the procedure described in the DUNE data generation guide.
Note: This repository will eventually become a submodule of the main nds-group/DUNE repository.
To run a minimal smoke test and ensure the environment is correctly set up, run:
make run-smoke-testTo reproduce the results presented in Table V of the DUNE paper, execute the following target:
make run-table-5For more detailed information regarding the project's architecture, workflows, configurations, and advanced usage, please refer to the documentation in the docs/ folder:
If you use this code or framework in your research, please kindly cite our INFOCOM 2025 paper:
@INPROCEEDINGS{11044678,
author={Bütün, Beyza and De Andres Hernandez, David and Gucciardo, Michele and Fiore, Marco},
booktitle={IEEE INFOCOM 2025 - IEEE Conference on Computer Communications},
title={DUNE: Distributed Inference in the User Plane},
year={2025},
volume={},
number={},
pages={1-10},
keywords={Sequential analysis;Accuracy;Computational modeling;Scalability;Memory management;Machine learning;Hardware;Delays;Resource management;Monitoring},
doi={10.1109/INFOCOM55648.2025.11044678}
}