Bladeren bron

Modify maximum softap conn num and espnow encryption peer num

zhangyanjiao 3 jaren geleden
bovenliggende
commit
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
             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.
             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
 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__
 #ifndef __ESP_MESH_INTERNAL_H__
 #define __ESP_MESH_INTERNAL_H__
 #define __ESP_MESH_INTERNAL_H__
@@ -107,6 +99,9 @@ typedef struct {
     mesh_chain_layer_t chain;
     mesh_chain_layer_t chain;
 } __attribute__((packed)) mesh_chain_assoc_t;
 } __attribute__((packed)) mesh_chain_assoc_t;
 
 
+/* mesh max connections */
+#define MESH_MAX_CONNECTIONS (10)
+
 /**
 /**
  * @brief Mesh PS duties
  * @brief Mesh PS duties
  */
  */
@@ -117,7 +112,7 @@ typedef struct {
         bool used;
         bool used;
         uint8_t duty;
         uint8_t duty;
         uint8_t mac[6];
         uint8_t mac[6];
-    } child[ESP_WIFI_MAX_CONN_NUM];
+    } child[MESH_MAX_CONNECTIONS];
 } esp_mesh_ps_duties_t;
 } 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 */
     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 */
     uint64_t               feature_caps;           /**< Enables additional WiFi features and capabilities */
     bool                   sta_disconnected_pm;    /**< WiFi Power Management for station at disconnected status */
     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 */
     int                    magic;                  /**< WiFi init magic number, it should be the last field */
 } wifi_init_config_t;
 } wifi_init_config_t;
 
 
@@ -225,6 +226,7 @@ extern uint64_t g_wifi_feature_caps;
     .mgmt_sbuf_num = WIFI_MGMT_SBUF_NUM, \
     .mgmt_sbuf_num = WIFI_MGMT_SBUF_NUM, \
     .feature_caps = g_wifi_feature_caps, \
     .feature_caps = g_wifi_feature_caps, \
     .sta_disconnected_pm = WIFI_STA_DISCONNECTED_PM_ENABLED,  \
     .sta_disconnected_pm = WIFI_STA_DISCONNECTED_PM_ENABLED,  \
+    .espnow_max_encrypt_num = CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM, \
     .magic = WIFI_INIT_CONFIG_MAGIC\
     .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
 #if CONFIG_IDF_TARGET_ESP32C2
 #define ESP_WIFI_MAX_CONN_NUM  (4)        /**< max number of stations which can connect to ESP32C2 soft-AP */
 #define ESP_WIFI_MAX_CONN_NUM  (4)        /**< max number of stations which can connect to ESP32C2 soft-AP */
 #else
 #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
 #endif
 
 
 /** @brief List of stations associated with the ESP32 Soft-AP */
 /** @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/esp_private/panic_internal.h
 components/esp_system/test_eh_frame_parser/linker.ld
 components/esp_system/test_eh_frame_parser/linker.ld
 components/esp_system/ubsan.c
 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/esp_wifi_types_private.h
 components/esp_wifi/include/esp_private/wifi_types.h
 components/esp_wifi/include/esp_private/wifi_types.h
 components/esp_wifi/include/esp_smartconfig.h
 components/esp_wifi/include/esp_smartconfig.h