Commit Graph

771 Commits

Author SHA1 Message Date
Jiang Jiang Jian
f3a32bc687 Merge branch 'fixbug/baidu_tcp_ooseq_assert' into 'master'
lw-ip:fixbug for  tcp ooseq assert

Closes AUD-4354

See merge request espressif/esp-idf!22376
2023-03-14 14:45:06 +08:00
David Cermak
ffd1386a2e lwip: Fix lwiopts macro expansion
Minor issue in lwipopts.h in macro expansion in parameters (cosmetic
change: it expands correctly but doesn't pass the expected argument)
2023-03-13 19:32:11 +01:00
xueyunfei
336fc879b3 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-13 15:21:26 +08:00
xueyunfei
ad0b32c662 lwip: solve some routers do not forward multicast packet issue 2023-03-08 16:58:29 +08:00
Jiang Jiang Jian
df6b33712f Merge branch 'Bugfix/softap_support_CIDR' into 'master'
Bugfix for softap support CIDR

Closes IDFGH-8574

See merge request espressif/esp-idf!22471
2023-03-02 14:03:00 +08:00
David Čermák
956e62c461 Merge branch 'feature/lwip_ipv6_only' into 'master'
lwip: Support IPv6 only mode

Closes IDF-6023

See merge request espressif/esp-idf!20468
2023-03-01 21:38:10 +08:00
David Cermak
5f6cb31105 lwip: Support IPv6 only mode 2023-02-27 08:53:34 +01:00
xueyunfei
4f0732cf05 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-02-24 14:24:49 +08:00
David Cermak
708641204e lwip: Add missing esp_sntp_enabled() 2023-02-24 07:23:55 +01:00
xueyunfei
2f6b681b1a lwip:optimization dhcp coarse timer 2023-02-08 16:29:28 +08:00
David Čermák
080fd7e14f Merge branch 'bugfix/lwip_dhcp_restore_last' into 'master'
lwip: fix dhcp_server path (GitHub PR)

Closes IDFGH-9297 and IDFGH-9309

See merge request espressif/esp-idf!22251
2023-02-08 15:07:49 +08:00
Jiang Jiang Jian
f4c14a6bf4 Merge branch 'bugfix/lwip_sntp_cpp_fix' into 'master'
esp_sntp: Fix c++ compile issue in esp_sntp.h (GitHub PR)

Closes IDFGH-9212 and IDFGH-9239

See merge request espressif/esp-idf!22159
2023-02-07 14:36:39 +08: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
e8ee09d817 lwip/sntp: Fix esp_sntp_ API races
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-01-31 18:25:35 +01:00
George Joseph
c8f0ec7fa4 esp_sntp: Fix c++ compile issue in esp_sntp.h
Added a cast to esp_sntp_operatingmode_t in sntp_setoperatingmode()'s
call to esp_sntp_setoperatingmode(operating_mode).  Althouogh C
doesn't require the cast, C++ does.  Otherwise you get...

error: invalid conversion from 'u8_t' {aka 'unsigned char'}
    to 'esp_sntp_operatingmode_t'
2023-01-31 07:54:30 +00: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 Čermák
2f1d30d155 Merge branch 'bugfix/lwip_core_locking' into 'master'
esp_netif/lwip: Fix core-locking config

Closes IDFGH-8445, IDFGH-9098, and IDFGH-9063

See merge request espressif/esp-idf!20840
2023-01-18 20:31:25 +08: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
Cao Sen Miao
94120b82c2 esp32h2: add build test 2023-01-17 10:29:04 +08:00
David Cermak
d964aaceac lwip: Mark PPP officially supported
Closes https://github.com/espressif/esp-idf/issues/10249
2023-01-04 14:20:20 +01:00
yuexia
032ebd76cb esp32c6: support wifi 6 2022-12-29 11:48:36 +08:00
Jiang Jiang Jian
be94097eab Merge branch 'Bugfix/softap_excedes_the_range_of_subnet' into 'master'
dhcp:bugfix softap excedes the range of subnet

Closes IDF-6138

See merge request espressif/esp-idf!20831
2022-12-19 13:41:35 +08:00
xueyunfei
1ae1723d23 dhcp server:bugfix softap excedes the range of subnet 2022-12-16 14:25:04 +08:00
zhangwenxu
fd49a818f8 lwip: add menuconfig option to enable UDP debugging log 2022-12-16 06:12:50 +00:00
Abhik Roy
627d03182a Merge branch 'components/lwip/napt_debug_enable' into 'master'
components/lwip: Add menuconfig option to enable NAPT debugging.

See merge request espressif/esp-idf!21260
2022-12-14 15:27:48 +08:00
Abhik Roy
c92f5faa70 components/lwip: Add menuconfig option to enable NAPT debugging,
removed L2_TO_L3_COPY in LWIP Kconfig,
Also added DHCP server start log.
2022-12-02 21:57:53 +05:30
xueyunfei
7490a1553d 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-11-23 11:57:47 +00:00
zhangyanjiao
ff54ae22f7 lwip: fix the bug that long time to get IP
Closes WIFI-4932
2022-11-03 12:01:13 +08:00
xueyunfei
d1abdf47c4 lwip timer:optimization dhcp fine timer 2022-11-01 20:49:23 +08:00
Song Ruo Jing
be0fdfa176 soc: Add a soc cap, SOC_CLK_RC_FAST_D256_SUPPORTED, for whether the target has the RC_FAST_D256 clock 2022-11-01 11:23:26 +08:00
Song Ruo Jing
2557e24a28 ci: Enable esp32c6 example, test_apps, and unit tests CI build stage 2022-11-01 11:23:21 +08:00
Xue Yun Fei
c941691711 Merge branch 'Bugfix/increase_ping_task_stack_size' into 'master'
lwip:bugfix for increase ping task stack size

Closes WIFI-4903

See merge request espressif/esp-idf!20664
2022-10-19 19:19:25 +08:00
xueyunfei
8c17b04cef lwip:bugfix for increase ping task stack size 2022-10-19 10:49:13 +08:00
xueyunfei
bfaaa86775 Lwip:add TCP Fin2 timeout configuration 2022-10-18 15:40:43 +08:00
David Cermak
1f2c16af97 lwip/test: Add SNTP cases to check NTP timestamp overflow 2022-10-03 17:34:42 +02:00
David Cermak
ad0da9cd2b lwip: Migrate unit tests to test_apps 2022-09-29 10:40:28 +02:00
David Cermak
9e31c5077d lwip: Document 32 bit NTP timestamp converstion to 64b time_t 2022-09-21 17:38:37 +02:00
David Cermak
4959b0a213 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:21:21 +02:00
David Cermak
14c6d3a889 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 13:03:53 +00: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
David Cermak
8b40579aa4 lwip: Move wifi's custom pbuf alloc/free to IRAM if config 2022-05-31 16:21:47 +02:00
David Cermak
0e71a325de lwip/wifi: Improve Rx throughput on the wifi defaults (sta+ap) 2022-05-31 15:23:06 +02:00
yuanjm
0ae030d0ca fix(Kconfig): Fix lw-ip Kconfig display garbled characters 2022-05-27 02:48:45 +00:00
yuanjm
667a7c6cd0 feat(netif): Add NETIF_FLAG_MLD6 flag for eth netif
Closes https://github.com/espressif/esp-idf/issues/8602
2022-05-20 11:26:27 +00:00
David Cermak
60fc1ae035 lwip: Removed incorrect-fix 358ee481 2022-05-18 17:11:35 +02:00
David Cermak
d50739adec lwip: forgotten ip4_route_src_hook to IRAM 2022-05-18 17:11:35 +02:00
David Cermak
e7f19f39bc lwip: Fix the CI 2022-05-18 17:11:35 +02:00
David Cermak
a6154a5f10 lwip: Update default MEMP_NUM_SYS_TIMEOUT if timers on-demand 2022-05-18 17:11:35 +02:00
David Cermak
5d6afa3c4b dhcp: Implement additional dhcp options 2022-05-18 17:11:35 +02:00
David Cermak
1564e8d5a9 lwip: Implement DHCP hook supporting MTU option 2022-05-18 17:11:35 +02:00
David Cermak
5aa3be11fd dhcpserver: Minor #idfef fix 2022-05-18 17:11:35 +02:00
David Cermak
b6eb9002a8 add dhcp custom values 2022-05-18 17:11:35 +02:00
David Cermak
356bc603c4 lwip: Support DHCP restore last IP 2022-05-18 17:11:35 +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
65bf5f2b10 lwip: Add mem-heap options to support ALLOCATION_FROM_SPIRAM_FIRST 2022-05-18 17:10:42 +02:00
David Cermak
06263efe0b lwip: Add IPv4 route hook to the esp32 port 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
Darian Leung
e08d574a5d lwip: Update AFL host test mock
This commit updates and refactors the AFL host test mock as follows:
- Isolates the mock so that it only relies on lwip component and linux stdlib headers
- Grouped all mock functions in 'esp32_mock.h/c'
- Updates the lwip esp32 port files to include 'esp32_mock.h' when building for linux
- Use host stdlib headers instead of xtensa stdlib headers
2022-04-29 15:11:44 +08:00
Darian Leung
4e4f20d82a lwip: Fix extra or missing includes 2022-04-29 15:11:44 +08:00
Jeff H
5ebd86ab6a add option to route LWIP logs through ESP_LOG interface
Signed-off-by: xueyunfei <xueyunfei@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/8785
Closes https://github.com/espressif/esp-idf/issues/8361
2022-04-25 16:35:04 +08:00
Armando
c4bcf1117c esp_hw_support: move soc_memory_types.h helper functions into esp_hw_support 2022-04-08 11:46:10 +08:00
David Čermák
3692b15965 Merge branch 'feature/lwip_dns_debug_logs' into 'master'
lw-IP: Add DNS debug option.

Closes IDFGH-7076

See merge request espressif/esp-idf!17668
2022-04-06 21:59:09 +08:00
Mengsk
42efbb1a57 Add lwip dns debug option. 2022-03-30 15:45:56 +02:00
Ondrej Kosta
c69b4c817b Fixed Ethernet lwIP netif error indication 2022-03-22 07:17:40 +00:00
David Cermak
27375c7917 esp_netif: Cleanup dhcp-server allocations 2022-03-13 19:40:00 +01:00
David Cermak
1b49cf373f lwip/dhcps: Fix fuzzer compilation 2022-03-13 19:40:00 +01:00
David Cermak
3d1c05aefb lwip/dhcps: Add dhcps callback argument for associated netif 2022-03-13 19:40:00 +01:00
David Cermak
775c3a6253 lwip/dhcps: Add simple start/stop unit cases 2022-03-13 19:40:00 +01:00
David Cermak
5f135741a1 lwip/dhcpserver: Add return value to API that could fail 2022-03-13 19:40:00 +01:00
David Cermak
76e9d3cad0 lwip/dhcpserver: Add doxy documentation 2022-03-13 19:40:00 +01:00
David Cermak
afe6bc0c88 lwip/dhcp_server: Fix mem-leaks caught by UT's 2022-03-13 19:40:00 +01:00
David Cermak
adc00d1813 lwip: Fix fuzzer layers after dhcps update 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
David Cermak
bab051f450 lwip/dhcps: Cleanup internal lwip and esp-netif dependency 2022-03-13 19:38:15 +01:00
David Cermak
795b7ed993 esp_netif: Remove tcpip_adapter compatibility layer 2022-03-10 08:19:43 +01:00
David Cermak
92f7ecd632 lwip: Security fixes; PPPoS null-deref; NAPT ip-forward
* Cherry-pick important fixes to 2.1.2-esp
  - CVE-2020-22283: Attacker could craft a packet that would disclose 8 bytes of some heap memory:
    - icmp6: Don't copy too much data
    - icmp6: Fix copying of chained pbuf in reply
    - icmp6: keep to the RFC and send as much as possible with icmp6 error messages
  - CVE-2020-22284: ZEP - ZigBee Encapsulation Protocol/6LoWPAN is not supported in IDF,
    the netif module (zepif.c) is not included in the build, but users can still inject
    the file into compilation process, implement IO interface and use this.
    - zepif: Copy possibly chained output pbuf properly
    - Add #define for minimum IPv6 MTU length
    - pbuf: Add pbuf_copy_partial_pbuf library function
* PPPoS: Fix null-deref when processing double break packet
  - pppos: fix in_tail null (espressif/esp-lwip@537c69d5)
  - PPP: Add test exhibiting empty packet null-deref (espressif/esp-lwip@202a07da)
* NAPT: Fix PBUF_REF type to clone the pbuf before forwarding
  - IP-FORWARD: If packet-type is PBUF_REF clone it before forwarding
  - Add NAPT unit test to exercise NAT feature for both RAM and REF pbuf types
* version: Update version numbers to match 2.1.2-esp

* Update submodule: 2749568fe1...76303df238
  - test/napt: Add unit test for IP forward with PBUF_REF (espressif/esp-lwip@76303df2)
  - napt: Fix PBUF_REF type to clone the pbuf before forwarding (espressif/esp-lwip@39068263)
  - version: Update version numbers to match 2.1.2-esp (espressif/esp-lwip@2b922919)
  - pppos: fix in_tail null (espressif/esp-lwip@537c69d5)
  - PPP: Add test exhibiting empty packet null-deref (espressif/esp-lwip@202a07da)
  - pbuf: Add pbuf_copy_partial_pbuf library function (espressif/esp-lwip@1c9cd9c1)
  - Add #define for minimum IPv6 MTU length (espressif/esp-lwip@d2dc577b)
  - zepif: Copy possibly chained output pbuf properly (espressif/esp-lwip@64ab7f2a)
  - icmp6: Don't copy too much data (espressif/esp-lwip@4a64731b)
  - icmp6: Fix copying of chained pbuf in reply (espressif/esp-lwip@7c822ff4)
  - icmp6: keep to the RFC and send as much as possible with icmp6 error messages (espressif/esp-lwip@29100ab6)
  - dns: Add API to clear dns cache (espressif/esp-lwip@ee59f77d)
  - CI: Fixed adding gitlab key (espressif/esp-lwip@5a2bdba7)
  - test case: modify test case test_tcp_new_max_num_remove_FIN_WAIT_1 (espressif/esp-lwip@6b090f7d)

Closes https://github.com/espressif/esp-idf/issues/8300
Closes https://github.com/espressif/esp-idf/issues/8451
2022-03-08 09:38:42 +01:00
Sudeep Mohanty
a9fda54d39 esp_hw_support/esp_system: Re-evaluate header inclusions and include directories
This commit updates the visibility of various header files and cleans up
some unnecessary inclusions. Also, this commit removes certain header
include paths which were maintained for backward compatibility.
2022-03-07 11:18:08 +05:30
Omar Chebib
95cc6cfac4 LWIP: Make system timeout POSIX compliant (required by lwip_select)
`lwip_select` uses `sys_arch_sem_wait` function making the assumption that it
is POSIX compliant. This commit makes that function wait for at least
timeout (milliseconds), as required by POSIX specification.

* Relates to https://github.com/espressif/esp-idf/issues/7514
2022-02-10 10:36:09 +00:00
Darian Leung
57fd78f5ba freertos: Remove legacy data types
This commit removes the usage of all legacy FreeRTOS data types that
are exposed via configENABLE_BACKWARD_COMPATIBILITY. Legacy types can
still be used by enabling CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY.
2022-02-09 23:05:45 +08:00
David Čermák
5dcd630444 Merge branch 'feature/dhcps_more_client_info' into 'master'
lw-IP: Add more client's infor to dhcp server cb

Closes IDFGH-5839

See merge request espressif/esp-idf!16433
2022-01-28 07:31:32 +00:00
David Cermak
05911fd4a1 lwip: Add dhcp servers post processing hook
In order to access DHCP messages from clients in different states
and possibly to implement custom handlers that alter the current state,
e.g. reject a client with specific hostname using NAK.
2022-01-26 07:18:48 +01:00
David Cermak
e3d71c984a lwip: Add client's MAC addr to dhcp server cb
* Extended storage for staipassigned events to pass client's MAC address.
* Added client's MAC to dhcp server callback
* Posting the staipassigned events with clients IP and MAC address
2022-01-25 13:08:43 +01:00
David Čermák
004c02b8bd Merge branch 'contrib/github_pr_8164' into 'master'
Replace lwIP byte order functions with built-in functions (GitHub PR)

Closes IDFGH-6512

See merge request espressif/esp-idf!16627
2022-01-18 12:35:12 +00:00
David Cermak
5d7489eae4 lwip: Fix minor lwip dependency issue
Clean-up config option rename file
2022-01-14 16:41:38 +01:00
David Cermak
b597dbff7c vfs: Warn aobut using deprecated select option
Add LWIP_USE_ONLY_LWIP_SELECT for compatibility, as the dependency may
break backward compatibility if LWIP_USE_ONLY_LWIP_SELECT=y.
2022-01-14 16:41:38 +01:00
David Cermak
cfc52bacbc lwip: Cleanup lwipopts flags and options
* Removed unused and flags
* Fixed comments
* Order of flags lwip/esp-specific
* Used 1/0 logic for boolean flags
2022-01-14 16:41:38 +01:00
Jiacheng Guo
d6c4e2cb34 lwip: add ip6 input hook
The MR adds Kconfig options and a default weak implementation for the
lwIP ip6 input hook.
2022-01-13 12:23:38 +08:00
David Čermák
8f476e586f Merge branch 'bugfix/lwip_lowpan6_config' into 'master'
lw-ip: Prepare lwip CMake for 6LoWPAN options (GitHub PR)

Closes IDFGH-5731

See merge request espressif/esp-idf!14956
2022-01-11 09:09:08 +00: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
David Cermak
6f2e0d53a4 lwip: Fix spacing issue 2022-01-07 16:38:40 +01:00
David Cermak
1882cbe44e mdns: Make fuzzer layers compatible with llvm>=6 2022-01-07 16:18:32 +08:00
Jiacheng Guo
d610282742 openthread: sync lwip multicast groups to Thread stack
This MR synchornizes the lwIP multicast groups to the Thread stack. This
will fix sockets failing to receive messages sent to multicast groups
issue.
2022-01-04 20:08:15 +08:00
José Simões
dd9fe9761a
Replace lwIP byte order functions with built-in functions 2021-12-29 09:49:18 +00:00
Ivan Grokhotkov
7a5ed12c6b lwip: make some of the component dependencies optional 2021-12-13 10:53:22 +01:00
yuanjm
9c1520d1f9 lwip: Update LWIP_DHCP_OPTIONS_LEN default value when LWIP_DHCP_DISABLE_VENDOR_CLASS_ID disabled
Closes https://github.com/espressif/esp-idf/issues/7742
2021-12-01 07:19:18 +00:00
Andrii Filippov
6a11f6fb20 Merge branch 'bugfix/replace_PING_CHECK_macro' into 'master'
Replace PING_CHECK macro by ESP_GOTO_ON_FALSE

Closes IDF-4241

See merge request espressif/esp-idf!15930
2021-11-30 17:20:51 +00:00
AndriiFilippov
f42d1f48c6 unified replace PING_CHECK by ESP_GOTO_ON_FALSE
unified replace PING_CHECK by ESP_GOTO_ON_FALSE

replace PING_CHECK macro by ESP_GOTO_ON_FALSE

Include header

grammar fix
2021-11-30 10:12:09 +01:00
Shu Chen
a08d2732d5 Merge branch 'bugfix/esp32h2_iperf_udp_WTD_trigger' into 'master'
fix watch dog trigger when iperf udp is running

See merge request espressif/esp-idf!15625
2021-11-25 01:56:26 +00:00
zhangwenxu
0fe32adb58 iperf: handle NO_MEM error in OpenThread iperf
* simplify iperf send/recv loop
2021-11-24 11:20:32 +08:00
Sudeep Mohanty
722a6b7cf4 docs: update programming guide for esp32s3 chip independent system chapters
This commit updates the chip independent system chapters of the
programming guide for esp32s3.

Signed-off-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
2021-11-23 12:48:10 +05:30
Roland Dobai
766aa57084 Build & config: Remove leftover files from the unsupported "make" build system 2021-11-11 15:32:36 +01:00
Cao Sen Miao
599227a1b6 ESP8684: Add esp8684 target to other repo for passing build 2021-11-06 17:33:45 +08:00
Sudeep Mohanty
4846222102 freertos: update freertos folder structure to match upstream
The following changes have been made:
1. All FreeRTOS kernel source files are now placed in the
   freertos/FreeRTOS-Kernel folder to match with the upstream folder structure.
2. All kernel include files are now placed in freertos/FreeRTOS-Kernel/include.
3. All port files are now placed in freertos/FreeRTOS-Kernel/portable.
4. All additions/customizations are placed in freertos/esp_additions.
5. All other miscellaneous files (README, License files etc.) are moved to
   freertos/FreeRTOS-Kernel folder to match with the upstream.
6. Updated esp-cryptoauthlib to latest commit to resolve FreeRTOS
   include dependencies.

Signed-off-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
2021-10-29 12:05:13 +08:00
David Cermak
7b91343ca7 lwip: Fix ping socket create to allow for fd=0
0 is a valid socket description, so should be accepted after we create a
socket. In IDF, though, it's just a theoretical issue, as customers have
to configure:
* FD_SETSIZE = CONFIG_LWIP_MAX_SOCKETS (from makefiles)
* CONFIG_VFS_SUPPORT_IO = n (from menuconfig)

(this configuration is currently broken, but if we adjust the IDF here
and there we could reproduce the issue)
2021-10-26 08:19:26 +02:00
Liu Han
49cd81ccf3 lwip/dhcp: add configure for enable vendor class identify option
Closes https://github.com/espressif/esp-idf/issues/6786
2021-10-22 11:17:59 +08:00
xueyunfei
e451a9b2e1 add function for deinit lwip timers 2021-10-13 15:49:47 +08:00
David Čermák
d1ac84e68e Merge branch 'bugfix/lwip_move_icmp_tests_from_eth' into 'master'
CI/lw-ip: Move ICMP test cases from eth component

Closes IDF-3863

See merge request espressif/esp-idf!15200
2021-10-01 07:06:32 +00:00
David Cermak
8b45ac0fbc lwip: Add ping test case (moved from eth component) 2021-09-22 15:22:18 +02:00
yuanjm
9e2f15ae51 lwip: Support DHCP option length configuration 2021-09-18 17:24:27 +08:00
Sudeep Mohanty
0912df611f freertos: updated the location of FreeRTOSConfig.h
Moved FreeRTOSConfig.h from include/freertos to include/esp_additions/freertos.
Updated FreeRTOS.h file to include FreeRTOSConfig.h without the
freertos/ prefix to match with the upstream file.
Renamed architecture specific FreeRTOSConfig.h files to FreeRTOSConfig_arch.h

Signed-off-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
2021-09-14 08:46:01 +05:30
yuanjm
f2d32d5c0a dhcpserver: support cplusplus
Closes https://github.com/espressif/esp-idf/issues/7494

Merges https://github.com/espressif/esp-idf/pull/7526
2021-09-08 15:52:12 +08:00
David Cermak
213727c4f2 lwip: IPv6: Add support for DHCPv6 stateless config
Closes https://github.com/espressif/esp-idf/issues/5245
2021-09-07 14:48:21 +08:00
Jiang Jiang Jian
cec0f5edfb Merge branch 'optimization/config_option_LWIP_TCPIP_CORE_LOCKING' into 'master'
optimization config option LWIP_TCPIP_CORE_LOCKING

Closes IDF-2478

See merge request espressif/esp-idf!11809
2021-08-25 08:52:43 +00:00
David Cermak
e54523708d Merge branch 'master' into feature/lwip_sntp_max_servers 2021-08-24 18:16:07 +02:00
David Čermák
756cc4f8dc Merge branch 'bugfix/esp_sntp_declare' into 'master'
lw-ip: Fix sntp custom options if sntp_get_system_time used

Closes FCS-710

See merge request espressif/esp-idf!14556
2021-08-23 15:11:26 +00:00
David Cermak
457d837b40 lwip: Fix sntp custom options if sntp_get_system_time used 2021-08-23 11:47:44 +02:00
David Čermák
ab077df865 Merge branch 'feature/lwip_fstat' into 'master'
lw-ip: Add partial fstat vfs support to set st_mode

Closes IDFGH-5459

See merge request espressif/esp-idf!14854
2021-08-20 13:41:09 +00:00
David Cermak
d55ed5c11b lwip: Add partial fstat vfs support to set st_mode
Closes https://github.com/espressif/esp-idf/issues/7198
2021-08-19 17:29:29 +02:00
ivmarkov
ee531c748a lwip: Fix ICMP Ping on specific iface
Fix broken parentheses in setsockopt call

Merges https://github.com/espressif/esp-idf/pull/7397
2021-08-19 09:55:26 +02:00
xueyunfei
0d07569fff optimization config option LWIP_TCPIP_CORE_LOCKING 2021-08-18 21:32:13 +08:00
yuanjm
e9dab3203e ping_sock: Fix esp_ping_new_session may return ESP_OK when the error occured
Closes https://github.com/espressif/esp-idf/issues/7363
2021-08-05 10:38:38 +08:00
Emil Muratov
34be62665c lwip: menuconfig option to enable ntp servers option request via DHCP
This could be toggled on/off, off is the default.
SNTP debug option. Example update for ntp via DHCP

Signed-off-by: Emil Muratov <gpm@hotplug.ru>
2021-08-02 01:21:35 +03:00
Emil Muratov
80810971c8 lwip menuconfig option for max number of SNTP servers
LWIP has two definess for setting max number of sntp servers:
 - Total number of handled servers
 - max number of sntp's picked via DHCP

by default both values are equal to 1, but could be set separately

Signed-off-by: Emil Muratov <gpm@hotplug.ru>
2021-07-27 22:38:36 +03:00
Jiacheng Guo
a74bbde9c5 openthread: support 1.3 border routing features
- Support ICMPv6 auto config
- Support SRP service delegation
- Publish _meshcop._mdns service
2021-07-21 10:44:10 +08:00