summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiva Mullati <smullati@codeaurora.org>2016-10-20 16:32:09 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-10-25 11:52:38 +0530
commit295101368e1ce8db190ad2d2ffee1ef4e193faa1 (patch)
tree9e1baa14c524e210433ab7145227fc09428390ee
parent41307e4b41b43d964a280c5156fd914eecf2facf (diff)
qcacld-2.0: Delete TDLS peers upon receiving disassoc from AP
As per the current code, upon receiving the disassociation frame AP, DUT-STA disconnects from the AP link but not tearing down the TDLS link with peer by sending deauth with reason code 3.So when AP comes up again TDLS link is not establishing between the peers. Fix is to delete all connected TDLS peers upon receiving disassociation framefrom AP. Change-Id: I8daa61cb1901441e5fae7d161c9f943d67e13c56 CRs-Fixed: 1081264
-rw-r--r--CORE/MAC/src/pe/lim/limProcessDisassocFrame.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessDisassocFrame.c b/CORE/MAC/src/pe/lim/limProcessDisassocFrame.c
index 52bf97b24969..c9b192103173 100644
--- a/CORE/MAC/src/pe/lim/limProcessDisassocFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessDisassocFrame.c
@@ -298,6 +298,15 @@ limProcessDisassocFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tpPESession
return;
}
+#ifdef FEATURE_WLAN_TDLS
+ /* Delete all the TDLS peers only if Disassoc is received from the AP */
+ if ((LIM_IS_STA_ROLE(psessionEntry)) &&
+ ((pStaDs->mlmStaContext.mlmState == eLIM_MLM_LINK_ESTABLISHED_STATE) ||
+ (pStaDs->mlmStaContext.mlmState == eLIM_MLM_IDLE_STATE)) &&
+ (IS_CURRENT_BSSID(pMac, pHdr->sa, psessionEntry)))
+ limDeleteTDLSPeers(pMac, psessionEntry);
+#endif
+
if (pStaDs->mlmStaContext.mlmState != eLIM_MLM_LINK_ESTABLISHED_STATE)
{
/**