summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTushnim Bhattacharyya <tushnimb@codeaurora.org>2017-10-31 09:50:13 -0700
committersnandini <snandini@codeaurora.org>2017-11-01 16:13:52 -0700
commitf0cb589b239bca2cbd1e454199992e875381a816 (patch)
tree2b0f85a8c17e2d1a3aac9e5f9c5ff42ed9abd582
parent913a2246f91341d79c566309b5c12cb4b6c53571 (diff)
downloadqcacld-f0cb589b239bca2cbd1e454199992e875381a816.tar.gz
qcacld-3.0: Don't drop the connection if multiple auth frames are received
Don't drop the connection if multiple auth frames are received from client due to retransmission on bad rf condition. Change-Id: I16d065ff6ada35b0c69b6b4cec84f9fac96ce8d7 CRs-Fixed: 2136412
-rw-r--r--core/mac/src/pe/lim/lim_process_auth_frame.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/mac/src/pe/lim/lim_process_auth_frame.c b/core/mac/src/pe/lim/lim_process_auth_frame.c
index f9e5be9073..139e3de959 100644
--- a/core/mac/src/pe/lim/lim_process_auth_frame.c
+++ b/core/mac/src/pe/lim/lim_process_auth_frame.c
@@ -316,7 +316,10 @@ static void lim_process_auth_frame_type1(tpAniSirGlobal mac_ctx,
* pStaDS != NULL and isConnected = 1 means the STA is already
* connected, But SAP received the Auth from that station.
* For non PMF connection send Deauth frame as STA will retry
- * to connect back.
+ * to connect back. The reason for above logic is captured in
+ * CR620403. If we silently drop the auth, the subsequent EAPOL
+ * exchange will fail & peer STA will keep trying until DUT
+ * SAP/GO gets a kickout event from FW & cleans up.
*
* For PMF connection the AP should not tear down or otherwise
* modify the state of the existing association until the
@@ -1091,8 +1094,7 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
pe_session->limMlmState, MAC_ADDR_ARRAY(mac_hdr->bssId),
(uint) abs((int8_t) WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info)));
- if (pe_session->pePersona == QDF_STA_MODE &&
- pe_session->prev_auth_seq_num == curr_seq_num) {
+ if (pe_session->prev_auth_seq_num == curr_seq_num) {
pe_err("auth frame, seq num: %d is already processed, drop it",
curr_seq_num);
return;