Pārlūkot izejas kodu

qcacmn: Don't send replay counter value for all FT AKMs

In roam_auth vendor event sent to userspace after roaming, the
QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_KEY_REPLAY_CTR attribute should
not be filled for any of the FT AKMs.
But currently its filled for below FT AKMs:
WLAN_CRYPTO_KEY_MGMT_FT_PSK
WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA256
WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA384
WLAN_CRYPTO_KEY_MGMT_FT_PSK_SHA384

This causes the GTK M1 frame received at the supplicant
to be dropped since EAPOL Key replay counter didn't increase
for PSK connection.
So disconnection occurs due to GTK handshake failure.

So don't fill the key replay counter attribute for all the
FT AKMs.

CRs-Fixed: 3674872
Change-Id: I34f88a8c8e8259a701b553284d492fe31597bea3
Pragaspathi Thilagaraj 1 gadu atpakaļ
vecāks
revīzija
7ddc1542ad
1 mainītis faili ar 4 papildinājumiem un 1 dzēšanām
  1. 4 1
      os_if/linux/mlme/src/osif_cm_roam_rsp.c

+ 4 - 1
os_if/linux/mlme/src/osif_cm_roam_rsp.c

@@ -598,11 +598,14 @@ static int osif_send_roam_auth_event(struct wlan_objmgr_vdev *vdev,
 					    WLAN_CRYPTO_PARAM_KEY_MGMT);
 		/* if FT or CCKM connection: dont send replay counter */
 		if (!QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_IEEE8021X) &&
-		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_PSK) &&
+		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_PSK) &&
 		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_SAE) &&
 		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_IEEE8021X_SHA384) &&
 		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_CCKM) &&
 		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_SAE_EXT_KEY) &&
+		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA256) &&
+		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA384) &&
+		    !QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_PSK_SHA384) &&
 		    nla_put(skb,
 			    QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_KEY_REPLAY_CTR,
 			    REPLAY_CTR_LEN,