AP: MLO: Retrieve EML and MLD capabilities from driver
Add a new driver API get_mld_capab() and and use it to fetch MLD and EML capabilities. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
This commit is contained in:
parent
4697887df9
commit
8dffa0ccb1
5 changed files with 29 additions and 0 deletions
|
@ -235,6 +235,8 @@ static int hostapd_driver_init(struct hostapd_iface *iface)
|
||||||
*/
|
*/
|
||||||
hostapd_get_ext_capa(iface);
|
hostapd_get_ext_capa(iface);
|
||||||
|
|
||||||
|
hostapd_get_mld_capa(iface);
|
||||||
|
|
||||||
triggs = wpa_get_wowlan_triggers(conf->wowlan_triggers, &capa);
|
triggs = wpa_get_wowlan_triggers(conf->wowlan_triggers, &capa);
|
||||||
if (triggs && hapd->driver->set_wowlan) {
|
if (triggs && hapd->driver->set_wowlan) {
|
||||||
if (hapd->driver->set_wowlan(hapd->drv_priv, triggs))
|
if (hapd->driver->set_wowlan(hapd->drv_priv, triggs))
|
||||||
|
|
|
@ -941,6 +941,19 @@ void hostapd_get_ext_capa(struct hostapd_iface *iface)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void hostapd_get_mld_capa(struct hostapd_iface *iface)
|
||||||
|
{
|
||||||
|
struct hostapd_data *hapd = iface->bss[0];
|
||||||
|
|
||||||
|
if (!hapd->driver || !hapd->driver->get_mld_capab)
|
||||||
|
return;
|
||||||
|
|
||||||
|
hapd->driver->get_mld_capab(hapd->drv_priv, WPA_IF_AP_BSS,
|
||||||
|
&iface->mld_eml_capa,
|
||||||
|
&iface->mld_mld_capa);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hostapd_drv_do_acs - Start automatic channel selection
|
* hostapd_drv_do_acs - Start automatic channel selection
|
||||||
* @hapd: BSS data for the device initiating ACS
|
* @hapd: BSS data for the device initiating ACS
|
||||||
|
|
|
@ -155,6 +155,7 @@ int hostapd_drv_set_qos_map(struct hostapd_data *hapd, const u8 *qos_map_set,
|
||||||
u8 qos_map_set_len);
|
u8 qos_map_set_len);
|
||||||
|
|
||||||
void hostapd_get_ext_capa(struct hostapd_iface *iface);
|
void hostapd_get_ext_capa(struct hostapd_iface *iface);
|
||||||
|
void hostapd_get_mld_capa(struct hostapd_iface *iface);
|
||||||
|
|
||||||
void hostapd_get_hw_mode_any_channels(struct hostapd_data *hapd,
|
void hostapd_get_hw_mode_any_channels(struct hostapd_data *hapd,
|
||||||
struct hostapd_hw_modes *mode,
|
struct hostapd_hw_modes *mode,
|
||||||
|
|
|
@ -542,6 +542,8 @@ struct hostapd_iface {
|
||||||
const u8 *extended_capa, *extended_capa_mask;
|
const u8 *extended_capa, *extended_capa_mask;
|
||||||
unsigned int extended_capa_len;
|
unsigned int extended_capa_len;
|
||||||
|
|
||||||
|
u16 mld_eml_capa, mld_mld_capa;
|
||||||
|
|
||||||
unsigned int drv_max_acl_mac_addrs;
|
unsigned int drv_max_acl_mac_addrs;
|
||||||
|
|
||||||
struct hostapd_hw_modes *hw_features;
|
struct hostapd_hw_modes *hw_features;
|
||||||
|
|
|
@ -4854,6 +4854,17 @@ struct wpa_driver_ops {
|
||||||
const u8 **ext_capab, const u8 **ext_capab_mask,
|
const u8 **ext_capab, const u8 **ext_capab_mask,
|
||||||
unsigned int *ext_capab_len);
|
unsigned int *ext_capab_len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get_mld_capab - Get MLD capabilities for the specified interface
|
||||||
|
* @priv: Private driver interface data
|
||||||
|
* @type: Interface type for which to get MLD capabilities
|
||||||
|
* @eml_capa: EML capabilities
|
||||||
|
* @mld_capa_and_ops: MLD Capabilities and Operations
|
||||||
|
* Returns: 0 on success or -1 on failure
|
||||||
|
*/
|
||||||
|
int (*get_mld_capab)(void *priv, enum wpa_driver_if_type type,
|
||||||
|
u16 *eml_capa, u16 *mld_capa_and_ops);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* p2p_lo_start - Start offloading P2P listen to device
|
* p2p_lo_start - Start offloading P2P listen to device
|
||||||
* @priv: Private driver interface data
|
* @priv: Private driver interface data
|
||||||
|
|
Loading…
Add table
Reference in a new issue