Added WLAN_STA_MFP flag for driver wrappers so that they can configure the
driver to enable MFP (IEEE 802.11w) processing for the STA.
This commit is contained in:
parent
94e5af7948
commit
f3f7540edc
5 changed files with 17 additions and 1 deletions
|
@ -26,6 +26,7 @@
|
||||||
#define WLAN_STA_SHORT_PREAMBLE BIT(7)
|
#define WLAN_STA_SHORT_PREAMBLE BIT(7)
|
||||||
#define WLAN_STA_PREAUTH BIT(8)
|
#define WLAN_STA_PREAUTH BIT(8)
|
||||||
#define WLAN_STA_WME BIT(9)
|
#define WLAN_STA_WME BIT(9)
|
||||||
|
#define WLAN_STA_MFP BIT(10)
|
||||||
#define WLAN_STA_NONERP BIT(31)
|
#define WLAN_STA_NONERP BIT(31)
|
||||||
|
|
||||||
/* Maximum number of supported rates (from both Supported Rates and Extended
|
/* Maximum number of supported rates (from both Supported Rates and Extended
|
||||||
|
|
|
@ -398,7 +398,7 @@ static void hostapd_dump_state(struct hostapd_data *hapd)
|
||||||
fprintf(f, "\nSTA=" MACSTR "\n", MAC2STR(sta->addr));
|
fprintf(f, "\nSTA=" MACSTR "\n", MAC2STR(sta->addr));
|
||||||
|
|
||||||
fprintf(f,
|
fprintf(f,
|
||||||
" AID=%d flags=0x%x %s%s%s%s%s%s%s%s%s%s\n"
|
" AID=%d flags=0x%x %s%s%s%s%s%s%s%s%s%s%s%s\n"
|
||||||
" capability=0x%x listen_interval=%d\n",
|
" capability=0x%x listen_interval=%d\n",
|
||||||
sta->aid,
|
sta->aid,
|
||||||
sta->flags,
|
sta->flags,
|
||||||
|
@ -414,6 +414,8 @@ static void hostapd_dump_state(struct hostapd_data *hapd)
|
||||||
(sta->flags & WLAN_STA_SHORT_PREAMBLE ?
|
(sta->flags & WLAN_STA_SHORT_PREAMBLE ?
|
||||||
"[SHORT_PREAMBLE]" : ""),
|
"[SHORT_PREAMBLE]" : ""),
|
||||||
(sta->flags & WLAN_STA_PREAUTH ? "[PREAUTH]" : ""),
|
(sta->flags & WLAN_STA_PREAUTH ? "[PREAUTH]" : ""),
|
||||||
|
(sta->flags & WLAN_STA_WME ? "[WME]" : ""),
|
||||||
|
(sta->flags & WLAN_STA_MFP ? "[MFP]" : ""),
|
||||||
(sta->flags & WLAN_STA_NONERP ? "[NonERP]" : ""),
|
(sta->flags & WLAN_STA_NONERP ? "[NonERP]" : ""),
|
||||||
sta->capability,
|
sta->capability,
|
||||||
sta->listen_interval);
|
sta->listen_interval);
|
||||||
|
|
|
@ -996,6 +996,12 @@ static void handle_assoc(struct hostapd_data *hapd,
|
||||||
resp = WLAN_STATUS_INVALID_IE;
|
resp = WLAN_STATUS_INVALID_IE;
|
||||||
if (resp != WLAN_STATUS_SUCCESS)
|
if (resp != WLAN_STATUS_SUCCESS)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
#ifdef CONFIG_IEEE80211W
|
||||||
|
if (wpa_auth_uses_mfp(sta->wpa_sm))
|
||||||
|
sta->flags |= WLAN_STA_MFP;
|
||||||
|
else
|
||||||
|
sta->flags &= ~WLAN_STA_MFP;
|
||||||
|
#endif /* CONFIG_IEEE80211W */
|
||||||
|
|
||||||
#ifdef CONFIG_IEEE80211R
|
#ifdef CONFIG_IEEE80211R
|
||||||
if (sta->auth_alg == WLAN_AUTH_FT) {
|
if (sta->auth_alg == WLAN_AUTH_FT) {
|
||||||
|
|
|
@ -219,6 +219,7 @@ int wpa_validate_wpa_ie(struct wpa_authenticator *wpa_auth,
|
||||||
struct wpa_state_machine *sm,
|
struct wpa_state_machine *sm,
|
||||||
const u8 *wpa_ie, size_t wpa_ie_len,
|
const u8 *wpa_ie, size_t wpa_ie_len,
|
||||||
const u8 *mdie, size_t mdie_len);
|
const u8 *mdie, size_t mdie_len);
|
||||||
|
int wpa_auth_uses_mfp(struct wpa_state_machine *sm);
|
||||||
struct wpa_state_machine *
|
struct wpa_state_machine *
|
||||||
wpa_auth_sta_init(struct wpa_authenticator *wpa_auth, const u8 *addr);
|
wpa_auth_sta_init(struct wpa_authenticator *wpa_auth, const u8 *addr);
|
||||||
void wpa_auth_sta_associated(struct wpa_authenticator *wpa_auth,
|
void wpa_auth_sta_associated(struct wpa_authenticator *wpa_auth,
|
||||||
|
|
|
@ -783,3 +783,9 @@ int wpa_parse_kde_ies(const u8 *buf, size_t len, struct wpa_eapol_ie_parse *ie)
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int wpa_auth_uses_mfp(struct wpa_state_machine *sm)
|
||||||
|
{
|
||||||
|
return sm ? sm->mgmt_frame_prot : 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue