Просмотр исходного кода

Modify maximum softap conn num and espnow encryption peer num

zhangyanjiao 3 лет назад
Родитель
Сommit
d11ee31bf1

+ 15 - 0
components/esp_wifi/Kconfig

@@ -385,4 +385,19 @@ menu "Wi-Fi"
             Delta timeout time for rf phy off, When the beacon is lost, the next rf phy off will
             be delayed for the time specified by the configuration item. Unit: 1024 microsecond.
 
+    config ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM
+        int "Maximum espnow encrypt peers number"
+        range 0 4 if IDF_TARGET_ESP32C2
+        range 0 16 if (!IDF_TARGET_ESP32C2)
+        default 2 if IDF_TARGET_ESP32C2
+        default 6 if !IDF_TARGET_ESP32C2
+        help
+            Maximum number of encrypted peers supported by espnow.
+            The number of hardware keys for encryption is fixed. And the espnow and SoftAP share the same
+            hardware keys. So this configuration will affect the maximum connection number of SoftAP.
+            Maximum espnow encrypted peers number + maximum number of connections of SoftAP = Max hardware keys number.
+
+            When using ESP mesh, this value should be set to a maximum of 6.
+
+
 endmenu  # Wi-Fi

+ 9 - 14
components/esp_wifi/include/esp_mesh_internal.h

@@ -1,16 +1,8 @@
-// Copyright 2017-2018 Espressif Systems (Shanghai) PTE LTD
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+/*
+ * SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
 
 #ifndef __ESP_MESH_INTERNAL_H__
 #define __ESP_MESH_INTERNAL_H__
@@ -107,6 +99,9 @@ typedef struct {
     mesh_chain_layer_t chain;
 } __attribute__((packed)) mesh_chain_assoc_t;
 
+/* mesh max connections */
+#define MESH_MAX_CONNECTIONS (10)
+
 /**
  * @brief Mesh PS duties
  */
@@ -117,7 +112,7 @@ typedef struct {
         bool used;
         uint8_t duty;
         uint8_t mac[6];
-    } child[ESP_WIFI_MAX_CONN_NUM];
+    } child[MESH_MAX_CONNECTIONS];
 } esp_mesh_ps_duties_t;
 
 /*******************************************************

+ 2 - 0
components/esp_wifi/include/esp_wifi.h

@@ -107,6 +107,7 @@ typedef struct {
     int                    mgmt_sbuf_num;          /**< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 */
     uint64_t               feature_caps;           /**< Enables additional WiFi features and capabilities */
     bool                   sta_disconnected_pm;    /**< WiFi Power Management for station at disconnected status */
+    int                    espnow_max_encrypt_num; /**< Maximum encrypt number of peers supported by espnow */
     int                    magic;                  /**< WiFi init magic number, it should be the last field */
 } wifi_init_config_t;
 
@@ -225,6 +226,7 @@ extern uint64_t g_wifi_feature_caps;
     .mgmt_sbuf_num = WIFI_MGMT_SBUF_NUM, \
     .feature_caps = g_wifi_feature_caps, \
     .sta_disconnected_pm = WIFI_STA_DISCONNECTED_PM_ENABLED,  \
+    .espnow_max_encrypt_num = CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM, \
     .magic = WIFI_INIT_CONFIG_MAGIC\
 }
 

+ 1 - 1
components/esp_wifi/include/esp_wifi_types.h

@@ -315,7 +315,7 @@ typedef struct {
 #if CONFIG_IDF_TARGET_ESP32C2
 #define ESP_WIFI_MAX_CONN_NUM  (4)        /**< max number of stations which can connect to ESP32C2 soft-AP */
 #else
-#define ESP_WIFI_MAX_CONN_NUM  (10)       /**< max number of stations which can connect to ESP32 soft-AP */
+#define ESP_WIFI_MAX_CONN_NUM  (16)       /**< max number of stations which can connect to ESP32/ESP32S3/ESP32S2/ESP32C3 soft-AP */
 #endif
 
 /** @brief List of stations associated with the ESP32 Soft-AP */

+ 0 - 1
tools/ci/check_copyright_ignore.txt

@@ -601,7 +601,6 @@ components/esp_system/test_eh_frame_parser/eh_frame_parser_impl.h
 components/esp_system/test_eh_frame_parser/esp_private/panic_internal.h
 components/esp_system/test_eh_frame_parser/linker.ld
 components/esp_system/ubsan.c
-components/esp_wifi/include/esp_mesh_internal.h
 components/esp_wifi/include/esp_private/esp_wifi_types_private.h
 components/esp_wifi/include/esp_private/wifi_types.h
 components/esp_wifi/include/esp_smartconfig.h