From b947064db46f280ba4e2c937b3d79cedb22511db Mon Sep 17 00:00:00 2001 From: Rany Hany Date: Sun, 16 Nov 2025 21:04:54 +0000 Subject: [PATCH] wifi-scripts: allow rssi_reject_assoc_timeout to be configured This is useful to alter the default ban time after an STA association is rejected for being below RSSI threshold. Signed-off-by: Rany Hany Link: https://github.com/openwrt/openwrt/pull/20811 Signed-off-by: Robert Marko --- .../files-ucode/usr/share/schema/wireless.wifi-device.json | 7 +++++++ .../files-ucode/usr/share/ucode/wifi/hostapd.uc | 2 +- .../config/wifi-scripts/files/lib/netifd/hostapd.sh | 6 ++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-device.json b/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-device.json index 8eae28c0c6..7b907891a0 100644 --- a/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-device.json +++ b/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-device.json @@ -587,6 +587,13 @@ "type": "number", "default": 0 }, + "rssi_reject_assoc_timeout": { + "description": "Association retry delay in seconds allowed by the STA if RSSI has not met the threshold", + "type": "number", + "default": 30, + "minimum": 0, + "maximum": 255 + }, "rts": { "description": "Override the RTS/CTS threshold", "type": "number" diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc index 5604eb1266..bf8fe234e1 100644 --- a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc +++ b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc @@ -489,7 +489,7 @@ function generate(config) { append_vars(config, [ 'airtime_mode' ]); /* assoc/thresholds */ - append_vars(config, [ 'rssi_reject_assoc_rssi', 'rssi_ignore_probe_request', 'iface_max_num_sta', 'no_probe_resp_if_max_sta' ]); + append_vars(config, [ 'rssi_reject_assoc_rssi', 'rssi_reject_assoc_timeout', 'rssi_ignore_probe_request', 'iface_max_num_sta', 'no_probe_resp_if_max_sta' ]); /* ACS / Radar*/ if (!phy_features.radar_background || config.band != '5g') diff --git a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh index 1b8369c5a4..5ae9965632 100644 --- a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh +++ b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh @@ -126,6 +126,7 @@ hostapd_common_add_device_config() { config_add_int cell_density config_add_int rts_threshold config_add_int rssi_reject_assoc_rssi + config_add_int rssi_reject_assoc_timeout config_add_int rssi_ignore_probe_request config_add_int maxassoc config_add_int reg_power_type @@ -148,8 +149,8 @@ hostapd_prepare_device_config() { json_get_vars country country3 country_ie beacon_int:100 doth require_mode legacy_rates \ acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density \ - rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_ignore_probe_request maxassoc \ - mbssid:0 band reg_power_type stationary_ap + rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_reject_assoc_timeout rssi_ignore_probe_request \ + maxassoc mbssid:0 band reg_power_type stationary_ap hostapd_set_log_options base_cfg @@ -242,6 +243,7 @@ hostapd_prepare_device_config() { done [ -n "$rssi_reject_assoc_rssi" ] && append base_cfg "rssi_reject_assoc_rssi=$rssi_reject_assoc_rssi" "$N" + [ -n "$rssi_reject_assoc_timeout" ] && append base_cfg "rssi_reject_assoc_timeout=$rssi_reject_assoc_timeout" "$N" [ -n "$rssi_ignore_probe_request" ] && append base_cfg "rssi_ignore_probe_request=$rssi_ignore_probe_request" "$N" [ -n "$beacon_rate" ] && append base_cfg "beacon_rate=$beacon_rate" "$N" [ -n "$rlist" ] && append base_cfg "supported_rates=$rlist" "$N" -- 2.30.2