diff options
| -rw-r--r-- | CORE/CLD_TXRX/TXRX/ol_rx_reorder.c | 2 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 29 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/src/include/dphGlobal.h | 1 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limAssocUtils.c | 2 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limFT.c | 9 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c | 15 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessAuthFrame.c | 5 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c | 2 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 5 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_utils.c | 6 | ||||
| -rw-r--r-- | tools/athdiag/Makefile | 6 |
12 files changed, 63 insertions, 23 deletions
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; 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/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 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/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) { 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; 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/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; 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 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 ); } 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: |
