Colony Arena swarm-routing ⌥

Ant nest · Protocol · swarm-routing/ARA

ARA

The Ant-Colony-Based Routing Algorithm: reactive ants, data that reinforces its own path.

Locked: Phase 3: waits on swarm-core

RepositoryEpic ARA#3

What it does

ARA (Güneş, Sorges & Bouazizi, 2002) is the lean ancestor in the family. Route discovery floods a forward ant (FANT) from the source; every node it reaches records pheromone back towards the source. The destination answers with a backward ant (BANT), which sets up pheromone towards the destination on the way back.

After discovery there are no maintenance ants: data packets themselves reinforce the pheromone of the links they use, and pheromone evaporates over time, so unused routes fade. Duplicate packets are detected by sequence number to stop loops, and a broken link makes the node try another next hop before reporting a route error upstream.

Here ARA becomes a standalone protocol on the org's hexagonal pattern: a fresh simulator-agnostic core/ on swarm-core, the ns-3 module ara, a fidelity sheet citing the paper for every parameter, then the three comparator gates. It replaces AntHocNet's ara comparator arm.

Diagrams

ARA: how a route forms (UML sequence diagram)Sequence diagram of ARA's mechanism across 4 lifelines: FANT (flooded, seq no.); FANT: pheromone back to S; FANT; BANT: pheromone towards D; BANT; BANT; data: reinforces τ(S→1); data: reinforces τ(1→2); τ evaporates on every link over time; try another next hop; route error (if none left).source Snode 1node 2destination DFANT (flooded, seq no.)FANT: pheromone back to SFANTBANT: pheromone towards DBANTBANTdata: reinforces τ(S→1)data: reinforces τ(1→2)τ evaporates on every link over timetry another next hoproute error (if none left)opt [route discovery]loop [route maintenance: no ants]alt [link 1→2 fails]
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.
ARA: hexagonal architectureARA'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/FANT / BANT handlingpheromone + evaporationduplicate detectionclock portrng portneighbour porttimer portlink-state portobserver port«GPL-2.0-only»ns-3 adaptercontrib module araheader ⇄ 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.
ARA: package diagramUML package diagram of ARA: 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::ara«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/ARA
PathWhatLicenceState
core/simulator-agnostic algorithm + unit tests (no ns-3 headers)MIT OR GPL-2.0-onlyplanned
ns3/contrib module ara: header codec, adapter, helper, examples, test suiteGPL-2.0-onlyplanned
docs/fidelity.mdpaper section -> implementation, every parameter sourcedGPL-2.0-onlyplanned
.github/workflows/reusable-ns3-ci with swarm-core as a dependencyGPL-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
ARA and its neighbours in the organisation.

Quests

Sources

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