@@ -455,7 +455,7 @@ static inline int hostapd_drv_link_add(struct hostapd_data *hapd,
if (!hapd->driver || !hapd->drv_priv || !hapd->driver->link_add)
return -1;
- return hapd->driver->link_add(hapd->drv_priv, link_id, addr);
+ return hapd->driver->link_add(hapd->drv_priv, link_id, addr, hapd);
}
#endif /* CONFIG_IEEE80211BE */
@@ -5137,9 +5137,10 @@ struct wpa_driver_ops {
* @priv: Private driver interface data
* @link_id: The link ID
* @addr: The MAC address to use for the link
+ * @bss_ctx: BSS context for %WPA_IF_AP_BSS interfaces
* Returns: 0 on success, negative value on failure
*/
- int (*link_add)(void *priv, u8 link_id, const u8 *addr);
+ int (*link_add)(void *priv, u8 link_id, const u8 *addr, void *bss_ctx);
#ifdef CONFIG_TESTING_OPTIONS
int (*register_frame)(void *priv, u16 type,
@@ -13760,7 +13760,7 @@ static int nl80211_dpp_listen(void *priv, bool enable)
#endif /* CONFIG_DPP */
-static int nl80211_link_add(void *priv, u8 link_id, const u8 *addr)
+static int nl80211_link_add(void *priv, u8 link_id, const u8 *addr, void *bss_ctx)
{
struct i802_bss *bss = priv;
struct wpa_driver_nl80211_data *drv = bss->drv;
@@ -13819,6 +13819,7 @@ static int nl80211_link_add(void *priv, u8 link_id, const u8 *addr)
bss->flink = &bss->links[link_id];
bss->valid_links |= BIT(link_id);
+ bss->links[link_id].ctx = bss_ctx;
wpa_printf(MSG_DEBUG, "nl80211: MLD: valid_links=0x%04x",
bss->valid_links);
@@ -58,6 +58,7 @@ struct i802_link {
int freq;
int bandwidth;
u8 addr[ETH_ALEN];
+ void *ctx;
};
struct i802_bss {
Add changes to cache the corresponding hostapd_data struct context into it. This will be useful for wpa events callback processing. Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> --- src/ap/ap_drv_ops.h | 2 +- src/drivers/driver.h | 3 ++- src/drivers/driver_nl80211.c | 3 ++- src/drivers/driver_nl80211.h | 1 + 4 files changed, 6 insertions(+), 3 deletions(-)