Skip to content

Commit e65c9a5

Browse files
author
David Čermák
committed
Merge branch 'test/bridge' into 'master'
[network/examples]: Fix build rules to test builds on for all targets See merge request espressif/esp-idf!36590
2 parents e5ee420 + b708c01 commit e65c9a5

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

components/esp_netif/lwip/esp_netif_br_glue.c

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -97,11 +97,14 @@ static void port_action_start(void *handler_args, esp_event_base_t base, int32_t
9797
{
9898
esp_netif_br_glue_t *netif_glue = handler_args;
9999

100+
#if CONFIG_ESP_WIFI_ENABLED
100101
if (base == WIFI_EVENT) {
101102
ESP_LOGD(TAG, "wifi_action_start: %p, %p, %" PRId32 ", %p", netif_glue, base, event_id, event_data);
102103
start_br_if_stopped(netif_glue);
103104
esp_netif_bridge_add_port(netif_glue->base.netif, netif_glue->wifi_esp_netif);
104-
} else if (base == ETH_EVENT) {
105+
} else
106+
#endif /* CONFIG_ESP_WIFI_ENABLED */
107+
if (base == ETH_EVENT) {
105108
esp_eth_handle_t eth_handle = *(esp_eth_handle_t *)event_data;
106109
ESP_LOGD(TAG, "eth_action_start: %p, %p, %" PRId32 ", %p, %p", netif_glue, base, event_id, event_data, *(esp_eth_handle_t *)event_data);
107110
for (int i = 0; i < netif_glue->port_cnt; i++) {
@@ -119,10 +122,13 @@ static void port_action_stop(void *handler_args, esp_event_base_t base, int32_t
119122

120123
// if one of the bridge's ports is stopped, we need to stop the bridge too, since port's lwip_netif is removed and so it would become
121124
// an invalid reference in the bridge's internal structure (there is no way how to remove single port from bridge in current LwIP)
125+
#if CONFIG_ESP_WIFI_ENABLED
122126
if (base == WIFI_EVENT) {
123127
ESP_LOGD(TAG, "wifi_action_stop: %p, %p, %" PRId32 ", %p", netif_glue, base, event_id, event_data);
124128
stop_br_if_started(netif_glue);
125-
} else if (base == ETH_EVENT) {
129+
} else
130+
#endif /* CONFIG_ESP_WIFI_ENABLED */
131+
if (base == ETH_EVENT) {
126132
esp_eth_handle_t eth_handle = *(esp_eth_handle_t *)event_data;
127133
ESP_LOGD(TAG, "eth_action_stop: %p, %p, %" PRId32 ", %p, %p", netif_glue, base, event_id, event_data, *(esp_eth_handle_t *)event_data);
128134
for (int i = 0; i < netif_glue->port_cnt; i++) {
@@ -142,11 +148,13 @@ static void port_action_connected(void *handler_args, esp_event_base_t base, int
142148
ESP_LOGD(TAG, "action_connected, no action bridge is up");
143149
return;
144150
}
145-
151+
#if CONFIG_ESP_WIFI_ENABLED
146152
if (base == WIFI_EVENT) {
147153
ESP_LOGD(TAG, "wifi_action_connected: %p, %p, %" PRId32 ", %p", netif_glue, base, event_id, event_data);
148154
esp_netif_action_connected(netif_glue->base.netif, 0, 0, NULL);
149-
} else if (base == ETH_EVENT) {
155+
} else
156+
#endif /* CONFIG_ESP_WIFI_ENABLED */
157+
if (base == ETH_EVENT) {
150158
esp_eth_handle_t eth_handle = *(esp_eth_handle_t *)event_data;
151159
ESP_LOGD(TAG, "eth_action_connected: %p, %p, %" PRId32 ", %p, %p", netif_glue, base, event_id, event_data, *(esp_eth_handle_t *)event_data);
152160
for (int i = 0; i < netif_glue->port_cnt; i++) {
@@ -253,6 +261,7 @@ static esp_err_t esp_netif_br_glue_set_instance_handlers(esp_netif_br_glue_handl
253261
return ret;
254262
}
255263

264+
#if CONFIG_ESP_WIFI_ENABLED
256265
static esp_err_t esp_netif_br_glue_clear_instance_handlers_wifi(esp_netif_br_glue_handle_t esp_netif_br_glue)
257266
{
258267
ESP_RETURN_ON_FALSE(esp_netif_br_glue, ESP_ERR_INVALID_ARG, TAG, "esp_netif_br_glue handle can't be null");
@@ -313,6 +322,7 @@ static esp_err_t esp_netif_br_glue_set_instance_handlers_wifi(esp_netif_br_glue_
313322
esp_netif_br_glue_clear_instance_handlers_wifi(esp_netif_br_glue);
314323
return ret;
315324
}
325+
#endif /* CONFIG_ESP_WIFI_ENABLED */
316326

317327
esp_err_t esp_netif_br_glue_add_port(esp_netif_br_glue_handle_t netif_br_glue, esp_netif_t *esp_netif_port)
318328
{
@@ -334,6 +344,7 @@ esp_err_t esp_netif_br_glue_add_port(esp_netif_br_glue_handle_t netif_br_glue, e
334344

335345
esp_err_t esp_netif_br_glue_add_wifi_port(esp_netif_br_glue_handle_t netif_br_glue, esp_netif_t *esp_netif_port)
336346
{
347+
#if CONFIG_ESP_WIFI_ENABLED
337348
esp_err_t ret = ESP_OK;
338349
ESP_GOTO_ON_FALSE(netif_br_glue->wifi_esp_netif == NULL, ESP_ERR_INVALID_STATE, fail_ret, TAG, "WiFi interface already registered");
339350
const char *if_desc = esp_netif_get_desc(esp_netif_port);
@@ -348,6 +359,9 @@ esp_err_t esp_netif_br_glue_add_wifi_port(esp_netif_br_glue_handle_t netif_br_gl
348359
netif_br_glue->wifi_ctx_handlers = NULL;
349360
fail_ret:
350361
return ret;
362+
#else
363+
return ESP_ERR_NOT_SUPPORTED;
364+
#endif /* CONFIG_ESP_WIFI_ENABLED */
351365
}
352366

353367
esp_netif_br_glue_handle_t esp_netif_br_glue_new(void)
@@ -372,9 +386,11 @@ esp_err_t esp_netif_br_glue_del(esp_netif_br_glue_handle_t netif_br_glue)
372386
{
373387
stop_br_if_started(netif_br_glue);
374388
esp_netif_br_glue_clear_instance_handlers(netif_br_glue);
389+
#if CONFIG_ESP_WIFI_ENABLED
375390
if (netif_br_glue->wifi_esp_netif != NULL) {
376391
esp_netif_br_glue_clear_instance_handlers_wifi(netif_br_glue);
377392
}
393+
#endif /* CONFIG_ESP_WIFI_ENABLED */
378394
free(netif_br_glue->ports_esp_netifs);
379395
free(netif_br_glue);
380396
netif_br_glue = NULL;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# This is the default CI config for building the example for all supported targets
2+
# Note that it enables SPI Ethernet, so it uses eth-eth bridge (to support targets that don't have Wi-Fi)
3+
CONFIG_ESP_NETIF_TCPIP_LWIP=y
4+
CONFIG_ESP_NETIF_BRIDGE_EN=y
5+
CONFIG_EXAMPLE_USE_SPI_ETHERNET=y
6+
CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=1

0 commit comments

Comments
 (0)