wlan: Use privacy bit to filter Beacon/Probe Rsp in IBSS.
The IBSS with open security mode, is able to add the peer with
WPA-NONE security mode. Vice versa is also possible.
Adds a check to filter out the recieved Beacon/Probe Rsp in IBSS,
if the privacy bit in beacon/probe rsp doesnt match the privacy
bit of the IBSS.
Change-Id: I7b05d58b36d89b488bf01950c73ca21ad26a93f0
CRs-Fixed: 626001
diff --git a/CORE/MAC/src/pe/lim/limApi.c b/CORE/MAC/src/pe/lim/limApi.c
index 6f9f465..e0fd4ac 100644
--- a/CORE/MAC/src/pe/lim/limApi.c
+++ b/CORE/MAC/src/pe/lim/limApi.c
@@ -1698,6 +1698,8 @@
pHdr = WDA_GET_RX_MAC_HEADER(pRxPacketInfo);
if ( (!pBeacon->capabilityInfo.ibss) ||
+ ( psessionEntry->privacy !=
+ (tANI_U8)pBeacon->capabilityInfo.privacy ) ||
(limCmpSSid(pMac, &pBeacon->ssId,psessionEntry) != true) ||
(psessionEntry->currentOperChannel != pBeacon->channelNumber) )
/* Received SSID does not match => Ignore received Beacon frame. */
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 41e2518..77f653e 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -683,6 +683,16 @@
psessionEntry->shortSlotTimeSupported =
limGetShortSlotFromPhyMode(pMac, psessionEntry,
psessionEntry->gLimPhyMode);
+ /* In WPA-NONE case we wont get the privacy bit in ibss config
+ * from supplicant, but we are updating WNI_CFG_PRIVACY_ENABLED
+ * on basis of Encryption type in csrRoamSetBssConfigCfg. So
+ * get the privacy info from WNI_CFG_PRIVACY_ENABLED
+ */
+ if (wlan_cfgGetInt(pMac, WNI_CFG_PRIVACY_ENABLED, &val)
+ != eSIR_SUCCESS)
+ limLog(pMac, LOGE, FL("cfg get WNI_CFG_PRIVACY_ENABLED"
+ " failed"));
+ psessionEntry->privacy =(tANI_U8) val;
psessionEntry->isCoalesingInIBSSAllowed =
pSmeStartBssReq->isCoalesingInIBSSAllowed;
break;