wlan: Dont include ext caps in Assoc request if AP doesn't support
Some AP doesn't announce Extended Capabilities IE in Probe Response.
Device should not send extended Capabilities if AP doesn't support.
Change-Id: I53215b866cb90f4addf45e3b6ed8af435eb57842
CRs-Fixed: 930199
diff --git a/CORE/MAC/src/pe/lim/limSendManagementFrames.c b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
index 6f36cb9..fcff76b 100644
--- a/CORE/MAC/src/pe/lim/limSendManagementFrames.c
+++ b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
@@ -2249,7 +2249,7 @@
tDot11fAssocRequest *pFrm;
tANI_U16 caps;
tANI_U8 *pFrame;
- tSirRetStatus nSirStatus;
+ tSirRetStatus nSirStatus = eSIR_FAILURE;
tLimMlmAssocCnf mlmAssocCnf;
tANI_U32 nPayload, nStatus;
tANI_U8 fQosEnabled, fWmeEnabled, fWsmEnabled;
@@ -2293,9 +2293,12 @@
vos_mem_set( ( tANI_U8* )pFrm, sizeof( tDot11fAssocRequest ), 0 );
vos_mem_set(( tANI_U8* )&extractedExtCap, sizeof( tDot11fIEExtCap ), 0);
- nSirStatus = limStripOffExtCapIEAndUpdateStruct(pMac, pAddIE,
+ if (psessionEntry->is_ext_caps_present)
+ {
+ nSirStatus = limStripOffExtCapIEAndUpdateStruct(pMac, pAddIE,
&nAddIELen,
&extractedExtCap );
+ }
if(eSIR_SUCCESS != nSirStatus )
{
extractedExtCapFlag = eANI_BOOLEAN_FALSE;
@@ -2488,7 +2491,8 @@
}
#endif
- PopulateDot11fExtCap( pMac, &pFrm->ExtCap, psessionEntry);
+ if (psessionEntry->is_ext_caps_present)
+ PopulateDot11fExtCap( pMac, &pFrm->ExtCap, psessionEntry);
#if defined WLAN_FEATURE_VOWIFI_11R
if (psessionEntry->pLimJoinReq->is11Rconnection)
@@ -2969,7 +2973,8 @@
}
#endif
- PopulateDot11fExtCap( pMac, &frm.ExtCap, psessionEntry);
+ if (psessionEntry->is_ext_caps_present)
+ PopulateDot11fExtCap( pMac, &frm.ExtCap, psessionEntry);
nStatus = dot11fGetPackedReAssocRequestSize( pMac, &frm, &nPayload );
if ( DOT11F_FAILED( nStatus ) )
@@ -3441,7 +3446,8 @@
limLog( pMac, LOG1, FL("Populate VHT IEs in Re-Assoc Request"));
PopulateDot11fVHTCaps( pMac, &frm.VHTCaps,
psessionEntry->currentOperChannel, eSIR_FALSE );
- PopulateDot11fExtCap( pMac, &frm.ExtCap, psessionEntry);
+ if (psessionEntry->is_ext_caps_present)
+ PopulateDot11fExtCap( pMac, &frm.ExtCap, psessionEntry);
}
#endif