Commit Graph

570 Commits

Author SHA1 Message Date
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
David Čermák
f86140eb8d Merge branch 'feature/add_rdnss_kconfig' into 'master'
lw-ip: Add ND6 RDNSS DNS server Kconfig option

Closes IDFGH-5209

See merge request espressif/esp-idf!14090
2021-06-24 18:51:43 +00:00