nl80211: Subscribe management frames for WPA_IF_AP_BSS types

In multiple BSSes scenario for the drivers that do not use
monitor interface and do not implement AP SME, RX MGMT
frame subscription happens only for the default bss (first_bss).

Subscribe for RX MGMT frames for such BSSes.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
This commit is contained in:
Yogesh Ashok Powar 2012-01-29 12:33:05 +02:00 committed by Jouni Malinen
parent a7a6af4cba
commit 3dd1d8906d

View File

@ -7813,6 +7813,10 @@ static int wpa_driver_nl80211_if_add(void *priv, enum wpa_driver_if_type type,
if (drv_priv) if (drv_priv)
*drv_priv = new_bss; *drv_priv = new_bss;
nl80211_init_bss(new_bss); nl80211_init_bss(new_bss);
/* Subscribe management frames for this WPA_IF_AP_BSS */
if (nl80211_setup_ap(new_bss))
return -1;
} }
#endif /* HOSTAPD */ #endif /* HOSTAPD */
@ -7864,6 +7868,8 @@ static int wpa_driver_nl80211_if_remove(void *priv,
for (tbss = &drv->first_bss; tbss; tbss = tbss->next) { for (tbss = &drv->first_bss; tbss; tbss = tbss->next) {
if (tbss->next == bss) { if (tbss->next == bss) {
tbss->next = bss->next; tbss->next = bss->next;
/* Unsubscribe management frames */
nl80211_teardown_ap(bss);
nl80211_destroy_bss(bss); nl80211_destroy_bss(bss);
os_free(bss); os_free(bss);
bss = NULL; bss = NULL;