mirror of
https://github.com/espressif/esp-idf.git
synced 2026-09-22 13:01:16 +03:00
Merge branch 'bugfix/fix_some_wifi_bugs_260706_v6.0' into 'release/v6.0'
fix(wifi): fix some wifi bugs 260706 v6.0(Backport v6.0) See merge request espressif/esp-idf!50396
This commit is contained in:
@@ -868,6 +868,17 @@ typedef esp_err_t (*esp_vendor_ie_cb_with_ret_t)(void *ctx, wifi_vendor_ie_type_
|
||||
*/
|
||||
esp_err_t esp_wifi_set_vendor_ie_with_ret_cb(esp_vendor_ie_cb_with_ret_t cb, void *ctx);
|
||||
|
||||
/**
|
||||
* @brief Weak Wi-Fi assert hook.
|
||||
*
|
||||
* The Wi-Fi library provides a weak default implementation. Applications may
|
||||
* define this symbol to override the default behavior for debugging.
|
||||
*
|
||||
* @note This is intended for diagnostics only and is not part of normal Wi-Fi
|
||||
* operation.
|
||||
*/
|
||||
void wifi_assert(bool expr, const char *file, const char *func, int line);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -359,12 +359,13 @@ typedef enum {
|
||||
} wifi_sort_method_t;
|
||||
|
||||
/**
|
||||
* @brief Structure describing parameters for a Wi-Fi fast scan
|
||||
* @brief Structure describing parameters for Wi-Fi scan during connection
|
||||
*/
|
||||
typedef struct {
|
||||
int8_t rssi; /**< The minimum rssi to accept in the fast scan mode. Defaults to -127 if set to >= 0 */
|
||||
wifi_auth_mode_t authmode; /**< The weakest auth mode to accept in the fast scan mode
|
||||
Note: In case this value is not set and password is set as per WPA2 standards(password len >= 8), it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. Please set auth mode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks */
|
||||
int8_t rssi; /**< The minimum rssi to accept in Wi-Fi scan. Defaults to -127 if set to >= 0 */
|
||||
wifi_auth_mode_t authmode; /**< The weakest authentication mode to accept when scanning for Wi-Fi during connection.
|
||||
Note: In case this value is not set and password is set as per WPA2 standards(password len >= 8), it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. Please set auth mode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks.
|
||||
If this is set to a mixed mode (for example, WPA_WPA2 or WPA2_WPA3), the minimum mode becomes the stronger of the two. For example, WPA_WPA2 becomes WPA2, and WPA2_WPA3 becomes WPA3. See `wifi_auth_mode_t` for details on relative strengths. */
|
||||
uint8_t rssi_5g_adjustment; /**< The RSSI value of the 5G AP is within the rssi_5g_adjustment range compared to the 2G AP, the 5G AP will be given priority for connection. */
|
||||
} wifi_scan_threshold_t;
|
||||
|
||||
|
||||
Submodule components/esp_wifi/lib updated: 7aaf787957...2c6c436575
@@ -663,10 +663,6 @@ config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
@@ -304,7 +304,6 @@
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (1) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
@@ -879,14 +879,6 @@ config SOC_COEX_HW_PTI
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
@@ -393,8 +393,6 @@
|
||||
#define SOC_COEX_HW_PTI (1)
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (0) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
@@ -1391,10 +1391,6 @@ config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH
|
||||
int
|
||||
default 12
|
||||
|
||||
@@ -564,7 +564,6 @@
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (1) /*!< HARDWARE EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
// #define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
@@ -1147,10 +1147,6 @@ config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
@@ -477,7 +477,6 @@
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (1) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
@@ -1031,10 +1031,6 @@ config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
@@ -432,7 +432,6 @@
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (1) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
@@ -1159,10 +1159,6 @@ config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
@@ -502,7 +502,6 @@
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (1) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
// TODO: IDF-6337
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
|
||||
@@ -867,10 +867,6 @@ config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
@@ -477,7 +477,6 @@
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (1) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
@@ -899,10 +899,6 @@ config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
@@ -475,7 +475,6 @@
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (1) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (0) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
||||
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
@@ -1019,10 +1019,6 @@ config SOC_COEX_HW_PTI
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -459,7 +459,6 @@
|
||||
// No contents
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (0) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (1) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*-------------------------- Temperature Sensor CAPS -------------------------------------*/
|
||||
|
||||
@@ -1191,10 +1191,6 @@ config SOC_COEX_HW_PTI
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_EXTERNAL_COEX_ADVANCE
|
||||
bool
|
||||
default n
|
||||
|
||||
config SOC_EXTERNAL_COEX_LEADER_TX_LINE
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -491,7 +491,6 @@
|
||||
#define SOC_COEX_HW_PTI (1)
|
||||
|
||||
/*-------------------------- EXTERNAL COEXISTENCE CAPS -------------------------------------*/
|
||||
#define SOC_EXTERNAL_COEX_ADVANCE (0) /*!< HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS */
|
||||
#define SOC_EXTERNAL_COEX_LEADER_TX_LINE (1) /*!< EXTERNAL COEXISTENCE TX LINE CAPS */
|
||||
|
||||
/*-------------------------- SDMMC CAPS -----------------------------------------*/
|
||||
|
||||
@@ -515,12 +515,12 @@ API :cpp:func:`esp_wifi_set_config()` can be used to configure the station. And
|
||||
* - threshold
|
||||
- The threshold is used to filter the found AP. If the RSSI or security mode is less than the configured threshold, the AP will be discarded.
|
||||
|
||||
If the RSSI is set to 0, it means the default threshold is used, and the default RSSI threshold is -127 dBm. If the authmode threshold is set to 0, it means the default threshold is used, and the default authmode threshold is open.
|
||||
If the RSSI is set to 0, it means the default threshold is used, and the default RSSI threshold is -127 dBm. If the authmode threshold is set to 0, it means the default threshold is used, and the default authmode threshold is ``WIFI_AUTH_OPEN``.
|
||||
|
||||
|
||||
.. attention::
|
||||
|
||||
WEP/WPA security modes are deprecated in IEEE 802.11-2016 specifications and are recommended not to be used. These modes can be rejected using authmode threshold by setting threshold as WPA2 by threshold.authmode as ``WIFI_AUTH_WPA2_PSK``.
|
||||
WEP and TKIP are deprecated in IEEE 802.11-2016 and should not be used. To make the station connect only to APs with WPA2 or higher security, set ``wifi_config_t.sta.threshold.authmode`` to ``WIFI_AUTH_WPA2_PSK``. APs below this threshold, such as OPEN, WEP, and WPA-PSK, will be ignored during connection filtering.
|
||||
|
||||
AP Basic Configuration
|
||||
+++++++++++++++++++++++++++++++++++++
|
||||
|
||||
@@ -515,12 +515,12 @@ API :cpp:func:`esp_wifi_set_config()` 可用于配置 station。配置的参数
|
||||
* - threshold
|
||||
- 该字段用来筛选找到的 AP,如果 AP 的 RSSI 或安全模式小于配置的阈值,则不会被连接。
|
||||
|
||||
如果 RSSI 设置为 0,则表示默认阈值,默认 RSSI 阈值为 -127 dBm。如果 authmode 阈值设置为 0,则表示默认阈值,默认 authmode 阈值为开放模式。
|
||||
如果 RSSI 设置为 0,则表示默认阈值,默认 RSSI 阈值为 -127 dBm。如果 authmode 阈值设置为 0,则表示默认阈值,默认 authmode 阈值为 ``WIFI_AUTH_OPEN``。
|
||||
|
||||
|
||||
.. attention::
|
||||
|
||||
WEP/WPA 安全模式在 IEEE802.11-2016 协议中已弃用,建议不要使用。可使用 authmode 阈值代替,通过将 threshold.authmode 设置为 ``WIFI_AUTH_WPA2_PSK`` 使用 WPA2 模式。
|
||||
IEEE 802.11-2016 已废弃 WEP 和 TKIP,不建议继续使用 WEP 或基于 TKIP 的 WPA 网络。若希望 station 只连接 WPA2 及以上安全级别的 AP,可将 ``wifi_config_t.sta.threshold.authmode`` 设置为 ``WIFI_AUTH_WPA2_PSK``;低于该阈值的 AP(如 OPEN、WEP、WPA-PSK)将在连接筛选时被忽略。
|
||||
|
||||
AP 基本配置
|
||||
+++++++++++++++++++++++++++++++++++++
|
||||
|
||||
@@ -772,7 +772,7 @@ Wi-Fi 原因代码
|
||||
- 乐鑫特有的 Wi-Fi 原因代码: 当 station 连续失去 N 个 beacon,将中断连接并报告该代码。
|
||||
* - NO_AP_FOUND
|
||||
- 201
|
||||
- 乐鑫特有的 Wi-Fi 原因代码: 当 station 未扫描到目标 AP 时,将报告该代码。
|
||||
- 乐鑫特有的 Wi-Fi 原因代码: 当 station 未扫描到目标 AP 时,将报告该代码。如果是由于安全性不匹配或 station 配置不匹配导致未扫描到目标 AP,则会报告新的原因代码NO_AP_FOUND_XXX。
|
||||
* - AUTH_FAIL
|
||||
- 202
|
||||
- 乐鑫特有的 Wi-Fi 原因代码: authentication 失败,但并非由超时而引发。
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||
*/
|
||||
@@ -117,10 +117,11 @@ void wifi_init_sta(void)
|
||||
.sta = {
|
||||
.ssid = EXAMPLE_ESP_WIFI_SSID,
|
||||
.password = EXAMPLE_ESP_WIFI_PASS,
|
||||
/* Authmode threshold resets to WPA2 as default if password matches WPA2 standards (password len => 8).
|
||||
/* Authmode threshold resets to WPA2 as default if auth mode threshold equals WIFI_AUTH_OPEN
|
||||
* and password matches WPA2 standards (password len => 8).
|
||||
* If you want to connect the device to deprecated WEP/WPA networks, Please set the threshold value
|
||||
* to WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK and set the password with length and format matching to
|
||||
* WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards.
|
||||
* WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards.
|
||||
*/
|
||||
.threshold.authmode = ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD,
|
||||
.sae_pwe_h2e = WPA3_SAE_PWE_BOTH,
|
||||
|
||||
@@ -121,7 +121,8 @@ void wifi_init_sta(void)
|
||||
.sta = {
|
||||
.ssid = EXAMPLE_ESP_WIFI_SSID,
|
||||
.password = EXAMPLE_ESP_WIFI_PASS,
|
||||
/* Authmode threshold resets to WPA2 as default if password matches WPA2 standards (password len => 8).
|
||||
/* Authmode threshold resets to WPA2 as default if auth mode threshold equals WIFI_AUTH_OPEN
|
||||
* and password matches WPA2 standards (password len => 8).
|
||||
* If you want to connect the device to deprecated WEP/WPA networks, Please set the threshold value
|
||||
* to WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK and set the password with length and format matching to
|
||||
* WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||
*/
|
||||
@@ -152,10 +152,11 @@ esp_netif_t *wifi_init_sta(void)
|
||||
.password = EXAMPLE_ESP_WIFI_STA_PASSWD,
|
||||
.scan_method = WIFI_ALL_CHANNEL_SCAN,
|
||||
.failure_retry_cnt = EXAMPLE_ESP_MAXIMUM_RETRY,
|
||||
/* Authmode threshold resets to WPA2 as default if password matches WPA2 standards (password len => 8).
|
||||
/* Authmode threshold resets to WPA2 as default if auth mode threshold equals WIFI_AUTH_OPEN
|
||||
* and password matches WPA2 standards (password len => 8).
|
||||
* If you want to connect the device to deprecated WEP/WPA networks, Please set the threshold value
|
||||
* to WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK and set the password with length and format matching to
|
||||
* WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards.
|
||||
* WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards.
|
||||
*/
|
||||
.threshold.authmode = ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD,
|
||||
.sae_pwe_h2e = WPA3_SAE_PWE_BOTH,
|
||||
|
||||
Reference in New Issue
Block a user