Expose Multi-BSS STA capability through wpa_supplicant control interface

Indicate whether the driver advertises support for Multi-BSS STA
functionality with "GET_CAPABILITY multibss" (returns "MULTIBSS-STA" if
supported).

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
Jouni Malinen 2018-12-20 21:24:48 +02:00 committed by Jouni Malinen
parent 7488e0ade6
commit 2a93ecc8ca
3 changed files with 14 additions and 0 deletions

View file

@ -4388,6 +4388,13 @@ static int wpa_supplicant_ctrl_iface_get_capability(
} }
#endif /* CONFIG_FILS */ #endif /* CONFIG_FILS */
if (os_strcmp(field, "multibss") == 0 && wpa_s->multi_bss_support) {
res = os_snprintf(buf, buflen, "MULTIBSS-STA");
if (os_snprintf_error(buflen, res))
return -1;
return res;
}
wpa_printf(MSG_DEBUG, "CTRL_IFACE: Unknown GET_CAPABILITY field '%s'", wpa_printf(MSG_DEBUG, "CTRL_IFACE: Unknown GET_CAPABILITY field '%s'",
field); field);

View file

@ -5582,6 +5582,12 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
capa.mac_addr_rand_sched_scan_supported) capa.mac_addr_rand_sched_scan_supported)
wpa_s->mac_addr_rand_supported |= wpa_s->mac_addr_rand_supported |=
(MAC_ADDR_RAND_SCHED_SCAN | MAC_ADDR_RAND_PNO); (MAC_ADDR_RAND_SCHED_SCAN | MAC_ADDR_RAND_PNO);
wpa_drv_get_ext_capa(wpa_s, WPA_IF_STATION);
if (wpa_s->extended_capa &&
wpa_s->extended_capa_len >= 3 &&
wpa_s->extended_capa[2] & 0x40)
wpa_s->multi_bss_support = 1;
} }
if (wpa_s->max_remain_on_chan == 0) if (wpa_s->max_remain_on_chan == 0)
wpa_s->max_remain_on_chan = 1000; wpa_s->max_remain_on_chan = 1000;

View file

@ -1235,6 +1235,7 @@ struct wpa_supplicant {
#endif /* CONFIG_FILS */ #endif /* CONFIG_FILS */
unsigned int ieee80211ac:1; unsigned int ieee80211ac:1;
unsigned int enabled_4addr_mode:1; unsigned int enabled_4addr_mode:1;
unsigned int multi_bss_support:1;
}; };