Skip to content

Commit 8bc3a4a

Browse files
committed
fix(nw_split): Disable Network split for ESP32-C2 and ESP32-C3
1 parent c273b00 commit 8bc3a4a

File tree

10 files changed

+90
-90
lines changed

10 files changed

+90
-90
lines changed

esp_hosted_fg/esp/esp_driver/network_adapter/CMakeLists.txt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,18 @@ include($ENV{IDF_PATH}/tools/cmake/project.cmake)
2727
project(network_adapter)
2828
idf_build_set_property(COMPILE_OPTIONS "-fdiagnostics-color=always" APPEND)
2929

30-
31-
idf_component_get_property(lwip lwip COMPONENT_LIB)
32-
target_compile_options(${lwip} PRIVATE "-I${PROJECT_DIR}/main")
33-
target_compile_definitions(${lwip} PRIVATE "-DESP_IDF_LWIP_HOOK_FILENAME=\"esp_hosted_lwip_src_port_hook.h\"")
30+
if(NOT CONFIG_IDF_TARGET_ESP32C2 AND NOT CONFIG_IDF_TARGET_ESP32C3)
31+
idf_component_get_property(lwip lwip COMPONENT_LIB)
32+
if(TARGET ${lwip})
33+
# Use generator expressions to only apply to non-INTERFACE targets
34+
get_target_property(lwip_type ${lwip} TYPE)
35+
if(NOT lwip_type STREQUAL "INTERFACE_LIBRARY")
36+
message(STATUS "********** Configuring LWIP for network split mode with custom hook **********")
37+
target_include_directories(${lwip} PRIVATE "${PROJECT_DIR}/main")
38+
target_compile_definitions(${lwip} PRIVATE "-DESP_IDF_LWIP_HOOK_FILENAME=\"esp_hosted_lwip_src_port_hook.h\"")
39+
endif()
40+
endif()
41+
else()
42+
message(STATUS "********** Skipping LWIP for network split mode with custom hook **********")
43+
# Do not reference esp_http_client for esp32c2 and esp32c3
44+
endif()

esp_hosted_fg/esp/esp_driver/network_adapter/main/CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,17 @@ set(COMPONENT_SRCS
1111
"stats.c"
1212
"mempool_ll.c"
1313
"host_power_save.c"
14-
"mqtt_example.c"
15-
"http_req.c"
1614
"lwip_filter.c"
1715
)
1816

17+
if(CONFIG_ESP_HOSTED_COPROCESSOR_EXAMPLE_MQTT)
18+
list(APPEND COMPONENT_SRCS mqtt_example.c)
19+
endif()
20+
21+
if(CONFIG_ESP_HOSTED_COPROCESSOR_EXAMPLE_HTTP_CLIENT)
22+
list(APPEND COMPONENT_SRCS http_req.c)
23+
endif()
24+
1925
set(COMPONENT_ADD_INCLUDEDIRS
2026
"."
2127
"${common_dir}/include"

esp_hosted_fg/esp/esp_driver/network_adapter/main/Kconfig.projbuild

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,7 @@ menu "Example Configuration"
480480
endmenu
481481

482482
config NETWORK_SPLIT_ENABLED
483+
depends on !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C3
483484
bool "Allow Network Split using packet port number"
484485
default y
485486
help
@@ -631,12 +632,13 @@ menu "Example Configuration"
631632
endmenu
632633

633634
config ESP_HOSTED_CLI_ENABLED
635+
depends on !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C3
634636
bool "Start CLI at slave"
635637
default y
636638

637639
choice "Wi-Fi control"
638640
prompt "Wi-Fi control"
639-
default SLAVE_MANAGES_WIFI
641+
default BOTH_MANAGES_WIFI
640642

641643
config SLAVE_MANAGES_WIFI
642644
bool "Slave manages Wi-Fi"
@@ -738,6 +740,8 @@ menu "Example Configuration"
738740

739741

740742
menu "Example to run"
743+
depends on NETWORK_SPLIT_ENABLED
744+
741745
config ESP_HOSTED_COPROCESSOR_EXAMPLE_MQTT
742746
bool "MQTT client example"
743747
default y

esp_hosted_fg/esp/esp_driver/network_adapter/main/http_req.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
CONDITIONS OF ANY KIND, either express or implied.
88
*/
99
#include <string.h>
10+
#include "sdkconfig.h"
11+
12+
#ifdef CONFIG_ESP_HOSTED_COPROCESSOR_EXAMPLE_HTTP_CLIENT
1013
#include "freertos/FreeRTOS.h"
1114
#include "freertos/task.h"
1215
#include "esp_system.h"
@@ -17,9 +20,9 @@
1720
#include "lwip/sys.h"
1821
#include "lwip/netdb.h"
1922
#include "lwip/dns.h"
20-
#include "sdkconfig.h"
2123

22-
#ifdef ESP_HOSTED_COPROCESSOR_EXAMPLE_HTTP_CLIENT
24+
25+
2326
extern volatile uint8_t station_connected;
2427
/* Constants that aren't configurable in menuconfig */
2528
#define WEB_SERVER CONFIG_HTTP_WEBSERVER
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
dependencies:
22
cmd_system:
33
path: ${IDF_PATH}/examples/system/console/advanced/components/cmd_system
4+
rules:
5+
- if: target not in ["esp32c2", "esp32c3"]
46
espressif/iperf:
57
version: "*"
8+
rules:
9+
- if: target not in ["esp32c2", "esp32c3"]
610
espressif/iperf-cmd:
711
version: "~0.1.1"
12+
rules:
13+
- if: target not in ["esp32c2", "esp32c3"]
814
esp-qa/wifi-cmd:
915
version: "~0.1.0"
16+
rules:
17+
- if: target not in ["esp32c2", "esp32c3"]
1018
esp-qa/ping-cmd:
1119
version: "~0.0.1"
20+
rules:
21+
- if: target not in ["esp32c2", "esp32c3"]

esp_hosted_fg/esp/esp_driver/network_adapter/main/lwip_filter.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "host_power_save.h"
1010
#include "lwip_filter.h"
1111

12-
#ifdef CONFIG_NETWORK_SPLIT_ENABLED
12+
#if defined(CONFIG_NETWORK_SPLIT_ENABLED) && defined(CONFIG_LWIP_ENABLE)
1313
#include "lwip/opt.h"
1414
#include "lwip/err.h"
1515
#include "lwip/sys.h"
@@ -522,4 +522,4 @@ hosted_l2_bridge filter_and_route_packet(void *frame_data, uint16_t frame_length
522522
int configure_host_static_port_forwarding_rules(const char *ports_str_tcp_src, const char *ports_str_tcp_dst, const char *ports_str_udp_src, const char *ports_str_udp_dst) {
523523
return punch_hole_for_host_ports_from_config(ports_str_tcp_src, ports_str_tcp_dst, ports_str_udp_src, ports_str_udp_dst);
524524
}
525-
#endif
525+
#endif

esp_hosted_fg/esp/esp_driver/network_adapter/main/lwip_filter.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ typedef enum {
1111
INVALID_BRIDGE,
1212
} hosted_l2_bridge;
1313

14-
#ifdef CONFIG_NETWORK_SPLIT_ENABLED
14+
#if defined(CONFIG_NETWORK_SPLIT_ENABLED) && defined(CONFIG_LWIP_ENABLE)
1515
#include "esp_hosted_lwip_src_port_hook.h"
1616

1717
hosted_l2_bridge filter_and_route_packet(void *frame_data, uint16_t frame_length);
1818

1919
int configure_host_static_port_forwarding_rules(const char *ports_str_tcp_src, const char *ports_str_tcp_dst,
2020
const char *ports_str_udp_src, const char *ports_str_udp_dst);
21-
#endif
21+
#endif

esp_hosted_fg/esp/esp_driver/network_adapter/main/mqtt_example.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
#include <stdint.h>
1212
#include <stddef.h>
1313
#include <string.h>
14+
#include "sdkconfig.h"
15+
16+
#ifdef CONFIG_ESP_HOSTED_COPROCESSOR_EXAMPLE_MQTT
17+
1418
#include "esp_wifi.h"
1519
#include "esp_system.h"
1620
#include "nvs_flash.h"
@@ -23,15 +27,15 @@
2327
#include "freertos/semphr.h"
2428
#include "freertos/queue.h"
2529

26-
#include "lwip/sockets.h"
27-
#include "lwip/dns.h"
28-
#include "lwip/netdb.h"
2930

3031
#include "esp_log.h"
3132
#include "mqtt_client.h"
3233
#include "host_power_save.h"
3334

34-
#ifdef CONFIG_ESP_HOSTED_COPROCESSOR_EXAMPLE_MQTT
35+
#include "lwip/sockets.h"
36+
#include "lwip/dns.h"
37+
#include "lwip/netdb.h"
38+
3539
static const char *TAG = "mqtt_example";
3640
static esp_mqtt_client_handle_t client;
3741
static uint8_t client_started;

esp_hosted_fg/esp/esp_driver/network_adapter/sdkconfig.defaults.esp32c2

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ CONFIG_ESP_CACHE_MALLOC=y
3434
# 6.1 LWIP split
3535
#---------------
3636

37-
CONFIG_NETWORK_SPLIT_ENABLED=y
38-
CONFIG_LWIP_TCP_LOCAL_PORT_RANGE_START=61440
39-
CONFIG_LWIP_TCP_LOCAL_PORT_RANGE_END=65535
40-
CONFIG_LWIP_UDP_LOCAL_PORT_RANGE_START=61440
41-
CONFIG_LWIP_UDP_LOCAL_PORT_RANGE_END=65535
37+
CONFIG_NETWORK_SPLIT_ENABLED=n
38+
#CONFIG_LWIP_TCP_LOCAL_PORT_RANGE_START=61440
39+
#CONFIG_LWIP_TCP_LOCAL_PORT_RANGE_END=65535
40+
#CONFIG_LWIP_UDP_LOCAL_PORT_RANGE_START=61440
41+
#CONFIG_LWIP_UDP_LOCAL_PORT_RANGE_END=65535
4242

43-
CONFIG_ESP_DEFAULT_LWIP_SLAVE=y
43+
#CONFIG_ESP_DEFAULT_LWIP_SLAVE=y
4444

4545
# 6.2 LWIP split examples
4646
#-------------------------
@@ -59,7 +59,7 @@ CONFIG_ESP_HOSTED_COPROCESSOR_EXAMPLE_MQTT=n
5959

6060
# 8. Wifi config
6161
#----------------
62-
CONFIG_WIFI_CMD_BASIC_ONLY=y
62+
#CONFIG_WIFI_CMD_BASIC_ONLY=y
6363

6464
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=8
6565
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=16
@@ -74,22 +74,22 @@ CONFIG_ESP_WIFI_IRAM_OPT=y
7474

7575
# 9. LWIP config
7676
#----------------
77-
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=11520
78-
CONFIG_LWIP_TCP_WND_DEFAULT=11520
79-
CONFIG_LWIP_TCP_RECVMBOX_SIZE=16
80-
CONFIG_LWIP_UDP_RECVMBOX_SIZE=16
81-
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
82-
CONFIG_LWIP_TCP_SACK_OUT=y
83-
CONFIG_LWIP_TCPIP_CORE_LOCKING=y
84-
CONFIG_LWIP_TCPIP_CORE_LOCKING_INPUT=y
77+
#CONFIG_LWIP_TCP_SND_BUF_DEFAULT=11520
78+
#CONFIG_LWIP_TCP_WND_DEFAULT=11520
79+
#CONFIG_LWIP_TCP_RECVMBOX_SIZE=16
80+
#CONFIG_LWIP_UDP_RECVMBOX_SIZE=16
81+
#CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
82+
#CONFIG_LWIP_TCP_SACK_OUT=y
83+
#CONFIG_LWIP_TCPIP_CORE_LOCKING=y
84+
#CONFIG_LWIP_TCPIP_CORE_LOCKING_INPUT=y
8585

8686

8787
# 10. Optimizations
8888
#-------------------
8989
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
9090
#CONFIG_COMPILER_OPTIMIZATION_PERF=y
9191
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
92-
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
92+
#CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
9393

9494

9595
# 11. Stats
@@ -99,9 +99,9 @@ CONFIG_ESP_PKT_STATS=y
9999

100100
# 12. Priorities
101101
#----------------
102-
CONFIG_IPERF_TRAFFIC_TASK_PRIORITY=18
103-
CONFIG_IPERF_REPORT_TASK_PRIORITY=18
104-
CONFIG_ESP_DEFAULT_TASK_PRIO=18
102+
#CONFIG_IPERF_TRAFFIC_TASK_PRIORITY=18
103+
#CONFIG_IPERF_REPORT_TASK_PRIORITY=18
104+
#CONFIG_ESP_DEFAULT_TASK_PRIO=18
105105

106106

107107
#13. Mem optimizations
@@ -117,11 +117,13 @@ CONFIG_ESPTOOLPY_FLASHSIZE_4MB=n
117117
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y
118118

119119
CONFIG_ESP_DEFAULT_TASK_STACK_SIZE=2048
120-
CONFIG_C2_C5_MODULE_SUB_BOARD=y
120+
#CONFIG_C2_C5_MODULE_SUB_BOARD=y
121121

122122
#15. C2 26 MHz XTAL chips
123123
# C2 generally in MP has 26MHz.
124124
# If your C2 has 40MHz, just comment below lines
125125
#---------------------------------
126126
CONFIG_SOC_XTAL_SUPPORT_26M=y
127127
CONFIG_XTAL_FREQ_26=y
128+
129+

esp_hosted_fg/esp/esp_driver/network_adapter/sdkconfig.defaults.esp32c2.wifionly

Lines changed: 13 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ CONFIG_BT_ENABLED=n
88
CONFIG_BT_CONTROLLER_ONLY=y
99
CONFIG_BT_LE_SLEEP_ENABLE=y
1010

11-
# 3.1 BLE over SPI/SDIO
11+
# 2.1 BLE over SPI/SDIO
1212
#-----------------------
1313
CONFIG_BT_LE_HCI_INTERFACE_USE_RAM=y
1414

15-
# 3.2 BLE over UART
15+
# 2.2 BLE over UART
1616
#-------------------
1717
#UART pins, Enable below config, delete sdkconfig and rebuild
1818
#CONFIG_BT_LE_HCI_INTERFACE_USE_UART=y
@@ -21,47 +21,25 @@ CONFIG_BT_LE_HCI_INTERFACE_USE_RAM=y
2121
#CONFIG_BT_LE_HCI_UART_RX_PIN=18
2222

2323

24-
# 4. Partition Table
24+
# 3. Partition Table
2525
#--------------------
2626
CONFIG_PARTITION_TABLE_CUSTOM=y
2727
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.esp32c2.csv"
2828

29-
# 5. Mempool
29+
# 4. Mempool
3030
#------------
3131
CONFIG_ESP_CACHE_MALLOC=y
3232

3333

34-
# 6.1 LWIP split
34+
# 5 LWIP split
3535
#---------------
3636

37-
CONFIG_NETWORK_SPLIT_ENABLED=y
38-
CONFIG_LWIP_TCP_LOCAL_PORT_RANGE_START=61440
39-
CONFIG_LWIP_TCP_LOCAL_PORT_RANGE_END=65535
40-
CONFIG_LWIP_UDP_LOCAL_PORT_RANGE_START=61440
41-
CONFIG_LWIP_UDP_LOCAL_PORT_RANGE_END=65535
37+
CONFIG_LWIP_ENABLE=n
38+
CONFIG_NETWORK_SPLIT_ENABLED=n
4239

43-
CONFIG_ESP_DEFAULT_LWIP_SLAVE=y
4440

45-
# 6.2 LWIP split examples
46-
#-------------------------
47-
CONFIG_ESP_HOSTED_COPROCESSOR_EXAMPLE_MQTT=n
48-
CONFIG_ESP_HOSTED_CLI_ENABLED=y
49-
CONFIG_SLAVE_MANAGES_WIFI=y
50-
51-
# 7. Transport config
52-
#---------------------
53-
# CONFIG_ESP_SDIO_NSEND_PSAMPLE=y
54-
# CONFIG_ESP_SDIO_DEFAULT_SPEED=y
55-
# CONFIG_ESP_SDIO_STREAMING_MODE=n
56-
57-
# For SPI Full duplex C6 on ESP32-P4-Function-EV-Board, please uncomment below
58-
#CONFIG_C6_SPI_WITH_P4=y
59-
60-
61-
# 8. Wifi config
41+
# 6. Wifi config
6242
#----------------
63-
CONFIG_WIFI_CMD_BASIC_ONLY=y
64-
6543
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=14
6644
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=14
6745
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=18
@@ -73,54 +51,36 @@ CONFIG_ESP_WIFI_RX_BA_WIN=14
7351
CONFIG_ESP_WIFI_RX_IRAM_OPT=y
7452
CONFIG_ESP_WIFI_IRAM_OPT=y
7553

76-
# 9. LWIP config
77-
#----------------
78-
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=11520
79-
CONFIG_LWIP_TCP_WND_DEFAULT=11520
80-
CONFIG_LWIP_TCP_RECVMBOX_SIZE=16
81-
CONFIG_LWIP_UDP_RECVMBOX_SIZE=16
82-
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
83-
CONFIG_LWIP_TCP_SACK_OUT=y
84-
CONFIG_LWIP_TCPIP_CORE_LOCKING=y
85-
CONFIG_LWIP_TCPIP_CORE_LOCKING_INPUT=y
86-
8754

88-
# 10. Optimizations
55+
# 7. Optimizations
8956
#-------------------
9057
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
9158
#CONFIG_COMPILER_OPTIMIZATION_PERF=y
9259
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
9360
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
9461

9562

96-
# 11. Stats
63+
# 8. Stats
9764
#-----------
98-
#CONFIG_ESP_HOSTED_FUNCTION_PROFILING=y
9965
CONFIG_ESP_PKT_STATS=y
10066

101-
# 12. Priorities
102-
#----------------
103-
CONFIG_IPERF_TRAFFIC_TASK_PRIORITY=18
104-
CONFIG_IPERF_REPORT_TASK_PRIORITY=18
105-
CONFIG_ESP_DEFAULT_TASK_PRIO=18
10667

10768

108-
#13. Mem optimizations
69+
# 9. Mem optimizations
10970
#---------------------
11071
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
11172
CONFIG_ESP32_DEFAULT_CPU_FREQ_120=y
11273
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=120
11374
CONFIG_FREERTOS_UNICORE=y
11475

115-
#14. C2 specific opts
76+
#10. C2 specific opts
11677
#---------------------
11778
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=n
11879
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y
11980

12081
CONFIG_ESP_DEFAULT_TASK_STACK_SIZE=2048
121-
CONFIG_C2_C5_MODULE_SUB_BOARD=y
12282

123-
#15. C2 26 MHz XTAL chips
83+
#11. C2 26 MHz XTAL chips
12484
# C2 generally in MP has 26MHz.
12585
# If your C2 has 40MHz, just comment below lines
12686
#---------------------------------

0 commit comments

Comments
 (0)