]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Support OCE features (driver capability and scan params)
authorRoee Zamir <roee.zamir@intel.com>
Sun, 26 Aug 2018 17:45:01 +0000 (20:45 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 2 Sep 2018 14:59:01 +0000 (17:59 +0300)
Check if the device supports specific mandatory features and set the the
relevant WPA_DRIVER_FLAGS_OCE_STA flag. Send the relevant scan
parameters for OCE scans.

Signed-off-by: Roee Zamir <roee.zamir@intel.com>
src/drivers/driver_nl80211_capa.c
src/drivers/driver_nl80211_scan.c

index 60c34c9a03c3f28e92c5701ecfe4f64abff7a263..a51b50de40a4b96a54f4d30379343f4c582fd461 100644 (file)
@@ -415,6 +415,19 @@ static void wiphy_info_ext_feature_flags(struct wiphy_info_data *info,
        if (ext_feature_isset(ext_features, len,
                              NL80211_EXT_FEATURE_DFS_OFFLOAD))
                capa->flags |= WPA_DRIVER_FLAGS_DFS_OFFLOAD;
+
+#ifdef CONFIG_MBO
+       if (ext_feature_isset(ext_features, len,
+                             NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME) &&
+           ext_feature_isset(ext_features, len,
+                             NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP) &&
+           ext_feature_isset(ext_features, len,
+                             NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE) &&
+           ext_feature_isset(
+                   ext_features, len,
+                   NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION))
+               capa->flags |= WPA_DRIVER_FLAGS_OCE_STA;
+#endif /* CONFIG_MBO */
 }
 
 
index 984485b006ffca3820c03b73ecc9cc0e2cfc3cee..86501f46ecf7067cac08220099a3c8b7bf995c79 100644 (file)
@@ -282,6 +282,21 @@ nl80211_scan_common(struct i802_bss *bss, u8 cmd,
                        goto fail;
        }
 
+       if (params->oce_scan) {
+               wpa_printf(MSG_DEBUG,
+                          "nl80211: Add NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME");
+               wpa_printf(MSG_DEBUG,
+                          "nl80211: Add NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP");
+               wpa_printf(MSG_DEBUG,
+                          "nl80211: Add NL80211_SCAN_FLAG_OCE_PROBE_REQ_MIN_TX_RATE");
+               wpa_printf(MSG_DEBUG,
+                          "nl80211: Add NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION");
+               scan_flags |= NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME |
+                       NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP |
+                       NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE |
+                       NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION;
+       }
+
        if (scan_flags &&
            nla_put_u32(msg, NL80211_ATTR_SCAN_FLAGS, scan_flags))
                goto fail;