Commit Graph
75 Commits
Author SHA1 Message Date
Alexey Lapshin 406bd2393e fix(ci): suppress GNU static analyzer warnings 2026-06-15 18:53:21 +07:00
Guillaume Souchere 62a28e250f feat(lwip): replace --wrap linker hacks with proper VFS registration on linux builds
The Linux LWIP port was using --wrap linker flags to intercept read,
write, close, fcntl and select, routing socket FDs (>= LWIP_SOCKET_OFFSET)
to lwip_*() functions. This conflicted with the dlsym(RTLD_NEXT)
cooperative syscall interposition used by the new FreeRTOS Linux
simulator.

Replace the --wrap approach with esp_vfs_register_fd_range(), matching
how LWIP already integrates with VFS on bare-metal ESP32 targets.
The cooperative read()/write() wrappers in vfs_coop_syscalls.c check
VFS first, so LWIP FDs are dispatched to lwip_read() etc. before the
cooperative fallback path is reached.
2026-06-04 11:36:34 +02:00
David Cermak 18907c2c8f fix(lwip): Remove deprecated ping wrappers over lwip raw api 2025-10-20 17:51:39 +08:00
David Cermak a04c5ba9bc fix(esp_netif): Remove deprecated sntp.h 2025-10-20 17:51:39 +08:00
Frantisek Hrbata f50ae95ab5 fix(lwip/cmake): avoid using uninitialized srcs variable
Currently, lwip's CMakeLists.txt might use an uninitialized srcs value
if CONFIG_LWIP_ENABLE is disabled. This means it could use a srcs value
set by another component, involving sources that are entirely
unrelated to the lwip component during registration. Perhaps we
should simply exit when CONFIG_LWIP_ENABLE is not enabled and avoid
registering the component altogether.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-06-04 19:50:27 +08:00
David Cermak 86089be928 feat(lwip): Hardcode NETIF_API=1 to support POSIX netif API 2025-02-10 19:34:57 +08:00
Abhik Roy d846929dc3 feat(lwip): Added wrapper for getaddrinfo to handle AF_UNSPEC 2024-11-22 13:06:34 +11: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 22f213b518 feat(lwip): Add support for lwip 2.2.0-esp release 2024-09-11 16:48:00 +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 Cermak 72c389f771 fix(lwip): Cleanup lwip -> ethernet dependencies 2024-06-20 17:00:19 +02:00
Abhik Roy 67440fa4e9 fix(lwip): Fixed compilation error referencing undefined POSIX interface API
Closes https://github.com/espressif/esp-idf/issues/13577
2024-05-10 23:05:36 +10:00
Jakob Hasse ac2515e199 refactor(lwip): Added on/off switch for LwIP stack
* This switch allows applications to replace lwip with a different
  IP stack or just make it build if it is a dependency but not
  actually needed.
2023-09-22 10:03:13 +08:00
David Cermak c510560890 lwip: Fix print format -Wformat issues 2023-08-15 11:01:01 +02:00
David Cermak b2af4d9689 lwip/linux: Add lwip support for networking component under linux
linux/lwip: Wrap some IO posix functions
* to workaourd the FreeRTOS EINTR issue (when building without lwip)
* to correctly choose the sub-system based on fd (when building with
lwip) -- passing control to either linux/system or to lwip
This commit also addapts tapio-if to provide DHCP client by default and
configurable settings for static IP
2023-05-05 05:03:39 +00:00
Sean Cross 79d37515df lwip: fix dhcp_server path
The path for dhcp_server.c has changed from esp32/ to esp32xx/

This fixes the build when CONFIG_LWIP_DHCP_RESTORE_LAST_IP is enabled.

Signed-off-by: Sean Cross <sean@xobs.io>
2023-02-03 22:55:09 +08:00
David Cermak 332e4902b4 lwip: Rename esp32 port layer to esp32xx
As it reflects all chips from esp32-xx family, not only esp32
2023-01-31 08:43:50 +01:00
David Cermak fa97004faf lwip: Support for linux target
Implement linux port layer and reuse the original FreeRTOS layer
that's compiled and used on linux target as well, by means of FreeRTOS
simulator.
2023-01-31 08:43:45 +01:00
David Cermak a71fa82177 esp_netif/lwip: Fix core-locking config
* Fix thread safety issues in non-core locking
* Add option to verify thread safety issues in lwip (core-lock assertion)
* Make esp_sntp.h thread safe API
* Fix sntp examples
* Fix openthread libs

Closes https://github.com/espressif/esp-idf/issues/9908
Closes https://github.com/espressif/esp-idf/issues/10502
Closes https://github.com/espressif/esp-idf/issues/10466
2023-01-17 16:15:58 +01:00
Ivan Grokhotkov 401c10ecfb build system: re-add -Wno-format as private flag for some components 2022-08-03 16:42:47 +04:00
David Cermak 5c383d7b73 esp_netif/lwip: Fix deps cycles to "lwip -> esp_netif -> phy-drivers"
Fix dependency tree so that lwip doesn't depend on any specific network
interface component.
Network interface drivers shall depend on esp_netif.
esp_netif shall depend on lwip (but not on any specific interface
driver) -- it optionally depends on vfs and esp_eth (need ethernet
header for L2/bridge mode)
2022-07-20 14:59:07 +02:00
Anton Maklakov d2ce9abb2a lwip: suppress some GCC 11 warnings
Closes https://github.com/espressif/esp-idf/issues/9142
2022-06-29 11:42:09 +00:00
Ondrej Kosta 53082a22f7 esp_netif: added support for LwIP bridge
examples: created bridge example
2022-06-14 15:29:44 +02:00
David Cermak 7a04eb8d66 lwip: Reference specific ESP patches
Also adding ip4_napt.c to sources, as it's added by ESP-patches
2022-05-18 17:10:42 +02:00
David Cermak 53c009e626 lwip: Update socket API to include port-version of sockets/netdb
Added socket extention to the lwip hooks for implementing non-vanilla
{get/set}sockopts()
2022-05-18 17:10:42 +02:00
David Cermak dbc91f73e6 lwip: Use custom pbufs for eth and wifi port/netif 2022-05-18 17:10:42 +02:00
David Cermak 808ac7427a lwip: Add freertos sys-arch port layer
Added sys_thread_sem_func(), sys_sem_signal_isr(), g_lwip_task
2022-05-18 17:10:42 +02:00
David Cermak 5b471a1848 esp_netif/lwip: Implement basic support for vanilla-lwip (2.1.3-REL)
* Reference lwip-2.1.3-REL vanilla lwip version
* Use inherent NETIF callbacks instead of dhcp/ipv6/autoip
2022-05-18 17:10:42 +02:00
David Cermak 795b7ed993 esp_netif: Remove tcpip_adapter compatibility layer 2022-03-10 08:19:43 +01:00
marcusbirkin b65447ac09 lwIP: Remove redundant lowspan6 source files
This is a preparation for adding 6LoWPAN config options. We would
optionally add:
*       "lwip/src/netif/lowpan6_common.c"
*       "lwip/src/netif/lowpan6.c"
*       "lwip/src/netif/lowpan6_ble.c"
But only if LWIP_LOWPAN6_SUPPORT is enabled in lwip menuconfig.

Merges https://github.com/espressif/esp-idf/pull/7436
2022-01-10 11:51:13 +01:00
Ivan Grokhotkov 7a5ed12c6b lwip: make some of the component dependencies optional 2021-12-13 10:53:22 +01:00
liuhan 7d5ae1ee26 esp_netif: Add CONFIG_LWIP_DHCPS to sperate the code 2021-06-24 09:49:45 +08:00
liuhan 2d80c122b1 lwip: Add CONFIG_LWIP_ICMP and CONFIG_LWIP_ICMP6 to sperate the code 2021-06-21 15:14:19 +08:00
Jiacheng Guo 52a68cb7fe openthread: integrate OpenThread network interface with esp_netif 2021-06-02 17:03:54 +08:00
Paweł pidpawel Kozubal cf60ec0ffc lwip: Added support for configurable LwIP hooks
Added lwIP hooks which could be optionally overwritten in the
application code. These three options are provided in Kconfig:
* NONE: No hook support
* DEFAULT: Default implementation is provided. If IDF doesn't
have a specific hook implementation, an empty stub is provided, which
could be overwritten by strong implementation in application code.
* CUSTOM: Hooks are declared only to be implemented in application code.

Merges https://github.com/espressif/esp-idf/pull/6034
2020-11-26 12:02:00 +00:00
Mahavir Jain 58c33f3bdf lwip: provide configuration option to enable TCP ISN hook 2020-10-23 05:11:33 +00:00
David Cermak 94d320473c LwIP: NAPT functionality
Adds Kconfig option to enable experimental NAPT feature for IP packet
forwarding across interfaces.

Closes https://github.com/espressif/esp-idf/issues/1527
2020-04-14 16:04:37 +02:00
Ivan Grokhotkov b203ac7b02 lwip: handle CONFIG_VFS_SUPPORT_IO=n and CONFIG_VFS_SUPPORT_SELECT=n
* If CONFIG_VFS_SUPPORT_IO=y, keep everything as it is now
* If CONFIG_VFS_SUPPORT_IO=n, defined syscalls which LwIP can
  implement, such as read/write/close
* Make LWIP-only select implementation dependent on
  CONFIG_VFS_SUPPORT_SELECT, deprecate CONFIG_LWIP_USE_ONLY_LWIP_SELECT
2020-03-20 14:03:44 +01:00
Ivan Grokhotkov e1452f5d6c lw-ip: silence a warning related to CONFIG_LWIP_TCP_WND_DEFAULT value 2019-11-21 15:36:06 +01:00
Ivan Grokhotkov 9a2af7ae33 global: remove gcc 5.2 support 2019-11-20 11:17:27 +01:00
David Cermak ffe043b1a8 esp_netif: Introduction of esp-netif component as a replacement of tcpip_adpter
- provides object oriented access to network intefaces
- not limited to default netifs
- more generic abstraction to network input output functions
- event handler registration removed from component responsibility
- backward compatibility layer for legacy tcpip_apapter APIs

Closes IDF-39
2019-11-13 12:36:25 +01:00
Angus Gratton 6f761dd62d cmake: Fix some uninitialized variable warnings 2019-11-08 12:50:28 +08:00
Thomas Schaub 9e2f44b3c2 lwip: add missing source file
Merges https://github.com/espressif/esp-idf/pull/4186
2019-10-29 13:11:14 +08:00
Angus Gratton 7ce75a42c7 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-25 15:13:52 +11:00
suda-morris dc6acf0033 icmp: add example and unitest 2019-10-22 04:38:09 +00:00
Angus Gratton ae21d669b9 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-17 18:22:08 +11:00
suda-morris 84c72863e1 add netbios support in restful server example 2019-10-14 14:26:43 +08:00
Angus Gratton e32d27e7e8 esp_eth: Add CONFIG_ETH_ENABLED flag to enable/disable ethernet at build time
Always enabled by default, as SPI/Ethernet support is enabled by default.
2019-08-13 17:14:16 +10:00
Angus Gratton 4002c6060a lwip: Enable ethernet for both ESP32 & ESP32-S2Beta (SPI ethernet) 2019-08-13 17:14:16 +10:00
Angus Gratton 24d26fccde Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 13:44:24 +10:00