local_node: query client MBO support from hostapd

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
Stijn Tintel
2022-08-11 12:53:01 +03:00
parent 9059b9a537
commit 642607a3b4
3 changed files with 17 additions and 1 deletions

View File

@@ -388,6 +388,10 @@ usteer_local_node_assoc_update(struct sta_info *si, struct blob_attr *data)
static void
usteer_local_node_update_sta_rrm_wnm(struct sta_info *si, struct blob_attr *client_attr)
{
static const struct blobmsg_policy mbo_policy = {
.name = "mbo",
.type = BLOBMSG_TYPE_BOOL,
};
static const struct blobmsg_policy rrm_policy = {
.name = "rrm",
.type = BLOBMSG_TYPE_ARRAY,
@@ -396,10 +400,18 @@ usteer_local_node_update_sta_rrm_wnm(struct sta_info *si, struct blob_attr *clie
.name = "extended_capabilities",
.type = BLOBMSG_TYPE_ARRAY,
};
struct blob_attr *rrm_blob = NULL, *wnm_blob = NULL, *cur;
struct blob_attr *mbo_blob = NULL, *rrm_blob = NULL, *wnm_blob = NULL, *cur;
int rem;
int i = 0;
/* MBO */
blobmsg_parse(&mbo_policy, 1, &mbo_blob, blobmsg_data(client_attr), blobmsg_data_len(client_attr));
if (mbo_blob)
si->mbo = blobmsg_get_u8(mbo_blob);
else
si->mbo = false;
/* RRM */
blobmsg_parse(&rrm_policy, 1, &rrm_blob, blobmsg_data(client_attr), blobmsg_data_len(client_attr));
if (!rrm_blob)

3
ubus.c
View File

@@ -442,6 +442,9 @@ usteer_ubus_get_connected_clients(struct ubus_context *ctx, struct ubus_object *
/* BSS-Transition support */
blobmsg_add_u8(&b, "bss-transition-management", si->bss_transition);
/* MBO support */
blobmsg_add_u8(&b, "multi-band-operation", si->mbo);
/* Measurements */
a = blobmsg_open_array(&b, "measurements");
list_for_each_entry(mr, &si->sta->measurements, sta_list) {

View File

@@ -246,6 +246,7 @@ struct sta_info {
uint8_t rrm;
bool bss_transition;
bool mbo;
enum roam_trigger_state roam_state;
uint8_t roam_tries;