diff options
| author | Rakesh Sunki <rsunki@qca.qualcomm.com> | 2014-02-27 19:10:38 -0800 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-03-03 21:02:46 -0800 |
| commit | 1982e8aca8fc4ac8fdfbcbd1a0502a2295f1eb6d (patch) | |
| tree | a3740195de051b57df6f75ea6818286c9c732d51 | |
| parent | 5651136e012bf132f2a6050bcadef4bde99c1eb5 (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.c | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limSendSmeRspMessages.c | 16 |
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); |
