summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshish Kumar Dhanotiya <adhanoti@codeaurora.org>2017-02-16 18:11:13 +0530
committerqcabuildsw <qcabuildsw@localhost>2017-03-01 22:03:38 -0800
commite41ba9e90cebdfb67da7cc62801e87ee6f1b1719 (patch)
tree0fe7b02c3c4b7816170372bb2f9a8de5bc9956cc
parent75736ecb4c915a52c247b911a8adc4e713cf534c (diff)
qcacld-3.0: Delete TDLS peers upon receiving disassoc from AP
qcacld-2.0 to qcacld-3.0 propagation 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/lim_process_disassoc_frame.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/core/mac/src/pe/lim/lim_process_disassoc_frame.c b/core/mac/src/pe/lim/lim_process_disassoc_frame.c
index cf20efaf1269..1cef599f9007 100644
--- a/core/mac/src/pe/lim/lim_process_disassoc_frame.c
+++ b/core/mac/src/pe/lim/lim_process_disassoc_frame.c
@@ -317,6 +317,19 @@ lim_process_disassoc_frame(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo,
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)))
+ lim_delete_tdls_peers(pMac, psessionEntry);
+#endif
if (pStaDs->mlmStaContext.mlmState != eLIM_MLM_LINK_ESTABLISHED_STATE) {
/**