Merge branch 'refactor/owe_scan_v5.5' into 'release/v5.5'

refactor(wifi): Improve owe scan time and refactor code (v5.5)

See merge request espressif/esp-idf!52730
This commit is contained in:
Jiang Jiang Jian
2026-09-15 10:29:52 +08:00
4 changed files with 29 additions and 8 deletions

View File

@@ -693,7 +693,7 @@ hal_agreement_del_rx_ba = 0x40001e14;
/*hal_crypto_set_key_entry = 0x40001e18;*/
hal_crypto_get_key_entry = 0x40001e1c;
hal_crypto_clr_key_entry = 0x40001e20;
config_get_wifi_task_stack_size = 0x40001e24;
/*config_get_wifi_task_stack_size = 0x40001e24;*/
pp_create_task = 0x40001e28;
hal_set_sta_tsf_wakeup = 0x40001e2c;
hal_set_rx_beacon_pti = 0x40001e30;

View File

@@ -120,6 +120,7 @@ typedef struct {
int espnow_max_encrypt_num; /**< Maximum encrypt number of peers supported by espnow */
int tx_hetb_queue_num; /**< WiFi TX HE TB QUEUE number for STA HE TB PPDU transmission */
bool dump_hesigb_enable; /**< enable dump sigb field */
int wifi_task_stack_size; /**< WIFI task stack size */
int magic; /**< WiFi init magic number, it should be the last field */
} wifi_init_config_t;
@@ -290,6 +291,24 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
#define WIFI_ENABLE_PASSIVE_HIDDEN_AP 0
#endif
#if CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA
#define WIFI_ENABLE_WPA3_OWE_STA (1<<11)
#else
#define WIFI_ENABLE_WPA3_OWE_STA 0
#endif
#if CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA || CONFIG_ESP_WIFI_ENABLE_WPA3_SAE
#define WIFI_TASK_STACK_SIZE_BASE 6144
#else
#define WIFI_TASK_STACK_SIZE_BASE 3072
#endif
#if !WIFI_NANO_FORMAT_ENABLED
#define WIFI_TASK_STACK_SIZE (WIFI_TASK_STACK_SIZE_BASE + 512)
#else
#define WIFI_TASK_STACK_SIZE WIFI_TASK_STACK_SIZE_BASE
#endif
#define CONFIG_FEATURE_WPA3_SAE_BIT (1<<0)
#define CONFIG_FEATURE_CACHE_TX_BUF_BIT (1<<1)
#define CONFIG_FEATURE_FTM_INITIATOR_BIT (1<<2)
@@ -300,6 +319,7 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
#define CONFIG_FEATURE_WIFI_ENT_BIT (1<<7)
#define CONFIG_FEATURE_BSS_MAX_IDLE_BIT (1<<8)
#define CONFIG_FEATURE_WIFI_PASSIVE_HIDDEN_AP_BIT (1<<9)
#define CONFIG_FEATURE_WPA3_OWE_STA_BIT (1<<10)
/* Set additional WiFi features and capabilities */
#define WIFI_FEATURE_CAPS (WIFI_ENABLE_WPA3_SAE | \
@@ -311,7 +331,8 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
WIFI_ENABLE_11R | \
WIFI_ENABLE_ENTERPRISE | \
WIFI_ENABLE_BSS_MAX_IDLE | \
WIFI_ENABLE_PASSIVE_HIDDEN_AP)
WIFI_ENABLE_PASSIVE_HIDDEN_AP | \
WIFI_ENABLE_WPA3_OWE_STA)
#define WIFI_INIT_CONFIG_DEFAULT() { \
.osi_funcs = &g_wifi_osi_funcs, \
@@ -339,6 +360,7 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
.espnow_max_encrypt_num = CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM, \
.tx_hetb_queue_num = WIFI_TX_HETB_QUEUE_NUM, \
.dump_hesigb_enable = WIFI_DUMP_HESIGB_ENABLED, \
.wifi_task_stack_size = WIFI_TASK_STACK_SIZE, \
.magic = WIFI_INIT_CONFIG_MAGIC\
}

View File

@@ -2926,8 +2926,10 @@ int owe_process_assoc_resp(const u8 *rsn_ie, size_t rsn_len, const uint8_t *dh_i
wpa_sm_set_pmk_from_pmksa(sm);
goto done;
} else {
/* If PMKID mismatches, derive keys again */
/* If PMKID mismatches, abort assoc due to invalid pmkid*/
wpa_printf(MSG_DEBUG, "OWE : Invalid PMKID in response");
os_free(parsed_rsn_data);
return 1;
}
}
@@ -2940,11 +2942,8 @@ int owe_process_assoc_resp(const u8 *rsn_ie, size_t rsn_len, const uint8_t *dh_i
goto fail;
}
/* If STA or AP does not have PMKID, or PMKID mismatches, proceed with normal association */
dh_len += 2;
dh_len -=1;
dh_ie += 3;
dh_len -=3;
group = WPA_GET_LE16(dh_ie);
/* Only group 19 is supported */