mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 09:09:10 -04:00
Merge branch 'bugfix/11kv_config_break' into 'master'
fix(esp_wifi): Correctly break 11kv config into wnm and rrm configs Closes WIFIBUG-1065 See merge request espressif/esp-idf!37451
This commit is contained in:
commit
3c7ca8f2c9
@ -559,7 +559,7 @@ menu "Wi-Fi"
|
|||||||
config ESP_WIFI_RRM_SUPPORT
|
config ESP_WIFI_RRM_SUPPORT
|
||||||
bool "Enable 802.11k APIs Support"
|
bool "Enable 802.11k APIs Support"
|
||||||
depends on ESP_WIFI_11KV_SUPPORT
|
depends on ESP_WIFI_11KV_SUPPORT
|
||||||
default n
|
default y
|
||||||
help
|
help
|
||||||
Select this option to enable 802.11k APIs(RRM support).
|
Select this option to enable 802.11k APIs(RRM support).
|
||||||
Only APIs which are helpful for network assisted roaming
|
Only APIs which are helpful for network assisted roaming
|
||||||
@ -574,7 +574,7 @@ menu "Wi-Fi"
|
|||||||
config ESP_WIFI_WNM_SUPPORT
|
config ESP_WIFI_WNM_SUPPORT
|
||||||
bool "Enable 802.11v APIs Support"
|
bool "Enable 802.11v APIs Support"
|
||||||
depends on ESP_WIFI_11KV_SUPPORT
|
depends on ESP_WIFI_11KV_SUPPORT
|
||||||
default n
|
default y
|
||||||
help
|
help
|
||||||
Select this option to enable 802.11v APIs(BTM support).
|
Select this option to enable 802.11v APIs(BTM support).
|
||||||
Only APIs which are helpful for network assisted roaming
|
Only APIs which are helpful for network assisted roaming
|
||||||
@ -606,7 +606,6 @@ menu "Wi-Fi"
|
|||||||
bool "Advanced support for Wi-Fi Roaming (Experimental)"
|
bool "Advanced support for Wi-Fi Roaming (Experimental)"
|
||||||
depends on IDF_EXPERIMENTAL_FEATURES
|
depends on IDF_EXPERIMENTAL_FEATURES
|
||||||
default n
|
default n
|
||||||
select ESP_WIFI_SCAN_CACHE
|
|
||||||
help
|
help
|
||||||
Enable Espressif's roaming app to allow for efficient Wi-Fi roaming.
|
Enable Espressif's roaming app to allow for efficient Wi-Fi roaming.
|
||||||
This includes configurable periodic environment scans, maintaining a cache of the
|
This includes configurable periodic environment scans, maintaining a cache of the
|
||||||
|
@ -66,10 +66,17 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Periodic RRM configuration */
|
/* Periodic RRM configuration */
|
||||||
|
#ifdef CONFIG_ESP_WIFI_ROAMING_PERIODIC_RRM_MONITORING
|
||||||
#define PERIODIC_RRM_MONITORING CONFIG_ESP_WIFI_ROAMING_PERIODIC_RRM_MONITORING
|
#define PERIODIC_RRM_MONITORING CONFIG_ESP_WIFI_ROAMING_PERIODIC_RRM_MONITORING
|
||||||
|
#else
|
||||||
|
#define PERIODIC_RRM_MONITORING 0
|
||||||
|
#endif
|
||||||
#if PERIODIC_RRM_MONITORING
|
#if PERIODIC_RRM_MONITORING
|
||||||
#define RRM_MONITOR_TIME CONFIG_ESP_WIFI_ROAMING_RRM_MONITOR_TIME
|
#define RRM_MONITOR_TIME CONFIG_ESP_WIFI_ROAMING_RRM_MONITOR_TIME
|
||||||
#define RRM_MONITOR_RSSI_THRESHOLD CONFIG_ESP_WIFI_ROAMING_RRM_MONITOR_THRESHOLD
|
#define RRM_MONITOR_RSSI_THRESHOLD CONFIG_ESP_WIFI_ROAMING_RRM_MONITOR_THRESHOLD
|
||||||
|
#else
|
||||||
|
#define RRM_MONITOR_TIME 232
|
||||||
|
#define RRM_MONITOR_RSSI_THRESHOLD -100
|
||||||
#endif /*PERIODIC_RRM_MONITORING*/
|
#endif /*PERIODIC_RRM_MONITORING*/
|
||||||
|
|
||||||
#define MAX_SCAN_CHAN_LIST_COUNT 14
|
#define MAX_SCAN_CHAN_LIST_COUNT 14
|
||||||
|
@ -44,8 +44,12 @@ static void *neighbor_list_lock = NULL;
|
|||||||
|
|
||||||
static int wifi_post_roam_event(struct cand_bss *bss);
|
static int wifi_post_roam_event(struct cand_bss *bss);
|
||||||
static void determine_best_ap(int8_t rssi_threshold);
|
static void determine_best_ap(int8_t rssi_threshold);
|
||||||
|
#if PERIODIC_RRM_MONITORING
|
||||||
static void roaming_app_periodic_rrm_internal_handler(void *data, void *ctx);
|
static void roaming_app_periodic_rrm_internal_handler(void *data, void *ctx);
|
||||||
|
#endif
|
||||||
|
#if PERIODIC_SCAN_MONITORING
|
||||||
static void roaming_app_periodic_scan_internal_handler(void *data, void *ctx);
|
static void roaming_app_periodic_scan_internal_handler(void *data, void *ctx);
|
||||||
|
#endif
|
||||||
|
|
||||||
static const char *ROAMING_TAG = "ROAM";
|
static const char *ROAMING_TAG = "ROAM";
|
||||||
|
|
||||||
|
@ -295,7 +295,7 @@ if(CONFIG_ESP_WIFI_DPP_SUPPORT)
|
|||||||
target_compile_definitions(${COMPONENT_LIB} PRIVATE CONFIG_DPP)
|
target_compile_definitions(${COMPONENT_LIB} PRIVATE CONFIG_DPP)
|
||||||
endif()
|
endif()
|
||||||
if(CONFIG_ESP_WIFI_11KV_SUPPORT)
|
if(CONFIG_ESP_WIFI_11KV_SUPPORT)
|
||||||
target_compile_definitions(${COMPONENT_LIB} PRIVATE CONFIG_WNM CONFIG_RRM CONFIG_IEEE80211KV)
|
target_compile_definitions(${COMPONENT_LIB} PRIVATE CONFIG_IEEE80211KV)
|
||||||
endif()
|
endif()
|
||||||
if(CONFIG_ESP_WIFI_RRM_SUPPORT)
|
if(CONFIG_ESP_WIFI_RRM_SUPPORT)
|
||||||
target_compile_definitions(${COMPONENT_LIB} PRIVATE CONFIG_RRM)
|
target_compile_definitions(${COMPONENT_LIB} PRIVATE CONFIG_RRM)
|
||||||
|
@ -36,8 +36,7 @@ esp_err_t esp_supplicant_str_to_mac(const char *str, uint8_t dest[6])
|
|||||||
|
|
||||||
struct wpa_supplicant g_wpa_supp;
|
struct wpa_supplicant g_wpa_supp;
|
||||||
|
|
||||||
#if defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R)
|
#ifdef CONFIG_RRM
|
||||||
#if defined(CONFIG_RRM)
|
|
||||||
static void handle_rrm_frame(struct wpa_supplicant *wpa_s, u8 *sender,
|
static void handle_rrm_frame(struct wpa_supplicant *wpa_s, u8 *sender,
|
||||||
u8 *payload, size_t len, int8_t rssi)
|
u8 *payload, size_t len, int8_t rssi)
|
||||||
{
|
{
|
||||||
@ -56,8 +55,10 @@ static void handle_rrm_frame(struct wpa_supplicant *wpa_s, u8 *sender,
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_RRM */
|
#endif /* CONFIG_RRM */
|
||||||
|
|
||||||
|
#if defined(CONFIG_IEEE80211KV)
|
||||||
static int mgmt_rx_action(u8 *frame, size_t len, u8 *sender, int8_t rssi, u8 channel)
|
static int mgmt_rx_action(u8 *frame, size_t len, u8 *sender, int8_t rssi, u8 channel)
|
||||||
{
|
{
|
||||||
|
#if defined(CONFIG_RRM) || defined(CONFIG_WNM)
|
||||||
u8 category;
|
u8 category;
|
||||||
u8 bssid[ETH_ALEN];
|
u8 bssid[ETH_ALEN];
|
||||||
struct wpa_supplicant *wpa_s = &g_wpa_supp;
|
struct wpa_supplicant *wpa_s = &g_wpa_supp;
|
||||||
@ -80,11 +81,13 @@ static int mgmt_rx_action(u8 *frame, size_t len, u8 *sender, int8_t rssi, u8 cha
|
|||||||
handle_rrm_frame(wpa_s, sender, frame, len, rssi);
|
handle_rrm_frame(wpa_s, sender, frame, len, rssi);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_RRM */
|
#endif /* CONFIG_RRM */
|
||||||
|
#endif /* defined(CONFIG_RRM) || defined(CONFIG_WNM) */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clear_bssid_flag_and_channel(struct wpa_supplicant *wpa_s)
|
static void clear_bssid_flag_and_channel(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
|
#if defined(CONFIG_WNM)
|
||||||
wifi_config_t *config;
|
wifi_config_t *config;
|
||||||
|
|
||||||
/* Reset only if btm is enabled */
|
/* Reset only if btm is enabled */
|
||||||
@ -107,8 +110,11 @@ static void clear_bssid_flag_and_channel(struct wpa_supplicant *wpa_s)
|
|||||||
}
|
}
|
||||||
os_free(config);
|
os_free(config);
|
||||||
wpa_printf(MSG_DEBUG, "cleared bssid flag");
|
wpa_printf(MSG_DEBUG, "cleared bssid flag");
|
||||||
|
#endif /* CONFIG_WNM */
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_IEEE80211KV */
|
||||||
|
|
||||||
|
#if defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R)
|
||||||
static void register_mgmt_frames(struct wpa_supplicant *wpa_s)
|
static void register_mgmt_frames(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
wpa_s->type &= ~(1 << WLAN_FC_STYPE_ACTION);
|
wpa_s->type &= ~(1 << WLAN_FC_STYPE_ACTION);
|
||||||
@ -139,6 +145,7 @@ static void register_mgmt_frames(struct wpa_supplicant *wpa_s)
|
|||||||
#endif /* CONFIG_IEEE80211R */
|
#endif /* CONFIG_IEEE80211R */
|
||||||
esp_wifi_register_mgmt_frame_internal(wpa_s->type, wpa_s->subtype);
|
esp_wifi_register_mgmt_frame_internal(wpa_s->type, wpa_s->subtype);
|
||||||
}
|
}
|
||||||
|
#endif /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) */
|
||||||
|
|
||||||
#ifdef CONFIG_IEEE80211R
|
#ifdef CONFIG_IEEE80211R
|
||||||
static int handle_auth_frame(u8 *frame, size_t len,
|
static int handle_auth_frame(u8 *frame, size_t len,
|
||||||
@ -171,7 +178,7 @@ static int handle_assoc_frame(u8 *frame, size_t len,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wpa_sta_clear_ft_auth_ie(void)
|
void wpa_sta_clear_ft_auth_ie(void)
|
||||||
{
|
{
|
||||||
struct wpa_sm *sm = &gWpaSm;
|
struct wpa_sm *sm = &gWpaSm;
|
||||||
wpa_printf(MSG_DEBUG, "Clearing all FT IE parameters and keys");
|
wpa_printf(MSG_DEBUG, "Clearing all FT IE parameters and keys");
|
||||||
@ -184,7 +191,6 @@ static void wpa_sta_clear_ft_auth_ie(void)
|
|||||||
wpa_sm_drop_sa(sm);
|
wpa_sm_drop_sa(sm);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_IEEE80211R */
|
#endif /* CONFIG_IEEE80211R */
|
||||||
#endif /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) */
|
|
||||||
|
|
||||||
void esp_supplicant_unset_all_appie(void)
|
void esp_supplicant_unset_all_appie(void)
|
||||||
{
|
{
|
||||||
@ -335,8 +341,7 @@ void supplicant_sta_conn_handler(uint8_t *bssid)
|
|||||||
|
|
||||||
void supplicant_sta_disconn_handler(uint8_t reason_code)
|
void supplicant_sta_disconn_handler(uint8_t reason_code)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R)
|
#if defined(CONFIG_IEEE80211KV)
|
||||||
struct wpa_sm *sm = &gWpaSm;
|
|
||||||
struct wpa_supplicant *wpa_s = &g_wpa_supp;
|
struct wpa_supplicant *wpa_s = &g_wpa_supp;
|
||||||
|
|
||||||
#if defined(CONFIG_RRM)
|
#if defined(CONFIG_RRM)
|
||||||
@ -352,16 +357,9 @@ void supplicant_sta_disconn_handler(uint8_t reason_code)
|
|||||||
if (wpa_s->current_bss) {
|
if (wpa_s->current_bss) {
|
||||||
wpa_s->current_bss = NULL;
|
wpa_s->current_bss = NULL;
|
||||||
}
|
}
|
||||||
#if defined(CONFIG_IEEE80211R)
|
#endif /* defined(CONFIG_IEEE80211KV) */
|
||||||
if (!sm->cur_pmksa) {
|
|
||||||
/* clear all ft auth related IEs so that next will be open auth */
|
|
||||||
wpa_sta_clear_ft_auth_ie();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R)
|
|
||||||
#if defined(CONFIG_RRM)
|
#if defined(CONFIG_RRM)
|
||||||
bool esp_rrm_is_rrm_supported_connection(void)
|
bool esp_rrm_is_rrm_supported_connection(void)
|
||||||
{
|
{
|
||||||
@ -478,8 +476,8 @@ static size_t get_rm_enabled_ie(uint8_t *ie, size_t len)
|
|||||||
|
|
||||||
return rrm_ie_len + 2;
|
return rrm_ie_len + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* defined(CONFIG_RRM) */
|
#endif /* defined(CONFIG_RRM) */
|
||||||
|
|
||||||
#if defined(CONFIG_WNM)
|
#if defined(CONFIG_WNM)
|
||||||
bool esp_wnm_is_btm_supported_connection(void)
|
bool esp_wnm_is_btm_supported_connection(void)
|
||||||
{
|
{
|
||||||
@ -633,9 +631,9 @@ void wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
|
|||||||
esp_wifi_connect();
|
esp_wifi_connect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_WNM) || defined(CONFIG_MBO)
|
||||||
void esp_set_scan_ie(void)
|
void esp_set_scan_ie(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_WNM
|
|
||||||
#define SCAN_IE_LEN 64
|
#define SCAN_IE_LEN 64
|
||||||
uint8_t *ie, *pos;
|
uint8_t *ie, *pos;
|
||||||
size_t len = SCAN_IE_LEN, ie_len;
|
size_t len = SCAN_IE_LEN, ie_len;
|
||||||
@ -646,20 +644,24 @@ void esp_set_scan_ie(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pos = ie;
|
pos = ie;
|
||||||
|
#ifdef CONFIG_WNM
|
||||||
ie_len = get_extended_caps_ie(pos, len);
|
ie_len = get_extended_caps_ie(pos, len);
|
||||||
pos += ie_len;
|
pos += ie_len;
|
||||||
len -= ie_len;
|
len -= ie_len;
|
||||||
|
#endif /* defined(CONFIG_WNM) */
|
||||||
#ifdef CONFIG_MBO
|
#ifdef CONFIG_MBO
|
||||||
ie_len = get_mbo_oce_scan_ie(pos, len);
|
ie_len = get_mbo_oce_scan_ie(pos, len);
|
||||||
pos += ie_len;
|
pos += ie_len;
|
||||||
len -= ie_len;
|
len -= ie_len;
|
||||||
#endif /* CONFIG_MBO */
|
#endif /* CONFIG_MBO */
|
||||||
esp_wifi_unset_appie_internal(WIFI_APPIE_PROBEREQ);
|
if (SCAN_IE_LEN - len) {
|
||||||
esp_wifi_set_appie_internal(WIFI_APPIE_PROBEREQ, ie, SCAN_IE_LEN - len, 0);
|
esp_wifi_unset_appie_internal(WIFI_APPIE_PROBEREQ);
|
||||||
|
esp_wifi_set_appie_internal(WIFI_APPIE_PROBEREQ, ie, SCAN_IE_LEN - len, 0);
|
||||||
|
}
|
||||||
os_free(ie);
|
os_free(ie);
|
||||||
#undef SCAN_IE_LEN
|
#undef SCAN_IE_LEN
|
||||||
#endif /* defined(CONFIG_WNM) */
|
|
||||||
}
|
}
|
||||||
|
#endif /* defined(CONFIG_WNM) || defined(CONFIG_MBO) */
|
||||||
|
|
||||||
#ifdef CONFIG_IEEE80211R
|
#ifdef CONFIG_IEEE80211R
|
||||||
static size_t add_mdie(uint8_t *bssid, uint8_t *ie, size_t len)
|
static size_t add_mdie(uint8_t *bssid, uint8_t *ie, size_t len)
|
||||||
@ -762,15 +764,22 @@ int wpa_drv_send_action(struct wpa_supplicant *wpa_s,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) */
|
#ifndef CONFIG_WNM
|
||||||
void esp_set_scan_ie(void) { }
|
void esp_set_scan_ie(void) { }
|
||||||
|
bool esp_wnm_is_btm_supported_connection(void)
|
||||||
bool esp_rrm_is_rrm_supported_connection(void)
|
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
int esp_wnm_send_bss_transition_mgmt_query(enum btm_query_reason query_reason,
|
||||||
|
const char *btm_candidates,
|
||||||
|
int cand_list)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
bool esp_wnm_is_btm_supported_connection(void)
|
#ifndef CONFIG_RRM
|
||||||
|
bool esp_rrm_is_rrm_supported_connection(void)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -785,22 +794,15 @@ int esp_rrm_send_neighbor_rep_request(neighbor_rep_request_cb cb,
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
int esp_wnm_send_bss_transition_mgmt_query(enum btm_query_reason query_reason,
|
#endif
|
||||||
const char *btm_candidates,
|
|
||||||
int cand_list)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) */
|
#if defined(CONFIG_RRM) || defined(CONFIG_IEEE80211R) || defined(CONFIG_WPA3_SAE)
|
||||||
|
|
||||||
#if defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) || defined(CONFIG_WPA3_SAE)
|
|
||||||
void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool mdie)
|
void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool mdie)
|
||||||
{
|
{
|
||||||
#define ASSOC_IE_LEN 128
|
#define ASSOC_IE_LEN 128
|
||||||
uint8_t *ie, *pos;
|
uint8_t *ie, *pos;
|
||||||
size_t len = ASSOC_IE_LEN;
|
size_t len = ASSOC_IE_LEN;
|
||||||
#if defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R)
|
#if defined(CONFIG_RRM) || defined(CONFIG_IEEE80211R)
|
||||||
size_t ie_len;
|
size_t ie_len;
|
||||||
#endif /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) */
|
#endif /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) */
|
||||||
ie = os_malloc(ASSOC_IE_LEN + ies_len);
|
ie = os_malloc(ASSOC_IE_LEN + ies_len);
|
||||||
@ -813,6 +815,7 @@ void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool mdie)
|
|||||||
ie_len = get_rm_enabled_ie(pos, len);
|
ie_len = get_rm_enabled_ie(pos, len);
|
||||||
pos += ie_len;
|
pos += ie_len;
|
||||||
len -= ie_len;
|
len -= ie_len;
|
||||||
|
#endif /* defined(CONFIG_RRM) */
|
||||||
#ifdef CONFIG_MBO
|
#ifdef CONFIG_MBO
|
||||||
ie_len = get_operating_class_ie(pos, len);
|
ie_len = get_operating_class_ie(pos, len);
|
||||||
pos += ie_len;
|
pos += ie_len;
|
||||||
@ -821,7 +824,6 @@ void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool mdie)
|
|||||||
pos += ie_len;
|
pos += ie_len;
|
||||||
len -= ie_len;
|
len -= ie_len;
|
||||||
#endif /* CONFIG_MBO */
|
#endif /* CONFIG_MBO */
|
||||||
#endif /* defined(CONFIG_RRM) */
|
|
||||||
#ifdef CONFIG_IEEE80211R
|
#ifdef CONFIG_IEEE80211R
|
||||||
if (mdie) {
|
if (mdie) {
|
||||||
ie_len = add_mdie(bssid, pos, len);
|
ie_len = add_mdie(bssid, pos, len);
|
||||||
@ -840,4 +842,4 @@ void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool mdie)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool mdie) { }
|
void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool mdie) { }
|
||||||
#endif /* defined(CONFIG_IEEE80211KV) || defined(CONFIG_IEEE80211R) || defined(CONFIG_WPA3_SAE) */
|
#endif /* defined(CONFIG_RRM) || defined(CONFIG_IEEE80211R) || defined(CONFIG_WPA3_SAE) */
|
||||||
|
@ -34,3 +34,4 @@ void esp_set_assoc_ie(uint8_t *bssid, const u8 *ies, size_t ies_len, bool add_md
|
|||||||
void supplicant_sta_conn_handler(uint8_t* bssid);
|
void supplicant_sta_conn_handler(uint8_t* bssid);
|
||||||
void supplicant_sta_disconn_handler(uint8_t reason_code);
|
void supplicant_sta_disconn_handler(uint8_t reason_code);
|
||||||
#endif
|
#endif
|
||||||
|
void wpa_sta_clear_ft_auth_ie(void);
|
||||||
|
@ -297,6 +297,10 @@ static void wpa_sta_disconnected_cb(uint8_t reason_code)
|
|||||||
case WIFI_REASON_INVALID_FTE:
|
case WIFI_REASON_INVALID_FTE:
|
||||||
wpa_sta_clear_curr_pmksa();
|
wpa_sta_clear_curr_pmksa();
|
||||||
wpa_sm_notify_disassoc(&gWpaSm);
|
wpa_sm_notify_disassoc(&gWpaSm);
|
||||||
|
#if defined(CONFIG_IEEE80211R)
|
||||||
|
/* clear all ft auth related IEs so that next will be open auth */
|
||||||
|
wpa_sta_clear_ft_auth_ie();
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (g_wpa_pmk_caching_disabled) {
|
if (g_wpa_pmk_caching_disabled) {
|
||||||
|
@ -2,3 +2,5 @@ CONFIG_ESP_WIFI_11KV_SUPPORT=y
|
|||||||
CONFIG_ESP_WIFI_SCAN_CACHE=y
|
CONFIG_ESP_WIFI_SCAN_CACHE=y
|
||||||
CONFIG_ESP_WIFI_MBO_SUPPORT=y
|
CONFIG_ESP_WIFI_MBO_SUPPORT=y
|
||||||
CONFIG_ESP_WIFI_11R_SUPPORT=y
|
CONFIG_ESP_WIFI_11R_SUPPORT=y
|
||||||
|
CONFIG_ESP_WIFI_RRM_SUPPORT=y
|
||||||
|
CONFIG_ESP_WIFI_WNM_SUPPORT=y
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
||||||
|
|
||||||
|
|
||||||
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
|
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
|
||||||
CONFIG_ESP_WIFI_11KV_SUPPORT=y
|
CONFIG_ESP_WIFI_11KV_SUPPORT=y
|
||||||
CONFIG_ESP_WIFI_SCAN_CACHE=y
|
CONFIG_ESP_WIFI_SCAN_CACHE=y
|
||||||
CONFIG_ESP_WIFI_MBO_SUPPORT=y
|
CONFIG_ESP_WIFI_MBO_SUPPORT=y
|
||||||
CONFIG_ESP_WIFI_ENABLE_ROAMING_APP=y
|
CONFIG_ESP_WIFI_ENABLE_ROAMING_APP=y
|
||||||
CONFIG_ESP_WIFI_11R_SUPPORT=y
|
CONFIG_ESP_WIFI_11R_SUPPORT=y
|
||||||
|
CONFIG_ESP_WIFI_WNM_SUPPORT=y
|
||||||
|
CONFIG_ESP_WIFI_RRM_SUPPORT=y
|
||||||
|
Loading…
x
Reference in New Issue
Block a user