@@ -96,6 +96,7 @@ void usteer_init_defaults(void)
config.remote_update_interval = 1000;
config.initial_connect_delay = 0;
config.remote_node_timeout = 10;
+ config.reassociation_delay = 30;
config.aggressive_all = false;
config.steer_reject_timeout = 60000;
@@ -73,6 +73,9 @@ config usteer
# Timeout (ms) for which a client will not be steered after rejecting a BSS-transition-request
#option steer_reject_timeout 60000
+ # Timeout (s "1024ms") a station is requested to avoid reassociation after bss transition
+ #option reassociation_delay 30
+
# Use aggressive roaming to push clients to another AP for all stations (0/1)
#option aggressive_all 0
@@ -689,6 +689,9 @@ int usteer_ubus_bss_transition_request(struct sta_info *si,
}
blobmsg_add_u8(&b, "abridged", abridged);
blobmsg_add_u32(&b, "validity_period", validity_period);
+ blobmsg_add_u32(&b, "mbo_reason", 5);
+ blobmsg_add_u32(&b, "reassoc_delay", config.reassociation_delay);
+
if (!target_node) {
// Add all known neighbors if no specific target set
MSG(VERBOSE, "ROAMING requested for sta=" MAC_ADDR_FMT " without target\n", MAC_ADDR_DATA(si->sta->addr));
@@ -720,6 +723,8 @@ int usteer_ubus_band_steering_request(struct sta_info *si,
}
blobmsg_add_u8(&b, "abridged", abridged);
blobmsg_add_u32(&b, "validity_period", validity_period);
+ blobmsg_add_u32(&b, "mbo_reason", 5);
+ blobmsg_add_u32(&b, "reassoc_delay", config.reassociation_delay);
c = blobmsg_open_array(&b, "neighbors");
for_each_local_node(node) {
@@ -173,6 +173,7 @@ struct usteer_config {
bool aggressive_all;
struct blob_attr *aggressive_mac_list;
uint32_t aggressive_disassoc_timer;
+ uint32_t reassociation_delay;
int32_t min_snr;
uint32_t min_snr_kick_delay;
- ubus: add reason code to bss_transition request (actually static only) - ubus: add reassociation delay to let the client know how long it should stay at the new AP dereived from station block timeout. - main: add config option for reassociation delay Signed-off-by: Nils Hendrik Rottgardt <n.rottgardt@gmail.com> --- main.c | 1 + openwrt/usteer/files/etc/config/usteer | 3 +++ ubus.c | 5 +++++ usteer.h | 1 + 4 files changed, 10 insertions(+)