diff options
| author | Xiaochang Duan <xduan@qca.qualcomm.com> | 2014-03-07 13:04:03 -0800 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-03-12 10:18:46 -0700 |
| commit | 815ead371c21c0b51bef3eb271f57c862cabe977 (patch) | |
| tree | 40ccf0a25f491636a58a27e3bda6f03f23226b86 | |
| parent | da676af71d5f4c32e67cac105bcedd7dcd3006dd (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.c | 29 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 5 |
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 |
