wifi-scripts: allow rssi_reject_assoc_timeout to be configured
authorRany Hany <[email protected]>
Sun, 16 Nov 2025 21:04:54 +0000 (21:04 +0000)
committerRobert Marko <[email protected]>
Wed, 19 Nov 2025 12:57:30 +0000 (13:57 +0100)
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 <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20811
Signed-off-by: Robert Marko <[email protected]>
package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-device.json
package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc
package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh

index 8eae28c0c6fc1f4ee9c3bca2f71fe64b5cf40d24..7b907891a034a42d59c35a643717acc0e5c1c34a 100644 (file)
                        "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"
index 5604eb12664112bc9a18c3b5c47fcf1d027a6eb3..bf8fe234e1bb154474288bc759a11d6fc47e084a 100644 (file)
@@ -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')
index 1b8369c5a419eaf3e28d9fdcb04fdac4f2202ae7..5ae9965632230962fe35044001a0a729b98008dc 100644 (file)
@@ -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"