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.
Under construction: Phase 4: harness and readers moved; probes and CLI next
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. A run prints the versioned marker lines ##CONFIG##, ##RUN##, ##BENCH## and ##DIAG##.
The ns3_tool Python readers (stdlib only) 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. Their output is checked byte-identical against fixture cells from AntHocNet.
Planned next: non-intrusive probes (TopologyOracle for BFS-reachable delivery ratio and path stretch, DropCauseClassifier for PHY/MAC/ARP/TTL/loop causes) that never change a run's output, universal arenas (manet-arena, leo-walker-arena), the ns3-tool CLI (sweep, compare, diagnose, scaffold), and the non-swarm comparator arms, each its own module under ns3/arms/.
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) | 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, arenas) | TopologyOracle, DropCauseClassifier, marker emitters; manet-arena, leo-walker-arena | GPL-2.0-only | planned |
python/ns3_tool/ | bench_parse, stats_util, native/comparator views, pool_runs, sweep_summary | MIT OR GPL-2.0-only | present |
python/tests/ | self-tests; fixtures/cells/: 13 AntHocNet cells | MIT OR GPL-2.0-only | present |
tools/checks/ | CI scripts (check-stock-arms.sh) | MIT OR GPL-2.0-only | present |
docs/ | marker-line contract, arena reference | GPL-2.0-only | planned |
Where it sits in the colony
Quests
- Done: Harness and readers moved from AntHocNet (ns3-tools#13)
- Open: The harness runs any registered arm in the MANET and LEO arenas
- Open: AntHocNet switches over to ns3-tools' harness
- Open: Each comparator arm clears its three gates before a number counts
Sources
- AntHocNet docs: the comparison harness
- AntHocNet ADR-0027: the comparison harness is protocol-agnostic
Facts as of 2026-11-08, from the repository's AGENTS.md and the org ROADMAP.