@@ -1810,8 +1810,8 @@ static int hostapd_mgmt_rx(struct hostapd_data *hapd, struct rx_mgmt *rx_mgmt)
const u8 *bssid;
struct hostapd_frame_info fi;
int ret;
- bool is_mld = false;
+ hapd = rx_mgmt->ctx ? rx_mgmt->ctx : hapd;
hapd = switch_link_hapd(hapd, rx_mgmt->link_id);
iface = hapd->iface;
@@ -6345,6 +6345,14 @@ union wpa_event_data {
*/
void *drv_priv;
+ /**
+ * ctx - Pointer to store ctx of private BSS information
+ *
+ * If not set to NULL, this is used for forwarding the packet
+ * to right link BSS of ML BSS.
+ */
+ void *ctx;
+
/**
* freq - Frequency (in MHz) on which the frame was received
*/
@@ -1367,6 +1367,7 @@ static void mlme_event_mgmt(struct i802_bss *bss,
event.rx_mgmt.frame_len = len;
event.rx_mgmt.ssi_signal = ssi_signal;
event.rx_mgmt.drv_priv = bss;
+ event.rx_mgmt.ctx = bss->ctx;
event.rx_mgmt.link_id = link_id;
wpa_supplicant_event(drv->ctx, EVENT_RX_MGMT, &event);