MeshCore Path Discovery Deep Dive A detailed look at MeshCore's path discovery and route management system, based on verified information from the official MeshCore repository. The Core Mechanism MeshCore's routing uses two phases that together eliminate the channel waste of pure flooding while maintaining the reliability of flood-based initial contact: Phase 1: Flood with Path Recording Every ROUTE_TYPE_FLOOD packet that travels through a repeater has its path recorded at the destination. The destination node knows the exact sequence of repeaters the packet passed through because each repeater appends its identity to a path record in the packet. Phase 2: Path Return via PAYLOAD_TYPE_PATH The destination sends a PAYLOAD_TYPE_PATH response back to the original sender. This packet contains the ordered list of repeaters from the flood path. The path packet itself uses direct routing if a reverse path is known, otherwise floods back. Phase 3: Stored Direct Routes The sender stores the learned path and uses it for all subsequent messages to that destination using ROUTE_TYPE_DIRECT . The path remains valid until a direct-routed message fails (no acknowledgement within timeout), at which point the sender falls back to flooding and re-learns the path. Path Hash Modes MeshCore supports configurable path hash modes ( set path.hash.mode CLI command), which affects how path uniqueness is determined and how aggressively the routing table is compacted. Modes 0, 1, and 2 are available. This allows tuning for networks where repeater positions change frequently vs. stable fixed infrastructure. Flood Limits To prevent unbounded flooding, MeshCore allows configuration of flood.max (max number of repeaters a flood packet passes through, 0 - 64) and flood.advert.interval . These limit worst-case channel usage during path discovery. Regional Scoping Transport route types ( ROUTE_TYPE_TRANSPORT_FLOOD and ROUTE_TYPE_TRANSPORT_DIRECT ) include a region/transport code that allows multi-region networks to scope traffic appropriately. ISO country codes are the standard region identifiers. Source: docs/packet_format.md and CLI reference in the official MeshCore repository. Verified 2026-05-03.