summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKanchanapally, Vidyullatha <vkanchan@qti.qualcomm.com>2015-04-30 16:59:03 +0530
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-05-06 17:30:33 +0530
commit7d1f32367bc74ba0cff127f3b9abe0064a57e531 (patch)
treed77bcc8f0ce1f4e96d3ff5216fb5f86cf7d38595
parentda12b814f1b8bee42b6f27d61b26b57ca0ac8ad9 (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.c3
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.c16
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.h3
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);