summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaochang Duan <xduan@qca.qualcomm.com>2014-03-07 13:04:03 -0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-03-12 10:18:46 -0700
commit815ead371c21c0b51bef3eb271f57c862cabe977 (patch)
tree40ccf0a25f491636a58a27e3bda6f03f23226b86
parentda676af71d5f4c32e67cac105bcedd7dcd3006dd (diff)
qcacld-new:ibss:enable ERP in IBSS mode
This change enables ERP IE update in beacons sent from 802.11n IBSS peers when any 802.11b peer joins the same IBSS Change-Id: Ibbbee4f42bd1b02df4e7b9c1fe7c284c9a1ec691 CRs-Fixed: 612233
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c29
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c5
2 files changed, 31 insertions, 3 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 8dc474d77365..4b2940c6fdd0 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -104,6 +104,32 @@
#define GET_IE_LEN_IN_BSS_DESC(lenInBss) ( lenInBss + sizeof(lenInBss) - \
((uintptr_t)OFFSET_OF( tSirBssDescription, ieFields)))
+/* For IBSS, enable obss, fromllb, overlapOBSS & overlapFromllb protection
+ check. The bit map is defined in:
+
+ typedef struct sCfgProtection
+ {
+ tANI_U32 overlapFromlla:1;
+ tANI_U32 overlapFromllb:1;
+ tANI_U32 overlapFromllg:1;
+ tANI_U32 overlapHt20:1;
+ tANI_U32 overlapNonGf:1;
+ tANI_U32 overlapLsigTxop:1;
+ tANI_U32 overlapRifs:1;
+ tANI_U32 overlapOBSS:1;
+ tANI_U32 fromlla:1;
+ tANI_U32 fromllb:1;
+ tANI_U32 fromllg:1;
+ tANI_U32 ht20:1;
+ tANI_U32 nonGf:1;
+ tANI_U32 lsigTxop:1;
+ tANI_U32 rifs:1;
+ tANI_U32 obss:1;
+ }tCfgProtection, *tpCfgProtection;
+
+*/
+#define IBSS_CFG_PROTECTION_ENABLE_MASK 0x8282
+
#define HDD2GHZCHAN(freq, chan, flag) { \
.band = IEEE80211_BAND_2GHZ, \
.center_freq = (freq), \
@@ -6883,6 +6909,9 @@ static int wlan_hdd_cfg80211_join_ibss( struct wiphy *wiphy,
return -EINVAL;
}
+ /* enable selected protection checks in IBSS mode */
+ pRoamProfile->cfg_protection = IBSS_CFG_PROTECTION_ENABLE_MASK;
+
/* BSSID is provided by upper layers hence no need to AUTO generate */
if (NULL != params->bssid) {
if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_IBSS_AUTO_BSSID, 0,
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 36db43bb992c..a5f7868dce02 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -835,9 +835,8 @@ __limHandleSmeStartBssRequest(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
* */
limSetRSNieWPAiefromSmeStartBSSReqMessage(pMac,&pSmeStartBssReq->rsnIE,psessionEntry);
-
- //Taken care for only softAP case rest need to be done
- if (psessionEntry->limSystemRole == eLIM_AP_ROLE){
+ if ((psessionEntry->limSystemRole == eLIM_AP_ROLE)
+ || (psessionEntry->limSystemRole == eLIM_STA_IN_IBSS_ROLE)) {
psessionEntry->gLimProtectionControl = pSmeStartBssReq->protEnabled;
/*each byte will have the following info
*bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0