Commit Graph

658 Commits

Author SHA1 Message Date
xueyunfei
ec63da0753 Backport some lwip bugs for 5.0
* Update submodule: git log --oneline 6bf7044c0368d587f70f7083e39e0a619b4d5788..542ba2997f6cc14fe9c3d781bf9b0d890cd70bb1
Detailed description of the changes:
- fix router forwarding flag set (esp-lwip@542ba299)
- optimize add TCP ooseq buf timeout configuration (esp-lwip@4a8286ab)
2023-12-15 15:28:53 +08:00
xueyunfei
4bd2b33d9b Fix(tcp):optimize tcp connection 2023-10-26 13:00:44 +08:00
xueyunfei
1e3bb1469a fix(dhcp server):fix set dhcp server poll fail issue 2023-10-26 12:59:57 +08:00
Jiang Jiang Jian
64ceda77f4 Merge branch 'feat/imporve_iperf_performance_v5.0' into 'release/v5.0'
feat(wifi): optimize iperf performance (Backport V5.0)

See merge request espressif/esp-idf!26406
2023-10-19 10:33:28 +08:00
xuxiao
d2b82b47c7 feat(wifi): optimize iperf performance (Backport V5.0) 2023-10-11 17:14:52 +08:00
Abhik Roy
08a83bbea5 feat(lwip): Fixes and Improvements for NAPT and SBOM Support
- napt: restore to the initial state in deinit (espressif/esp-lwip@5c4f899f)
- napt: Fix ip_portmap_add() to keep only one port mapping (espressif/esp-lwip@d65ad241)
- napt: Fix clean compilation (espressif/esp-lwip@7033e26f)
- napt: Fix IP forwarding when forward netif enable NAPT (espressif/esp-lwip@bc78df87)
- napt/stats: Move some napt counters to stats module (espressif/esp-lwip@b55e64ae)
- ip_napt_maint: Fix timestamp overflow handling (2.1.3) (espressif/esp-lwip@a7e0a50c)
- napt: Fixes and improvements (2.1.3) (espressif/esp-lwip@fadb9109)
- Add sbom descripton file for Software BOM (espressif/esp-lwip@f07097d7)
2023-10-06 19:46:18 +11:00
xueyunfei
bc003fc6d4 fix(dhcp server): Fix dhcp server address pool issue 2023-08-21 11:54:30 +08:00
Abhik Roy
73d238cdfb fix: Added check to ensure safe restart of dhcp fine timer 2023-08-17 19:04:33 +10:00
muhaidong
8b59c17ef0 fix(wifi): fix some wifi bugs 230726
1. process association request verify ssid
2. fix ftm timer macro issue
3. lower the dhcp discover and request retry backoff time
2023-07-26 16:52:13 +08:00
wuyuanyi135
5689db1ddf Fix incorrect invocation of the hook LWIP_HOOK_DHCPS_POST_APPEND_OPTS
Fix https://github.com/espressif/esp-idf/issues/11373
2023-07-07 14:14:15 +02:00
xueyunfei
64911ed444 Lwip:Backport some lwip bugs to 5.0
* Update submodule: git log --oneline d5e56d06658ae11292be1baea56204f7120b6fa7..57c29648ff40e2a19a51683717928aaf766a0495

Detailed description of the changes:
- ip6: add a hook for ip6 source address selection(esp-lwip@57c29648)
- netdb:fixed bug for getaddrinfo returns null when IPV4 mapped address (esp-lwip@dafc8225)
2023-06-13 11:55:49 +08:00
David Cermak
a18d019fc9 lwip: Fix lwiopts macro expansion and dhcps-test
Minor issue in lwipopts.h in macro expansion in parameters (cosmetic
change: it expands correctly but doesn't pass the expected argument)
Fix lwip thread safety issue in tests: dhcp server should be started and
stopped only in lwip context/thread. Without this fix, the test would
fail if `CONFIG_LWIP_CHECK_THREAD_SAFETY=y`
Adds CONFIG_LWIP_TCPIP_CORE_LOCKING=y to some mqtt example tests (the
same configs as used in v5.1)
2023-03-21 11:21:07 +01:00
David Cermak
285362e8d6 lwip: Add missing esp_sntp_enabled() 2023-03-21 11:09:56 +01:00
David Cermak
42594bffe4 lwip/sntp: Fix esp_sntp_ API races (v5.0)
Some of the esp_sntp_...() APIs that wrap lwip's SNTP
module use tcpip_callback() to execute the lwip functionality
in the correct state (either with locked TCP/IP core,
or within the TCP/IP thread).
tcpip_callback() however doesn't wait for completion of the callback,
which doesn't prevent from using the stack variables after destroy
if used as a parameter.
Introduced in a71fa82.
Fixed by using of tcpip_api_call() instead of the tcpip_callback().

Closes https://github.com/espressif/esp-idf/issues/10611
2023-03-21 11:09:56 +01:00
David Cermak
5b75693522 esp_netif/lwip: Fix core-locking config (v5.0)
* 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

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-03-21 11:09:56 +01:00
xueyunfei
392533f0e2 Fixed bug for dhcp server support CIDR
Closes https://github.com/espressif/esp-idf/issues/10024

Closes https://github.com/espressif/esp-idf/issues/10559
2023-03-15 16:20:33 +08:00
xueyunfei
446b49cc15 dhcp server:bugfix softap excedes the range of subnet 2023-03-15 14:35:42 +08:00
xueyunfei
62983624ae 1 dhcp: Fix dhcp_fine_tmr() not to use netif after free
2 tcp_in/ooseq: Fix incorrect segment trim when FIN moved

* Update submodule: git log --oneline 10197b212a95c49c733fb18ffed56cafb0d196d4..d5e56d06658ae11292be1baea56204f7120b6fa7

Detailed description of the changes:
  - dhcp: Fix dhcp_fine_tmr() not to use netif after free (esp-lwip@d5e56d06)
  - tcp_in/ooseq: Fix incorrect segment trim when FIN moved (esp-lwip@9e62afff)
  - netdb:fixed addrtype and length in gethostbyname (esp-lwip@aee6b3ed)
  - lwip/napt: Added api to enable/disable napt based on lwip netif (esp-lwip@280c3d61)
  - lwip/dhcp: Fixed ondemand fine timers bug, that allowed only one dhcp (esp-lwip@86df9f44)
2023-03-15 14:35:42 +08:00
xueyunfei
3b46f2f698 lwip:optimization dhcp coarse timer 2023-03-15 14:35:42 +08:00
xueyunfei
6f311db07e lwip: solve some routers do not forward multicast packet issue 2023-03-15 14:35:42 +08:00
xueyunfei
651db95177 lwip:optimization dns ipv4 ipv6 timeir
* Update submodule: git log --oneline 33912690ea005e8ff05b2c579ebbf0a4189c3b00..705dd71d46779bf29653f1f1d7b1af5a09fb2aa7

Detailed description of the changes:
  - dhcp: init fine timer when dhcp start(esp-lwip@705dd71d)
  - ip6 timer: optimization lwip ip6 reassembly timer (esp-lwip@9813ea9a)
  - ip4 timer: optimization lwip ip4 reassembly timer (esp-lwip@ce1a7099)
  - dns timer: optimization lwip dns timer (esp-lwip@6b0bfc2e)
2022-12-06 16:06:57 +08:00
xueyunfei
ebd1609073 lwip timer:optimization dhcp fine timer 2022-12-06 16:04:21 +08:00
zhangyanjiao
4d46e8205a lwip: fix the bug that long time to get IP 2022-12-06 16:01:38 +08:00
xueyunfei
cd58bad218 Lwip:add TCP Fin2 timeout configuration 2022-10-21 16:23:54 +08:00
xueyunfei
9948de101d lwip:bugfix for increase ping task stack size 2022-10-21 16:21:06 +08:00
David Cermak
c7d1bcaf79 lwip: Fix close() might block forever if SO_LINGER=y
* Update submodule: git log --oneline ec115c720b8909364ec5898dc5cc430cc898192d..316cfc17ce24f2d5d65c9f28251ec43a59a74cb1

Detailed description of the changes:
  - tcp/close: Fix clean socket closure when lignering (espressif/esp-lwip@316cfc17)
  - tcp_in: Fix incomplete closure if linger active (espressif/esp-lwip@8b599aa1)
  - ci: Introduce lwip test apps (espressif/esp-lwip@0866f578)
2022-09-19 07:35:57 +02:00
David Cermak
09a8f171f2 lwip: Reference official 2.1.3-esp branch
Actual changes against 2.1.3-esp-dev:
* Fix IPv6 zoning violations
* Melted on-demand timer's commits into one
2022-08-16 15:07:54 +02:00
Ivan Grokhotkov
401c10ecfb build system: re-add -Wno-format as private flag for some components 2022-08-03 16:42:47 +04:00
Shu Chen
e380704731 Merge branch 'feature/otbr-nat64' into 'master'
openthread: add NAT64 and DNS64 support

See merge request espressif/esp-idf!18708
2022-08-03 12:01:23 +08:00
Jiacheng Guo
905856a054 openthread: add NAT64 and DNS64 support
* Add required configs and headers for NAT64 and DNS64
* Add hook for DNS name resolution
* Add NAT64 and DNS64 example commands
2022-08-01 15:31:49 +08:00
David Čermák
8d62485a12 Merge branch 'feat/lwip_dhcps_append_opts' into 'master'
lw-ip/dhcpserver: Support for adding extra opts

Closes IDFGH-973

See merge request espressif/esp-idf!19115
2022-07-29 14:02:20 +08: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
b5d13b9837 lwip/dhcpserver: Support for adding extra opts
This enables users appending an extra, user defined options in dhcp
server messages. Example of adding captive_portal option (160) to dhcp
offer message is provided:
* Add idf-lwip hook file (project makefile):
  idf_component_get_property(lwip lwip COMPONENT_LIB)
  target_compile_options(${lwip} PRIVATE "-I${PROJECT_DIR}/main")
  target_compile_definitions(${lwip} PRIVATE "-DESP_IDF_LWIP_HOOK_FILENAME=\"add_captive_portal.h\"")
* Implement appending (add_captive_portal.h):
  #pragma once
  #define LWIP_HOOK_DHCPS_POST_APPEND_OPTS(netif, dhcp, state, pp_opts) \
  if ((state)==DHCPOFFER) { *(pp_opts) = append_captive_portal_uri(*(pp_opts)); }
  static inline uint8_t *append_captive_portal_uri(uint8_t *optptr)
  {
    const static uint8_t DHCP_OPTION_CAPTIVE_PORTAL=160;
    const static char CAPTIVE_PORTAL_URI[]="my_uri";
    int size = sizeof(CAPTIVE_PORTAL_URI) - 1;
    *optptr++ = DHCP_OPTION_CAPTIVE_PORTAL;
    *optptr++ = size;
    for(int i = 0; i < size; ++i) {
        *optptr++ = CAPTIVE_PORTAL_URI[i];
    }
    return optptr;
  }

Merges https://github.com/espressif/esp-idf/pull/3308
2022-07-26 07:09:22 +00:00
Darian Leung
781d06af73 esp_hw_support: Remove compare_set.h API
This function removes the following legacy atomic CAS functions:

From compare_set.h (file removed):
- compare_and_set_native()
- compare_and_set_extram()

From portmacro.h
- uxPortCompareSet()
- uxPortCompareSetExtram()

Users should call esp_cpu_compare_and_set() instead as this function hides the details
of atomic CAS on internal and external RAM addresses.

Due to the removal of compare_set.h, some missing header includes are also fixed in this commit.
2022-07-22 00:06:06 +08: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
David Čermák
5548f5acd6 Merge branch 'bugfix/lwip_ondemand_timers_num_system_timeout' into 'master'
lw ip: Fix on-demand timers to update internal system touts

Closes IDFGH-7595

See merge request espressif/esp-idf!18724
2022-07-18 21:56:57 +08:00
David Cermak
58b0def0d9 lwip: Fix on-demand timers to update internal system touts
If on-demand timers (IGMP+MLD6) were enabled, idf updated user config
MEMP_NUM_SYS_TIMEOUT. The implementation of these timers are in lwip
project so the internal system timeout shall be updated accordingly,
enabling port layers to modify MEMP_NUM_SYS_TIMEOUT.

Closes https://github.com/espressif/esp-idf/issues/9150
2022-07-14 05:09:53 +00:00
Fu Hanxi
c0568611dd docs: changes docs supported targets tables 2022-07-14 08:26:32 +08:00
xueyunfei
45ad770c37 Icmp: get tos parameter in icmp reply 2022-07-05 11:37:41 +08:00
xueyunfei
b569f4069a bugfix for add ttl for ping socket 2022-07-05 11:37:41 +08: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
343cf2696e esp_eth: Reduce internal deps onto netif-glue 2022-06-09 07:55:40 +00:00
morris
aa3ddbc3c6 Merge branch 'test/enable_c2_target_tests' into 'master'
ci: enable target tests for ESP32-C2

Closes IDF-4989

See merge request espressif/esp-idf!18182
2022-06-03 16:41:24 +08:00
David Čermák
46e599c56d Merge branch 'feature/lwip_rework_patches' into 'master'
lw-IP: Reworked patches

Closes IDFGH-6197

See merge request espressif/esp-idf!17388
2022-06-03 15:26:55 +08:00
David Cermak
c67f4c2b4c lwip: Remove vanilla-lwip config until it's fully deployable 2022-06-02 20:45:24 +02:00
Michael (XIAO Xufeng)
6a8aed12ee ci: partially enable ut tests for esp32c2
Disabled test cases are tracked in:

 IDF-4465, IDF-5045, IDF-5057, IDF-5058, IDF-5059, IDF-5060, IDF-5061, IDF-5131

- test_fatfs: IDF-5136

- test_pm: IDF-5053

- test_cache_mmu: IDF-5138

- test_partitions: IDF-5137

- test_vfs: IDF-5139

- test_freertos: IDF-5140

- test_wpa_supplicant: IDF-5046

- test_mbedtls: IDF-5141

- test_pthread: IDF-5142

- test_protocomm: IDF-5143

- test_lightsleep: IDF-5053

- test_taskwdt: IDF-5055

- test_tcp_transport: IDF-5144

- test_app_update: IDF-5145

- test_timer: IDF-5052

- test_spi: IDF-5146

- test_rtc_clk: IDF-5060

- test_heap: IDF-5167

ci: fixed issues for tests of libgcc, ets_timer, newlib

test_pm: support on C2
2022-06-02 14:23:35 +08:00
David Cermak
7efcb5e625 lwip: Add missing null-checks, rename to vanilla-lwip 2022-06-01 20:38:40 +02:00
David Cermak
00377cf2e5 lwip/ci: Cleanup public header checker ignore list 2022-06-01 14:36:58 +02:00
Djordje Nedic
facab8c5a7 tools: Increase the minimal supported CMake version to 3.16
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system.
This is the version that provides most new features and also the one we use in our latest docker image for CI.
2022-06-01 06:35:02 +00:00