config.initial_connect_delay = 0;
config.remote_node_timeout = 10;
+ config.steer_reject_timeout = 60000;
+
config.roam_kick_delay = 10000;
config.roam_process_timeout = 5 * 1000;
config.roam_scan_tries = 3;
# Timeout after which a station with snr < min_snr will be kicked
#option min_snr_kick_delay 5000
+ # Timeout (ms) for which a client will not be steered after rejecting a BSS-transition-request
+ #option steer_reject_timeout 60000
+
# Timeout (in ms) after which a association following a disassociation is not seen
# as a roam
#option roam_process_timeout 5000
load_balancing_threshold band_steering_threshold \
remote_update_interval remote_node_timeout\
min_connect_snr min_snr min_snr_kick_delay signal_diff_threshold \
- initial_connect_delay roam_process_timeout\
+ initial_connect_delay steer_reject_timeout roam_process_timeout\
roam_kick_delay roam_scan_tries roam_scan_timeout \
roam_scan_snr roam_scan_interval \
roam_trigger_snr roam_trigger_interval \
list_for_each_entry(si, &ln->node.sta_info, node_list) {
if (si->connected != STA_CONNECTED || si->signal >= min_signal ||
si->kick_time ||
+ (si->bss_transition_response.status_code && current_time - si->bss_transition_response.timestamp < config.steer_reject_timeout) ||
current_time - si->roam_kick < config.roam_trigger_interval) {
usteer_roam_set_state(si, ROAM_TRIGGER_IDLE, ev);
continue;
_cfg(I32, min_connect_snr), \
_cfg(I32, min_snr), \
_cfg(U32, min_snr_kick_delay), \
+ _cfg(U32, steer_reject_timeout), \
_cfg(U32, roam_process_timeout), \
_cfg(I32, roam_scan_snr), \
_cfg(U32, roam_scan_tries), \
int32_t min_connect_snr;
uint32_t signal_diff_threshold;
+ uint32_t steer_reject_timeout;
+
int32_t roam_scan_snr;
uint32_t roam_process_timeout;