Skip to content

Feature: redundancy-aware flood suppression for traffic reduction (simple_repeater)#3019

Draft
usrflo wants to merge 4 commits into
meshcore-dev:devfrom
usrflo:feature/flood-suppression
Draft

Feature: redundancy-aware flood suppression for traffic reduction (simple_repeater)#3019
usrflo wants to merge 4 commits into
meshcore-dev:devfrom
usrflo:feature/flood-suppression

Conversation

@usrflo

@usrflo usrflo commented Jul 21, 2026

Copy link
Copy Markdown

Cancels a repeater's own scheduled flood re-broadcast when neighbouring repeaters in areas with dense coverage have already forwarded the same flood - i.e. when the re-broadcast would be redundant. Cuts on-air flood traffic and collisions while preserving reach.

How it works

Each overheard neighbour forward of a flood is counted at RX-arrival time (logRx), weighted by link SNR (strong → +2, weak → 0); once the weighted count reaches the self-tuned threshold, the already-scheduled re-broadcast is cancelled.

See README-flood-suppression.md for a detailed explanation of the mechanism and configuration.
The feature is on by default; set flood.suppress off disables it.

diagram-flood-corridor

Intended role

This feature is for subordinate repeaters - nodes whose coverage is largely redundant with their neighbours.

  • Backbone / region-linking repeaters with wide coverage should leave it OFF. Their re-broadcast carries reach between regions; suppressing it can isolate the far side. For a node with a known bridge role, disabling it explicitly is the safe choice.
  • Dense, subordinate repeaters should enable it - that is where the packet-count and collision reduction pays off.

Adaptive mode encodes this automatically (sparse neighbour table → no suppression; dense core → aggressive), so a well-placed fleet usually needs no per-node tuning - but operators should still keep bridge nodes off the feature.

Validation

Simulation A/B results (mcsim):

Flood TX Flood airtime Collisions Coverage
off → on 237 → 163 (−31 %) −31 % 142 → 57 (−60 %) 0.308 → 0.308 (preserved)

usrflo added 4 commits July 10, 2026 12:44
- Introduced a new FloodSuppressionTable to manage flood suppression state.
- Added methods to touch and cancel pending flood broadcasts based on overheard forwards.
- Enhanced MyMesh to refresh neighbour liveness from overheard packets.
- Implemented adaptive parameters for flood suppression based on neighbour density and SNR.
- Updated CLI commands to configure flood suppression settings.
- Modified node discovery to expedite neighbour list population after boot.
- Ensured flood suppression logic is integrated into packet handling and retransmission delays.
@usrflo

usrflo commented Jul 22, 2026

Copy link
Copy Markdown
Author

This PR ist part of the ufo firmware, latest build at time of writing: v0.6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant