nl80211: Cache hostapd_data context in per link BSS struct for AP MLD

Cache the corresponding hostapd_data struct context into the link entry
within the driver wrapper. This will be useful for driver events
callback processing.

Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
This commit is contained in:
Aditya Kumar Singh 2024-03-06 12:08:22 +05:30 committed by Jouni Malinen
parent 60e1dca1ef
commit f2f0dd354f
4 changed files with 7 additions and 3 deletions

View file

@ -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 */

View file

@ -5148,9 +5148,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,

View file

@ -13761,7 +13761,8 @@ 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;
@ -13820,6 +13821,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);

View file

@ -58,6 +58,7 @@ struct i802_link {
int freq;
int bandwidth;
u8 addr[ETH_ALEN];
void *ctx;
};
struct i802_bss {