Browse Source

qcacld-3.0: Avoid sending RSNXE to legacy APs for WPA mode also

Userspace may send RSNXE also in connect request irrespective
of the connecting AP capabilities to allow the driver to chose
best candidate based on score. But the chosen candidate may not
support the RSNXE feature and may not advertise RSNXE in
beacon/probe response. Station is not supposed to include the
RSNX IE in assoc request in such cases as legacy APs may misbehave
due to the new IE. It's observed that few legacy APs which don't
support the RSNXE reject the connection at EAPOL stage.

AKM values are same for WPA and WPA2 mode, but WPA versions are
different. So, currently, host driver strips the RSNXE for WPA2
mode only as it checks for valid RSN profile before strip the RSN
which is valid for WPA2 and WAP3 only.

So, to strip the RSNXE for WPA mode also, avoid the RSN profile
check.

Change-Id: I5055ef4c03e390b9c453fe81a77365bb4ef34e9f
CRs-Fixed: 3336640
Rahul Gusain 2 years ago
parent
commit
d940f57f3e
1 changed files with 4 additions and 2 deletions
  1. 4 2
      core/mac/src/pe/lim/lim_process_sme_req_messages.c

+ 4 - 2
core/mac/src/pe/lim/lim_process_sme_req_messages.c

@@ -3891,8 +3891,6 @@ lim_fill_rsn_ie(struct mac_context *mac_ctx, struct pe_session *session,
 		lim_update_pmksa_to_profile(session->vdev, pmksa_peer);
 	}
 
-	lim_strip_rsnx_ie(mac_ctx, session, req);
-
 	return QDF_STATUS_SUCCESS;
 }
 
@@ -4001,6 +3999,8 @@ static void lim_fill_crypto_params(struct mac_context *mac_ctx,
 	else if (lim_is_wapi_profile(session))
 		lim_fill_wapi_ie(mac_ctx, session, req);
 
+	lim_strip_rsnx_ie(mac_ctx, session, req);
+
 	lim_update_fils_config(mac_ctx, session, req);
 }
 
@@ -4723,6 +4723,8 @@ static void lim_handle_reassoc_req(struct cm_vdev_join_req *req)
 	else if (lim_is_wapi_profile(session_entry))
 		lim_fill_wapi_ie(mac_ctx, session_entry, req);
 
+	lim_strip_rsnx_ie(mac_ctx, session_entry, req);
+
 	if (lim_is_rsn_profile(session_entry) &&
 	    !util_scan_entry_rsnxe(req->entry)) {
 		pe_debug("Bss bcn has no RSNXE, strip if has");