Commit Graph

244 Commits

Author SHA1 Message Date
Ondrej Kosta
d15a9c2c48 feat(esp_eth): a new folder structure of the driver and other improvements
Fixed memory leak in emac_esp_new_dma function.

Polished ESP EMAC cache management.

Added emac_periph definitions based on SoC features and improved(generalized) ESP EMAC GPIO
initialization.

Added ESP EMAC GPIO reservation.

Added check for frame error condition indicated by EMAC DMA and created a target test.
2024-05-14 08:23:31 +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
laokaiyao
65b1fd33d3 ci(esp32c5mp): disable the unsupported tests 2024-04-07 12:13:29 +08:00
David Cermak
965ba606a7 fix(esp_netif): Post IP_CHANGE event also if mask and GW is ANY
Closes https://github.com/espressif/esp-idf/issues/12927
2024-04-04 08:12:43 +02:00
Ondrej Kosta
6a09d98089 feat(esp_eth): added option to configure interrupt priority 2024-03-07 10:30:32 +01:00
David Cermak
c30f2825d5 fix(netif): Add missing SNTP get-reachablitiy API 2024-02-29 23:37:45 +08:00
David Cermak
feef14b43b fix(esp_netif): Prevent running esp_netif_sntp_init() multiple times
Closes https://github.com/espressif/esp-idf/issues/12854
2024-02-07 09:09:59 +01: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
Ondrej Kosta
ce388a4111 feat(esp_eth): Added support of internal EMAC for ESP32P4
Refactored internal EMAC DMA access.

Added MPLL acquire to manage access to the MPLL by multiple periphs.
2024-01-16 14:29:25 +01: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
Ivan Grokhotkov
6f9038809a
fix(esp_netif): move endian.h to linux component, fix macOS build
Co-authored-by: Radek Tandler <radek.tandler@espressif.com>
2023-12-19 23:00:48 +01:00
David Cermak
a1e92d3b34 fix(esp_netif): Update test-apps dependency patterns 2023-12-08 14:03:37 +00:00
xueyunfei
02c1a1c6af fix(dhcp server):dhcp server can not restore address pool 2023-12-05 15:56:20 +08:00
xueyunfei
5982d1cda4 Fix(dhcps):fix dhcp subnet option api dos not work issue 2023-11-15 10:53:50 +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
Xue Yun Fei
e64712b263 Merge branch 'lost_timer_failed_to_start_when_sta_is_connected' into 'master'
esp-netif:lost timer failed to start when sta is disconnected

Closes WIFI-5984

See merge request espressif/esp-idf!24076
2023-10-19 14:12:17 +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
Zim Kalinowski
fa1a3ce0b5 Merge branch 'refactor/components_linux_compatible' into 'master'
Exclude all currently incompatible components from Linux build

Closes IDF-8318 and IDF-5996

See merge request espressif/esp-idf!25598
2023-10-18 20:17:49 +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
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +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
xueyunfei
e9949d4782 lost timer failed to start when sta is connected 2023-10-09 02:14:25 +00:00
David Cermak
10a5fcf99e feat(esp_netif): PPP: Use RAM allocated pbufs instead of POOL (fixed size)
PPP netif: Used allocated packet buffers of exact size
for input to TCP/IP stack to consume less memory in download mode
(compared to the previously used fixed sized packet buffers)
2023-09-25 16:48:48 +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
Chen Yudong
2e11919f70 fix(ci): change build-test-rules files folder 2023-09-20 19:17:06 +08:00
Darian Leung
287bdc5e61 fix(test_apps): Trim builds of component test apps
Some component test apps do not use the "set(COMPONENTS main)" command in their
project level "CMakeLists.txt", thus leading to their builds pulling in all
ESP-IDF components.

This commit trims the build of multiple component test apps:

- Add "set(COMPONENTS main ...)" to project level "CMakeLists.txt"
- Add missing "PRIV_REQUIRES" in some "main" component "CMakeLists.txt"

Also removed repeated configuraiton options in legacy_i2c_driver/sdkconfig.ci.defaults
as they are already specified in legacy_i2c_driver/sdkconfig.defaults
2023-09-18 17:16:37 +08:00
xueyunfei
fff7c6a399 fix(dhcp server):fix set dhcp server poll fail issue 2023-09-13 10:20:02 +08:00
Armando
7dbd3f6909 feat(ci): Enable p4 example, test_apps and unit tests CI build 2023-08-24 12:51:19 +08:00
David Cermak
ca44460359 esp_netif: Fix Wno-format issues 2023-08-14 14:13:33 +02:00
David Čermák
70951831c0 Merge branch 'bugfix/netif_default_sta_init' into 'master'
wifi: Fix default wifi-netif creation to assert if no event loop

Closes IDFGH-10321

See merge request espressif/esp-idf!24361
2023-07-21 21:56:37 +08:00
David Cermak
20fcc23f88 fix(wifi): Fix default wifi-netif creation to assert if no event loop
- Added ESP_ERROR_CHECK() checks to `esp_wifi_set_default_wifi_..._handlers()` calls
- Added ESP_ERROR_CHECH() to `esp_netif_attach_wifi_...()` calls
- Updated documentation to reflect the changes

Closes https://github.com/espressif/esp-idf/issues/11580
2023-07-10 16:56:16 +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
KonstantinKondrashov
e72061695e all: Removes unnecessary newline character in logs
Closes https://github.com/espressif/esp-idf/issues/11465
2023-06-09 03:31:21 +08: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
David Cermak
97e785c01d lwip:esp_netif: Send Periodic Gratuitous ARP only on valid IPv4
It was possible that the device would send a Gratuitous ARP before
acquiring a valid address, advertising it has 0.0.0.0 address.
2023-03-17 09:18:53 +01: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