[PATCH] driver_nl80211: fix send_mlme to use monitor interface only for AP interface

Ajay.Kathat at microchip.com Ajay.Kathat at microchip.com
Tue Jul 13 12:05:23 PDT 2021

From: Ajay Singh <ajay.kathat at microchip.com>

Use monitor interface to send_mlme only when the interface is configured in AP
mode. In multiple interface setup, one interface can be configured in AP mode
using monitor interface and another interface in station mode. The station
interface may also require sending the management frames without using monitor
interface e.g support external SAE authentication to send AUTH frames without
monitor interface. This change allows sending management frames to driver for
station interface where AP interface uses monitor interface.

Additionally, the monitor interface is only valid for AP mode
(nl80211_create_monitor_interface() is called in nl80211_setup_ap) so interface
type check ensures to use monitor interface only when required by the specific

Signed-off-by: Ajay Singh <ajay.kathat at microchip.com>
Signed-off-by: Peter Reen <peter.reen at microchip.com>
 src/drivers/driver_nl80211.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 8eb033c78..41dc8f029 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -4072,7 +4072,7 @@ static int wpa_driver_nl80211_send_mlme(struct i802_bss *bss, const u8 *data,
 		freq = bss->freq;
-	if (drv->use_monitor) {
+	if (drv->use_monitor && is_ap_interface(drv->nlmode)) {
 			   "nl80211: send_frame(freq=%u bss->freq=%u) -> send_monitor",
 			   freq, bss->freq);

More information about the Hostap mailing list