ACS: Send EHT enabled info to driver

The driver can consider EHT specific parameters such as the puncture
pattern for ACS when this flag attribute is indicated by userspace.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
This commit is contained in:
Veerendranath Jakkam 2022-05-04 00:34:50 +05:30 committed by Jouni Malinen
parent 82066bd367
commit 27e828d728
3 changed files with 11 additions and 3 deletions

View file

@ -967,13 +967,15 @@ int hostapd_drv_do_acs(struct hostapd_data *hapd)
params.ht40_enabled = !!(hapd->iface->conf->ht_capab &
HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET);
params.vht_enabled = !!(hapd->iface->conf->ieee80211ac);
params.eht_enabled = !!(hapd->iface->conf->ieee80211be);
params.ch_width = 20;
if (hapd->iface->conf->ieee80211n && params.ht40_enabled)
params.ch_width = 40;
/* Note: VHT20 is defined by combination of ht_capab & oper_chwidth
*/
if ((hapd->iface->conf->ieee80211ax ||
if ((hapd->iface->conf->ieee80211be ||
hapd->iface->conf->ieee80211ax ||
hapd->iface->conf->ieee80211ac) &&
params.ht40_enabled) {
u8 oper_chwidth = hostapd_get_oper_chwidth(hapd->iface->conf);

View file

@ -2514,6 +2514,9 @@ struct drv_acs_params {
/* Indicates whether EDMG is enabled */
int edmg_enabled;
/* Indicates whether EHT is enabled */
bool eht_enabled;
};
struct wpa_bss_trans_info {

View file

@ -11168,6 +11168,8 @@ static int nl80211_qca_do_acs(struct wpa_driver_nl80211_data *drv,
nla_put_flag(msg, QCA_WLAN_VENDOR_ATTR_ACS_HT40_ENABLED)) ||
(params->vht_enabled &&
nla_put_flag(msg, QCA_WLAN_VENDOR_ATTR_ACS_VHT_ENABLED)) ||
(params->eht_enabled &&
nla_put_flag(msg, QCA_WLAN_VENDOR_ATTR_ACS_EHT_ENABLED)) ||
nla_put_u16(msg, QCA_WLAN_VENDOR_ATTR_ACS_CHWIDTH,
params->ch_width) ||
add_acs_ch_list(msg, params->freq_list) ||
@ -11180,9 +11182,10 @@ static int nl80211_qca_do_acs(struct wpa_driver_nl80211_data *drv,
nla_nest_end(msg, data);
wpa_printf(MSG_DEBUG,
"nl80211: ACS Params: HW_MODE: %d HT: %d HT40: %d VHT: %d BW: %d EDMG: %d",
"nl80211: ACS Params: HW_MODE: %d HT: %d HT40: %d VHT: %d EHT: %d BW: %d EDMG: %d",
params->hw_mode, params->ht_enabled, params->ht40_enabled,
params->vht_enabled, params->ch_width, params->edmg_enabled);
params->vht_enabled, params->eht_enabled, params->ch_width,
params->edmg_enabled);
ret = send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
if (ret) {