Commit Graph

9 Commits

Author SHA1 Message Date
David Cermak
36735f4d77 fix(esp_netif): Lock netif list with TCPIP context
This commit removes the lock from the list manipulation code in esp_netif_objects.c,
 because we already have another lock/task context for lwip.
So the list manipulation is unsafe and safety must be assured by the stack layer
(in esp_netif_lwip).
Problems with current locking:
* implementation of locking was wrong -- lazy init style of creating the mutex is not
  thread safe (and destroying it if we have no interface makes the problem exhibit very frequently)
* locking only the list won't solve issues when assessing interfaces atomically
* maintaining multiple locks is problematic, as we often switch between
lwip context and user context in internal implementation of esp_netif_lwip

Closes https://github.com/espressif/esp-idf/issues/12261
2023-10-13 15:54:53 +02:00
David Cermak
7d6241e761 esp_netif: Make esp_netif_receive() return value configurable 2023-04-05 12:18:21 +02:00
David Cermak
8855ddf044 esp_netif: Report error if esp_netif_receive() fails
Closes https://github.com/espressif/esp-idf/issues/10770
2023-04-05 12:18:21 +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
2f6c60573e esp_netif: Extend PPP netif API to control connection failure 2021-09-07 09:03:15 +02:00
cnlohr
507c08251e esp_netif: Enable use of the ESP-IDF with a non-LWIP (and non-BSD-style) IP stack.
Note: besides the esp-netif component, this commit also disables
net_sockets.c from mbedtls, which is one of the base components and uses BSD API (not specifically lwIP). This might be refactored to use CONFIG_SUPPORT_BSD_API instead of CONFIG_ESP_NETIF_TCPIP_LWIP
in the future.
It also disables smartconfig_ack.c and wifi_init.c from esp_wifi
component for referencing some lwIP config options (smartconfig_ack.c changes might be also
updated to check CONFIG_SUPPORT_BSD_API)

Merges https://github.com/espressif/esp-idf/pull/5856
2020-09-18 15:10:55 +02:00
David Cermak
1a41545c3e esp-netif: SLIP interface refactor to isolate interface from drivers 2020-07-15 15:46:46 +02:00
David Cermak
e8ff22b5fb esp-netif: set default interface for ppp netif must be called from lwip context
On update of any interface (set up/down) a routing preference is updated calling esp_netif_update_default_netif() that is called from
lwip context. But if the related netif was ppp type, the set_default api used user-mode, thus causing a dead lock.

Closes https://github.com/espressif/esp-idf/issues/4746
2020-03-19 13:16:24 +00:00
David Cermak
25913af2cc pppos_client: udated example code to use esp-netif in PPP configuration 2019-12-16 17:34:10 +00:00