Sfoglia il codice sorgente

qcacld-3.0: Do not send replay counter for CCKM

Do not include replay counter attribute when roaming
is done for CCKM authentication type. For 11R and CCKM
roaming, the re-association frame carries additional
IE's which help cut down the Key exchange post
association. Hence there would be no EAPOL exchange
and hence it is not needed to include the replay
counter attribute to the supplicant after roaming.

CRs-Fixed: 972486
Change-Id: Ib861bdc91e949605788a19df4a706e6544dd4c73
Varun Reddy Yeturu 9 anni fa
parent
commit
16e8f0114e
1 ha cambiato i file con 12 aggiunte e 8 eliminazioni
  1. 12 8
      core/hdd/src/wlan_hdd_cfg80211.c

+ 12 - 8
core/hdd/src/wlan_hdd_cfg80211.c

@@ -2998,6 +2998,7 @@ int wlan_hdd_send_roam_auth_event(hdd_context_t *hdd_ctx_ptr, uint8_t *bssid,
 		uint32_t rsp_rsn_len, tCsrRoamInfo *roam_info_ptr)
 		uint32_t rsp_rsn_len, tCsrRoamInfo *roam_info_ptr)
 {
 {
 	struct sk_buff *skb = NULL;
 	struct sk_buff *skb = NULL;
+	eCsrAuthType auth_type;
 	ENTER();
 	ENTER();
 
 
 	if (wlan_hdd_validate_context(hdd_ctx_ptr)) {
 	if (wlan_hdd_validate_context(hdd_ctx_ptr)) {
@@ -3043,14 +3044,17 @@ int wlan_hdd_send_roam_auth_event(hdd_context_t *hdd_ctx_ptr, uint8_t *bssid,
 			hdd_err("nla put fail");
 			hdd_err("nla put fail");
 			goto nla_put_failure;
 			goto nla_put_failure;
 		}
 		}
-		/* if FT connection: dont send ROAM_AUTH_KEY_REPLAY_CTR */
-		if (roam_info_ptr->u.pConnectedProfile->AuthType !=
-			eCSR_AUTH_TYPE_FT_RSN &&
-		    roam_info_ptr->u.pConnectedProfile->AuthType !=
-			eCSR_AUTH_TYPE_FT_RSN_PSK &&
-		    nla_put(skb, QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_KEY_REPLAY_CTR,
-			SIR_REPLAY_CTR_LEN, roam_info_ptr->replay_ctr)) {
-			hdd_err("non FT connection.");
+		auth_type = roam_info_ptr->u.pConnectedProfile->AuthType;
+		/* if FT or CCKM connection: dont send replay counter */
+		if (auth_type != eCSR_AUTH_TYPE_FT_RSN &&
+		    auth_type != eCSR_AUTH_TYPE_FT_RSN_PSK &&
+		    auth_type != eCSR_AUTH_TYPE_CCKM_WPA &&
+		    auth_type != eCSR_AUTH_TYPE_CCKM_RSN &&
+		    nla_put(skb,
+			    QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_KEY_REPLAY_CTR,
+			    SIR_REPLAY_CTR_LEN,
+			    roam_info_ptr->replay_ctr)) {
+			hdd_err("non FT/non CCKM connection.");
 			hdd_err("failed to send replay counter.");
 			hdd_err("failed to send replay counter.");
 			goto nla_put_failure;
 			goto nla_put_failure;
 		}
 		}