diff options
| author | Kanchanapally, Vidyullatha <vkanchan@qti.qualcomm.com> | 2015-04-30 16:59:03 +0530 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2015-05-06 17:30:33 +0530 |
| commit | 7d1f32367bc74ba0cff127f3b9abe0064a57e531 (patch) | |
| tree | d77bcc8f0ce1f4e96d3ff5216fb5f86cf7d38595 | |
| parent | da12b814f1b8bee42b6f27d61b26b57ca0ac8ad9 (diff) | |
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
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limUtils.c | 16 | ||||
| -rw-r--r-- | 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); |
