diff options
| author | Abhishek Singh <absingh@qti.qualcomm.com> | 2016-03-15 16:32:25 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-03-17 13:11:34 +0530 |
| commit | 1b51503e6ea9a9d4e6a8739250969099dfbda623 (patch) | |
| tree | f085443d99c6a223f2b138a91dc1064161653ee4 | |
| parent | 39900dcfa46478a7969104b4347ef2a6bdb37858 (diff) | |
qcacld-2.0: If association timeout Send deauth to cleanup the peer session
prima to qcacld-2.0 propagation
In the scenario where association times out because device has missed
the assoc resp sent by peer, the peer assumes the device to be
connected and thus when device again sends the auth for fresh
connection the peer sends deauth. Thus fresh connection also fails.
To avoid this send deauth after association time out, to cleanup
the session in peer.
Change-Id: I1f7bfbe804da0dc92ce4ece87dc65954b086133c
CRs-Fixed: 987455
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c index d1528b2cfddb..9cb74d6aecae 100644 --- a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c @@ -4411,9 +4411,23 @@ limProcessAssocFailureTimeout(tpAniSirGlobal pMac, tANI_U32 MsgType) /* notify TL that association is failed so that TL can flush the cached frame */ WLANTL_AssocFailed (psessionEntry->staId); - // Log error - PELOG1(limLog(pMac, LOG1, - FL("Re/Association Response not received before timeout "));) + /* Log error */ + limLog(pMac, LOG1, + FL("Re/Association Response not received before timeout ")); + /* + * Send Deauth to handle the scenareo where association timeout happened + * when device has missed the assoc resp sent by peer. + * By sending deauth try to clear the session created on peer device. + */ + limLog(pMac, LOGE, + FL("Sessionid: %d try sending Send deauth on channel %d to BSSID: " + MAC_ADDRESS_STR ), psessionEntry->peSessionId, + psessionEntry->currentOperChannel, + MAC_ADDR_ARRAY(psessionEntry->bssId)); + + limSendDeauthMgmtFrame(pMac, eSIR_MAC_UNSPEC_FAILURE_REASON, + psessionEntry->bssId, + psessionEntry, FALSE); if ((LIM_IS_AP_ROLE(psessionEntry) || LIM_IS_BT_AMP_AP_ROLE(psessionEntry)) || |
