Pārlūkot izejas kodu

qcacmn: Set AUTH_AND_DEAUTH_RANDOM_TA flag for 11az RTT

Set NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA in wiphy ext feature
flag to allow random TA to be used with authentication and
deauthentication frames when MAC secured or MAC_PHY secured ranging is
supported.

Change-Id: I96d1026daad4ffca271aed8c9aa09ff422573209
CRs-Fixed: 3617665
Shashikala Prabhu 1 gadu atpakaļ
vecāks
revīzija
8ccae22749
1 mainītis faili ar 32 papildinājumiem un 0 dzēšanām
  1. 32 0
      os_if/linux/wifi_pos/src/wlan_cfg80211_wifi_pos.c

+ 32 - 0
os_if/linux/wifi_pos/src/wlan_cfg80211_wifi_pos.c

@@ -34,6 +34,36 @@ u8 wlan_extended_caps_iface_mask[WLAN_EXTCAP_IE_MAX_LEN] = {0};
 
 struct wiphy_iftype_ext_capab iftype_ext_cap;
 
+#if !defined(CNSS_GENL) && (LINUX_VERSION_CODE == KERNEL_VERSION(5, 4, 0))
+/**
+ * wlan_wifi_pos_cfg80211_set_auth_deauth_random_ta_flag() - API to set
+ * NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA flag
+ * @wiphy: Pointer to wiphy
+ * @psoc: Pointer to psoc
+ *
+ * Allow random TA to be used with authentication and deauthentication frames
+ * when MAC secured or MAC_PHY secured ranging is supported.
+ *
+ * Return: None
+ */
+static void
+wlan_wifi_pos_cfg80211_set_auth_deauth_random_ta_flag(
+		struct wiphy *wiphy,
+		struct wlan_objmgr_psoc *psoc)
+{
+	if (wlan_psoc_nif_fw_ext2_cap_get(psoc, WLAN_RTT_11AZ_MAC_SEC_SUPPORT) ||
+	    wlan_psoc_nif_fw_ext2_cap_get(psoc, WLAN_RTT_11AZ_MAC_PHY_SEC_SUPPORT))
+		wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA);
+}
+#else
+static void
+wlan_wifi_pos_cfg80211_set_auth_deauth_random_ta_flag(
+		struct wiphy *wiphy,
+		struct wlan_objmgr_psoc *psoc)
+{
+}
+#endif
+
 #define WLAN_EXT_RANGING_CAP_IDX  11
 void
 wlan_wifi_pos_cfg80211_set_wiphy_ext_feature(struct wiphy *wiphy,
@@ -61,6 +91,8 @@ wlan_wifi_pos_cfg80211_set_wiphy_ext_feature(struct wiphy *wiphy,
 					WLAN_EXT_CAPA11_TB_RANGING_RESPONDER;
 	}
 
+	wlan_wifi_pos_cfg80211_set_auth_deauth_random_ta_flag(wiphy, psoc);
+
 	iftype_ext_cap.iftype = NL80211_IFTYPE_AP;
 	iftype_ext_cap.extended_capabilities =
 				wlan_extended_caps_iface,