From c2f9e7b5b7c86c3ee1e7e4d7bea844b3803f6c2d Mon Sep 17 00:00:00 2001 From: Vasanthakumar Thiagarajan Date: Mon, 10 Mar 2014 13:21:29 +0530 Subject: qcacld/txrx: Fix bug in HTT_T2H_MSG_TYPE_RX_PN_IND handler Currently always start sequence number is being compared with PN ie of failed frames' sequence number. PN ie will have the list of sequence numbers (6-bits of LSB of 80211 seq number) for which PN check got failed in fw. We should be checking seq numbers starting from seq_num_start to seq_num_num end if any of these numbers are present in PN ie, so it should be seq_num which will get incremented upto seq_num_end which is to be compared with list of seq numbers indicated through PN ie octets. Change-Id: I3cf25152d88dbb16d7ae2d4f83972192f247e9bd CRs-Fixed: 628676 --- CORE/CLD_TXRX/TXRX/ol_rx_reorder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c b/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c index aa98ed097801..803e24a7379f 100644 --- a/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c +++ b/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c @@ -629,7 +629,7 @@ ol_rx_pn_ind_handler( &peer->tids_rx_reorder[tid].array[seq_num]; if (rx_reorder_array_elem->head) { - if (pn_ie_cnt && seq_num_start == (int)(pn_ie[i])) { + if (pn_ie_cnt && seq_num == (int)(pn_ie[i])) { adf_nbuf_t msdu, next_msdu, mpdu_head, mpdu_tail; static u_int32_t last_pncheck_print_time = 0; int log_level; -- cgit v1.2.3 From da676af71d5f4c32e67cac105bcedd7dcd3006dd Mon Sep 17 00:00:00 2001 From: Deepak Dhamdhere Date: Sun, 9 Mar 2014 21:36:06 -0700 Subject: qcacld: Use correct encryptType during FT reassoc Station parameters are stored in ftPEContext.pAddStaReq during BSS creation. Its encryptType needs to be initialized otherwise WMA sends WMI_PEER_AUTHORIZE before setting keys. Change-Id: Ife373f149e06547fdcea8fa75b22e89136eb7503 CRs-Fixed: 628156 --- CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c index 5145839dbd31..5ba3bd9e7f2a 100644 --- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c @@ -2928,6 +2928,8 @@ limProcessStaMlmAddBssRspFT(tpAniSirGlobal pMac, tpSirMsgQ limMsgQ, tpPESession wlan_cfgGetInt(pMac, WNI_CFG_DOT11_MODE, &selfStaDot11Mode); pAddStaParams->supportedRates.opRateMode = limGetStaRateMode((tANI_U8)selfStaDot11Mode); + pAddStaParams->encryptType = psessionEntry->encryptType; + // Lets save this for when we receive the Reassoc Rsp pMac->ft.ftPEContext.pAddStaReq = pAddStaParams; -- cgit v1.2.3 From 815ead371c21c0b51bef3eb271f57c862cabe977 Mon Sep 17 00:00:00 2001 From: Xiaochang Duan Date: Fri, 7 Mar 2014 13:04:03 -0800 Subject: 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 --- CORE/HDD/src/wlan_hdd_cfg80211.c | 29 ++++++++++++++++++++++++++ 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 -- cgit v1.2.3 From 5ce11ba70b39f25c84ca721636fb44415dde83c9 Mon Sep 17 00:00:00 2001 From: Manikandan Mohan Date: Tue, 4 Mar 2014 17:04:22 -0800 Subject: qcacld: Send proper client station phymode of SAP Instead of sending SAP phy mode to fw, we should send phymode of client station for proper rate setting in fw for client station. Code updated for this issue. Change-Id: Ibcfa15abcfeb625c192e1cdf143ddb416e019dce CRs-fixed: 615756 --- CORE/MAC/src/include/dphGlobal.h | 1 + CORE/MAC/src/pe/lim/limAssocUtils.c | 2 +- CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CORE/MAC/src/include/dphGlobal.h b/CORE/MAC/src/include/dphGlobal.h index f7662c12ca1e..f5b67f713e45 100644 --- a/CORE/MAC/src/include/dphGlobal.h +++ b/CORE/MAC/src/include/dphGlobal.h @@ -613,6 +613,7 @@ typedef struct sDphHashNode tANI_U8 timingMeasCap; + tSirNwType nwType; /* When a station with already an existing dph entry tries to * associate again, the old dph entry will be zeroed out except diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c index 2fb56bf75bda..cf7673e12369 100644 --- a/CORE/MAC/src/pe/lim/limAssocUtils.c +++ b/CORE/MAC/src/pe/lim/limAssocUtils.c @@ -2656,7 +2656,7 @@ limAddSta( if (pAddStaParams->respReqd) SET_LIM_PROCESS_DEFD_MESGS(pMac, false); - pAddStaParams->nwType = psessionEntry->nwType; + pAddStaParams->nwType = pStaDs->nwType; msgQ.type = WDA_ADD_STA_REQ; diff --git a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c index fead607d7b60..061608ba37fd 100644 --- a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c +++ b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c @@ -179,6 +179,7 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tAniAuthType authType; tSirMacCapabilityInfo localCapabilities; tpDphHashNode pStaDs = NULL; + tSirNwType nwType; tpSirAssocReq pAssocReq; tLimMlmStates mlmPrevState; tDot11fIERSN Dot11fIERSN; @@ -188,6 +189,7 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tHalBitVal wsmMode, wmeMode; tANI_U8 *wpsIe = NULL; tSirMacRateSet basicRates; + tANI_U8 maxBasicRate = 0; tANI_U8 i = 0, j = 0; tANI_BOOLEAN pmfConnection = eANI_BOOLEAN_FALSE; @@ -359,13 +361,24 @@ limProcessAssocReqFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, { basicRates.rate[i] = pAssocReq->supportedRates.rate[i]; basicRates.numRates++; + if ((basicRates.rate[i] & ~0x80) > maxBasicRate) + maxBasicRate = (basicRates.rate[i] & ~0x80); } + if (maxBasicRate > SIR_MAC_RATE_11) /* 0x16 = 11 Mbps Max rate of 802.11b*/ + nwType = psessionEntry->nwType; + else + nwType = eSIR_11B_NW_TYPE; + + limLog(pMac, LOG1, FL("Station Peer: Max Rate: %x Phymode: %d"), maxBasicRate, nwType); + for(j = 0; (j < pAssocReq->extendedRates.numRates) && (i < SIR_MAC_RATESET_EID_MAX); i++,j++) { basicRates.rate[i] = pAssocReq->extendedRates.rate[j]; basicRates.numRates++; } + + if (limCheckRxBasicRates(pMac, basicRates, psessionEntry) == false) { /** @@ -1040,7 +1053,7 @@ sendIndToSme: pStaDs->valid = 0; pStaDs->mlmStaContext.authType = authType; pStaDs->staType = STA_ENTRY_PEER; - + pStaDs->nwType = nwType; //TODO: If listen interval is more than certain limit, reject the association. //Need to check customer requirements and then implement. pStaDs->mlmStaContext.listenInterval = pAssocReq->listenInterval; -- cgit v1.2.3 From 302c47ac1d3793d7d22d389fa4062e0d8a2aa103 Mon Sep 17 00:00:00 2001 From: Pranav Desai Date: Wed, 5 Mar 2014 14:44:00 -0800 Subject: qcacld: Get random bytes for WEP challenge text Uncomment the previously commented function to get random bytes. Change-Id: I6e2a4fbc4a0c636d7dfedf2365d21798220a190c CRs-fixed: 622870 --- CORE/MAC/src/pe/lim/limProcessAuthFrame.c | 5 ++--- CORE/VOSS/src/vos_utils.c | 6 ------ 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/CORE/MAC/src/pe/lim/limProcessAuthFrame.c b/CORE/MAC/src/pe/lim/limProcessAuthFrame.c index 9cd4496f1afc..9ad362e9840d 100644 --- a/CORE/MAC/src/pe/lim/limProcessAuthFrame.c +++ b/CORE/MAC/src/pe/lim/limProcessAuthFrame.c @@ -878,9 +878,8 @@ limProcessAuthFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tpPESession pse pAuthNode->fTimerStarted = 1; // get random bytes and use as - // challenge text - // TODO - //if( !VOS_IS_STATUS_SUCCESS( vos_rand_get_bytes( 0, (tANI_U8 *)challengeTextArray, SIR_MAC_AUTH_CHALLENGE_LENGTH ) ) ) + // challenge text. If it fails we already have random stack bytes. + if( !VOS_IS_STATUS_SUCCESS( vos_rand_get_bytes( 0, (tANI_U8 *)challengeTextArray, SIR_MAC_AUTH_CHALLENGE_LENGTH ) ) ) { limLog(pMac, LOGE,FL("Challenge text preparation failed in limProcessAuthFrame")); } diff --git a/CORE/VOSS/src/vos_utils.c b/CORE/VOSS/src/vos_utils.c index e15c46385620..1e6ac83fd15b 100644 --- a/CORE/VOSS/src/vos_utils.c +++ b/CORE/VOSS/src/vos_utils.c @@ -166,8 +166,6 @@ VOS_STATUS vos_crypto_deinit( v_U32_t hCryptProv ) VOS_STATUS vos_rand_get_bytes( v_U32_t cryptHandle, v_U8_t *pbBuf, v_U32_t numBytes ) { VOS_STATUS uResult = VOS_STATUS_E_FAILURE; - //v_UINT_t uCode; -// HCRYPTPROV hCryptProv = (HCRYPTPROV) cryptHandle; //check for invalid pointer if ( NULL == pbBuf ) @@ -176,13 +174,9 @@ VOS_STATUS vos_rand_get_bytes( v_U32_t cryptHandle, v_U8_t *pbBuf, v_U32_t numBy return ( uResult ); } -//#if 0 - // get_random_bytes() is a void procedure get_random_bytes( pbBuf, numBytes); // "Random sequence generated." uResult = VOS_STATUS_SUCCESS; -//#endif - return ( uResult ); } -- cgit v1.2.3 From 6c2ba0795fb0a0fbe0d9fcc405b003f19753f971 Mon Sep 17 00:00:00 2001 From: vinothkumar Date: Tue, 11 Mar 2014 11:02:49 +0530 Subject: qcacld: Remove unused include directories in Makefile. Remove the unused include directories in athdiag utility Makefile. Change-Id: I32407a0beff1bb125238f1797a9097aab25404a3 CRs-Fixed: 629395 --- tools/athdiag/Makefile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tools/athdiag/Makefile b/tools/athdiag/Makefile index 7368aa8ef9f3..4aea1b8e24e7 100644 --- a/tools/athdiag/Makefile +++ b/tools/athdiag/Makefile @@ -5,13 +5,7 @@ TARGET_VERS ?= v2 all: $(CC) -g3 -Wall \ - -I ../../include/ \ -I ../../CORE/SERVICES/COMMON/ \ - -I ../../CORE/SERVICES/HIF/ \ - -I ../../../../include/ \ - -I ../../../../../include/ \ - -I ../../../../../../../drivers/wlan_modules/lmac/ath_dev/ \ - -I ../../../../../include/$(TARGET_TYPE)/$(TARGET_VERS)/ \ athdiag.c -o athdiag clean: -- cgit v1.2.3 From 48ce8d6ad9d9eb03c80f5f4094ddfe1349666178 Mon Sep 17 00:00:00 2001 From: Srinivas Girigowda Date: Mon, 10 Mar 2014 15:17:21 -0700 Subject: qcacld: Fix to enable PMF after roaming. The root cause of the problem is RMF enabled flag is never set during FT session creation for the AP we are roaming to; because of this after roaming the hardware is not configured to encrypt ADDBA request and hence ADDBA request action frame from DUT is going unprotected. This applies to all outgoing robust mgmt frames after roaming. Fix is to set the FT session RMF enabled flag to initial association RMF enabled flag. Change-Id: I3d4681000873cbf8d51241f8bea73c0bf8b2618c CRs-Fixed: 624301 --- CORE/MAC/src/pe/lim/limFT.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CORE/MAC/src/pe/lim/limFT.c b/CORE/MAC/src/pe/lim/limFT.c index db5be7beafc7..50e135f0ee4a 100644 --- a/CORE/MAC/src/pe/lim/limFT.c +++ b/CORE/MAC/src/pe/lim/limFT.c @@ -465,6 +465,9 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, pAddBssParams->llbCoexist = (tANI_U8) pftSessionEntry->beaconParams.llbCoexist; pAddBssParams->llgCoexist = (tANI_U8) pftSessionEntry->beaconParams.llgCoexist; pAddBssParams->ht20Coexist = (tANI_U8) pftSessionEntry->beaconParams.ht20Coexist; +#ifdef WLAN_FEATURE_11W + pAddBssParams->rmfEnabled = pftSessionEntry->limRmfEnabled; +#endif // Use the advertised capabilities from the received beacon/PR if (IS_DOT11_MODE_HT(pftSessionEntry->dot11mode) && ( pBeaconStruct->HTCaps.present )) @@ -577,6 +580,9 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac, pAddBssParams->staContext.shortPreambleSupported = (tANI_U8)pBeaconStruct->capabilityInfo.shortPreamble; pAddBssParams->staContext.updateSta = updateEntry; pAddBssParams->staContext.encryptType = pftSessionEntry->encryptType; +#ifdef WLAN_FEATURE_11W + pAddBssParams->staContext.rmfEnabled = pftSessionEntry->limRmfEnabled; +#endif if (IS_DOT11_MODE_HT(pftSessionEntry->dot11mode) && ( pBeaconStruct->HTCaps.present )) { @@ -853,6 +859,9 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, MTRACE(macTrace(pMac, TRACE_CODE_SME_STATE, pftSessionEntry->peSessionId, pftSessionEntry->limSmeState)); pftSessionEntry->encryptType = psessionEntry->encryptType; +#ifdef WLAN_FEATURE_11W + pftSessionEntry->limRmfEnabled = psessionEntry->limRmfEnabled; +#endif if (pftSessionEntry->limRFBand == SIR_BAND_2_4_GHZ) { -- cgit v1.2.3 From 7fe34d730c301bfd94f1a3ae2817a3945e701015 Mon Sep 17 00:00:00 2001 From: Pitani Venkata Rajesh Kumar Date: Wed, 12 Mar 2014 11:52:46 +0530 Subject: Cafstaging Release 1.0.0.60 Cafstaging Release 1.0.0.60 Change-Id: I4c0e6e38f0c4564416ba43cb73826448e6c40b55 --- CORE/MAC/inc/qwlan_version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 9062c9a9bfe9..3a02a4e2220e 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 0 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 59 +#define QWLAN_VERSION_BUILD 60 -#define QWLAN_VERSIONSTR "1.0.0.59" +#define QWLAN_VERSIONSTR "1.0.0.60" #ifdef QCA_WIFI_2_0 -- cgit v1.2.3