Skip to content

Enhance traffic management by reducing maximum interval and applying airUtil and ChUtil criteria#9921

Merged
thebentern merged 2 commits into
meshtastic:developfrom
NomDeTom:gentler_traffic_management
Apr 10, 2026
Merged

Enhance traffic management by reducing maximum interval and applying airUtil and ChUtil criteria#9921
thebentern merged 2 commits into
meshtastic:developfrom
NomDeTom:gentler_traffic_management

Conversation

@NomDeTom

@NomDeTom NomDeTom commented Mar 17, 2026

Copy link
Copy Markdown
Collaborator

The current implementation of the TMM (#9358) allows a bool flag to be set that simply drops telemetry (and another for position - see further down). This is unacceptable as a simple bool - it effectively hands a crude tool for controlling the use of a mesh to node operators, irrespective of the actual level of use or utility.

This change makes the action based on the self-generated airUtil and chUtil checks, so that it simply enforces the same standard of packet handling for external packets as internal ones, and exhausts them as it would its own.

Regarding the position exhaustion flag, there is already an elegant implementation of frequency and positon-change bucketing, to gracefully shut down traffic from noisy or over-chatty nodes. Since this elegant reduction is already in place, the exahust_hops flag will be less likely to be placed on position packets by comparison to the un-treated telemetry data.

The position interval maximum is reduced to 12 hours from 24 - it seems poor form to expect nodes to adhere to the same criteria as a fixed router.

…refining hop exhaustion logic based on channel congestion
@github-actions github-actions Bot added needs-review Needs human review enhancement New feature or request labels Mar 17, 2026
@thebentern thebentern requested a review from Copilot March 19, 2026 12:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates TrafficManagementModule exhaustion behavior to be utilization-aware (air/ch utilization) instead of a pure boolean drop, and tightens the default throttling window for repeated position packets.

Changes:

  • Gate telemetry hop exhaustion on airtime/channel-util “TX allowed” checks, aligning external telemetry handling with self-generated telemetry gating.
  • Reduce the default minimum interval for identical position updates from 24h to 12h.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
src/modules/TrafficManagementModule.cpp Makes telemetry hop exhaustion conditional on channel congestion via airTime util checks.
src/mesh/Default.h Changes default position min-interval macro from 1 day to 12 hours.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread src/modules/TrafficManagementModule.cpp
Comment thread src/modules/TrafficManagementModule.cpp
Comment thread src/mesh/Default.h

@h3lix1 h3lix1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checks if chutil is >25% and then reduces hops. 25% is still pretty high for half duplex communication (25% actual is more like 63% practical). Also checks local duty cycle for specific regions.

Agreed that copilot doesn't understand, and I've come to find this is accurate with copilot.

I don't see any problems here.

@NomDeTom

Copy link
Copy Markdown
Collaborator Author

I don't see any problems here.

Thanks. It's the best I could do without writing a whole new thing to do similar to the cuckoo hashing for telemetry.

@shalberd

Copy link
Copy Markdown

thank you for your efforts managing traffic. It is encouraging to see that, and I realize walking the line and tradeoffs is not always easy. So anyways, thank you.

@thebentern thebentern merged commit b2c8cbb into meshtastic:develop Apr 10, 2026
78 checks passed
mariotti pushed a commit to mariotti/firmware that referenced this pull request May 6, 2026
…refining hop exhaustion logic based on channel congestion (meshtastic#9921)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request needs-review Needs human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants