summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_rx_reorder.c2
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c29
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/src/include/dphGlobal.h1
-rw-r--r--CORE/MAC/src/pe/lim/limAssocUtils.c2
-rw-r--r--CORE/MAC/src/pe/lim/limFT.c9
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c15
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAuthFrame.c5
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c2
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c5
-rw-r--r--CORE/VOSS/src/vos_utils.c6
-rw-r--r--tools/athdiag/Makefile6
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: