diff options
author | Tushnim Bhattacharyya <tushnimb@codeaurora.org> | 2017-10-31 09:50:13 -0700 |
---|---|---|
committer | snandini <snandini@codeaurora.org> | 2017-11-01 16:13:52 -0700 |
commit | f0cb589b239bca2cbd1e454199992e875381a816 (patch) | |
tree | 2b0f85a8c17e2d1a3aac9e5f9c5ff42ed9abd582 | |
parent | 913a2246f91341d79c566309b5c12cb4b6c53571 (diff) | |
download | qcacld-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.c | 8 |
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; |