From 7d1f32367bc74ba0cff127f3b9abe0064a57e531 Mon Sep 17 00:00:00 2001 From: "Kanchanapally, Vidyullatha" Date: Thu, 30 Apr 2015 16:59:03 +0530 Subject: qcacld: Send DELBA frame with proper reason code. This is prima to qcacld-2.0 propagation When BTC event received, Send DELBA with reason code 39 (Requested from peer STA due to timeout) to disable the aggregation. Change-Id: I5a471cbb5a82a42b80d10a22828746b2902ddf2c CRs-Fixed: 687791 --- CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 3 ++- CORE/MAC/src/pe/lim/limUtils.c | 16 +++++++++------- CORE/MAC/src/pe/lim/limUtils.h | 3 ++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c index 7abf06977ed8..b5bbd7d7c04f 100644 --- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c @@ -2562,7 +2562,8 @@ __limProcessSmeReassocReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf) * is lost upon disassociation and reassociation. */ - limDeleteBASessions(pMac, psessionEntry, BA_BOTH_DIRECTIONS); + limDeleteBASessions(pMac, psessionEntry, BA_BOTH_DIRECTIONS, + eSIR_MAC_UNSPEC_FAILURE_REASON); pMlmReassocReq->listenInterval = (tANI_U16) val; diff --git a/CORE/MAC/src/pe/lim/limUtils.c b/CORE/MAC/src/pe/lim/limUtils.c index 60e4400bc083..d8c145ee09cd 100644 --- a/CORE/MAC/src/pe/lim/limUtils.c +++ b/CORE/MAC/src/pe/lim/limUtils.c @@ -5082,7 +5082,7 @@ limProcessAddBaInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg) void limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry, - tANI_U32 baDirection) + tANI_U32 baDirection, tSirMacReasonCodes baReasonCode) { tANI_U32 i; tANI_U8 tid; @@ -5109,14 +5109,14 @@ limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry, (baDirection & BA_INITIATOR)) { limPostMlmDelBAReq(pMac, pSta, eBA_INITIATOR, tid, - eSIR_MAC_UNSPEC_FAILURE_REASON, + baReasonCode, pSessionEntry); } if ((eBA_ENABLE == pSta->tcCfg[tid].fUseBARx) && (baDirection & BA_RECIPIENT)) { limPostMlmDelBAReq(pMac, pSta, eBA_RECIPIENT, tid, - eSIR_MAC_UNSPEC_FAILURE_REASON, + baReasonCode, pSessionEntry); } } @@ -5132,14 +5132,14 @@ limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry, (baDirection & BA_INITIATOR)) { limPostMlmDelBAReq(pMac, pSta, eBA_INITIATOR, tid, - eSIR_MAC_UNSPEC_FAILURE_REASON, + baReasonCode, pSessionEntry); } if ((eBA_ENABLE == pSta->tcCfg[tid].fUseBARx) && (baDirection & BA_RECIPIENT)) { limPostMlmDelBAReq(pMac, pSta, eBA_RECIPIENT, tid, - eSIR_MAC_UNSPEC_FAILURE_REASON, + baReasonCode, pSessionEntry); } } @@ -5165,7 +5165,8 @@ void limDelAllBASessions(tpAniSirGlobal pMac) pSessionEntry = peFindSessionBySessionId(pMac, i); if (pSessionEntry) { - limDeleteBASessions(pMac, pSessionEntry, BA_BOTH_DIRECTIONS); + limDeleteBASessions(pMac, pSessionEntry, BA_BOTH_DIRECTIONS, + eSIR_MAC_UNSPEC_FAILURE_REASON); } } } @@ -5188,7 +5189,8 @@ void limDelPerBssBASessionsBtc(tpAniSirGlobal pMac) { PELOGW(limLog(pMac, LOGW, "Deleting the BA for session %d as host got BTC event", sessionId);) - limDeleteBASessions(pMac, pSessionEntry, BA_RECIPIENT); + limDeleteBASessions(pMac, pSessionEntry, BA_RECIPIENT, + eSIR_MAC_PEER_TIMEDOUT_REASON); } } diff --git a/CORE/MAC/src/pe/lim/limUtils.h b/CORE/MAC/src/pe/lim/limUtils.h index 4b1cd06aecdc..aa319701a21a 100644 --- a/CORE/MAC/src/pe/lim/limUtils.h +++ b/CORE/MAC/src/pe/lim/limUtils.h @@ -397,7 +397,8 @@ tSirRetStatus limPostSMStateUpdate(tpAniSirGlobal pMac, void limDeleteStaContext(tpAniSirGlobal pMac, tpSirMsgQ limMsg); void limProcessAddBaInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg); -void limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry, tANI_U32 baDirection); +void limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry, + tANI_U32 baDirection, tSirMacReasonCodes baReasonCode); void limDelPerBssBASessionsBtc(tpAniSirGlobal pMac); void limDelAllBASessions(tpAniSirGlobal pMac); void limDeleteDialogueTokenList(tpAniSirGlobal pMac); -- cgit v1.2.3