mirror of
https://github.com/espressif/esp-idf.git
synced 2026-06-04 20:26:38 +03:00
fix(wifi): fix max connection number issue
This commit is contained in:
@@ -529,7 +529,7 @@ typedef struct {
|
||||
uint8_t channel; /**< Channel of soft-AP. Set to 0 for auto selection (min channel: typically 1 for 2.4G, 36 for 5G). Other invalid values return ESP_ERR_INVALID_ARG. */
|
||||
wifi_auth_mode_t authmode; /**< Auth mode of soft-AP. Do not support AUTH_WEP, AUTH_WAPI_PSK and AUTH_OWE in soft-AP mode. When the auth mode is set to WPA2_PSK, WPA2_WPA3_PSK or WPA3_PSK, the pairwise cipher will be overwritten with WIFI_CIPHER_TYPE_CCMP by default, unless explicitly set. */
|
||||
uint8_t ssid_hidden; /**< Broadcast SSID or not, default 0, broadcast the SSID */
|
||||
uint8_t max_connection; /**< Max number of stations allowed to connect in */
|
||||
uint8_t max_connection; /**< Max number of stations allowed to connect in. Please note that soft-AP and ESP-NOW share the same encryption hardware keys, so the max_connection parameter will be affected by CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM. */
|
||||
uint16_t beacon_interval; /**< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 */
|
||||
uint8_t csa_count; /**< Channel Switch Announcement Count. Notify the station that the channel will switch after the csa_count beacon intervals. Default value: 3 */
|
||||
uint8_t dtim_period; /**< Dtim period of soft-AP. Range: 1 ~ 10. Default value: 1 */
|
||||
|
||||
@@ -18,10 +18,8 @@ extern "C" {
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32C2
|
||||
#define ESP_WIFI_MAX_CONN_NUM (4) /**< max number of stations which can connect to ESP32C2 soft-AP */
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32S31
|
||||
#define ESP_WIFI_MAX_CONN_NUM (10) /**< max number of stations which can connect to ESP32C3/ESP32C6/ESP32C5/ESP32C61/ESP32S31 soft-AP */
|
||||
#else
|
||||
#define ESP_WIFI_MAX_CONN_NUM (15) /**< max number of stations which can connect to ESP32/ESP32S3/ESP32S2 soft-AP */
|
||||
#define ESP_WIFI_MAX_CONN_NUM (15)
|
||||
#endif
|
||||
|
||||
/** @brief List of stations associated with the Soft-AP */
|
||||
|
||||
Submodule components/esp_wifi/lib updated: 694f70f614...baa228bd4d
@@ -529,7 +529,7 @@ typedef struct {
|
||||
uint8_t channel; /**< Channel of soft-AP. Set to 0 for auto selection (min channel: typically 1 for 2.4G, 36 for 5G). Other invalid values return ESP_ERR_INVALID_ARG. */
|
||||
wifi_auth_mode_t authmode; /**< Auth mode of soft-AP. Do not support AUTH_WEP, AUTH_WAPI_PSK and AUTH_OWE in soft-AP mode. When the auth mode is set to WPA2_PSK, WPA2_WPA3_PSK or WPA3_PSK, the pairwise cipher will be overwritten with WIFI_CIPHER_TYPE_CCMP by default, unless explicitly set. */
|
||||
uint8_t ssid_hidden; /**< Broadcast SSID or not, default 0, broadcast the SSID */
|
||||
uint8_t max_connection; /**< Max number of stations allowed to connect in */
|
||||
uint8_t max_connection; /**< Max number of stations allowed to connect in. Please note that soft-AP and ESP-NOW share the same encryption hardware keys, so the max_connection parameter will be affected by CONFIG_WIFI_RMT_ESPNOW_MAX_ENCRYPT_NUM. */
|
||||
uint16_t beacon_interval; /**< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 */
|
||||
uint8_t csa_count; /**< Channel Switch Announcement Count. Notify the station that the channel will switch after the csa_count beacon intervals. Default value: 3 */
|
||||
uint8_t dtim_period; /**< Dtim period of soft-AP. Range: 1 ~ 10. Default value: 1 */
|
||||
|
||||
@@ -18,10 +18,8 @@ extern "C" {
|
||||
|
||||
#if CONFIG_SLAVE_IDF_TARGET_ESP32C2
|
||||
#define ESP_WIFI_MAX_CONN_NUM (4) /**< max number of stations which can connect to ESP32C2 soft-AP */
|
||||
#elif CONFIG_SLAVE_IDF_TARGET_ESP32C3 || CONFIG_SLAVE_IDF_TARGET_ESP32C6 || CONFIG_SLAVE_IDF_TARGET_ESP32C5 || CONFIG_SLAVE_IDF_TARGET_ESP32C61 || CONFIG_SLAVE_IDF_TARGET_ESP32S31
|
||||
#define ESP_WIFI_MAX_CONN_NUM (10) /**< max number of stations which can connect to ESP32C3/ESP32C6/ESP32C5/ESP32C61/ESP32S31 soft-AP */
|
||||
#else
|
||||
#define ESP_WIFI_MAX_CONN_NUM (15) /**< max number of stations which can connect to ESP32/ESP32S3/ESP32S2 soft-AP */
|
||||
#define ESP_WIFI_MAX_CONN_NUM (15)
|
||||
#endif
|
||||
|
||||
/** @brief List of stations associated with the Soft-AP */
|
||||
|
||||
@@ -387,9 +387,11 @@ The :ref:`wifi-event-connectionless-module-wake-interval-start` will arise at th
|
||||
|
||||
|
||||
|
||||
{IDF_TARGET_MAX_CONN_STA_NUM:default="15", esp32c2="4", esp32c3="10", esp32c6="10"}
|
||||
{IDF_TARGET_MAX_CONN_STA_NUM:default="15", esp32c2="4"}
|
||||
|
||||
{IDF_TARGET_SUB_MAX_NUM_FROM_KEYS:default="2", esp32c3="7", esp32c6="7"}
|
||||
{IDF_TARGET_SUB_MAX_NUM_FROM_KEYS:default="2", esp32c2="0"}
|
||||
|
||||
{IDF_TARGET_SUPPORT_ENCRYPT_NUM:default="17", esp32c2="4"}
|
||||
|
||||
.. _wifi-configuration:
|
||||
|
||||
@@ -525,56 +527,28 @@ AP Basic Configuration
|
||||
|
||||
API :cpp:func:`esp_wifi_set_config()` can be used to configure the AP. And the configuration will be stored in NVS. The table below describes the fields in detail.
|
||||
|
||||
.. only:: esp32 or esp32s2 or esp32s3 or esp32c3 or esp32c5 or esp32c6
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15 55
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15 55
|
||||
|
||||
* - Field
|
||||
- Description
|
||||
* - ssid
|
||||
- SSID of AP; if the ssid[0] is 0xFF and ssid[1] is 0xFF, the AP defaults the SSID to ``ESP_aabbcc``, where “aabbcc” is the last three bytes of the AP MAC.
|
||||
* - password
|
||||
- Password of AP; if the auth mode is ``WIFI_AUTH_OPEN``, this field will be ignored.
|
||||
* - ssid_len
|
||||
- Length of SSID; if ssid_len is 0, check the SSID until there is a termination character. If ssid_len > 32, change it to 32; otherwise, set the SSID length according to ssid_len.
|
||||
* - channel
|
||||
- Channel of AP; if the channel is out of range, the Wi-Fi driver will return error. So, please make sure the channel is within the required range. For more details, refer to `Wi-Fi Country Code`_.
|
||||
* - authmode
|
||||
- Auth mode of ESP AP; currently, ESP AP does not support AUTH_WEP. If the authmode is an invalid value, AP defaults the value to ``WIFI_AUTH_OPEN``.
|
||||
* - ssid_hidden
|
||||
- If ssid_hidden is 1, AP does not broadcast the SSID; otherwise, it does broadcast the SSID.
|
||||
* - max_connection
|
||||
- The max number of stations allowed to connect in, the default value is 10. ESP Wi-Fi supports up to {IDF_TARGET_MAX_CONN_STA_NUM} (``ESP_WIFI_MAX_CONN_NUM``) Wi-Fi connections. Please note that ESP AP and ESP-NOW share the same encryption hardware keys, so the max_connection parameter will be affected by the :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`. The total number of encryption hardware keys is 17, if :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM` <= {IDF_TARGET_SUB_MAX_NUM_FROM_KEYS}, the max_connection can be set up to {IDF_TARGET_MAX_CONN_STA_NUM}, otherwise the max_connection can be set up to (17 - :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`).
|
||||
* - beacon_interval
|
||||
- Beacon interval; the value is 100 ~ 60000 ms, with default value being 100 ms. If the value is out of range, AP defaults it to 100 ms.
|
||||
|
||||
|
||||
.. only:: esp32c2
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15 55
|
||||
|
||||
* - Field
|
||||
- Description
|
||||
* - ssid
|
||||
- SSID of AP; if the ssid[0] is 0xFF and ssid[1] is 0xFF, the AP defaults the SSID to ``ESP_aabbcc``, where “aabbcc” is the last three bytes of the AP MAC.
|
||||
* - password
|
||||
- Password of AP; if the auth mode is ``WIFI_AUTH_OPEN``, this field will be ignored.
|
||||
* - ssid_len
|
||||
- Length of SSID; if ssid_len is 0, check the SSID until there is a termination character. If ssid_len > 32, change it to 32; otherwise, set the SSID length according to ssid_len.
|
||||
* - channel
|
||||
- Channel of AP; if the channel is out of range, the Wi-Fi driver defaults to channel 1. So, please make sure the channel is within the required range. For more details, refer to `Wi-Fi Country Code`_.
|
||||
* - authmode
|
||||
- Auth mode of ESP AP; currently, ESP AP does not support AUTH_WEP. If the authmode is an invalid value, AP defaults the value to ``WIFI_AUTH_OPEN``.
|
||||
* - ssid_hidden
|
||||
- If ssid_hidden is 1, AP does not broadcast the SSID; otherwise, it does broadcast the SSID.
|
||||
* - max_connection
|
||||
- The max number of stations allowed to connect in, the default value is 2. ESP Wi-Fi supports up to {IDF_TARGET_MAX_CONN_STA_NUM} (``ESP_WIFI_MAX_CONN_NUM``) Wi-Fi connections. Please note that ESP AP and ESP-NOW share the same encryption hardware keys, so the max_connection parameter will be affected by the :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`. The total number of encryption hardware keys is {IDF_TARGET_MAX_CONN_STA_NUM}, the max_connection can be set up to ({IDF_TARGET_MAX_CONN_STA_NUM} - :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`).
|
||||
* - beacon_interval
|
||||
- Beacon interval; the value is 100 ~ 60000 ms, with default value being 100 ms. If the value is out of range, AP defaults it to 100 ms.
|
||||
* - Field
|
||||
- Description
|
||||
* - ssid
|
||||
- SSID of AP; if the ssid[0] is 0xFF and ssid[1] is 0xFF, the AP defaults the SSID to ``ESP_aabbcc``, where “aabbcc” is the last three bytes of the AP MAC.
|
||||
* - password
|
||||
- Password of AP; if the auth mode is ``WIFI_AUTH_OPEN``, this field will be ignored.
|
||||
* - ssid_len
|
||||
- Length of SSID; if ssid_len is 0, check the SSID until there is a termination character. If ssid_len > 32, change it to 32; otherwise, set the SSID length according to ssid_len.
|
||||
* - channel
|
||||
- Channel of AP; set to 0 for auto selection (min channel: typically 1 for 2.4G, 36 for 5G). Other invalid values return ``ESP_ERR_INVALID_ARG``. So, please make sure the channel is within the required range. For more details, refer to `Wi-Fi Country Code`_.
|
||||
* - authmode
|
||||
- Auth mode of ESP AP; currently, ESP AP does not support AUTH_WEP. If the authmode is an invalid value, AP defaults the value to ``WIFI_AUTH_OPEN``.
|
||||
* - ssid_hidden
|
||||
- If ssid_hidden is 1, AP does not broadcast the SSID; otherwise, it does broadcast the SSID.
|
||||
* - max_connection
|
||||
- The max number of stations allowed to connect in. {IDF_TARGET_NAME} supports up to {IDF_TARGET_MAX_CONN_STA_NUM} (``ESP_WIFI_MAX_CONN_NUM``) Wi-Fi connections. Please note that soft-AP and ESP-NOW share the same encryption hardware keys, so the max_connection parameter will be affected by the :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`. The total number of encryption hardware keys is {IDF_TARGET_SUPPORT_ENCRYPT_NUM}, if :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM` <= {IDF_TARGET_SUB_MAX_NUM_FROM_KEYS}, the max_connection can be set up to {IDF_TARGET_MAX_CONN_STA_NUM}, otherwise the max_connection can be set up to ({IDF_TARGET_SUPPORT_ENCRYPT_NUM} - :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`).
|
||||
* - beacon_interval
|
||||
- Beacon interval; the value is 100 ~ 60000 ms, with default value being 100 ms. If the value is out of range, AP defaults it to 100 ms.
|
||||
|
||||
|
||||
Wi-Fi Protocol Mode
|
||||
|
||||
@@ -387,9 +387,11 @@ WIFI_EVENT_CONNECTIONLESS_MODULE_WAKE_INTERVAL_START
|
||||
|
||||
|
||||
|
||||
{IDF_TARGET_MAX_CONN_STA_NUM:default="15", esp32c2="4", esp32c3="10", esp32c6="10"}
|
||||
{IDF_TARGET_MAX_CONN_STA_NUM:default="15", esp32c2="4"}
|
||||
|
||||
{IDF_TARGET_SUB_MAX_NUM_FROM_KEYS:default="2", esp32c3="7", esp32c6="7"}
|
||||
{IDF_TARGET_SUB_MAX_NUM_FROM_KEYS:default="2", esp32c2="0"}
|
||||
|
||||
{IDF_TARGET_SUPPORT_ENCRYPT_NUM:default="17", esp32c2="4"}
|
||||
|
||||
.. _wifi-configuration:
|
||||
|
||||
@@ -525,56 +527,28 @@ AP 基本配置
|
||||
|
||||
API :cpp:func:`esp_wifi_set_config()` 可用于配置 AP。配置的参数信息会保存到 NVS 中。下表详细介绍了各个字段。
|
||||
|
||||
.. only:: esp32 or esp32s2 or esp32s3 or esp32c3 or esp32c5 or esp32c6
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15 55
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15 55
|
||||
|
||||
* - 字段
|
||||
- 描述
|
||||
* - ssid
|
||||
- 指 AP 的 SSID。如果 ssid[0] 和 ssid[1] 均为 0xFF,AP 默认 SSID 为 ``ESP_aabbcc``,”aabbcc” 是 AP MAC 的最后三个字节。
|
||||
* - password
|
||||
- AP 的密码。如果身份验证模式为 ``WIFI_AUTH_OPEN``,此字段将被忽略。
|
||||
* - ssid_len
|
||||
- SSID 的长度。如果 ssid_len 为 0,则检查 SSID 直至出现终止字符。如果 ssid_len 大于 32,请更改为 32,或者根据 ssid_len 设置 SSID 长度。
|
||||
* - channel
|
||||
- AP 的信道。如果信道超出范围,Wi-Fi 驱动程序将返回 error。所以,请确保信道在要求的范围内。有关详细信息,请参阅 `Wi-Fi 国家/地区代码`_。
|
||||
* - authmode
|
||||
- ESP AP 的身份验证模式。目前,ESP AP 不支持 AUTH_WEP。如果 authmode 是一个无效值,AP 默认该值为 ``WIFI_AUTH_OPEN``。
|
||||
* - ssid_hidden
|
||||
- 如果 ssid_hidden 为 1,AP 不广播 SSID。若为其他值,则广播。
|
||||
* - max_connection
|
||||
- 允许连接 station 的最大数目,默认值是 10。ESP Wi-Fi 支持 {IDF_TARGET_MAX_CONN_STA_NUM} (``ESP_WIFI_MAX_CONN_NUM``) 个 Wi-Fi 连接。请注意, ESP AP 和 ESP-NOW 共享同一块加密硬件 keys,因此 max_connection 参数将受到 :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM` 的影响。加密硬件 keys 的总数是 17,如果 :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM` 小于等于 {IDF_TARGET_SUB_MAX_NUM_FROM_KEYS},那么 max_connection 最大可以设置为 {IDF_TARGET_MAX_CONN_STA_NUM},否则 max_connection 最大可以设置为 (17 - :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`)。
|
||||
* - beacon_interval
|
||||
- beacon 间隔。值为 100 ~ 60000 ms,默认值为 100 ms。如果该值不在上述范围,AP 默认取 100 ms。
|
||||
|
||||
|
||||
.. only:: esp32c2
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15 55
|
||||
|
||||
* - 字段
|
||||
- 描述
|
||||
* - ssid
|
||||
- 指 AP 的 SSID。如果 ssid[0] 和 ssid[1] 均为 0xFF,AP 默认 SSID 为 ``ESP_aabbcc``,”aabbcc” 是 AP MAC 的最后三个字节。
|
||||
* - password
|
||||
- AP 的密码。如果身份验证模式为 ``WIFI_AUTH_OPEN``,此字段将被忽略。
|
||||
* - ssid_len
|
||||
- SSID 的长度。如果 ssid_len 为 0,则检查 SSID 直至出现终止字符。如果 ssid_len 大于 32,请更改为 32,或者根据 ssid_len 设置 SSID 长度。
|
||||
* - channel
|
||||
- AP 的信道。如果信道超出范围,Wi-Fi 驱动程序将默认为信道 1。所以,请确保信道在要求的范围内。有关详细信息,请参阅 `Wi-Fi 国家/地区代码`_。
|
||||
* - authmode
|
||||
- ESP AP 的身份验证模式。目前,ESP AP 不支持 AUTH_WEP。如果 authmode 是一个无效值,AP 默认该值为 ``WIFI_AUTH_OPEN``。
|
||||
* - ssid_hidden
|
||||
- 如果 ssid_hidden 为 1,AP 不广播 SSID。若为其他值,则广播。
|
||||
* - max_connection
|
||||
- 允许连接 station 的最大数目,默认值是 2。ESP Wi-Fi 支持 {IDF_TARGET_MAX_CONN_STA_NUM} (``ESP_WIFI_MAX_CONN_NUM``) 个 Wi-Fi 连接。请注意, ESP AP 和 ESP-NOW 共享同一块加密硬件 keys,因此 max_connection 参数将受到 :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM` 的影响。加密硬件 keys 的总数是 {IDF_TARGET_MAX_CONN_STA_NUM}, max_connection 最大可以设置为 ({IDF_TARGET_MAX_CONN_STA_NUM} - :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`)。
|
||||
* - beacon_interval
|
||||
- beacon 间隔。值为 100 ~ 60000 ms,默认值为 100 ms。如果该值不在上述范围,AP 默认取 100 ms。
|
||||
* - 字段
|
||||
- 描述
|
||||
* - ssid
|
||||
- 指 AP 的 SSID。如果 ssid[0] 和 ssid[1] 均为 0xFF,AP 默认 SSID 为 ``ESP_aabbcc``,”aabbcc” 是 AP MAC 的最后三个字节。
|
||||
* - password
|
||||
- AP 的密码。如果身份验证模式为 ``WIFI_AUTH_OPEN``,此字段将被忽略。
|
||||
* - ssid_len
|
||||
- SSID 的长度。如果 ssid_len 为 0,则检查 SSID 直至出现终止字符。如果 ssid_len 大于 32,请更改为 32,或者根据 ssid_len 设置 SSID 长度。
|
||||
* - channel
|
||||
- AP 的信道。设为 0 表示自动选择(最小信道:2.4 GHz 通常为 1,5 GHz 通常为 36)。其它非法值将返回 ``ESP_ERR_INVALID_ARG``。请确保信道在允许范围内。更多说明请参阅 `Wi-Fi 国家/地区代码`_。
|
||||
* - authmode
|
||||
- ESP AP 的身份验证模式。目前,ESP AP 不支持 AUTH_WEP。如果 authmode 是一个无效值,AP 默认该值为 ``WIFI_AUTH_OPEN``。
|
||||
* - ssid_hidden
|
||||
- 如果 ssid_hidden 为 1,AP 不广播 SSID。若为其他值,则广播。
|
||||
* - max_connection
|
||||
- 允许接入的 station 最大数量。{IDF_TARGET_NAME} 最多支持 {IDF_TARGET_MAX_CONN_STA_NUM}(``ESP_WIFI_MAX_CONN_NUM``) 个 Wi-Fi 连接。请注意,soft-AP 与 ESP-NOW 共享同一套加密硬件 keys,因此 max_connection 会受到 :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM` 的影响。加密硬件 keys 总数为 {IDF_TARGET_SUPPORT_ENCRYPT_NUM}:若 :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM` <= {IDF_TARGET_SUB_MAX_NUM_FROM_KEYS},则 max_connection 最大可设为 {IDF_TARGET_MAX_CONN_STA_NUM};否则最大可设为 ({IDF_TARGET_SUPPORT_ENCRYPT_NUM} - :ref:`CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM`)。
|
||||
* - beacon_interval
|
||||
- beacon 间隔。值为 100 ~ 60000 ms,默认值为 100 ms。如果该值不在上述范围,AP 默认取 100 ms。
|
||||
|
||||
|
||||
Wi-Fi 协议模式
|
||||
|
||||
Reference in New Issue
Block a user