Skip to content

Proposal: Improve DM reliability #1489

@rvleij

Description

@rvleij

DM is not working reliable (at least for me in the Netherlands), so I'm proposal some changes to improve reliability, increase the number of working direct DM paths and with that limit the amount of flood traffic.

What changed:##

Two backward-compatible fixes to improve Direct Message ACK reliability:

Fix 1: Use Incoming Path for ACK

Problem: Direct messages without stored path sent ACK via flood (often lost)
Solution: Use the incoming direct path to send ACK back

Fix 2: Retry Flood ACKs

Problem: Flood ACKs sent once only (lost in noisy RF)
Solution: Send 3 ACKs at 200ms, 800ms, 2000ms

Backward Compatibility

100% backward compatible

  • No protocol changes
  • Works with old firmware nodes
  • Old repeaters forward ACKs correctly
  • Uses existing packet formats

Impact

Reliability

  • +20-40% ACK delivery rate
  • -30-50% message retransmissions

Network Traffic

  • -80% overhead for first-contact direct messages
  • +20 bytes per flood ACK (but saves retransmitting full messages)

Testing

Quick Test - Fix 1:

1. Send direct message to node without stored path
2. Verify ACK comes back via direct route (not flood)
3. Check logs: "TX ... route=D" not "route=F"

Quick Test - Fix 2:

1. Send flood message
2. Watch for 3 ACK transmissions at 200ms, 800ms, 2s
3. Simulate packet loss - ACK still arrives

Scenarios Covered

Scenario Old Behavior New Behavior Improvement
Direct DM, no path Flood ACK (often lost) Direct ACK on incoming path ✅ Major
Flood DM 1× flood ACK 3× flood ACK ✅ Significant
Direct DM, with path Direct ACK Direct ACK (unchanged) -

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions