policy: add steer-reject-timeout
Add a timeout in case a STA rejected a transition request. For this configurable timeframe, usteer will refrain from steering the client another time. Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
2
main.c
2
main.c
@@ -97,6 +97,8 @@ void usteer_init_defaults(void)
|
|||||||
config.initial_connect_delay = 0;
|
config.initial_connect_delay = 0;
|
||||||
config.remote_node_timeout = 10;
|
config.remote_node_timeout = 10;
|
||||||
|
|
||||||
|
config.steer_reject_timeout = 60000;
|
||||||
|
|
||||||
config.roam_kick_delay = 10000;
|
config.roam_kick_delay = 10000;
|
||||||
config.roam_process_timeout = 5 * 1000;
|
config.roam_process_timeout = 5 * 1000;
|
||||||
config.roam_scan_tries = 3;
|
config.roam_scan_tries = 3;
|
||||||
|
@@ -65,6 +65,9 @@ config usteer
|
|||||||
# Timeout after which a station with snr < min_snr will be kicked
|
# Timeout after which a station with snr < min_snr will be kicked
|
||||||
#option min_snr_kick_delay 5000
|
#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
|
# Timeout (in ms) after which a association following a disassociation is not seen
|
||||||
# as a roam
|
# as a roam
|
||||||
#option roam_process_timeout 5000
|
#option roam_process_timeout 5000
|
||||||
|
@@ -81,7 +81,7 @@ uci_usteer() {
|
|||||||
load_balancing_threshold band_steering_threshold \
|
load_balancing_threshold band_steering_threshold \
|
||||||
remote_update_interval remote_node_timeout\
|
remote_update_interval remote_node_timeout\
|
||||||
min_connect_snr min_snr min_snr_kick_delay signal_diff_threshold \
|
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_kick_delay roam_scan_tries roam_scan_timeout \
|
||||||
roam_scan_snr roam_scan_interval \
|
roam_scan_snr roam_scan_interval \
|
||||||
roam_trigger_snr roam_trigger_interval \
|
roam_trigger_snr roam_trigger_interval \
|
||||||
|
1
policy.c
1
policy.c
@@ -385,6 +385,7 @@ usteer_local_node_roam_check(struct usteer_local_node *ln, struct uevent *ev)
|
|||||||
list_for_each_entry(si, &ln->node.sta_info, node_list) {
|
list_for_each_entry(si, &ln->node.sta_info, node_list) {
|
||||||
if (si->connected != STA_CONNECTED || si->signal >= min_signal ||
|
if (si->connected != STA_CONNECTED || si->signal >= min_signal ||
|
||||||
si->kick_time ||
|
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) {
|
current_time - si->roam_kick < config.roam_trigger_interval) {
|
||||||
usteer_roam_set_state(si, ROAM_TRIGGER_IDLE, ev);
|
usteer_roam_set_state(si, ROAM_TRIGGER_IDLE, ev);
|
||||||
continue;
|
continue;
|
||||||
|
1
ubus.c
1
ubus.c
@@ -165,6 +165,7 @@ struct cfg_item {
|
|||||||
_cfg(I32, min_connect_snr), \
|
_cfg(I32, min_connect_snr), \
|
||||||
_cfg(I32, min_snr), \
|
_cfg(I32, min_snr), \
|
||||||
_cfg(U32, min_snr_kick_delay), \
|
_cfg(U32, min_snr_kick_delay), \
|
||||||
|
_cfg(U32, steer_reject_timeout), \
|
||||||
_cfg(U32, roam_process_timeout), \
|
_cfg(U32, roam_process_timeout), \
|
||||||
_cfg(I32, roam_scan_snr), \
|
_cfg(I32, roam_scan_snr), \
|
||||||
_cfg(U32, roam_scan_tries), \
|
_cfg(U32, roam_scan_tries), \
|
||||||
|
2
usteer.h
2
usteer.h
@@ -174,6 +174,8 @@ struct usteer_config {
|
|||||||
int32_t min_connect_snr;
|
int32_t min_connect_snr;
|
||||||
uint32_t signal_diff_threshold;
|
uint32_t signal_diff_threshold;
|
||||||
|
|
||||||
|
uint32_t steer_reject_timeout;
|
||||||
|
|
||||||
int32_t roam_scan_snr;
|
int32_t roam_scan_snr;
|
||||||
uint32_t roam_process_timeout;
|
uint32_t roam_process_timeout;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user