Merge "WLAN:CCX IE should be included in all the association req"
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index 997a732..91873cc 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -1030,6 +1030,7 @@
tAniBool is11Rconnection;
#endif
#ifdef FEATURE_WLAN_CCX
+ tAniBool isCCXFeatureIniEnabled;
tAniBool isCCXconnection;
tCCXTspecInfo ccxTspecInfo;
#endif
diff --git a/CORE/MAC/src/pe/lim/limSendManagementFrames.c b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
index f738662..8e6aa48 100644
--- a/CORE/MAC/src/pe/lim/limSendManagementFrames.c
+++ b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
@@ -2156,23 +2156,30 @@
(unsigned int)psessionEntry->pLimJoinReq->bssDescription.mdie[1],
(unsigned int)psessionEntry->pLimJoinReq->bssDescription.mdie[2]);
#endif
- PopulateMDIE( pMac, &pFrm->MobilityDomain, psessionEntry->pLimJoinReq->bssDescription.mdie);
+ PopulateMDIE( pMac, &pFrm->MobilityDomain,
+ psessionEntry->pLimJoinReq->bssDescription.mdie);
}
- else
+ else
{
// No 11r IEs dont send any MDIE
- limLog( pMac, LOG1, FL("mdie not present"));
+ limLog( pMac, LOG1, FL("MDIE not present"));
}
#endif
#ifdef FEATURE_WLAN_CCX
- // For CCX Associations fill the CCX IEs
- if (psessionEntry->isCCXconnection)
+ /* CCX Version IE will be included in association request
+ when CCX is enabled on DUT through ini */
+ if (psessionEntry->pLimJoinReq->isCCXFeatureIniEnabled)
+ {
+ PopulateDot11fCCXVersion(&pFrm->CCXVersion);
+ }
+ /* For CCX Associations fill the CCX IEs */
+ if (psessionEntry->isCCXconnection &&
+ psessionEntry->pLimJoinReq->isCCXFeatureIniEnabled)
{
#ifndef FEATURE_DISABLE_RM
PopulateDot11fCCXRadMgmtCap(&pFrm->CCXRadMgmtCap);
#endif
- PopulateDot11fCCXVersion(&pFrm->CCXVersion);
}
#endif
@@ -2487,7 +2494,7 @@
}
#ifdef FEATURE_WLAN_CCX
- if(psessionEntry->pLimReAssocReq->cckmIE.length)
+ if (psessionEntry->pLimReAssocReq->cckmIE.length)
{
PopulateDot11fCCXCckmOpaque( pMac, &( psessionEntry->pLimReAssocReq->cckmIE ),
&frm.CCXCckmOpaque );
@@ -2496,15 +2503,21 @@
}
#ifdef FEATURE_WLAN_CCX
+ /* CCX Version IE will be included in reassociation request
+ when CCX is enabled on DUT through ini */
+ if (psessionEntry->pLimReAssocReq->isCCXFeatureIniEnabled)
+ {
+ PopulateDot11fCCXVersion(&frm.CCXVersion);
+ }
// For CCX Associations fill the CCX IEs
- if (psessionEntry->isCCXconnection)
+ if (psessionEntry->isCCXconnection &&
+ psessionEntry->pLimReAssocReq->isCCXFeatureIniEnabled)
{
#ifndef FEATURE_DISABLE_RM
PopulateDot11fCCXRadMgmtCap(&frm.CCXRadMgmtCap);
#endif
- PopulateDot11fCCXVersion(&frm.CCXVersion);
}
-#endif //FEATURE_WLAN_CCX
+#endif //FEATURE_WLAN_CCX
#endif //FEATURE_WLAN_CCX || FEATURE_WLAN_LFR
// include WME EDCA IE as well
@@ -2537,14 +2550,14 @@
{
tsrsIE.rates[0] = TSRS_11AG_RATE_6MBPS;
}
- else
+ else
{
tsrsIE.rates[0] = TSRS_11B_RATE_5_5MBPS;
}
PopulateDot11TSRSIE(pMac,&tsrsIE, &frm.CCXTrafStrmRateSet, sizeof(tANI_U8));
}
}
-#endif
+#endif
}
if ( psessionEntry->htCapability &&
@@ -3378,7 +3391,7 @@
|| ( psessionEntry->pePersona == VOS_P2P_CLIENT_MODE ) ||
( psessionEntry->pePersona == VOS_P2P_GO_MODE)
#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
- || ((NULL != pMac->ft.ftPEContext.pFTPreAuthReq)
+ || ((NULL != pMac->ft.ftPEContext.pFTPreAuthReq)
&& ( SIR_BAND_5_GHZ == limGetRFBand(pMac->ft.ftPEContext.pFTPreAuthReq->preAuthchannelNum)))
#endif
)
@@ -3508,18 +3521,18 @@
#ifdef WLAN_FEATURE_VOWIFI_11R
if ( (psessionEntry->limSystemRole == eLIM_STA_ROLE ) &&
- (
+ (
#ifdef FEATURE_WLAN_CCX
- (psessionEntry->isCCXconnection ) ||
+ (psessionEntry->isCCXconnection ) ||
#endif
#ifdef FEATURE_WLAN_LFR
(psessionEntry->isFastRoamIniFeatureEnabled ) ||
#endif
(psessionEntry->is11Rconnection )) &&
- (pMlmDisassocReq->reasonCode !=
+ (pMlmDisassocReq->reasonCode !=
eSIR_MAC_DISASSOC_DUE_TO_FTHANDOFF_REASON))
{
- PELOGE(limLog(pMac, LOGE,
+ PELOGE(limLog(pMac, LOGE,
FL("FT Preauth Session (%p,%d) Cleanup"),
psessionEntry, psessionEntry->peSessionId););
limFTCleanup(pMac);
diff --git a/CORE/MAC/src/pe/lim/limSerDesUtils.c b/CORE/MAC/src/pe/lim/limSerDesUtils.c
index 59bc3af..7990a69 100644
--- a/CORE/MAC/src/pe/lim/limSerDesUtils.c
+++ b/CORE/MAC/src/pe/lim/limSerDesUtils.c
@@ -1103,6 +1103,13 @@
#endif
#ifdef FEATURE_WLAN_CCX
+ //CCX version IE
+ pJoinReq->isCCXFeatureIniEnabled = (tAniBool)limGetU32(pBuf);
+ pBuf += sizeof(tAniBool);
+ len -= sizeof(tAniBool);
+ if (limCheckRemainingLength(pMac, len) == eSIR_FAILURE)
+ return eSIR_FAILURE;
+
//isCCXconnection;
pJoinReq->isCCXconnection = (tAniBool)limGetU32(pBuf);
pBuf += sizeof(tAniBool);
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 56de945..0dae6db 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -1536,7 +1536,7 @@
}
-#ifdef WLAN_FEATURE_VOWIFI_11R
+#ifdef WLAN_FEATURE_VOWIFI_11R
palCopyMemory( pMac->hHdd, &pMac->roam.configParam.csr11rConfig, &pParam->csr11rConfig, sizeof(tCsr11rConfigParams) );
smsLog( pMac, LOG1, "IsFTResourceReqSupp = %d", pMac->roam.configParam.csr11rConfig.IsFTResourceReqSupported);
#endif
@@ -1559,7 +1559,7 @@
pMac->roam.configParam.isFastRoamIniFeatureEnabled = pParam->isFastRoamIniFeatureEnabled;
#endif
-#ifdef FEATURE_WLAN_CCX
+#ifdef FEATURE_WLAN_CCX
pMac->roam.configParam.isCcxIniFeatureEnabled = pParam->isCcxIniFeatureEnabled;
#endif
#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
@@ -12132,6 +12132,21 @@
}
#endif
#ifdef FEATURE_WLAN_CCX
+
+ // isCCXFeatureIniEnabled
+ if (TRUE == pMac->roam.configParam.isCcxIniFeatureEnabled)
+ {
+ dwTmp = pal_cpu_to_be32(TRUE);
+ palCopyMemory( pMac->hHdd, pBuf, &dwTmp, sizeof(tAniBool) );
+ pBuf += sizeof(tAniBool);
+ }
+ else
+ {
+ dwTmp = pal_cpu_to_be32(FALSE);
+ palCopyMemory( pMac->hHdd, pBuf, &dwTmp, sizeof(tAniBool) );
+ pBuf += sizeof(tAniBool);
+ }
+
/* A profile can not be both CCX and 11R. But an 802.11R AP
* may be advertising support for CCX as well. So if we are
* associating Open or explicitly CCX then we will get CCX.