Colony Arena swarm-routing ⌥

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

RepositoryHarness ns3-tools#2Comparators ns3-tools#15

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

ns3-tools: from an arm to a verdictData flow through ns3-tools: a protocol's module registers an arm through its bench-arms helper; routing-bench runs the scenario over at least twenty seeds per arm and prints the versioned marker lines; the stdlib readers parse them, pair runs by seed and compute deltas and a noise verdict; the result is written into the benchmarks repository with its manifest.armhelper/<m>-bench-arms.ccrouting-benchrouting-compare≥ 20 seedsmarker lines##CONFIG## ##RUN####BENCH## ##DIAG##ns3_toolbench_parsestats_util, pool_runsverdictpaired Δ per seednoise callbenchmarksruns/ + manifestverdicts/
Data flow: the marker lines are a versioned contract (fields only appended), and every verdict is a script's output, never an eyeballed number.
ns3-tools: package diagramUML package diagram of ns3-tools: the routing-bench harness module, the planned comparator arm modules and probes, the ns3_tool Python readers and their tests, and the ns3-dev images they run in.registers«use»parses lines«use»builds inns3::routing-bench«GPL-2.0-only»routing-comparearm registrymarker emittersns3/arms/<name>«GPL-2.0-only»SAODV, SEAD, TAODVDRL, DTNone module eachns3 probes + arenas«GPL-2.0-only»TopologyOracleDropCauseClassifiermanet-, leo-walker-arenapython/ns3_tool«MIT OR GPL-2.0-only»bench_parse, stats_utilpool_runs, sweep_summarynative / comparator viewspython/tests«MIT OR GPL-2.0-only»self-tests13 AntHocNet cellsbyte-identical outputns3-dev image«ns3-containers»latest-debuglatest-sanitized
Package diagram (UML). Each comparator arm is its own module that registers exactly as an out-of-repo arm does; no code outside its directory names it. Dashed: planned.

Package structure

The repository's layout, its licence per directory (LICENSING.md) and what exists today.

Directories of swarm-routing/ns3-tools
PathWhatLicenceState
ns3/routing-bench/the comparison harness module (routing-compare, anthocnet-compare alias)GPL-2.0-onlypresent
ns3/arms/<name>/non-swarm comparator arms (SAODV, SEAD, TAODV, DRL, DTN), one module eachGPL-2.0-onlyplanned
ns3/ (probes, arenas)TopologyOracle, DropCauseClassifier, marker emitters; manet-arena, leo-walker-arenaGPL-2.0-onlyplanned
python/ns3_tool/bench_parse, stats_util, native/comparator views, pool_runs, sweep_summaryMIT OR GPL-2.0-onlypresent
python/tests/self-tests; fixtures/cells/: 13 AntHocNet cellsMIT OR GPL-2.0-onlypresent
tools/checks/CI scripts (check-stock-arms.sh)MIT OR GPL-2.0-onlypresent
docs/marker-line contract, arena referenceGPL-2.0-onlyplanned

Where it sits in the colony

The swarm-routing organisation: who depends on whomDependency graph of the swarm-routing organisation. The five protocols link against swarm-core and register as arms in ns3-tools; swarm-core and ns3-tools build and run inside the ns3-containers images; ns3-tools writes verdicts into benchmarks; the Colony Arena site builds AntHocNet's core to WebAssembly and will render the benchmarks leaderboard; the .github repository provides every repository's reusable CI.linkslinkslinkslinksextractsarmarmarmbuilds inruns inverdictscore/ → WASMleaderboardCIAntHocNetprotocol · liveARAprotocolBeeAdHocprotocolTermiteprotocolHOPNETprotocolswarm-coreshared modulens3-toolsharness · readersns3-containersns3-dev imagesbenchmarksdatasets · verdictsColony Arenathis site.githubreusable CI · templatesdashed arrow: «use» dependency (UML); highlighted: this project and its neighbours
ns3-tools and its neighbours in the organisation.

Quests

Sources

Facts as of 2026-11-08, from the repository's AGENTS.md and the org ROADMAP.