wlan: Adding HS2.0 IEs in the Re-Assoc Requset

DUT fails to send re-assoc

Change-Id: Ibf293d952875bf91b09b9838eb4b076a1e333221
CR-Fixed: 407823
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index e8bb5f5..2d4fdfa 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -259,6 +259,9 @@
 
 #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)
 
@@ -2145,6 +2148,28 @@
    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
@@ -5893,7 +5918,8 @@
    [WLAN_PRIV_SET_MCBC_FILTER           - SIOCIWFIRSTPRIV]   = iw_set_dynamic_mcbc_filter,
    [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_GET_LINK_SPEED                 - SIOCIWFIRSTPRIV]   = iw_get_linkspeed,
+   [WLAN_SET_REASSOC_TRIGGER            - SIOCIWFIRSTPRIV]   = iw_set_reassoc_trigger
 };
 
 /*Maximum command length can be only 15 */
@@ -6277,6 +6303,11 @@
         WLAN_GET_LINK_SPEED,
         IW_PRIV_TYPE_CHAR | 18,
         IW_PRIV_TYPE_CHAR | 3, "getLinkSpeed" },
+    {
+        WLAN_SET_REASSOC_TRIGGER,
+        0,
+        0,
+        "reassoc" },
 };