[PATCH v2 2/2] hostapd: Subscribe management frames for WPA_IF_AP_BSS types

Yogesh Ashok Powar yogeshp
Thu Jan 12 03:49:58 PST 2012


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

Subscribing for RX MGMT frames for such BSSes.

V2: As suggested by Johannes
    Adding corresponding teardown_ap() call to unsubscribe
    the previously subscribed MGMT RX frames.

Signed-off-by: Yogesh Ashok Powar <yogeshp at marvell.com>
---
 src/drivers/driver_nl80211.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 69e269c..51087ba 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -7783,6 +7783,10 @@ static int wpa_driver_nl80211_if_add(void *priv, enum wpa_driver_if_type type,
 		if (drv_priv)
 			*drv_priv = 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 */
 
@@ -7834,6 +7838,8 @@ static int wpa_driver_nl80211_if_remove(void *priv,
 		for (tbss = &drv->first_bss; tbss; tbss = tbss->next) {
 			if (tbss->next == bss) {
 				tbss->next = bss->next;
+				/* Unsubscribe management frames */
+				nl80211_teardown_ap(bss);
 				nl80211_destroy_bss(bss);
 				os_free(bss);
 				bss = NULL;
-- 
1.7.5.4




More information about the Hostap mailing list