Commit Graph

599 Commits

Author SHA1 Message Date
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