Add known-station tracking and per-SSID configuration overrides - #22
Open
grzegorz914 wants to merge 3 commits into
Open
Add known-station tracking and per-SSID configuration overrides#22grzegorz914 wants to merge 3 commits into
grzegorz914 wants to merge 3 commits into
Conversation
3 tasks
Persist the best signal ever observed for a station on each node (known.c), synced between usteer peers over the existing remote protocol (remote.c). Stations that never probe or report RRM measurements once associated never generate live sta_info data on any node but their current one, so the normal candidate scan can never find them a roaming target no matter how bad their signal gets - this fallback consults the persisted record instead. Candidates found only through this fallback are exploratory: the signal was never actually observed on that node, just marked "worth exploring" once a peer reports the station connected elsewhere. They are only ever used to trigger a passive BSS-transition-request, never a forced kick or an outright probe/assoc rejection, since the reading backing them could be stale or simply never realized. Adds a known_stations/known_stations_timeout UCI toggle and a delete_known ubus method for manually discarding stale entries. Signed-off-by: Grzegorz Kaczor <grzegorz914@icloud.com>
Add a usteer_ssid UCI section type keyed by SSID that overrides selected global settings (signal thresholds, roam-scan/trigger tuning, band-steering, load-kick, aggressiveness and its MAC-list) for stations on that SSID only, via the new SSID_CFG(ssid, field) lookup (ssid_config.c). Any option left unset on a usteer_ssid section falls back to the corresponding global usteer setting, so existing single-SSID configs keep working unchanged. Also moves per-station aggressiveness from struct sta (global to the station) to struct sta_info (per station+node), since a station seen on multiple SSIDs must use each SSID's own aggressiveness for decisions made on that SSID's nodes. Signed-off-by: Grzegorz Kaczor <grzegorz914@icloud.com>
Band steering previously had no explicit on/off switch - it was only implicitly active whenever band_steering_interval was non-zero. Add a real band_steering_enabled bool (global and per-SSID, following the same pattern as load_kick_enabled) that gates the actual steering action in usteer_band_steering_perform_steer(), alongside the existing interval check. Defaults to true, preserving existing behavior for configs that already rely on a non-zero band_steering_interval. Signed-off-by: Grzegorz Kaczor <grzegorz914@icloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
usteer_ssidUCI section type keyed by SSID, overriding signal thresholds, roam-scan/trigger tuning, band-steering, load-kick and aggressiveness (plus its MAC-list) for stations on that SSID only. Any option left unset falls back to the global setting, so existing single-SSID configs are unaffected.Test plan
ipq806x/generic(arm_cortex-a15_neon-vfpv4) andramips/mt7620(mipsel_24kc)