EHT: Allow EHT to be disabled using disable_eht=1 in wpa_supplicant
This is similar to the previously added disable_ht/vht/he parameters. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
041f6cea94
commit
e5d15e2254
10 changed files with 42 additions and 0 deletions
|
@ -1251,6 +1251,11 @@ struct wpa_driver_associate_params {
|
|||
* 2 = both hunting-and-pecking loop and hash-to-element enabled
|
||||
*/
|
||||
int sae_pwe;
|
||||
|
||||
/**
|
||||
* disable_eht - Disable EHT for this connection
|
||||
*/
|
||||
int disable_eht;
|
||||
};
|
||||
|
||||
enum hide_ssid {
|
||||
|
|
|
@ -6059,6 +6059,12 @@ static int nl80211_ht_vht_overrides(struct nl_msg *msg,
|
|||
}
|
||||
#endif /* CONFIG_HE_OVERRIDES */
|
||||
|
||||
if (params->disable_eht) {
|
||||
wpa_printf(MSG_DEBUG, " * EHT disabled");
|
||||
if (nla_put_flag(msg, NL80211_ATTR_DISABLE_EHT))
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -2664,6 +2664,7 @@ static const struct parse_data ssid_fields[] = {
|
|||
{ INT_RANGE(beacon_prot, 0, 1) },
|
||||
{ INT_RANGE(transition_disable, 0, 255) },
|
||||
{ INT_RANGE(sae_pk, 0, 2) },
|
||||
{ INT_RANGE(disable_eht, 0, 1)},
|
||||
};
|
||||
|
||||
#undef OFFSET
|
||||
|
|
|
@ -880,6 +880,7 @@ static void wpa_config_write_network(FILE *f, struct wpa_ssid *ssid)
|
|||
#ifdef CONFIG_HE_OVERRIDES
|
||||
INT(disable_he);
|
||||
#endif /* CONFIG_HE_OVERRIDES */
|
||||
INT(disable_eht);
|
||||
|
||||
#undef STR
|
||||
#undef INT
|
||||
|
|
|
@ -1192,6 +1192,14 @@ struct wpa_ssid {
|
|||
* 2 = both hunting-and-pecking loop and hash-to-element enabled
|
||||
*/
|
||||
int sae_pwe;
|
||||
|
||||
/**
|
||||
* disable_eht - Disable EHT (IEEE 802.11be) for this network
|
||||
*
|
||||
* By default, use it if it is available, but this can be configured
|
||||
* to 1 to have it disabled.
|
||||
*/
|
||||
int disable_eht;
|
||||
};
|
||||
|
||||
#endif /* CONFIG_SSID_H */
|
||||
|
|
|
@ -2027,6 +2027,7 @@ mscs_fail:
|
|||
#ifdef CONFIG_HE_OVERRIDES
|
||||
wpa_supplicant_apply_he_overrides(wpa_s, ssid, ¶ms);
|
||||
#endif /* CONFIG_HE_OVERRIDES */
|
||||
wpa_supplicant_apply_eht_overrides(wpa_s, ssid, ¶ms);
|
||||
#ifdef CONFIG_IEEE80211R
|
||||
if (auth_type == WLAN_AUTH_FT && wpa_s->sme.ft_ies &&
|
||||
get_ie(wpa_s->sme.ft_ies, wpa_s->sme.ft_ies_len,
|
||||
|
|
|
@ -1479,6 +1479,7 @@ static const char *network_fields[] = {
|
|||
#ifdef CONFIG_HE_OVERRIDES
|
||||
"disable_he",
|
||||
#endif /* CONFIG_HE_OVERRIDES */
|
||||
"disable_eht",
|
||||
"ap_max_inactivity", "dtim_period", "beacon_int",
|
||||
#ifdef CONFIG_MACSEC
|
||||
"macsec_policy",
|
||||
|
|
|
@ -4119,6 +4119,7 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
|
|||
#ifdef CONFIG_HE_OVERRIDES
|
||||
wpa_supplicant_apply_he_overrides(wpa_s, ssid, ¶ms);
|
||||
#endif /* CONFIG_HE_OVERRIDES */
|
||||
wpa_supplicant_apply_eht_overrides(wpa_s, ssid, ¶ms);
|
||||
|
||||
#ifdef CONFIG_P2P
|
||||
/*
|
||||
|
@ -5915,6 +5916,17 @@ void wpa_supplicant_apply_he_overrides(
|
|||
#endif /* CONFIG_HE_OVERRIDES */
|
||||
|
||||
|
||||
void wpa_supplicant_apply_eht_overrides(
|
||||
struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
|
||||
struct wpa_driver_associate_params *params)
|
||||
{
|
||||
if (!ssid)
|
||||
return;
|
||||
|
||||
params->disable_eht = ssid->disable_eht;
|
||||
}
|
||||
|
||||
|
||||
static int pcsc_reader_init(struct wpa_supplicant *wpa_s)
|
||||
{
|
||||
#ifdef PCSC_FUNCS
|
||||
|
|
|
@ -1627,6 +1627,10 @@ fast_reauth=1
|
|||
# 2: MCS 0-9
|
||||
# 3: not supported
|
||||
|
||||
# disable_eht: Whether EHT should be disabled.
|
||||
# 0 = EHT enabled (if supported) (default)
|
||||
# 1 = EHT disabled
|
||||
|
||||
# multi_ap_backhaul_sta: Multi-AP backhaul STA functionality
|
||||
# 0 = normal STA (default)
|
||||
# 1 = backhaul STA
|
||||
|
|
|
@ -1584,6 +1584,9 @@ void wpa_supplicant_apply_vht_overrides(
|
|||
void wpa_supplicant_apply_he_overrides(
|
||||
struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
|
||||
struct wpa_driver_associate_params *params);
|
||||
void wpa_supplicant_apply_eht_overrides(
|
||||
struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
|
||||
struct wpa_driver_associate_params *params);
|
||||
|
||||
int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
|
||||
int wpa_supplicant_set_wpa_none_key(struct wpa_supplicant *wpa_s,
|
||||
|
|
Loading…
Reference in a new issue