wlan : Fast transition (11r)
- Add WLAN_AKM_SUITE_FT_PSK & WLAN_AKM_SUITE_FT_8021X in the
AKM suite
- Kernel interface changes for cfg80211_ft_event
Change-Id: I078d67bb207153ea2d02f8f78959d81229e87353
CRs-fixed: 434525
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index c7bb02c..238b65a 100755
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -384,6 +384,7 @@
struct cfg80211_ft_event_params ftEvent;
v_U8_t ftIe[DOT11F_IE_FTINFO_MAX_LEN];
v_U8_t ricIe[DOT11F_IE_RICDESCRIPTOR_MAX_LEN];
+ v_U8_t target_ap[SIR_MAC_ADDR_LENGTH];
struct net_device *dev = pAdapter->dev;
#else
char *buff;
@@ -417,7 +418,9 @@
return;
}
- vos_mem_copy(ftEvent.target_ap, ftIe, SIR_MAC_ADDR_LENGTH );
+ vos_mem_copy(target_ap, ftIe, SIR_MAC_ADDR_LENGTH);
+
+ ftEvent.target_ap = target_ap;
ftEvent.ies = (u8 *)(ftIe + SIR_MAC_ADDR_LENGTH);
ftEvent.ies_len = auth_resp_len - SIR_MAC_ADDR_LENGTH;
@@ -429,7 +432,7 @@
ftEvent.target_ap[2], ftEvent.target_ap[3], ftEvent.target_ap[4],
ftEvent.target_ap[5]);
- (void)cfg80211_ft_event(dev, ftEvent);
+ (void)cfg80211_ft_event(dev, &ftEvent);
#else
// We need to send the IEs to the supplicant
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index bf7a0a7..9a1c897 100755
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -144,6 +144,11 @@
#define TDLS_LOG_LEVEL VOS_TRACE_LEVEL_ERROR
#endif
+#ifdef WLAN_FEATURE_VOWIFI_11R
+#define WLAN_AKM_SUITE_FT_8021X 0x000FAC03
+#define WLAN_AKM_SUITE_FT_PSK 0x000FAC04
+#endif
+
static const u32 hdd_cipher_suites[] =
{
WLAN_CIPHER_SUITE_WEP40,
@@ -4909,13 +4914,19 @@
switch(key_mgmt)
{
case WLAN_AKM_SUITE_PSK:
- hddLog(VOS_TRACE_LEVEL_INFO, "%s: setting key mgmt type to PSK",
+#ifdef WLAN_FEATURE_VOWIFI_11R
+ case WLAN_AKM_SUITE_FT_PSK:
+#endif
+ hddLog(VOS_TRACE_LEVEL_INFO, "%s: setting key mgmt type to PSK",
__func__);
pWextState->authKeyMgmt |= IW_AUTH_KEY_MGMT_PSK;
break;
case WLAN_AKM_SUITE_8021X:
- hddLog(VOS_TRACE_LEVEL_INFO, "%s: setting key mgmt type to 8021x",
+#ifdef WLAN_FEATURE_VOWIFI_11R
+ case WLAN_AKM_SUITE_FT_8021X:
+#endif
+ hddLog(VOS_TRACE_LEVEL_INFO, "%s: setting key mgmt type to 8021x",
__func__);
pWextState->authKeyMgmt |= IW_AUTH_KEY_MGMT_802_1X;
break;
@@ -6712,7 +6723,8 @@
#endif
// Pass the received FT IEs to SME
- sme_SetFTIEs( WLAN_HDD_GET_HAL_CTX(pAdapter), pAdapter->sessionId, ftie->ie,
+ sme_SetFTIEs( WLAN_HDD_GET_HAL_CTX(pAdapter), pAdapter->sessionId,
+ (const u8 *)ftie->ie,
ftie->ie_len);
return 0;
}