diff options
| author | Chandrasekaran, Manishekar <cmshekar@qti.qualcomm.com> | 2014-07-01 12:42:54 +0530 |
|---|---|---|
| committer | Pitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com> | 2014-07-10 12:41:18 +0530 |
| commit | 12af3dd3f453dac49fe1328964b197ad93423cd2 (patch) | |
| tree | 311a4884364b34fc1a81d0950ee82877d6ece665 | |
| parent | c07e6e0ba6d0a4887cb19068f2f829a097a939cf (diff) | |
wlan: Consider Short Preamble and Immediate Block Ack peer capability
In the current code, the short preamble and immediate block ack
capabilities of the peer are not considered while sending the
association request i.e., for example, even if the AP does not
support short preamble, the STA sends short preamble as supported in
the association request. This is causing interoperability issues with
3COM AP. This is fixed in this gerrit by considering the capability
of the AP w.r.t short preamble and immediate block ack before
sending the association request
Change-Id: I53d3fde2e78b5fd2aac7f991f31dd2d34a169f0b
CRs-Fixed: 687829
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c | 16 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limUtils.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c index 6876ce7422e5..59086acc8c86 100644 --- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c @@ -717,6 +717,22 @@ limProcessMlmAuthCnf(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf) caps &= (~LIM_RRM_BIT_MASK); } + /* Clear short preamble bit if AP does not support it */ + if(!(psessionEntry->pLimJoinReq->bssDescription.capabilityInfo & + (LIM_SHORT_PREAMBLE_BIT_MASK))) + { + caps &= (~LIM_SHORT_PREAMBLE_BIT_MASK); + limLog(pMac, LOG1, FL("Clearing short preamble:no AP support")); + } + + /* Clear immediate block ack bit if AP does not support it */ + if(!(psessionEntry->pLimJoinReq->bssDescription.capabilityInfo & + (LIM_IMMEDIATE_BLOCK_ACK_MASK))) + { + caps &= (~LIM_IMMEDIATE_BLOCK_ACK_MASK); + limLog(pMac, LOG1, FL("Clearing Immed Blk Ack:no AP support")); + } + pMlmAssocReq->capabilityInfo = caps; PELOG3(limLog(pMac, LOG3, FL("Capabilities to be used in AssocReq=0x%X, privacy bit=%x shortSlotTime %x"), diff --git a/CORE/MAC/src/pe/lim/limUtils.h b/CORE/MAC/src/pe/lim/limUtils.h index 7206f74c2b30..cba5753ec3a0 100644 --- a/CORE/MAC/src/pe/lim/limUtils.h +++ b/CORE/MAC/src/pe/lim/limUtils.h @@ -55,6 +55,8 @@ typedef enum #define LIM_AID_MASK 0xC000 #define LIM_SPECTRUM_MANAGEMENT_BIT_MASK 0x0100 #define LIM_RRM_BIT_MASK 0x1000 +#define LIM_SHORT_PREAMBLE_BIT_MASK 0x0020 +#define LIM_IMMEDIATE_BLOCK_ACK_MASK 0x8000 #if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR) #define LIM_MAX_REASSOC_RETRY_LIMIT 2 #endif |
