Commit Graph
100 Commits
Author SHA1 Message Date
David Cermak 1e6d793b11 fix(esp_netif): Remove doxygen groups as esp-docs is flat docs style
Closes https://github.com/espressif/esp-idf/issues/16993
2025-10-21 15:42:12 +02:00
David Cermak dc4381d0b0 fix(docs): Update unclear sdkconfig.rename example 2025-09-16 13:31:18 +02:00
David Cermak c8c10214f8 fix(esp_netif): Fix incorrect DHCP call for PPP interfaces
Closes https://github.com/espressif/esp-protocols/issues/800
2025-06-30 12:21:26 +02:00
David Cermak 1ad41e589f fix(lwip): Fix appending DHCP option with HW-ID 2025-06-30 12:12:45 +02:00
David Cermak a6f092516a fix(esp_netif): Fix reasigning static IP after netif down -> up
Fixes regression from 307f45d5 (ip_info should be cleaned, but only if we're running DHCP client on that netif)
2025-06-26 11:37:57 +02:00
David Čermák 23c73cdc37 Merge branch 'feat/ppp_server_improve' into 'master'
feat(ppp): Allow config PPP DNS servers for peer (GitHub PR)

Closes IDFGH-14720

See merge request espressif/esp-idf!37461
2025-03-24 13:46:15 +08:00
David Čermák 0be20a5f22 Merge branch 'feat/lwip_hook_dhcp_extra_opt' into 'master'
feat(lwip): Add DHCP extra option hook

Closes IDFGH-14572

See merge request espressif/esp-idf!36949
2025-03-21 22:06:56 +08:00
David Cermak 54a58c05e6 feat(lwip): Add DHCP extra option hook
Closes https://github.com/espressif/esp-idf/issues/15329
2025-03-21 11:59:58 +01:00
David Čermák 49c9d797de Merge branch 'feat/update_lwip_to_support_ip6_route_clone_buffer' into 'master'
feat(lwip): support cloning pbuf_ref when ipv6 forwarding

See merge request espressif/esp-idf!37402
2025-03-12 17:04:20 +08:00
David Čermák 9715729b27 Merge branch 'fix/common_connect_sema_race' into 'master'
fix(connect): Fix wifi_connect to delete semaphores after waiting on them

See merge request espressif/esp-idf!37164
2025-03-03 20:01:15 +08:00
David Cermak dd27588ea7 fix(connect): Fix wifi_connect to delete semaphores after waiting on them
On wifi-disconnect (after all retries), we signal to the IP semaphores
and delete them immediately, while the wait thread might be still
holding on them causing:
```
I (1682) example_connect: Waiting for IP(s)
I (4092) example_connect: Wi-Fi disconnected 201, trying to reconnect...
I (6502) example_connect: WiFi Connect failed 2 times, stop reconnect.

assert failed: spinlock_acquire spinlock.h:142 (lock->count == 0)
```
2025-02-20 11:34:51 +01:00
David Čermák 584fc500d4 Merge branch 'fix/esp_netif_lost_ip' into 'master'
fix(esp_netif): Fix posting GOT_IP after LOST_IP

See merge request espressif/esp-idf!36717
2025-02-12 00:36:27 +08:00
David Čermák e11a918572 Merge branch 'lwip/enable_netif_api' into 'master'
feat(lwip): Hardcode NETIF_API=1 to support POSIX netif API

See merge request espressif/esp-idf!35841
2025-02-11 19:05:17 +08:00
David Cermak 307f45d512 fix(esp_netif): Fix posting GOT_IP after LOST_IP 2025-02-11 11:20:49 +01:00
David Cermak 42d2a131f6 fix(lwip): Remove if_indextoname() impl in favor of LWIP_NETIF_API
ESP-IDF already hardcodes LWIP_NETIF_API=1, so the related netif APIs are
defined unconditionally.
2025-02-10 19:34:57 +08:00
David Cermak 86089be928 feat(lwip): Hardcode NETIF_API=1 to support POSIX netif API 2025-02-10 19:34:57 +08:00
David Čermák df6e92eba2 Merge branch 'fix/eth_w5500_test_event' into 'master'
fix(esp_eth): Fix test code to unregister event correctly

Closes IDFCI-2705 and IDFCI-2706

See merge request espressif/esp-idf!36723
2025-02-04 20:46:45 +08:00
David Cermak a591e48b97 fix(esp_eth): Fix test code to unregister event correctly 2025-02-04 12:29:43 +01:00
David Čermák 3114ae365e Merge branch 'fix/event_no_isr_post' into 'master'
fix(esp_event): Fix minor no-ISR post regression from 15f6775f5

See merge request espressif/esp-idf!36697
2025-02-03 21:03:07 +08:00
David Cermak 881628c548 fix(esp_event): Fix minor no-ISR post regression
from 15f6775f5d
2025-02-03 12:26:35 +01:00
David Čermák 48c400d7e4 Merge branch 'fix/bridge_wifi' into 'master'
fix(network/examples): Fix bridge example with eth-wifi config

See merge request espressif/esp-idf!36628
2025-01-29 23:16:09 +08:00
David Cermak 9aad15daaa fix(network/examples): Fix bridge example eth-wifi config 2025-01-24 16:31:12 +01:00
David Čermák e65c9a52e8 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
2025-01-24 23:25:17 +08:00
David Cermak b708c0195a fix(network/examples): Fix build rules to test builds on for all targets
Uses wifi defines only if wifi is enabled for this target
2025-01-24 10:45:24 +01:00
David Čermák 5685633f2d Merge branch 'fix/ping_data_race' into 'master'
fix(lwip): Fix potential data-race in ping tcpip callback

See merge request espressif/esp-idf!36532
2025-01-22 23:06:48 +08:00
David Cermak b46b3d1c1d fix(lwip): Fix potential data-race in ping tcpip callback
Need to use tcpip_api_call() instead of tcpip_callback(), since the
former waits for the tcpip task to complete and thus prevents potential
data races with subsequent TCP/IP tasks.
2025-01-22 21:13:57 +08:00
David Čermák ed14b8d3f8 Merge branch 'fix/lwip_ping_getnetif_threadsafe' into 'master'
fix(lwip): Fix ping session calling thread unsafe API

Closes IDFGH-14183

See merge request espressif/esp-idf!35527
2025-01-14 18:16:51 +08:00
David Čermák bca1e958ea Merge branch 'test/new_mosquitto' into 'master'
fix(mqtt): Fix mqtt tests with local mosquitto

See merge request espressif/esp-idf!35859
2025-01-08 18:19:24 +08:00
David Cermak 7fa64f64d6 fix(mqtt): Fix test with local mosquitto increasing stack size
4kB stack size for mosquitto runner task wasn't enough and with
recent updates of sock_utils it caused stack overflows
2025-01-07 09:00:23 +01:00
David Cermak c5955f8cf6 fix(lwip): Fix ping session calling thread unsafe API
Closes https://github.com/espressif/esp-idf/issues/14982
2024-12-20 08:09:22 +01:00
David Čermák 7e2464720e Merge branch 'feat/lwip_extern_decl_sockutls' into 'master'
feat(lwip): Declare additional POSIX API if available

Closes IDFGH-14028 and IDFGH-12794

See merge request espressif/esp-idf!35683
2024-12-19 18:14:17 +08:00
David Cermak d66b6e2749 feat(hints): Add hints on using external sock utilities 2024-12-17 11:18:46 +01:00
David Cermak 4772f51437 feat(lwip): Declare additional POSIX API if available
Add support for socketpair() directly from lwip sockets (if sock-utils included)
Add support for gai_strerror() directly from lwip netdb.h (if sock-utils included)

Closes https://github.com/espressif/esp-idf/issues/13772
Closes https://github.com/espressif/esp-idf/issues/14849

fix(lwip): prevent socket.h to spellcheck
2024-12-17 11:18:42 +01:00
David Čermák 1f4ea21092 Merge branch 'fix/lwip_autoip_next_addr_after_rate_limit' into 'master'
fix(lwip): Fix AUTOIP new address after rate limit

Closes IDF-11285

See merge request espressif/esp-idf!35279
2024-12-11 17:06:50 +08:00
David Čermák daa980ffab Merge branch 'fix/esp_netif_ppp_nullptr_check' into 'master'
fix(esp_netif): Prevent null deref when checking netif type

See merge request espressif/esp-idf!34911
2024-12-05 17:16:04 +08:00
David Čermák 94d4b6c44b Merge branch 'bugfix/ws_head_buf_size' into 'master'
fix(tcp_transport): Fix websocket header read to handle overflow

See merge request espressif/esp-idf!35139
2024-12-05 16:22:56 +08:00
David Cermak dd178016b2 feat(mqtt): Add publish stress test with local broker 2024-12-04 17:57:20 +08:00
David Čermák 1c13798cd4 Merge branch 'fix/lwip_dhcp_timeout_u32' into 'master'
fix(lwip): Fix DHCP lease overlow using u32 type

Closes WIFIBUG-908

See merge request espressif/esp-idf!35280
2024-11-29 18:26:27 +08:00
David Cermak 6fe443a6d5 fix(lwip): Fix DHCP lease overlow using u32 type 2024-11-28 13:17:21 +01:00
David Cermak be6c49f79a fix(lwip): Fix AUTOIP new address after rate limit 2024-11-28 12:58:49 +01:00
David Cermak 0957626e26 fix(tcp_transport): Fix websocket header read to handle overflow 2024-11-22 14:14:53 +01:00
David Čermák 36d5d8c31c Merge branch 'feat/esp_tls_add_psk' into 'master'
feat(esp_tls): Add support for PSK authentication on server side

Closes IDFGH-14083

See merge request espressif/esp-idf!34996
2024-11-22 00:10:42 +08:00
David Cermak 7801d118d4 fix(esp_tls): PSK available in headers only if enabled in Kconfig 2024-11-21 11:36:16 +01:00
David Čermák fc682fc7fb Merge branch 'fix/wifi_docs_remove_nonexistent_lwip_opt' into 'master'
fix(wifi): Remove non-existent LWIP option from docs

See merge request espressif/esp-idf!34055
2024-11-21 14:24:12 +08:00
David Cermak 862815f362 fix(wifi): Remove non-existent LWIP option from docs 2024-11-20 15:34:18 +01:00
David Cermak 4449c8bfa2 fix(lwip): Remove unused LWIP flags from test configs 2024-11-18 23:06:17 +08:00
David Cermak 7ef2379549 feat(esp_tls): Add support for PSK authentication on server side 2024-11-18 13:47:29 +01:00
David Čermák 890106fb23 Merge branch 'fix/lwip_tcp_pcb_recycle' into 'master'
fix(lwip): Limit active TCP PCBs and recycle them faster

Closes IDFGH-8173, IDF-8914, and IDF-10021

See merge request espressif/esp-idf!34879
2024-11-14 21:07:10 +08:00
David Cermak 4e088964ef fix(esp_netif): Prevent null deref when checking netif type
Most esp_netif public API check for invalid arguments, but when enabling
PPP the macros to check netif type could potentially dereference
esp_netif without any null-check.

Releted to https://github.com/espressif/esp-idf/issues/14816
2024-11-14 12:37:48 +01:00
David Cermak 0d99214012 fix(lwip): Limit active TCP PCBs and recycle them faster
* Update submodule: git log --oneline c816f0ee..a587d929
Detailed description of the changes:
  - test: Add tcp-pcb recycle test (espressif/esp-lwip@a587d929)
  - tcp: Apply faster PCB recycling in FIN_WAIT_1 or FIN_WAIT_2 state (espressif/esp-lwip@3bfc85d2)
  - test: Add tcp alloc limitation test (espressif/esp-lwip@0c9c39a9)
  - memp: Employ TCP-PCB allocation limit if libc malloc used (espressif/esp-lwip@9cb96ac1)

Closes https://github.com/espressif/esp-idf/issues/9670
Closes https://github.com/espressif/esp-lwip/pull/63
2024-11-13 08:53:51 +01:00
David Čermák cbbb85fecd Merge branch 'fix/ws_transport_head_fragments' into 'master'
fix(ws_transport): Fix reading WS header in fragments

Closes IDFGH-13951, IDFGH-13857, and IDFGH-13859

See merge request espressif/esp-idf!34517
2024-11-13 15:07:42 +08:00
David Cermak d8949fe50f fix(ws_transport): Unit test on reading WS data byte by byte
Closes https://github.com/espressif/esp-idf/issues/14704
Closes https://github.com/espressif/esp-protocols/issues/679
2024-11-12 17:07:15 +01:00
David Čermák afb4a02fe4 Merge branch 'fix/lwip_ping_ipv6only' into 'master'
fix(lwip): Fix IP6 raw socket checksum in IPv6-only configuration

Closes IDF-9670

See merge request espressif/esp-idf!33936
2024-11-12 13:36:12 +08:00
David Cermak 8b191dd7a1 fix(lwip): Fix ping_v6 receiving to accept only echo replies
This fixes a bug where we ping our own IP and the request itself
bounces back to the raw receive function and is incorrectly treated as
reply. (this bug was discovered when fixing ICMPv6 pings with incorrect
checksums, while the ping request was dropped in icmpv6.c due to wrong
checksum, but was also fed to raw layers where it was treated as
"correct" response, so the PINGv6 to ourselves still worked)
2024-11-08 12:21:35 +01:00
David Cermak c7e2a9ea0d fix(common_connect): Fix example's stdin/out to setup UART interrupt once
Function example_configure_stdin_stdout() was used for simple UART I/O
operation in CI to enter test env configuration (wifi ssid, IPs, etc).
It could be called multiple times, but didn't handle the situation where
we install UART interrupt from multiple source (e.g. in ICMP tests,
where we first need to enter wifi credentials of test AP and then we
start ping-cmd console to handle ping commands)
2024-11-08 12:21:35 +01:00
David Cermak f269835865 fix(lwip): Fix IP6 raw socket checksum in IPv6-only configuration 2024-11-08 12:21:35 +01:00
David Čermák 457f65195e Merge branch 'fix/example_sta2eth_more_docs' into 'master'
fix(sta2eth): Document security consideration in sta2eth example

Closes IDFGH-13990

See merge request espressif/esp-idf!34518
2024-11-08 00:57:00 +08:00
David Cermak cce9a80aee fix(sta2eth): Check for null netif before starting/stopping DHCP server
Fixes a potential null pointer dereference in `esp_netif` when PPP mode is enabled.
In the Ethernet event handler, `esp_netif_dhcps_start()` and `esp_netif_dhcps_stop()`
are now only called if `netif` is non-null (in provisioning mode when
the actual TCP/IP stack from IDF is used, in work mode the `netif` is
null, since the trafic is simply forwarded between wireless and wired
networks without TCP/IP stack involved)

Closes https://github.com/espressif/esp-idf/issues/14816
2024-11-07 17:48:59 +01:00
David Cermak 94536cb512 fix(sta2eth): Make some Ethernet options configurable 2024-11-07 17:48:53 +01:00
David Cermak ac630e4417 fix(sta2eth): Document security considerations in sta2eth example 2024-11-07 10:24:54 +01:00
David Čermák 5e056de1e7 Merge branch 'fix/lwip_docs_thread_safe_socks' into 'master'
fix(lwip): Document that not all sock operations are thread safe

See merge request espressif/esp-idf!34333
2024-11-07 15:41:12 +08:00
David Cermak e8c5992a57 fix(lwip): Document that not all sock operations are thread safe 2024-11-06 08:24:45 +01:00
David Cermak 649816d9a1 fix(lwip/dhcps): Fallback DNS option to DHCP server's IP by default
Adds backward compatibity option CONFIG_LWIP_DHCPS_ADD_DNS, which
prevents breaking changes.
This option should be removed in IDF v6.0

Merges https://github.com/espressif/esp-idf/pull/14132
2024-10-07 21:07:57 +11:00
David Cermak 5bb10bc10d fix(esp_wifi): Add null pointer checks to WiFi-netif APIs
Added null pointer checks to WiFi-netif API functions to prevent potential
crashes from invalid arguments, updated unit tests.

Closes https://github.com/espressif/esp-idf/issues/8702
2024-10-01 11:37:54 +02:00
David Čermák 07400d348c Merge branch 'feat/wifi_remote_with_hosted' into 'master'
fix(examples): esp_hosted as default for Wi-Fi connect on P4

See merge request espressif/esp-idf!33213
2024-09-30 15:37:40 +08:00
David Čermák af017d143a Merge branch 'feat/docs_wifi_on_wifiless_chips' into 'master'
feat(wifi): Document WiFi expansion on wifi-less chips

See merge request espressif/esp-idf!31418
2024-09-30 15:15:29 +08:00
David Cermak 5af61242d2 feat(wifi): Document WiFi expansion on wifi-less chips 2024-09-30 14:10:19 +08:00
David Čermák 7e87254d3c Merge branch 'fix/esp_netif_docs' into 'master'
fix(esp_netif): Fix ESP-NETIF user documentation

Closes IDF-9946, DOC-1229, and DOC-6162

See merge request espressif/esp-idf!31777
2024-09-27 03:20:28 +08:00
David Cermak 9b550d77d4 docs(esp_netif): Update ESP-NETIF developers and programmers manual
Made final fixed to both programming manuals and user guidelines
2024-09-26 16:58:01 +02:00
David Cermak ea76db704d docs(esp_netif): Update ESP-NETIF programming manual 2024-09-26 16:58:01 +02:00
David Cermak 91f04d7134 docs(esp_netif): Update ESP-NETIF user documentation 2024-09-26 16:58:01 +02:00
David Čermák 4f467d02c7 Merge branch 'fix/ws_transport_mem_corrupt' into 'master'
fix(transport): Fix websocket mem-corruption while reading headers

Closes IDFGH-13585

See merge request espressif/esp-idf!33593
2024-09-26 18:53:00 +08:00
David Čermák 82a29b7d21 Merge branch 'fix/lwip_drop_ipv6_if_no_ll' into 'master'
fix(lwip): Add default IPv6 input filter to drop traffic if ipv6 not assigned

Closes IDF-10472

See merge request espressif/esp-idf!32165
2024-09-20 23:33:49 +08:00
David Cermak 98fdb1a97f fix(lwip): Add default IPv6 input filter to drop traffic if ipv6 not assigned
* Makes LWIP_HOOK_IP6_INPUT default to LWIP_HOOK_IP6_INPUT_DEFAULT
* Updated the stub hook implementation to actually filter out all IPv6
packets if the input netif has no link local address.
2024-09-20 10:36:43 +02:00
David Čermák 22facff58c Merge branch 'fix/ws_transport_linux_signed_promotions' into 'master'
fix(ws_transport): Fix incorrect packet-len on linux due to int promotions of char (GitHub PR)

Closes IDFGH-13642 and IDFGH-13657

See merge request espressif/esp-idf!33595
2024-09-18 20:56:51 +08:00
David Cermak 53e63eb125 fix(transport): Fix websocket mem-corruption while reading headers
Closes https://github.com/espressif/esp-idf/issues/14473
2024-09-17 18:15:17 +02:00
David Cermak a4a1e7b7f2 feat(transport): Add more testcases for ws-connect to fail
Test case "ws connect fails (big response)" should fail on this commit
due to an off-by-one issue in ws_connect() read when chunk reading
http header(s).

Related to https://github.com/espressif/esp-idf/issues/14473
2024-09-17 18:09:21 +02:00
David Čermák d4f60febdd Merge branch 'feat/lwip_2.2.0' into 'master'
feat(lwip): Support for new lwip release 2.2.0

Closes IDFGH-11237

See merge request espressif/esp-idf!30388
2024-09-13 15:38:23 +08:00
David Čermák 4dd715922f Merge branch 'fix/freertos_sim_nonblock_select' into 'master'
fix(freertos): Made select function non-blocking on Linux target (GitHub PR)

Closes IDFGH-13569 and IDFGH-13498

See merge request espressif/esp-idf!33331
2024-09-12 16:57:58 +08:00
David Cermak 015ab1d18f fix(lwip): Fix linker/fr symbol for tcp_output_control segment
In lwip-2.1.3 tcp_output_control_segment() is used to send RST, empty
ACK, keepalive or zero window probe.
In lwip-2.2.0 this works the same, but the function is used when we
don't know the interface to send to (and if used it finds it and calls)
tcp_output_control_segment_netif().
When `LWIP_EXTRA_IRAM_OPTIMIZATION=y` we would ideally move both
variants to IRAM, but the pcb variant (tcp_output_control_segment) could
be optimized away on some targets and toolchain versions.
(esp32c6 with riscv32-esp-elf/esp-14.2.0_20240906)
It should be sufficient to keep tcp_output_control_segment_netif in IRAM
for most common performance usecases.
2024-09-12 09:52:13 +02:00
David Cermak 4d046b3732 feat(lwip): Reference official lwip-2.2.0-esp 2024-09-11 16:48:07 +02:00
David Cermak b61a5e7636 change(openthread): Update prebuilt OT lib to comply with lwip ABI 2024-09-11 16:48:07 +02:00
David Cermak c098388a2f fix(lwip): Use ACD light module for simple DHCP-ARP check 2024-09-11 16:48:07 +02:00
David Cermak 720b74026c fix(esp_netif): Use internal DHCP struct 2024-09-11 16:48:06 +02:00
David Cermak e8ac6af67e fix(esp_netif): Fix per pppos callback update in new lwip 2024-09-11 16:48:06 +02:00
David Cermak 22f213b518 feat(lwip): Add support for lwip 2.2.0-esp release 2024-09-11 16:48:00 +02:00
David Cermak f7129481ed fix(freertos): Update select on Linux target to handle edge cases
* Handle not found "select()" symbol if dlsym() return NULL
* Handle minimum wait time if remaining time < designated minimum sleep
time
2024-09-09 16:52:51 +02:00
David Čermák 5ef55584c1 Merge branch 'feat/lwip_dns_external_resolve_hook' into 'master'
feat(lwip): Add DNS external resolve hook

See merge request espressif/esp-idf!32595
2024-09-05 15:00:17 +08:00
David Cermak 30c13225ca fix(examples): esp_hosted as default for Wi-Fi connect on P4 2024-09-02 08:23:32 +02:00
David Čermák f71f0fc627 Merge branch 'feat/esp_netif_custom_impl' into 'master'
feat(esp_netif): Add support for esp_netif with custom TCP/IP stack

Closes IDF-6375

See merge request espressif/esp-idf!31593
2024-08-23 21:52:56 +08:00
David Cermak 921b2a6331 fix(esp_netif): Add unit test for loopback configuration
Split tests into common and lwip/loopback specific and adds loopback
tests as separate configuration.
2024-08-23 18:13:47 +08:00
David Cermak c6748a636d fix(esp_netif): Prepare for more tests moving esp_netif_test to .._lwip 2024-08-23 18:13:47 +08:00
David Cermak 049f6f6bdc feat(esp_netif): Add support for esp_netif with custom TCP/IP stack
Added a new Kconfig option ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION which
uses only esp_netif headers, no implementation is provided and expected
to be supplied by application layer.
2024-08-23 18:13:47 +08:00
David Čermák 463b41fc60 Merge branch 'feat/lwip_netif_more_opts' into 'master'
fix(lwip/esp_netif): Adds more configs: IPv6 autoconfig per netif, IPv6-only for PPP

Closes IDF-1394

See merge request espressif/esp-idf!31410
2024-07-18 14:28:27 +08:00
David Cermak 95169eb929 feat(esp_netif): Add support for IPv6 autoconfig flag per netif 2024-07-17 21:41:09 +08:00
David Cermak 48b3e4f76f feat(lwip): Add support for disabling IPv4 in PPP networks 2024-07-17 21:41:09 +08:00
David Čermák 38f0d32d68 Merge branch 'feat/lwip_with_mbedtls' into 'master'
feat(lwip): Add support for PPP Auth using mbedTLS

Closes IDFGH-12599

See merge request espressif/esp-idf!31071
2024-07-12 22:10:39 +08:00
David Cermak 562abca17d fix(esp_netif): Remove unused leftover pppapi_set_auth() call 2024-07-12 10:43:58 +02:00
David Cermak 1f14018c30 feat(lwip): Add support for PPP Auth using mbedTLS
Closes https://github.com/espressif/esp-idf/issues/13597
2024-07-12 10:43:57 +02:00
David Čermák 6a75241bf1 Merge branch 'feat/esp_netif_dns_switch' into 'master'
fix(esp_netif): Restore DNS servers when choosing the default netif

Closes IDFGH-4440

See merge request espressif/esp-idf!30996
2024-07-08 16:41:16 +08:00