diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2016-09-29 11:56:45 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-12-23 06:38:56 -0800 |
| commit | 0101f5317ea9383b474ec7bb01e3e949d5251373 (patch) | |
| tree | 6465603f2d634f3c21625ee27d2336566f926f33 | |
| parent | 5e5311435220432c274cda25ebdb76c7310efd77 (diff) | |
qcacld-3.0: Send proper reason code to Supplicant on beacon miss event
qcacld-2.0 to qcacld-3.0 propagation
Once the beacon miss event is received in driver, sta cleanup
happens and sends deauth reason code as 505 which is internal
value to driver(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE).
Send reason code as zero to Supplicant for Beacon miss kickout.
Cleanup the similar handling in csr_api_roam as it is redundant.
Change-Id: I6df97e05ac20f285646df3d5fe73800138a18d89
CRs-Fixed: 1025871
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_sme_rsp_messages.c | 20 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 15 |
2 files changed, 22 insertions, 13 deletions
diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c index 40993dc1f0e4..08b179b9a2d0 100644 --- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c @@ -958,6 +958,16 @@ lim_send_sme_disassoc_ntf(tpAniSirGlobal pMac, sizeof(tSirMacAddr)); sir_sme_dis_ind->session_id = smesessionId; sir_sme_dis_ind->reason_code = reasonCode; + /* + * Instead of sending deauth reason code as 505 which is + * internal value(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + * Send reason code as zero to Supplicant + */ + if (reasonCode == eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + sir_sme_dis_ind->reason_code = 0; + else + sir_sme_dis_ind->reason_code = reasonCode; + pMsg = (uint32_t *)sir_sme_dis_ind; break; @@ -1421,6 +1431,16 @@ lim_send_sme_deauth_ntf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, sir_sme_dis_ind->reason_code = reasonCode; qdf_mem_copy(sir_sme_dis_ind->peer_mac, peerMacAddr, ETH_ALEN); + /* + * Instead of sending deauth reason code as 505 which is + * internal value(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + * Send reason code as zero to Supplicant + */ + if (reasonCode == eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + sir_sme_dis_ind->reason_code = 0; + else + sir_sme_dis_ind->reason_code = reasonCode; + pMsg = (uint32_t *)sir_sme_dis_ind; break; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 2fca70196a60..9c6460205deb 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -11745,19 +11745,8 @@ QDF_STATUS csr_roam_lost_link(tpAniSirGlobal pMac, uint32_t sessionId, result = eCSR_ROAM_RESULT_DEAUTH_IND; pDeauthIndMsg = (tSirSmeDeauthInd *) pSirMsg; pSession->roamingStatusCode = pDeauthIndMsg->statusCode; - /* Convert into proper reason code */ - if ((pDeauthIndMsg->reasonCode == eSIR_BEACON_MISSED) || - (pDeauthIndMsg->reasonCode == - eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON)) - pSession->joinFailStatusCode.reasonCode = 0; - else - pSession->joinFailStatusCode.reasonCode = - pDeauthIndMsg->reasonCode; - /* - * cfg layer expects 0 as reason code if - * the driver dosent know the reason code - * eSIR_BEACON_MISSED is defined as locally - */ + pSession->joinFailStatusCode.reasonCode = + pDeauthIndMsg->reasonCode; } else { sms_log(pMac, LOGW, FL("gets an unknown type (%d)"), type); result = eCSR_ROAM_RESULT_NONE; |
