]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
ACS: Send EHT enabled info to driver
authorVeerendranath Jakkam <quic_vjakkam@quicinc.com>
Tue, 3 May 2022 19:04:50 +0000 (00:34 +0530)
committerJouni Malinen <j@w1.fi>
Thu, 5 May 2022 10:25:44 +0000 (13:25 +0300)
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>
src/ap/ap_drv_ops.c
src/drivers/driver.h
src/drivers/driver_nl80211.c

index 817fbe6036a4b3d19657e20f3dc153cce22e5306..8af7a0e2563fd5bf62016c14791a3657203947a3 100644 (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);
index 7e83f0246e11f91fbe597e24b74b4d9a694381ed..6c00fb56439fa31f647f23b5cca317de520d3bc9 100644 (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 {
index a655a9fac83c023d559086eb9b1feb29ba1e625f..fa89a006bb5d769cf6682d4a991da12103d9b646 100644 (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) {