Skip to content

v1.0.40 — Multi-Path Path Table, MODE_FULL, Heap Fixes

Choose a tag to compare

@jrl290 jrl290 released this 30 Jun 18:46

Changes

Multi-Path Path Table

  • PathEntry struct with score-based selection (bitrate / (hops+1))
  • Up to 3 paths per destination (WiFi + LoRa coexist)
  • Old 80-line quality gate replaced with 2-line anti-replay check
  • Targeted failover: mark_path_unresponsive preserves backup paths when a link fails on one interface

Interface Modes

  • All interfaces set to MODE_FULL — removes mode-based announce blocking

Heap Fixes

  • std::set → std::vector migration (eliminates tree-node fragmentation: ~23KB overhead removed)
  • std::map<Bytes,T> → flat vector migration for path_requests, reverse_table, announce_rate_table, discovery_path_requests
  • Path request culling timeout: 24h → 40s (entries were accumulating unnecessarily)
  • Firewall gate on backbone path requests for non-whitelisted destinations
  • clear_caches_in_memory() for heap pressure relief

Other

  • Link::attached_interface() const getter added (was declared but not implemented)

Flash Options

File Usage
rtnode_heltec_v3.bin Heltec V3 — firmware update only
rtnode_heltec_v3_merged.bin Heltec V3 — full wipe + install
rtnode_heltec_v4.bin Heltec V4 — firmware update only
rtnode_heltec_v4_merged.bin Heltec V4 — full wipe + install