prima: max_scan_ie_len should have the combined lenght of all IEs
max_scan_ie_len of wiphy structure should be updated with the
max length of IEs which can be added to a probe request frame.
In current implement it has been updated with the max length of
an IE.
Change-Id: I28ff17e9de472040da3f85a02d3b31cfe46811b4
CRs-Fixed: 820817
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index e422272..366776e 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -5772,7 +5772,7 @@
wiphy->max_scan_ssids = MAX_SCAN_SSID;
- wiphy->max_scan_ie_len = SIR_MAC_MAX_IE_LENGTH;
+ wiphy->max_scan_ie_len = SIR_MAC_MAX_ADD_IE_LENGTH;
wiphy->max_acl_mac_addrs = MAX_ACL_MAC_ADDRESS;
@@ -10765,7 +10765,7 @@
(WLAN_HDD_P2P_CLIENT == pAdapter->device_mode) ||
(WLAN_HDD_P2P_DEVICE == pAdapter->device_mode))
{
- if ( request->ie_len <= SIR_MAC_MAX_IE_LENGTH)
+ if (request->ie_len <= SIR_MAC_MAX_ADD_IE_LENGTH)
{
pwextBuf->roamProfile.nAddIEScanLength = request->ie_len;
memcpy( pwextBuf->roamProfile.addIEScan,
@@ -11451,7 +11451,7 @@
hddLog (VOS_TRACE_LEVEL_INFO, "%s Set WPS IE(len %d)",
__func__, eLen + 2);
- if( SIR_MAC_MAX_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
+ if( SIR_MAC_MAX_ADD_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
{
hddLog(VOS_TRACE_LEVEL_FATAL, "Cannot accommodate assocAddIE. "
"Need bigger buffer space");
@@ -11481,7 +11481,7 @@
hddLog (VOS_TRACE_LEVEL_INFO, "%s Set P2P IE(len %d)",
__func__, eLen + 2);
- if( SIR_MAC_MAX_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
+ if( SIR_MAC_MAX_ADD_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
{
hddLog(VOS_TRACE_LEVEL_FATAL, "Cannot accommodate assocAddIE "
"Need bigger buffer space");
@@ -11505,7 +11505,7 @@
hddLog (VOS_TRACE_LEVEL_INFO, "%s Set WFD IE(len %d)",
__func__, eLen + 2);
- if( SIR_MAC_MAX_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
+ if( SIR_MAC_MAX_ADD_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
{
hddLog(VOS_TRACE_LEVEL_FATAL, "Cannot accommodate assocAddIE "
"Need bigger buffer space");
@@ -11529,7 +11529,7 @@
hddLog (VOS_TRACE_LEVEL_INFO, "%s Set HS20 IE(len %d)",
__func__, eLen + 2);
- if( SIR_MAC_MAX_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
+ if( SIR_MAC_MAX_ADD_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
{
hddLog(VOS_TRACE_LEVEL_FATAL, "Cannot accommodate assocAddIE "
"Need bigger buffer space");
@@ -11550,7 +11550,7 @@
hddLog (VOS_TRACE_LEVEL_INFO, "%s Set OSEN IE(len %d)",
__func__, eLen + 2);
- if( SIR_MAC_MAX_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
+ if( SIR_MAC_MAX_ADD_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
{
hddLog(VOS_TRACE_LEVEL_FATAL, "Cannot accommodate assocAddIE "
"Need bigger buffer space");
@@ -11708,7 +11708,7 @@
hddLog (VOS_TRACE_LEVEL_INFO, "%s Set Extended CAPS IE(len %d)",
__func__, eLen + 2);
- if( SIR_MAC_MAX_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
+ if( SIR_MAC_MAX_ADD_IE_LENGTH < (pWextState->assocAddIE.length + eLen) )
{
hddLog(VOS_TRACE_LEVEL_FATAL, "Cannot accommodate assocAddIE "
"Need bigger buffer space");
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index b4db7c3..9af3329 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -1359,7 +1359,7 @@
pWextState->roamProfile.bWPSAssociation = VOS_FALSE;
pWextState->roamProfile.bOSENAssociation = VOS_FALSE;
pWextState->roamProfile.nAddIEScanLength = 0;
- memset(pWextState->roamProfile.addIEScan, 0 , SIR_MAC_MAX_IE_LENGTH+2);
+ memset(pWextState->roamProfile.addIEScan, 0 , SIR_MAC_MAX_ADD_IE_LENGTH+2);
pWextState->roamProfile.pAddIEAssoc = (tANI_U8 *)NULL;
pWextState->roamProfile.nAddIEAssocLength = 0;
diff --git a/CORE/MAC/inc/aniSystemDefs.h b/CORE/MAC/inc/aniSystemDefs.h
index 7c0aded..fbc8ffc 100644
--- a/CORE/MAC/inc/aniSystemDefs.h
+++ b/CORE/MAC/inc/aniSystemDefs.h
@@ -159,7 +159,7 @@
typedef struct sSirAddie
{
tANI_U16 length;
- tANI_U8 addIEdata[SIR_MAC_MAX_IE_LENGTH+2];
+ tANI_U8 addIEdata[SIR_MAC_MAX_ADD_IE_LENGTH+2];
} tSirAddie, *tpSirAddie;
#ifdef FEATURE_WLAN_ESE
diff --git a/CORE/MAC/inc/sirMacProtDef.h b/CORE/MAC/inc/sirMacProtDef.h
index c943b81..d03a192 100644
--- a/CORE/MAC/inc/sirMacProtDef.h
+++ b/CORE/MAC/inc/sirMacProtDef.h
@@ -432,6 +432,7 @@
#define SIR_MAC_ANI_WORKAROUND_EID_MIN 0
#define SIR_MAC_ANI_WORKAROUND_EID_MAX 255
+#define SIR_MAC_MAX_ADD_IE_LENGTH 500
/// Maximum length of each IE
#define SIR_MAC_MAX_IE_LENGTH 255
diff --git a/CORE/MAC/src/pe/lim/limSerDesUtils.c b/CORE/MAC/src/pe/lim/limSerDesUtils.c
index 76ad257..cfe9ff9 100644
--- a/CORE/MAC/src/pe/lim/limSerDesUtils.c
+++ b/CORE/MAC/src/pe/lim/limSerDesUtils.c
@@ -1094,7 +1094,7 @@
if (pJoinReq->addIEScan.length)
{
// Check for IE length (that includes length of type & length)
- if (pJoinReq->addIEScan.length > SIR_MAC_MAX_IE_LENGTH + 2)
+ if (pJoinReq->addIEScan.length > SIR_MAC_MAX_ADD_IE_LENGTH + 2)
{
limLog(pMac, LOGE,
FL("Invalid addIE Scan length %d in SME_JOIN_REQ"),
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index 83e0e50..37ff364 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -915,7 +915,7 @@
* It has the IE byte stream for additional IE,
* which can be WSC IE and/or P2P IE
*/
- tANI_U8 addIEScan[SIR_MAC_MAX_IE_LENGTH+2]; //Additional IE information.
+ tANI_U8 addIEScan[SIR_MAC_MAX_ADD_IE_LENGTH+2]; //Additional IE information.
tANI_U32 nAddIEAssocLength; //The byte count in the pAddIE for assoc
tANI_U8 *pAddIEAssoc; //If not null, it has the IE byte stream for additional IE, which can be WSC IE and/or P2P IE
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index c2fcf81..e80f980 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -935,7 +935,7 @@
/* This contains the additional IE in (unicast)
* probe request at the time of join
*/
- tANI_U8 addIEScan[SIR_MAC_MAX_IE_LENGTH+2];
+ tANI_U8 addIEScan[SIR_MAC_MAX_ADD_IE_LENGTH+2];
tANI_U32 nAddIEAssocLength; //the byte count for pAddIeAssocIE
tANI_U8 *pAddIEAssoc; //this contains the additional IE in (re) assoc request
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 68d8c69..4d1c09c 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -6282,8 +6282,8 @@
#endif /* FEATURE_WLAN_WAPI */
if(pSrcProfile->nAddIEScanLength)
{
- memset(pDstProfile->addIEScan, 0 , SIR_MAC_MAX_IE_LENGTH);
- if ( SIR_MAC_MAX_IE_LENGTH >= pSrcProfile->nAddIEScanLength)
+ memset(pDstProfile->addIEScan, 0 , SIR_MAC_MAX_ADD_IE_LENGTH);
+ if ( SIR_MAC_MAX_ADD_IE_LENGTH >= pSrcProfile->nAddIEScanLength)
{
vos_mem_copy(pDstProfile->addIEScan, pSrcProfile->addIEScan,
pSrcProfile->nAddIEScanLength);
@@ -14989,7 +14989,7 @@
#endif /* FEATURE_WLAN_WAPI */
if (pSession->nAddIEScanLength)
{
- memset(pSession->addIEScan, 0 , SIR_MAC_MAX_IE_LENGTH);
+ memset(pSession->addIEScan, 0 , SIR_MAC_MAX_ADD_IE_LENGTH);
}
pSession->nAddIEScanLength = 0;
diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c
index 48308a4..ff37969 100644
--- a/CORE/SME/src/csr/csrUtil.c
+++ b/CORE/SME/src/csr/csrUtil.c
@@ -6137,7 +6137,7 @@
if (pProfile->nAddIEScanLength)
{
- memset(pProfile->addIEScan, 0 , SIR_MAC_MAX_IE_LENGTH+2);
+ memset(pProfile->addIEScan, 0 , SIR_MAC_MAX_ADD_IE_LENGTH+2);
pProfile->nAddIEScanLength = 0;
}