wlan: modifying the CL 652125 related to HS2.0 as per review comments
DUT fails to send re-assoc
Change-Id: Ibff711828f4af4143d958b0124bfdeaa1268cfc9
CR-Fixed: 407823
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index 2d4fdfa..f359831 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -198,6 +198,7 @@
#define WE_DISABLE_AMP 5
#define WE_ENABLE_DXE_STALL_DETECT 6
#define WE_DISPLAY_DXE_SNAP_SHOT 7
+#define WE_SET_REASSOC_TRIGGER 8
/* Private ioctls and their sub-ioctls */
#define WLAN_PRIV_SET_VAR_INT_GET_NONE (SIOCIWFIRSTPRIV + 7)
@@ -260,7 +261,6 @@
#define WLAN_PRIV_SET_MCBC_FILTER (SIOCIWFIRSTPRIV + 26)
#define WLAN_PRIV_CLEAR_MCBC_FILTER (SIOCIWFIRSTPRIV + 27)
/* Private ioctl to trigger reassociation */
-#define WLAN_SET_REASSOC_TRIGGER (SIOCIWFIRSTPRIV + 28)
#define WLAN_SET_POWER_PARAMS (SIOCIWFIRSTPRIV + 29)
#define WLAN_GET_LINK_SPEED (SIOCIWFIRSTPRIV + 31)
@@ -2148,28 +2148,6 @@
return 0;
}
-/*
- * Support for the reassoc trigger private command
- */
-static int iw_set_reassoc_trigger(struct net_device *dev,
- struct iw_request_info *info,
- union iwreq_data *wrqu, char *extra)
-{
- hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
- tpAniSirGlobal pMac = WLAN_HDD_GET_HAL_CTX(pAdapter);
- v_U32_t roamId = 0;
- tCsrRoamModifyProfileFields modProfileFields;
- tCsrRoamSession *pSession = CSR_GET_SESSION( pMac, pAdapter->sessionId );
- /* to force the AP initiate fresh 802.1x authentication need to clear
- * the PMKID cache for that set the following boolean. this is needed
- * by the HS 2.0 passpoint certification 5.2.a and b testcases */
- pSession->fIgnorePMKIDCache = TRUE;
- sme_GetModifyProfileFields(pMac, pAdapter->sessionId, &modProfileFields);
- sme_RoamReassoc(pMac, pAdapter->sessionId, NULL, modProfileFields, &roamId, 1);
- return 0;
-
-}
-
/*
* Support for the RSSI & RSSI-APPROX private commands
@@ -4126,6 +4104,17 @@
sme_transportDebug(VOS_TRUE, VOS_FALSE);
break;
}
+ case WE_SET_REASSOC_TRIGGER:
+ {
+ hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
+ tpAniSirGlobal pMac = WLAN_HDD_GET_HAL_CTX(pAdapter);
+ v_U32_t roamId = 0;
+ tCsrRoamModifyProfileFields modProfileFields;
+ sme_GetModifyProfileFields(pMac, pAdapter->sessionId, &modProfileFields);
+ sme_RoamReassoc(pMac, pAdapter->sessionId, NULL, modProfileFields, &roamId, 1);
+ return 0;
+ }
+
default:
{
@@ -5919,7 +5908,6 @@
[WLAN_PRIV_CLEAR_MCBC_FILTER - SIOCIWFIRSTPRIV] = iw_clear_dynamic_mcbc_filter,
[WLAN_SET_POWER_PARAMS - SIOCIWFIRSTPRIV] = iw_set_power_params_priv,
[WLAN_GET_LINK_SPEED - SIOCIWFIRSTPRIV] = iw_get_linkspeed,
- [WLAN_SET_REASSOC_TRIGGER - SIOCIWFIRSTPRIV] = iw_set_reassoc_trigger
};
/*Maximum command length can be only 15 */
@@ -6161,6 +6149,11 @@
0,
0,
"dxeSnapshot" },
+ {
+ WE_SET_REASSOC_TRIGGER,
+ 0,
+ 0,
+ "reassoc" },
/* handlers for main ioctl */
{ WLAN_PRIV_SET_VAR_INT_GET_NONE,
@@ -6303,11 +6296,7 @@
WLAN_GET_LINK_SPEED,
IW_PRIV_TYPE_CHAR | 18,
IW_PRIV_TYPE_CHAR | 3, "getLinkSpeed" },
- {
- WLAN_SET_REASSOC_TRIGGER,
- 0,
- 0,
- "reassoc" },
+
};
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index fa95d9a..70d8bbc 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -2247,8 +2247,13 @@
{
if( CSR_IS_SESSION_VALID( pMac, sessionId ) )
{
- if(NULL == pProfile)
- {
+ if((NULL == pProfile) && (fForce == 1))
+ {
+ tCsrRoamSession *pSession = CSR_GET_SESSION( pMac, sessionId );
+ /* to force the AP initiate fresh 802.1x authentication need to clear
+ * the PMKID cache for that set the following boolean. this is needed
+ * by the HS 2.0 passpoint certification 5.2.a and b testcases */
+ pSession->fIgnorePMKIDCache = TRUE;
status = csrReassoc( pMac, sessionId, &modProfileFields, pRoamId , fForce);
}
else