summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChandrasekaran, Manishekar <cmshekar@qti.qualcomm.com>2014-07-01 12:42:54 +0530
committerPitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com>2014-07-10 12:41:18 +0530
commit12af3dd3f453dac49fe1328964b197ad93423cd2 (patch)
tree311a4884364b34fc1a81d0950ee82877d6ece665
parentc07e6e0ba6d0a4887cb19068f2f829a097a939cf (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.c16
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.h2
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