Expand description
Spec-faithful classic BATMAN next-hop routing engine.
This engine implements the BATMAN protocol as described in the BATMAN IV specification. The key behavioural properties:
- TQ carried in OGM — each
OriginatorAdvertisementencodes atqfield. Originators initialise it to 1000; re-broadcasting nodes applytq_product(local_link_tq, received_tq)before forwarding. Downstream nodes read path quality directly from received OGMs. - Hop-limit-bounded propagation — OGMs carry a
remaining_hop_limitfield decremented at each hop. OGMs reaching zero are not re-broadcast, bounding propagation toDEFAULT_OGM_HOP_LIMIThops. - No Bellman-Ford — path quality to remote originators is read from received OGM TQ values, not computed locally over a gossip-merged topology graph.
- No TQ enrichment — quality is derived solely from
ogm_equivalent_tq(LinkRuntimeState); Jacquard-specific link beliefs (delivery confidence, symmetry, transfer rate, stability horizon) are not incorporated. - Echo-only bidirectionality — a neighbor is confirmed bidirectional only by receiving a local OGM echoed back via that neighbor. There is no topology fallback.
- No bootstrap shortcut — if no OGM receive-window data exists for a path, no route candidate is produced. The engine starts silent and becomes active only after OGMs have accumulated window data.
These properties make BatmanClassicEngine a faithful baseline for
comparison against Babel (which was designed to fix exactly the weaknesses
of classic DV-gossip protocols: asymmetric-link handling, loop-freedom under
topology change, and triggered rather than periodic-only updates).
Structs§
- Batman
Classic Engine - Batman
Classic Planner Model - Batman
Classic Planner Seed - Batman
Classic Planner Snapshot - Best
Next Hop - Decay
Window - Per-engine staleness and refresh window configuration.