Colony Arena swarm-routing ⌥

Termite mound · Protocol · swarm-routing/Termite

Termite

Routing by stigmergy: the pheromone rides inside the data packets themselves.

Locked: Phase 5: bootstrapped, explain the anchor miss first

RepositoryPlan .github#51

What it does

Termite (Roth & Wicker; GLOBECOM 2003, SIDM 2005, Roth's 2005 dissertation) has no control ants. Every data packet carries routing state: as a packet arrives, the receiving node strengthens its pheromone towards the packet's source through the neighbour it came from. Traffic in one direction builds the routes for traffic in the other.

Forwarding is randomised multipath: the next hop is drawn in proportion to pheromone, and pheromone decays with time, so the table tracks a moving topology without beacons of its own. What a node does with a packet for a destination it holds no pheromone for is one of the questions the fidelity sheet settles from the dissertation.

AntHocNet's Termite arm passed the delivery smoke but missed its anchor in v2.5.0 (trend right, confidence intervals spanning zero). Whether that was the arm, the scenario or statistical power is pre-registered in an issue before core/ is written.

Diagrams

Termite: how a route forms (UML sequence diagram)Sequence diagram of Termite's mechanism across 4 lifelines: data A→B carries A's pheromone; τ(→A via A) ↑; data, next hop drawn ∝ τ; τ(→A via 1) ↑; data delivered; τ(→A via 2) ↑: a route home for free; data B→A follows τ(→A); … and lays τ(→B); all τ decays with time; data delivered.node Anode 1node 2node Bdata A→B carries A's pheromoneτ(→A via A) ↑data, next hop drawn ∝ ττ(→A via 1) ↑data deliveredτ(→A via 2) ↑: a route home for freedata B→A follows τ(→A)… and lays τ(→B)all τ decays with timedata delivered
Sequence diagram (UML): solid arrows are control messages, dashed arrows return, bold arrows carry data; boxes are combined fragments (opt, loop, alt). Drawn from the paper; the repository's fidelity sheet is the authority once written.
Termite: hexagonal architectureTermite's simulator-agnostic core in the centre, reached only through ports; the ns-3 module and the browser adapter outside only convert headers and carry out the core's route decisions.«MIT OR GPL-2.0-only»core/pheromone on data packetsrandomised forwardingdecayclock portrng portneighbour porttimer portlink-state portobserver port«GPL-2.0-only»ns-3 adaptercontrib module termiteheader ⇄ messagetimers, queueon swarm-coreimplementsthe ports«GPL-2.0-only»browser adaptercore/ → WebAssemblywhen the protocolreaches the site(site#13)implementsthe portsports on the rim: the only way in or out of core/
Ports and adapters: core/ includes no simulator header; time, randomness, neighbours and timers arrive through ports, and every adapter only carries out the core's decisions. Dashed: planned.
Termite: package diagramUML package diagram of Termite: the core package, the ns-3 module that uses it, the shared swarm-core module, the docs, the ns3-tools harness the module registers with, and this site.«use»«use»«use»registers armbuildscitescore«MIT OR GPL-2.0-only»algorithm, messages, codecports (injected)unit testsns3::termite«GPL-2.0-only»header codec, adapterhelper, examplestest.py suiteswarm-core«ns-3 contrib module»PheromoneTable, VisitedPathwire helpers, RouteDecisionSwarmRoutingBasedocs«GPL-2.0-only»fidelity sheetpaper § → implementationparameters with sourcesns3-tools::routing-bench«harness»arm registration##RUN## / ##BENCH## linesColony Arena«this site»core/ → WebAssemblypinned in protocols.lock
Package diagram (UML): dashed arrows are «use» dependencies; the licence of each package is its stereotype. The dependency never points from core to GPL-only code. Dashed outlines: planned.

Package structure

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

Directories of swarm-routing/Termite
PathWhatLicenceState
core/simulator-agnostic algorithm + unit testsMIT OR GPL-2.0-onlyplanned
ns3/contrib module termite: header codec, adapter, helper, examples, test suiteGPL-2.0-onlyplanned
docs/fidelity sheet, parameters with sources, the anchor-miss analysisGPL-2.0-onlyplanned
docs/adr/architecture decisions (template)GPL-2.0-onlypresent
Makefilethe org's standard targets: build, test, lint, format, checkGPL-2.0-onlypresent

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
Termite and its neighbours in the organisation.

Quests

Sources

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