summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelvaraj, Sridhar <sselvara@codeaurora.org>2016-09-02 11:08:59 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-09-12 13:43:53 +0530
commitff27b914b58636e4bade03014ab013092e4bd3fe (patch)
treebfbced507274406255aa1619c81b26b5622d4117
parenta1447e5a3fe370befe5622669c5e3033e191c53d (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.c23
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c12
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
{