Why this is open
#173 is fixed and shipped (PR #174), but with a bound that has no basis in either primary source. That was a deliberate, time-boxed choice: main was worse than v1.0.0 on large and loaded networks (large-scale 21.7% PDR, NRL 3071) and un-breaking it was separable from the fidelity question. This issue is the fidelity question, and it should be settled by measurement rather than by reading.
The trigger is that the 2007 thesis records the authors abandoning the mechanism #174 patches, for exactly the symptom #173 measured:
"…through experiments we experienced that it is hard to get a good balance between the number of routes that are obtained and the overhead that is created. High levels of overhead were often experienced. Therefore, we decided to restrict reactive route setup to the creation of just one single route, and to rely on proactive route maintenance to obtain multiple routes."
— 2007 thesis, lines 4676-4681
The three arms
|
design |
how the flood is bounded |
source |
| A |
enableMultipath = false: reactive setup lays one route; multipath comes from proactive maintenance |
strict (src,seq) duplicate suppression |
2007 thesis (the final design) — lines 3773-3778, 3785-3791 |
| B |
band-multipath parameterised as the authors ran it: a1 = 0.9 base, plus a2 = 2 for first-hop-disjoint ants |
the band itself — at 0.9 it admits only ants better than the incumbent, so it is self-limiting |
2007 thesis describing the older version — lines 4650-4671 |
| C |
band at factor 1.5 + per-(node, generation) broadcast bound |
the repo-invented per-node bound |
none — 1.5 is [1] §3.1; the bound is ours |
C is what ships today. Note that we do not implement B's a2 first-hop-disjoint rule at all, and our single factor of 1.5 is looser than the authors' base 0.9 — that gap is the root of #173.
Evidence so far
Core testbench, one discovery on an 8-connected grid, reactive ants on the medium:
| grid |
nodes |
A (multipath=off) |
B (a1=0.9) |
band at 1.5, unbounded |
C (shipped) |
| 5×5 |
25 |
28 |
28 |
420 |
94 |
| 7×7 |
49 |
54 |
54 |
30,090 |
236 |
Delivery was 17/17 in every arm, so none of these bounds costs reach at this scale.
ns-3 discrete taxonomy for C (30165318267), PDR / NRL:
| scenario |
v1.0.0 |
broken main |
C (shipped) |
AODV |
| paper-base |
81.7 / 59.1 |
82.2 / 84.8 |
83.4 / 56.6 |
80.5 / 56.6 |
| sparse-static |
83.8 / 48.3 |
93.0 / 46.5 |
90.7 / 40.7 |
81.9 / 42.9 |
| heavy-load |
85.0 / 6.1 |
51.4 / 28.6 |
80.1 / 8.7 |
86.6 / 5.5 |
| large-scale |
75.8 / 99.9 |
21.7 / 3071.1 |
77.9 / 167.8 |
67.4 / 163.4 |
heavy-load is the open residual: C sits 4.9 pp below v1.0.0 and 6.5 pp below AODV. It is the scenario most sensitive to control overhead, so it is the one most likely to separate the three arms.
What to do
- Implement A behind the existing gate (it is just the default flip) and B (needs
a1/a2 and the first-hop-disjoint tracking — GenerationTracker already keys per generation, so this is where it goes).
- Run the discrete taxonomy at
runs=5 — not --quick's 2 — for A, B and C on identical seeds. The 2-run numbers above carry pdr_sd up to 6.43, which is wider than several of the differences being argued about.
- Compare with
sweep_summary.py --vs, whose baseline control will confirm the harness held still across arms.
- Pick the shipped default on that evidence and record it in an ADR, since it supersedes #96.
Also blocked on this
Sources: 2007-ducatelle-thesis.pdf and 2004-ppsn-anthocnet.pdf in the private papers repo, read with the pdf-extract skill; line numbers index its extracted text.
Why this is open
#173 is fixed and shipped (PR #174), but with a bound that has no basis in either primary source. That was a deliberate, time-boxed choice:
mainwas worse than v1.0.0 on large and loaded networks (large-scale21.7% PDR, NRL 3071) and un-breaking it was separable from the fidelity question. This issue is the fidelity question, and it should be settled by measurement rather than by reading.The trigger is that the 2007 thesis records the authors abandoning the mechanism #174 patches, for exactly the symptom #173 measured:
The three arms
enableMultipath = false: reactive setup lays one route; multipath comes from proactive maintenance(src,seq)duplicate suppressiona1 = 0.9base, plusa2 = 2for first-hop-disjoint ants1.5+ per-(node, generation)broadcast bound1.5is [1] §3.1; the bound is oursC is what ships today. Note that we do not implement B's
a2first-hop-disjoint rule at all, and our single factor of 1.5 is looser than the authors' base 0.9 — that gap is the root of #173.Evidence so far
Core testbench, one discovery on an 8-connected grid, reactive ants on the medium:
multipath=off)a1=0.9)Delivery was 17/17 in every arm, so none of these bounds costs reach at this scale.
ns-3 discrete taxonomy for C (30165318267), PDR / NRL:
mainheavy-loadis the open residual: C sits 4.9 pp below v1.0.0 and 6.5 pp below AODV. It is the scenario most sensitive to control overhead, so it is the one most likely to separate the three arms.What to do
a1/a2and the first-hop-disjoint tracking —GenerationTrackeralready keys per generation, so this is where it goes).runs=5— not--quick's 2 — for A, B and C on identical seeds. The 2-run numbers above carrypdr_sdup to 6.43, which is wider than several of the differences being argued about.sweep_summary.py --vs, whose baseline control will confirm the harness held still across arms.Also blocked on this
enableMultipath=trueon an A/B showing PDR 92.3 vs 89.4 — measured withreactiveMaxBroadcasts = 2in force, which truncated the flood at ~5 hops and therefore hid multipath's overhead cost. Whatever this issue concludes, [protocol][fidelity] Reactive-ant multipath setup (1.5× filter, paper §3.1) — implemented, but regresses PDR in the ns-3 harness #96's decision needs re-deriving.docs/configuration.mdrecordsantAcceptanceFactor = 1.5as sourced to[1] §3.1. True but incomplete: the thesis supersedes it with thea1/a2scheme. That row needs the thesis context regardless of which arm wins — the incompleteness is what let [protocol] reactive forward ants have no flood bound in dense graphs — PDR 75.8→21.7, NRL 99.9→3071 on large-scale (#169 regression) #173 hide.Sources:
2007-ducatelle-thesis.pdfand2004-ppsn-anthocnet.pdfin the privatepapersrepo, read with thepdf-extractskill; line numbers index its extracted text.