Enhance traffic management by reducing maximum interval and applying airUtil and ChUtil criteria#9921
Conversation
…refining hop exhaustion logic based on channel congestion
There was a problem hiding this comment.
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.
h3lix1
left a comment
There was a problem hiding this comment.
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.
Thanks. It's the best I could do without writing a whole new thing to do similar to the cuckoo hashing for telemetry. |
|
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. |
…refining hop exhaustion logic based on channel congestion (meshtastic#9921)
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.