Commit Graph

99 Commits

Author SHA1 Message Date
David Cermak
95169eb929 feat(esp_netif): Add support for IPv6 autoconfig flag per netif 2024-07-17 21:41:09 +08:00
David Cermak
17a635b23b fix(esp_netif): Add unit test of getter/setter API for DNS servers 2024-07-04 10:37:57 +02:00
David Cermak
6acdb384f6 fix(esp_netif): Restore DNS servers per netif when setting it default
Introducing config option `CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF`
to overcome LWIP limitation of using global DNS server info.
This config option enables LWIP callbacks to collect per netif DNS
server info and then restores global DNS servers of whichever network
interface is selected as default.

LWIP submodule update: git log --oneline aa4f6e78..3a3d1fb3
- dns: Allow storing dnsserver per netif (espressif/esp-lwip@3a3d1fb3)
2024-07-04 10:37:22 +02:00
Yogesh Mantri
586207207f change(esp_netif): Add Non-Fatal errtype to indicate lower layer medium failure
UDP application sends packet using esp_netif, underlying transport such
as Wi-Fi may drop the packet due to higher load. New error code
represent transient, non-fatal packet drop error. udp application may
use such errtype, for example to rate limit.
2024-06-11 09:20:49 +02:00
David Cermak
8103d5bc34 fix(esp_netif): Add API docs to DHCP client/server operations 2024-05-09 09:49:47 +02:00
jkingsman
3035ce294d feat(esp_netif): add support for DHCP Option 114 captive portal URI
DHCP Option 114 provides a modern method of indicating a captive
portal redirect to DHCP client. This introduces Option 114 to
the DHCPS component as well as provides examples for usage.
2024-05-02 22:50:09 +08:00
Abhik Roy
ad9787bb4d feat(esp_netif): Allow traffic reporting runtime enable/disable 2024-04-22 11:27:43 +10:00
Dr. Michael Lauer
5debb23da9 feat(esp_netif): Allow traffic reporting
This enables traffic indicators or data traffic statistics.
2024-04-22 11:22:29 +10:00
David Cermak
c30f2825d5 fix(netif): Add missing SNTP get-reachablitiy API 2024-02-29 23:37:45 +08:00
David Cermak
73102c60ef fix(lwip): Used dedicated IP4 address type 2024-01-19 17:48:47 +01:00
David Cermak
d707161881 fix(lwip): esp_netif supports esp_netif_get_netif_impl() for PPP 2024-01-18 14:20:39 +08:00
David Cermak
18ff62017a feat(lwip): Add support for PPP server
Added support PPP_SERVER option in LWIP
Added support for configuring preferred addresses of PPP endpoints.
2024-01-18 14:20:39 +08:00
Abhik Roy
325a8d7a6e feat(esp_netif): Added code to expose api to add and remove ipv6 address 2024-01-09 18:00:47 +08:00
David Čermák
a7cba03a28 Merge branch 'fix/netif_macro_semicolon' into 'master'
esp_netif: Remove semicolons from ESP_IP4ADDR_INIT and ESP_IP6ADDR_INIT macros (GitHub PR)

Closes IDFGH-10189

See merge request espressif/esp-idf!26759
2023-11-03 18:25:15 +08:00
Zhang Xiao Yan
dffe28b787 Merge branch 'docs/add_parameter_description_to_esp_netif' into 'master'
docs: add parameter description to esp_netif.h

See merge request espressif/esp-idf!26487
2023-10-19 10:52:51 +08:00
David Čermák
210f757835 Merge branch 'fix/esp_netif_lock' into 'master'
fix(esp_netif): Lock netif list with TCPIP context

Closes IDFGH-11088

See merge request espressif/esp-idf!26164
2023-10-17 21:36:39 +08:00
Linda
6c86424772 docs: add parameter description to esp_netif.h 2023-10-17 10:35:39 +08:00
David Cermak
88d18e9a40 fix(esp_netif): Mark esp_netif_next deprecated and fix usages
* Uses netif_find_if() in IPv6 examples
* Fixes esp_netif_next() usage in L2TAP
2023-10-13 15:56:45 +02:00
David Cermak
606363897c feat(esp_netif): Added new API to search in netif list 2023-10-13 15:56:30 +02:00
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
966b8620c2 feat(esp_netif): PPP config option to allow disabling LCP runtime
If LCP keepalive mechanism is enabled in menuconfig, it's statically
configured on creation of an interface and cannot be changed runtime. In
some cases it's useful to relax LCP criteria during runtime operation,
for example before initiating OTA. This config option allows for
disabling already enabled LCP echo (this setting becomes effective after
reconnecting, i.e. initializing a new session)

Closes https://github.com/espressif/esp-protocols/issues/287
2023-09-25 16:48:48 +02:00
Ondrej Kosta
3288f83401 feat(network/examples): extended LwIP bridge example
Extended LwIP bridge example to support WiFi AP interface and DHCP Server

https://github.com/espressif/esp-idf/issues/5697
2023-06-30 14:38:24 +02:00
Grigory Kirillov
11d53820f2 Remove semicolons from ESP_IP4ADDR_INIT and ESP_IP6ADDR_INIT macros
There are structs like esp_netif_dns_info_t that have member for
generic ip for which the presence of semicolons is problematic, because
when trying to initialize an ip member with one of these macroses it
results in a syntax error since semicolon is used within curly braces.
2023-05-21 01:34:53 +03:00
movsb
2ff12460dd fix(c++): invalid conversion from int to enumeration 2023-05-12 15:08:53 +08: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
Abhik Roy
8e71e96603 lwip/esp_napt: Added api to enable/disable napt based on esp_netif. 2023-03-23 20:38:03 +11:00
Nachiket Kukade
4c76af3f68 esp_wifi: Add support for NAN Discovery and Datapath
Update wifi lib with below -
1. Create NAN Discovery SM for beaconing & cluster formation
2. Create NAN interface for Tx/Rx of beacons & action frames
3. Add commands & events for NAN Services Publish/Subscribe/Followup
4. Add NAN Datapath definitions, Events, Peer structures
5. Support for forming and parsing of Datapath related attributes
6. Modules for NDP Req, Resp, Confirm, Term, Peer management
7. NAN Interface related additions in Datapath, Data Tx Q's

In addition include below changes -
1. Add netif and driver support for NAN Interface
2. Add simple examples for Publisher-Subscriber usecases
3. Add an advanced console example that supports commands
   for NAN Discovery, Services & Datapath
4. Add wifi_apps for providing better NAN API's and Peer management

Co-authored-by: Shyamal Khachane <shyamal.khachane@espressif.com>
2023-03-10 11:18:23 +05:30
xueyunfei
ad0b32c662 lwip: solve some routers do not forward multicast packet issue 2023-03-08 16:58:29 +08:00
David Cermak
5f6cb31105 lwip: Support IPv6 only mode 2023-02-27 08:53:34 +01:00
Abhik Roy
7e81518a57 esp-lwip: Added API to expose default esp-netif. 2023-01-25 12:03:02 +05:30
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
David Cermak
38dec0be48 esp-netif: Support non-lwip mode, add test
It is required to define a mandatory dependency on lwip, so we
introduced esp_netif_stack component and made it require lwip, instead
of directly depending on lwip.
This enables building w-out lwip and support other TCP/IP stacks.
2022-12-14 14:12:50 +00:00
David Cermak
678d7aadd9 esp-netif/lwip: Introduce TCP/IP stack has BSD API
* This variable is automatically selected when lwip stack is chosen
* This commit also fixes lwip loopback configuration
2022-12-14 14:12:50 +00:00
David Cermak
fab39d2c4b esp_netif: Make GARP default netif flags only if enabled in lwip
Closes https://github.com/espressif/esp-idf/issues/8641
2022-12-14 14:12:50 +00:00
nvmd
8906a68108 Remove trailing semicolons from netif IF's 2022-11-21 07:03:35 +00:00
David Cermak
83b8556f10 esp_netif: Migrate SLIP interface to user-space 2022-08-16 14:08:15 +00:00
David Cermak
64f4f0ac1e esp_netif/lwip: Use netif-client-data to store esp_netif ptr
lwip/netif struct has two places to store user's data
* netif->state (1 void*) but that might be occupied in special cases
* netif->client_dtat (n void*s) but that must be enabled in opts.h
This commit stores esp_netif_t* primarily in state, but if any special
netif is enabled in menuconfig (bridgeif, pppos), it uses netif->client_data.
This commit also fixes incorrect esp_netif that is attached to
IP_EVENT_GOT_IP6 event posted by pppos interfaces in:
c585618b97/components/esp_netif/lwip/esp_netif_lwip_ppp.c (L114)

Closes https://github.com/espressif/esp-idf/issues/9345
2022-07-27 11:55:18 +00:00
David Cermak
e7afdff6ca esp_netif: Make set_link_speed() conditional on MIB2_STATS 2022-07-20 14:59:34 +02:00
David Cermak
89bb1fdec1 esp_netif: Add error checks to dhcp server state transitions 2022-07-20 14:59:34 +02: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
Ondrej Kosta
53082a22f7 esp_netif: added support for LwIP bridge
examples: created bridge example
2022-06-14 15:29:44 +02:00
David Cermak
5e19b9c951 esp-netif: Make dependency on esp-eth optional
* esp-netif to optionally depend on esp-eth (only for l2tap config)
* esp_eth.h now includes the original ethernet header and the
ethernet-netif glue layer
* Updated examples and test to explicitely use esp-eth dependency if
needed
2022-06-09 07:55:40 +00:00
Marius Vikhammer
c8617fe965 docs: fix all doxygen warnings
Doxygen warnings would previously not result in a failed pipeline.
Fixed this as well as all current warnings.
2022-05-12 14:50:03 +08:00
xueyunfei
26fa8260b1 Doc:update wifi api docs
* Add documents related to espnow config rate

* Optimization set dns server api description
2022-04-24 21:20:54 +08:00
morris
cc71e645be Merge branch 'feature/ksz8863rll_support' into 'master'
ESP IDF infrastructure preparation for ksz8863rll support

See merge request espressif/esp-idf!17203
2022-04-14 10:51:27 +08:00
Mahavir Jain
467e9c07d6 lwip: fix build with CONFIG_LWIP_DHCPS disabled
Also added example build configuration for this option.
2022-04-11 12:31:17 +00:00
Ondrej Kosta
4051b80b4d esp_netif: remove dependency of L2 TAP Interface from netif_lwip
esp_eth: extended infrastructure to optionally provide more advanced access to MAC/PHY layers
2022-04-08 16:40:29 +02:00
David Cermak
3d1c05aefb lwip/dhcps: Add dhcps callback argument for associated netif 2022-03-13 19:40:00 +01:00
David Cermak
c005b04d1c lwip/dhcps: Support for dynamic dhcp server instances 2022-03-13 19:39:21 +01:00