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,
.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)
/* 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) {