kopia lustrzana https://github.com/espressif/esp-idf
esp_wifi:Add wifi station config for enabling transition_disbale feature
rodzic
3823a991db
commit
2bbd3ac583
|
@ -277,7 +277,8 @@ typedef struct {
|
|||
uint32_t rm_enabled:1; /**< Whether Radio Measurements are enabled for the connection */
|
||||
uint32_t btm_enabled:1; /**< Whether BSS Transition Management is enabled for the connection */
|
||||
uint32_t mbo_enabled:1; /**< Whether MBO is enabled for the connection */
|
||||
uint32_t reserved:29; /**< Reserved for future feature set */
|
||||
uint32_t transition_disable:1; /**< Whether to enable transition disable feature */
|
||||
uint32_t reserved:28; /**< Reserved for future feature set */
|
||||
wifi_sae_pwe_method_t sae_pwe_h2e; /**< Whether SAE hash to element is enabled */
|
||||
uint8_t failure_retry_cnt; /**< Number of connection retries station will do before moving to next AP. scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. */
|
||||
} wifi_sta_config_t;
|
||||
|
|
|
@ -61,6 +61,15 @@ void wpa_sm_free_eapol(u8 *buffer)
|
|||
os_free(buffer);
|
||||
}
|
||||
|
||||
void wpa_supplicant_transition_disable(void *sm, u8 bitmap)
|
||||
{
|
||||
wpa_printf(MSG_INFO, "TRANSITION_DISABLE %02x", bitmap);
|
||||
|
||||
if (bitmap & TRANSITION_DISABLE_WPA3_PERSONAL) {
|
||||
esp_wifi_sta_disable_wpa2_authmode_internal();
|
||||
}
|
||||
}
|
||||
|
||||
void wpa_sm_deauthenticate(struct wpa_sm *sm, u8 reason_code)
|
||||
{
|
||||
|
||||
|
|
|
@ -30,4 +30,6 @@ int wpa_sm_get_beacon_ie(struct wpa_sm *sm);
|
|||
|
||||
void wpa_sm_free_eapol(u8 *buffer);
|
||||
|
||||
void wpa_supplicant_transition_disable(void *sm, u8 bitmap);
|
||||
|
||||
#endif /* WPAS_GLUE_H */
|
||||
|
|
|
@ -311,6 +311,10 @@ struct rsn_rdie {
|
|||
|
||||
#endif /* CONFIG_IEEE80211R */
|
||||
|
||||
/* WFA Transition Disable KDE (using OUI_WFA) */
|
||||
/* Transition Disable Bitmap bits */
|
||||
#define TRANSITION_DISABLE_WPA3_PERSONAL BIT(0)
|
||||
|
||||
struct wpa_ie_data {
|
||||
int proto;
|
||||
int pairwise_cipher;
|
||||
|
|
|
@ -1264,8 +1264,9 @@ static void wpa_supplicant_process_3_of_4(struct wpa_sm *sm,
|
|||
goto failed;
|
||||
}
|
||||
|
||||
if (ie.transition_disable)
|
||||
esp_wifi_sta_disable_wpa2_authmode_internal();
|
||||
if (ie.transition_disable) {
|
||||
wpa_supplicant_transition_disable(sm, ie.transition_disable[0]);
|
||||
}
|
||||
|
||||
if (sm->key_install && sm->key_info & WPA_KEY_INFO_INSTALL && sm->use_ext_key_id) {
|
||||
wpa_supplicant_install_ptk(sm, KEY_FLAG_RX);
|
||||
|
|
Ładowanie…
Reference in New Issue