|
@@ -433,6 +433,54 @@ static void hdd_init_6ghz(struct hdd_context *hdd_ctx)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+#if defined(CFG80211_IFTYPE_AKM_SUITES_SUPPORT)
|
|
|
+/*akm suits supported by sta*/
|
|
|
+static const u32 hdd_sta_akm_suites[] = {
|
|
|
+ WLAN_AKM_SUITE_8021X,
|
|
|
+ WLAN_AKM_SUITE_PSK,
|
|
|
+ WLAN_AKM_SUITE_FT_8021X,
|
|
|
+ WLAN_AKM_SUITE_FT_PSK,
|
|
|
+ WLAN_AKM_SUITE_8021X_SHA256,
|
|
|
+ WLAN_AKM_SUITE_PSK_SHA256,
|
|
|
+ WLAN_AKM_SUITE_TDLS,
|
|
|
+ WLAN_AKM_SUITE_SAE,
|
|
|
+ WLAN_AKM_SUITE_FT_OVER_SAE,
|
|
|
+ WLAN_AKM_SUITE_8021X_SUITE_B,
|
|
|
+ WLAN_AKM_SUITE_8021X_SUITE_B_192,
|
|
|
+ WLAN_AKM_SUITE_FILS_SHA256,
|
|
|
+ WLAN_AKM_SUITE_FILS_SHA384,
|
|
|
+ WLAN_AKM_SUITE_FT_FILS_SHA256,
|
|
|
+ WLAN_AKM_SUITE_FT_FILS_SHA384,
|
|
|
+ WLAN_AKM_SUITE_OWE,
|
|
|
+};
|
|
|
+
|
|
|
+/*akm suits supported by AP*/
|
|
|
+static const u32 hdd_ap_akm_suites[] = {
|
|
|
+ WLAN_AKM_SUITE_PSK,
|
|
|
+ WLAN_AKM_SUITE_SAE,
|
|
|
+ WLAN_AKM_SUITE_OWE,
|
|
|
+};
|
|
|
+
|
|
|
+/* This structure contain information what akm suits are
|
|
|
+ * supported for each mode
|
|
|
+ */
|
|
|
+static const struct wiphy_iftype_akm_suites
|
|
|
+ wlan_hdd_akm_suites[] = {
|
|
|
+ {
|
|
|
+ .iftypes_mask = BIT(NL80211_IFTYPE_STATION) |
|
|
|
+ BIT(NL80211_IFTYPE_P2P_CLIENT),
|
|
|
+ .akm_suites = hdd_sta_akm_suites,
|
|
|
+ .n_akm_suites = (sizeof(hdd_sta_akm_suites) / sizeof(u32)),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iftypes_mask = BIT(NL80211_IFTYPE_AP) |
|
|
|
+ BIT(NL80211_IFTYPE_P2P_GO),
|
|
|
+ .akm_suites = hdd_ap_akm_suites,
|
|
|
+ .n_akm_suites = (sizeof(hdd_ap_akm_suites) / sizeof(u32)),
|
|
|
+ },
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
/* This structure contain information what kind of frame are expected in
|
|
|
* TX/RX direction for each kind of interface
|
|
|
*/
|
|
@@ -14720,6 +14768,27 @@ static void wlan_hdd_set_nan_supported_bands(struct wiphy *wiphy)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+/**
|
|
|
+ * wlan_hdd_update_akm_suit_info() - Populate akm suits supported by driver
|
|
|
+ * @wiphy: wiphy
|
|
|
+ *
|
|
|
+ * Return: void
|
|
|
+ */
|
|
|
+#if defined(CFG80211_IFTYPE_AKM_SUITES_SUPPORT)
|
|
|
+static void
|
|
|
+wlan_hdd_update_akm_suit_info(struct wiphy *wiphy)
|
|
|
+{
|
|
|
+ wiphy->iftype_akm_suites = wlan_hdd_akm_suites;
|
|
|
+ wiphy->num_iftype_akm_suites = QDF_ARRAY_SIZE(wlan_hdd_akm_suites) /
|
|
|
+ sizeof(struct wiphy_iftype_akm_suites);
|
|
|
+}
|
|
|
+#else
|
|
|
+static void
|
|
|
+wlan_hdd_update_akm_suit_info(struct wiphy *wiphy)
|
|
|
+{
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
/*
|
|
|
* FUNCTION: wlan_hdd_cfg80211_init
|
|
|
* This function is called by hdd_wlan_startup()
|
|
@@ -14737,7 +14806,7 @@ int wlan_hdd_cfg80211_init(struct device *dev,
|
|
|
set_wiphy_dev(wiphy, dev);
|
|
|
|
|
|
wiphy->mgmt_stypes = wlan_hdd_txrx_stypes;
|
|
|
-
|
|
|
+ wlan_hdd_update_akm_suit_info(wiphy);
|
|
|
wiphy->flags |= WIPHY_FLAG_HAVE_AP_SME
|
|
|
| WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD
|
|
|
| WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL
|