diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2016-09-02 11:08:59 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-09-12 13:43:53 +0530 |
| commit | ff27b914b58636e4bade03014ab013092e4bd3fe (patch) | |
| tree | bfbced507274406255aa1619c81b26b5622d4117 | |
| parent | a1447e5a3fe370befe5622669c5e3033e191c53d (diff) | |
qcacld-2.0: Send proper reason code to Supplicant on beacon miss event
prima to qcacld-2.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 csrApiRoam as it is redundant.
Change-Id: I6df97e05ac20f285646df3d5fe73800138a18d89
CRs-Fixed: 1025871
| -rw-r--r-- | CORE/MAC/src/pe/lim/limSendSmeRspMessages.c | 23 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 12 |
2 files changed, 22 insertions, 13 deletions
diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c index d4188aa945a7..f1638080e659 100644 --- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c +++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c @@ -1600,7 +1600,17 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, vos_mem_copy(pSirSmeDisConDoneInd->peerMacAddr, peerMacAddr, sizeof(tSirMacAddr)); pSirSmeDisConDoneInd->sessionId = smesessionId; - pSirSmeDisConDoneInd->reasonCode = reasonCode; + + /* + * Instead of sending 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 + */ + if (reasonCode == eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + pSirSmeDisConDoneInd->reasonCode = 0; + else + pSirSmeDisConDoneInd->reasonCode = reasonCode; + pMsg = (tANI_U32 *)pSirSmeDisConDoneInd; break; @@ -2062,7 +2072,16 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode pSirSmeDisConDoneInd->messageType = eWNI_SME_DISCONNECT_DONE_IND; pSirSmeDisConDoneInd->length = sizeof(tSirSmeDisConDoneInd); pSirSmeDisConDoneInd->sessionId = smesessionId; - pSirSmeDisConDoneInd->reasonCode = reasonCode; + + /* + * Instead of sending 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 + */ + if (reasonCode == eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + pSirSmeDisConDoneInd->reasonCode = 0; + else + pSirSmeDisConDoneInd->reasonCode = reasonCode; pMsg = (tANI_U32 *)pSirSmeDisConDoneInd; vos_mem_copy(pSirSmeDisConDoneInd->peerMacAddr, peerMacAddr, sizeof(tSirMacAddr)); diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index efd43821dd2c..06f8a1b906d2 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -11659,17 +11659,7 @@ eHalStatus csrRoamLostLink( tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 ty 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 doesn't know the - * reason code eSIR_BEACON_MISSED is defined as locally - */ + pSession->joinFailStatusCode.reasonCode = pDeauthIndMsg->reasonCode; } else { |
