summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRakesh Sunki <rsunki@qca.qualcomm.com>2014-02-27 19:10:38 -0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-03-03 21:02:46 -0800
commit1982e8aca8fc4ac8fdfbcbd1a0502a2295f1eb6d (patch)
treea3740195de051b57df6f75ea6818286c9c732d51
parent5651136e012bf132f2a6050bcadef4bde99c1eb5 (diff)
qcacld: Fix SAP CSA IE count in the beacons.
Correct the channel switch IE count decrement that is included in the beacons when a radar is found on a DFS channel. Also, remove the extra beacon transmission. Change-Id: If9b6e23aafa482ec0462c6e818f3624217195c2a CRs-Fixed: 622322
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c3
-rw-r--r--CORE/MAC/src/pe/lim/limSendSmeRspMessages.c16
2 files changed, 12 insertions, 7 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 615f6a6b8e4e..7785af38b521 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -6014,6 +6014,9 @@ limProcessSmeDfsCsaIeRequest(tpAniSirGlobal pMac, tANI_U32 *pMsg)
* the template update
*/
limSendBeaconInd(pMac, psessionEntry);
+ PELOG1(limLog(pMac, LOG1,
+ FL(" Updated CSA IE, IE COUNT = %d"),
+ psessionEntry->gLimChannelSwitch.switchCount );)
psessionEntry->gLimChannelSwitch.switchCount--;
}
return;
diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
index 0f2bac0c5a45..1232ff631e4b 100644
--- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
@@ -2998,7 +2998,6 @@ limSendSmeDfsEventNotify(tpAniSirGlobal pMac, tANI_U16 msgType, void *event)
static void
limSendDfsChanSwIEUpdate(tpAniSirGlobal pMac, tpPESession psessionEntry)
{
- limLog(pMac, LOG1, FL("DFS Channel Switch update timer expired"));
/* Update the beacon template and send to FW */
if (schSetFixedBeaconFields(pMac, psessionEntry) != eSIR_SUCCESS)
@@ -3009,6 +3008,9 @@ limSendDfsChanSwIEUpdate(tpAniSirGlobal pMac, tpPESession psessionEntry)
/* Send update beacon template message */
limSendBeaconInd(pMac, psessionEntry);
+ PELOG1(limLog(pMac, LOG1,
+ FL(" Updated CSA IE, IE COUNT = %d"),
+ psessionEntry->gLimChannelSwitch.switchCount );)
return;
}
@@ -3116,13 +3118,15 @@ limProcessBeaconTxSuccessInd(tpAniSirGlobal pMac, tANI_U16 msgType, void *event)
if (eLIM_AP_ROLE == psessionEntry->limSystemRole &&
VOS_TRUE == psessionEntry->dfsIncludeChanSwIe)
{
- /* Start a timer to send next CSA IE update */
- if (--psessionEntry->gLimChannelSwitch.switchCount >= 0)
+ /* Send only 5 beacons with CSA IE Set in when a radar is detected */
+ if (psessionEntry->gLimChannelSwitch.switchCount > 0)
{
- /* Start a timer of timeout less than 100ms, to give enough
- * time for template update and transmission
+ /*
+ * Send the next beacon with updated CSA IE count
*/
limSendDfsChanSwIEUpdate(pMac, psessionEntry);
+ /* Decrement the IE count */
+ psessionEntry->gLimChannelSwitch.switchCount--;
}
else
{
@@ -3130,8 +3134,6 @@ limProcessBeaconTxSuccessInd(tpAniSirGlobal pMac, tANI_U16 msgType, void *event)
psessionEntry->gLimChannelSwitch.switchCount = 0;
psessionEntry->dfsIncludeChanSwIe = VOS_FALSE;
- /* Reset CSA IE parameters in beacon/probe responses */
- limSendDfsChanSwIEUpdate(pMac, psessionEntry);
pChanSwTxResponse = (tSirSmeCSAIeTxCompleteRsp *)
vos_mem_malloc(length);