[RFC PATCH 14/23] nl80211: Route MLME TX via PD wdev based on source address

Peddolla Harshavardhan Reddy peddolla.reddy at oss.qualcomm.com
Tue Mar 31 22:27:04 PDT 2026


From: Veerendranath Jakkam <vjakkam at qti.qualcomm.com>

Use the PD i802_bss when sending MLME frames if the source address
matches a PD BSS. This ensures the frames are transmitted via the
correct wdev when a PD interface is present. When such a PD BSS is
found, update the bss used for TX and the associated link reference,
and add a debug log to indicate that the frame is routed via the PD
wdev.

Signed-off-by: Veerendranath Jakkam <vjakkam at qti.qualcomm.com>
---
 src/drivers/driver_nl80211.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index c68f343e8..2543bc187 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -4952,6 +4952,7 @@ static int wpa_driver_nl80211_send_mlme(struct i802_bss *bss, const u8 *data,
 					int link_id)
 {
 	struct wpa_driver_nl80211_data *drv = bss->drv;
+	struct i802_bss *pd_bss;
 	struct ieee80211_mgmt *mgmt;
 	u16 fc;
 	int use_cookie = 1;
@@ -4967,6 +4968,15 @@ static int wpa_driver_nl80211_send_mlme(struct i802_bss *bss, const u8 *data,
 		   noack, freq, no_cck, offchanok, wait_time,
 		   no_encrypt, fc, fc2str(fc), drv->nlmode);
 
+	pd_bss = nl80211_get_pd_bss_by_addr(drv, mgmt->sa);
+	if (pd_bss) {
+		bss = pd_bss;
+		wpa_printf(MSG_DEBUG,
+			   "nl80211: send_mlme - route via PD wdev sa=" MACSTR,
+			   MAC2STR(mgmt->sa));
+		link = bss->flink;
+	}
+
 	if ((is_sta_interface(drv->nlmode) ||
 	     drv->nlmode == NL80211_IFTYPE_P2P_DEVICE) &&
 	    WLAN_FC_GET_TYPE(fc) == WLAN_FC_TYPE_MGMT &&
-- 
2.34.1




More information about the Hostap mailing list