aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Hainke <vincent@systemli.org>2020-03-24 23:12:01 +0100
committerDavid Bauer <mail@david-bauer.net>2020-03-30 01:46:50 +0200
commitc9c3fd13206916e4058c2cd515bb0ab5f5c23249 (patch)
tree1c8ad8b18789e6a2ab1680c92f015560d8927cdb
parentc8ef465e10f46fd017cc9c3e455cc368a2b9da2b (diff)
downloadupstream-c9c3fd13206916e4058c2cd515bb0ab5f5c23249.tar.gz
upstream-c9c3fd13206916e4058c2cd515bb0ab5f5c23249.tar.bz2
upstream-c9c3fd13206916e4058c2cd515bb0ab5f5c23249.zip
hostapd: add abridged flag in disassoc_imminent
If the abridged flag is set to 1 the APs that are listed in the BSS Transition Candidate List are prioritized. If the bit is not set, the APs have the same prioritization as the APs that are not in the list. If you want to steer a client, you should set the flag! The flag can be set by adding {...,'abridged': true,...} to the normal ubus call. Signed-off-by: Nick Hainke <vincent@systemli.org>
-rw-r--r--package/network/services/hostapd/src/src/ap/ubus.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c
index 5b16812548..011c32a8b1 100644
--- a/package/network/services/hostapd/src/src/ap/ubus.c
+++ b/package/network/services/hostapd/src/src/ap/ubus.c
@@ -937,6 +937,7 @@ enum {
WNM_DISASSOC_ADDR,
WNM_DISASSOC_DURATION,
WNM_DISASSOC_NEIGHBORS,
+ WNM_DISASSOC_ABRIDGED,
__WNM_DISASSOC_MAX,
};
@@ -944,6 +945,7 @@ static const struct blobmsg_policy wnm_disassoc_policy[__WNM_DISASSOC_MAX] = {
[WNM_DISASSOC_ADDR] = { "addr", BLOBMSG_TYPE_STRING },
[WNM_DISASSOC_DURATION] { "duration", BLOBMSG_TYPE_INT32 },
[WNM_DISASSOC_NEIGHBORS] { "neighbors", BLOBMSG_TYPE_ARRAY },
+ [WNM_DISASSOC_ABRIDGED] { "abridged", BLOBMSG_TYPE_BOOL },
};
static int
@@ -1017,6 +1019,9 @@ hostapd_wnm_disassoc_imminent(struct ubus_context *ctx, struct ubus_object *obj,
if (nr)
req_mode |= WNM_BSS_TM_REQ_PREF_CAND_LIST_INCLUDED;
+ if (tb[WNM_DISASSOC_ABRIDGED] && blobmsg_get_bool(tb[WNM_DISASSOC_ABRIDGED]))
+ req_mode |= WNM_BSS_TM_REQ_ABRIDGED;
+
if (wnm_send_bss_tm_req(hapd, sta, req_mode, duration, 0, NULL,
NULL, nr, nr_len, NULL, 0))
return UBUS_STATUS_UNKNOWN_ERROR;