mirror of https://github.com/meshcore-dev/MeshCore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tree:
30ebe2c3f7
anon-contacts-fix
config-serializer
default-scope
dev
fast-st7735-display
flood.max.advert
gh-pages
main
revert-2915-main
t-impulse-ui
ui-color-refactor
companion-v1.0.0a
companion-v1.0.0b
companion-v1.0.0c
companion-v1.10.0
companion-v1.11.0
companion-v1.12.0
companion-v1.13.0
companion-v1.14.0
companion-v1.14.1
companion-v1.15.0
companion-v1.16.0
companion-v1.2.0
companion-v1.2.1
companion-v1.2.2
companion-v1.3.0
companion-v1.4.0
companion-v1.4.1
companion-v1.4.2
companion-v1.4.3
companion-v1.5.0
companion-v1.5.1
companion-v1.6.0
companion-v1.6.1
companion-v1.6.2
companion-v1.7.0
companion-v1.7.1
companion-v1.7.2
companion-v1.7.3
companion-v1.7.4
companion-v1.8.0
companion-v1.8.1
companion-v1.9.0
rep-v6
repeater-v1.0.0a
repeater-v1.0.0c
repeater-v1.0.0d
repeater-v1.10.0
repeater-v1.11.0
repeater-v1.12.0
repeater-v1.13.0
repeater-v1.14.0
repeater-v1.14.1
repeater-v1.15.0
repeater-v1.16.0
repeater-v1.2.0
repeater-v1.2.1
repeater-v1.2.2
repeater-v1.3.0
repeater-v1.4.0
repeater-v1.4.1
repeater-v1.4.2
repeater-v1.4.3
repeater-v1.5.0
repeater-v1.5.1
repeater-v1.6.0
repeater-v1.6.1
repeater-v1.6.2
repeater-v1.7.0
repeater-v1.7.1
repeater-v1.7.2
repeater-v1.7.3
repeater-v1.7.4
repeater-v1.8.0
repeater-v1.8.1
repeater-v1.9.0
repeater-v1.9.1
room-server-v1.0.0a
room-server-v1.0.0c
room-server-v1.10.0
room-server-v1.11.0
room-server-v1.12.0
room-server-v1.13.0
room-server-v1.14.0
room-server-v1.14.1
room-server-v1.15.0
room-server-v1.16.0
room-server-v1.2.0
room-server-v1.2.1
room-server-v1.2.2
room-server-v1.3.0
room-server-v1.4.0
room-server-v1.4.1
room-server-v1.4.2
room-server-v1.4.3
room-server-v1.5.0
room-server-v1.5.1
room-server-v1.6.0
room-server-v1.6.1
room-server-v1.6.2
room-server-v1.7.0
room-server-v1.7.1
room-server-v1.7.2
room-server-v1.7.3
room-server-v1.7.4
room-server-v1.8.0
room-server-v1.8.1
room-server-v1.9.0
room-v6
${ noResults }
Autonomously shed inter-region traffic when a repeater's own TX duty cycle is high, protecting the local cluster during high-traffic events (issue #2747). Opt-in, off by default. When TX duty cycle exceeds a configurable threshold, regions are gated from the outermost layer inward: wildcard '*' first, then the broadest named regions, always keeping the innermost cluster. Recovery re-enables regions inside-out once duty cycle drops below (threshold - hysteresis), with per-step random jitter to desync recovery across repeaters. Design notes: - Gating is transient: a new non-persisted rt_flags overlay on RegionEntry is OR'd with config flags in the forward path, so a 'region save' or reboot mid-event can never make a deny permanent. - The gate level is re-asserted every check interval, so region edits or a bulk 'region load' commit (which rebuild entries with cleared rt_flags) cannot desync the gate state; disabling the feature while gated lifts the gate immediately. - Dispatcher::getTxDutyCyclePercent() refreshes the airtime budget before reading, so recovery still fires when traffic (and TX) stops. Config (persisted, appended for upgrade compat): set dc.gate <0|1>, set dc.gate.thresh <1-100>, set dc.gate.hyst <0-50> get dc.gate[.thresh|.hyst], get dc.gate.status (live duty% + level) Adds a native gtest suite for the gating logic (test/test_region_gating) and extends the native test mocks (Arduino/Stream/SHA256) so RegionMap builds off-device. Co-Authored-By: Claude Opus 4.8 <[email protected]> |
2 weeks ago | |
|---|---|---|
| .. | ||
| test_region_gating.cpp | Add hierarchical region gating via TX duty cycle (simple_repeater) | 2 weeks ago |