Field lab · Tooling · swarm-routing/ns3-tools
ns3-tools
Protocol-agnostic comparison: the harness every arm registers with, and the scripts that judge the runs.
Unlocked: v1.0.0 released, 1 epic in progress, 4 planned Computed from its 5 epics · release v1.0.0, as they stood on .
What it does
ns3-tools is where protocols meet on equal terms. The routing-bench module (moved from AntHocNet as-is) is the comparison harness: every protocol, ours or a comparator, registers as an arm through its own helper/<module>-bench-arms.cc, and no arm is special-cased. It also holds the measurement itself today: the topology oracle (BFS-reachable delivery ratio, path stretch) and the drop book (PHY/MAC/ARP/TTL/loop root causes). A run prints the versioned marker lines ##CONFIG##, ##RUN##, ##BENCH##, ##DIAG## and ##PROV##.
The ns3-tool CLI (compare, sweep, diagnose, scaffold) fronts the Python readers (stdlib only): they parse those lines and do the statistics, per-seed paired deltas over at least 20 seeds and a scripted noise verdict, never an eyeballed one, checked byte-identical against fixture cells from AntHocNet. ns3-campaign runs a multi-protocol campaign: one image, every cell pulled by digest, each keyed over every pinned input. The CLI and marker contract v1 are frozen: fields, commands and options are only appended, and a breaking change waits for contract v2.
Planned next: non-intrusive probes as their own module (the oracle and the drop book extracted), the satellite harnesses on the arm registry, and the non-swarm comparator arms, each its own module under ns3/arms/. Whether the universal arenas of the original plan stay is an open decision.
Diagrams
Package structure
The repository's layout, its licence per directory (LICENSING.md) and what exists today.
| Path | What | Licence | State |
|---|---|---|---|
ns3/routing-bench/ | the comparison harness module (routing-compare, anthocnet-compare alias; topology oracle, drop book) | GPL-2.0-only | present |
ns3/arms/<name>/ | non-swarm comparator arms (SAODV, SEAD, TAODV, DRL, DTN), one module each | GPL-2.0-only | planned |
ns3/ (probes, satellite harnesses) | the probe module (oracle and drop book extracted); satellite harnesses on the arm registry | GPL-2.0-only | planned |
python/ns3_tool/ | the ns3-tool CLI, readers and statistics, scenario_check, ns3-campaign and its change-test plans | MIT OR GPL-2.0-only | present |
python/tests/ | self-tests; fixtures/cells/: 14 AntHocNet cells | MIT OR GPL-2.0-only | present |
campaigns/ | campaign plans (TOML), each campaign's pre-registration | GPL-2.0-only | present |
tools/checks/ | CI scripts: stock arms, arm delivery, ##PERF##, the scaffolded arm | MIT OR GPL-2.0-only | present |
tools/release/ | dist.sh: the release assets (routing-bench tarball, ns3-tool wheel and sdist) | MIT OR GPL-2.0-only | present |
docs/ | markers.md (the marker contract), profiling.md, roadmap.md, references.bib | GPL-2.0-only | present |
Where it sits in the colony
Quests
The repository's epics and their sub-issues, as the issues stood on 2026-11-13: 3 of 31 sub-issues closed.
- #2 A protocol-agnostic comparison harness, packaged on its own
In progress · 3 / 8 sub-issues closed - #7 metrics 2026 — age of information, delay percentile/CDF export, energy-per-bit, route lifetime/convergence as CSV metrics
Planned · 0 / 1 sub-issues closed - #15 Comparators: swarm, learned and secure protocols under identical conditions
Planned · 0 / 10 sub-issues closed - #34 promote AntHocNet's vendored comparator modules into ns3/arms/: aomdv, gpsr, qrouting, oracle
Planned · 0 / 2 sub-issues closed - #43 Network substrates: the ns-3 pieces new network types need, for every arm
Planned · 0 / 10 sub-issues closed
Cite this project
Using ns3-tools in a paper? Cite the project as below, and the works it rests on from its references.
Text
Joppi, Daniel Henrique (n.d.). ns3-tools (version 1.0.0) [Computer software]. https://doi.org/10.5281/zenodo.24136068
BibTeX
@software{ns3tools,
author = {Joppi, Daniel Henrique},
title = {ns3-tools},
version = {1.0.0},
doi = {10.5281/zenodo.24136068},
url = {https://github.com/swarm-routing/ns3-tools}
}- Version
- 1.0.0
- Author
- Daniel Henrique Joppi · ORCID
- Licence
- GPL-2.0-only
Read from CITATION.cff at main when this site was built.
References
The 5 works docs/references.bib lists, read at main when this site was built. Each links its DOI; a work with none links its publisher's or institution's page.
Datasets
- Zhao & Pan, LENS: A LEO Satellite Network Measurement Dataset, Proceedings of the 15th ACM Multimedia Systems Conference, 2024, pp. 278–284. DOI 10.1145/3625468.3652170
Software it builds on
- Joppi, AntHocNet for NS-3, Zenodo, 2026. DOI 10.5281/zenodo.20981979
- Riley & Henderson, The ns-3 Network Simulator, Modeling and Tools for Network Simulation, 2010, pp. 15–34. DOI 10.1007/978-3-642-12331-3_2
Background
- Di Caro, Ducatelle & Gambardella, AntHocNet: An Ant-Based Hybrid Routing Algorithm for Mobile Ad Hoc Networks, Parallel Problem Solving from Nature - PPSN VIII, 2004, pp. 461–470. DOI 10.1007/978-3-540-30217-9_47
- Broch et al., A performance comparison of multi-hop wireless ad hoc network routing protocols, Proceedings of the 4th annual ACM/IEEE international conference on Mobile computing and networking, 1998, pp. 85–97. DOI 10.1145/288235.288256
Sources
- ns3-tools AGENTS.md at v1.0.0: what the repository is, its layout
- ns3-tools docs/markers.md at v1.0.0: the marker contract and its stability
- AntHocNet docs: the comparison harness
- AntHocNet ADR-0027: the comparison harness is protocol-agnostic
The status and the quests come from the repository's issues and releases (2026-11-13); the other
facts on this page are kept by hand from its AGENTS.md (as of 2026-11-08).