Commit Graph

155 Commits

Author SHA1 Message Date
xueyunfei
b5e8c68b59 lwip:optimization dhcp coarse timer 2023-02-09 19:28:28 +08:00
xueyunfei
6abb3eb0b4 Lwip:Backport some lwip bugs to 4.3
* Update submodule: git log --oneline 76303df2386902e0d7873be4217f1d9d1b50f982..6fa02bd30daa656f896c7a36248253fb3b97660d

Detailed description of the changes:
  - dhcp: reduce the DHCP Request timeout(esp-lwip@6fa02bd3)
  - dhcp: optimization fine timer when dhcp start(esp-lwip@79182163)
  - ip6 timer: optimization lwip ip6 reassembly timer (esp-lwip@c943fc5a)
  - ip4 timer: optimization lwip ip4 reassembly timer (esp-lwip@17f41c9f)
  - dns timer: optimization lwip dns timer (esp-lwip@7f5ab42c)
  - napt: Fix clean compilation  (espressif/esp-lwip@6132c975)
  - Lwip:add TCP Fin2 timeout configuration (espressif/esp-lwip@15b4400e)
  - napt: Fix IP forwarding when forward netif enable NAPT (espressif/esp-lwip@c950063f)
  - napt/stats: Move some napt counters to stats module (espressif/esp-lwip@475d658a)
  - ip_napt_maint: Fix timestamp overflow handling (espressif/esp-lwip@2e904508)
  - napt: Fixes and improvements (espressif/esp-lwip@fb1f3552)
2022-12-14 14:56:06 +08:00
Jeff H
55e69bf9cb 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-07-26 09:55:39 +00:00
David Cermak
e00a689a77 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
* Minor fixes listed below: Fix client receive KOD, NAPT fixes, restore
  dhcp_cb, sntp docs, vendor class id (disabled)

* Update submodule: 2195f7416f...76303df238

Detailed description of the changes:
  - 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)
  - add function for deinit lwip timers (espressif/esp-lwip@2749568f)
  - dhcp: Fix build issue that set ESP_DHCP_DISABLE_VENDOR_CLASS_IDENTIFIER to true will build fail (espressif/esp-lwip@d827dbf7)
  - Document that sntp_setservername doesn't copy the string (espressif/esp-lwip@54acdb59) #6786
  - lwip/dhcp: add 60 option for vendor class identify (espressif/esp-lwip@ae7edc2a) espressif/esp-lwip#32
  - dhcp: Restore dhcp_cb on restart after dhcp_release_and_stop() (espressif/esp-lwip@55ea9d9c) #7217
  - napt: Fix disbale IPv6 and enable NAPT will build error (espressif/esp-lwip@74cf7f9f)
  - napt: fix checksum of UDP (espressif/esp-lwip@bb63eed1)
  - sntp: Fix client receive KOD packet that make pool MEMP_SYS_TIMEOUT not be freed (espressif/esp-lwip@1c1642fe)
  - test case: add tcp state and reset test cases. (espressif/esp-lwip@67deb805)

Closes https://github.com/espressif/esp-idf/issues/8300
Closes https://github.com/espressif/esp-idf/issues/8451
2022-03-09 10:33:31 +01:00
yuanjm
a8fd3ef48e lwip: Add macro to disable vendor class option 2021-11-23 19:42:47 +08:00
David Cermak
bb0eecee0e lwip: Fix sntp custom options if sntp_get_system_time used 2021-09-24 14:49:15 +08:00
liuhan
8767aa7a4f lwip: Add CONFIG_LWIP_ICMP and CONFIG_LWIP_ICMP6 to sperate the code 2021-06-25 16:36:11 +08:00
liuhan
424203e411 esp_netif: Add CONFIG_LWIP_DHCPS to sperate the code 2021-06-24 23:20:17 +08:00
David Cermak
c93298c31d lwip: Add config for DHCP client id; Fix DNS server idx assert issue
This commit brings two esp-lwip fixes to IDF:

1) Add configuration to disable DHCP client identification
2195f7416f
This config could be used to disable option 61 in DHCP packets, so that
clients will be identified by their  chaddr only.
(This is the lwip upstream original behaviour)

2) Fix server_idx increasing to DNS_MAX_SERVERS and trigger the LWIP_ASSERT
5a567d52f7
When lwip doesn't have DNS server and resolve a domain address, the server_idx
will increase to DNS_MAX_SERVERS, which will trigger the LWIP_ASSERT and make device crash.

Closes https://github.com/espressif/esp-idf/issues/6878
2021-06-23 12:52:18 +08:00
liuhan
38db3d9507 lw-ip: Fix LWIP_DEBUG define which is always defined 2021-04-23 18:25:17 +00:00
Angus Gratton
7703fcbd8d Merge branch 'bugfix/silent_asserts_v4.3' into 'release/v4.3'
freertos/lw ip: Support silent assertions (v4.3)

See merge request espressif/esp-idf!13011
2021-04-13 04:30:09 +00:00
yuanjm
4544b709e5 lwip: Fix spelling issues in lwip_debug.c 2021-04-12 05:42:50 +00:00
yuanjm
90696dad89 lwip: Add LWIP_IPV6 macro to strip IPv6 function in LWIP component 2021-04-12 05:42:50 +00:00
Angus Gratton
73d40cb813 lwip: Support silent assertion configuration
If silent assert configuration is enabled, LWIP asserts are now 'silent' also.

Also updates KConfig to note that LWIP asserts are also disabled when asserts
are disabled globally (this was already the behaviour, but the config item
suggested otherwise.)

Progress towards https://github.com/espressif/esp-idf/issues/5873
2021-04-02 11:03:44 +11:00
xueyunfei
3e26049a05 bugfix for assert when tcp send data 2021-03-31 16:45:45 +08:00
xueyunfei
b50fca4aa0 optimization dhcp key state transition message 2021-01-25 03:54:20 +00:00
Krzysztof Budzynski
e277d8ef23 Merge branch 'bugfix/esp_sntp_header' into 'master'
docs: Add esp_sntp to API reference as it's default idf header

Closes DOC-854

See merge request espressif/esp-idf!11796
2021-01-13 10:28:39 +08:00
David Čermák
76f6dd6214 lwip: Moved default SNTP API to esp_sntp.h
and make sntp.h in port folders of lwip component obsoleted
2021-01-13 10:28:34 +08:00
David Cermak
a807f8e263 lwip: Fixed minor debug print format issue
This caused some unsigned int prints out to be printed as singed integer which made the logs unreadable, for example sequence numbers in TCP packet headers
2021-01-12 11:57:49 +00:00
David Cermak
9ffa9cce73 lwip: Add warning to use ESP_IDF_LWIP_HOOK_FILENAME if LWIP_HOOK_FILENAME defined 2021-01-08 14:28:21 +00:00
David Cermak
5993a49352 lwip: Add IDF hook filename to customize lwip hooks
LWIP_HOOK_FILENAME is used in IDF to define standard and default hooks for IDF port in LWIP.
Added ESP_IDF_LWIP_HOOK_FILENAME to customize additional hooks in lwip

Closes https://github.com/espressif/esp-idf/issues/6261
2021-01-08 14:28:21 +00:00
ryan kurte
85083ddc3d lwip: Added debug config options for DHCP and TCP 2020-12-18 16:38:59 +00:00
ryan kurte
5d91a27a1e lwip: Added KConfig option to control checksum validation on IP/UDP/ICMP
This maintains the current default, but could be swapped if desired

Merges https://github.com/espressif/esp-idf/pull/6187
2020-12-18 16:38:59 +00:00
Jiang Jiang Jian
a16d1e8f1a Merge branch 'fixbug/baidu_tcp_recv_assert' into 'master'
lw-ip:fixbug/baidu tcp recv assert

Closes WIFI-2802

See merge request espressif/esp-idf!11287
2020-12-14 16:48:24 +08:00
Paweł pidpawel Kozubal
cf60ec0ffc lwip: Added support for configurable LwIP hooks
Added lwIP hooks which could be optionally overwritten in the
application code. These three options are provided in Kconfig:
* NONE: No hook support
* DEFAULT: Default implementation is provided. If IDF doesn't
have a specific hook implementation, an empty stub is provided, which
could be overwritten by strong implementation in application code.
* CUSTOM: Hooks are declared only to be implemented in application code.

Merges https://github.com/espressif/esp-idf/pull/6034
2020-11-26 12:02:00 +00:00
xueyunfei
3b6014f5a0 fix bug for tcp recv assert 2020-11-19 12:16:49 +08:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Mahavir Jain
58c33f3bdf lwip: provide configuration option to enable TCP ISN hook 2020-10-23 05:11:33 +00:00
Mahavir Jain
8099dd089d tcp_isn: use ROM APIs for md5 calculations 2020-10-23 05:11:33 +00:00
Mahavir Jain
b8925ab48b lwip: add custom TCP ISN hook implementation
Source:
https://git.savannah.nongnu.org/cgit/lwip/lwip-contrib.git/
2020-10-23 05:11:33 +00:00
mathiasbredholt
8a102926f8 lwip: Changed to C linkage for fixing bug when using mixed C/C++ code
Merges https://github.com/espressif/esp-idf/pull/5900
2020-09-29 11:47:32 +02:00
Jiang Jiang Jian
9e45dca650 Merge branch 'bugfix/fix_ipv6_nd6_max_queue_num' into 'master'
lw-ip: fix max ipv6 pkt queue num too large cause no mem issue

Closes WIFI-2527 and WIFI-2350

See merge request espressif/esp-idf!9697
2020-08-19 16:07:14 +08:00
ChenJianxing
bf48acc284 lwip: fix IPv6 ND6 queue too much pkts cause no mem issue and add menuconfig item for this params. 2020-08-16 22:08:07 +08:00
liu zhifu
fa9a5c0be5 esp_wifi: optimize WiFi TX performance 2020-08-13 12:26:21 +08:00
David Cermak
1a41545c3e esp-netif: SLIP interface refactor to isolate interface from drivers 2020-07-15 15:46:46 +02:00
David Cermak
13de11fb32 lwip: Added debug config options to enable lwIP low level debugging 2020-07-15 15:46:46 +02:00
ryan
266be00254 esp-netif: Added esp_netif slip support, slip_modem component and example
Merges https://github.com/espressif/esp-idf/pull/4985
2020-07-15 15:46:46 +02:00
xueyunfei
a202bfe78e fix bug for ipv6 fragment 2020-06-30 08:58:08 +00:00
yuanjm
533bb3c46d feat(lwip): make LWIP TCP rto time configurable 2020-06-16 13:16:17 +00:00
xueyunfei
df43a1affc add LINGER to menuconfig 2020-05-25 11:23:03 +08:00
David Cermak
bcee69ae06 esp-netif: Enable easier configuration of custom DHCP server address 2020-04-24 07:32:58 +02:00
David Čermák
d043674b2b Merge branch 'feature/lwip_napt_forward' into 'master'
lw-IP: NAT support

Closes WIFI-931

See merge request espressif/esp-idf!7681
2020-04-16 03:03:00 +08:00
David Cermak
6aabfd50d5 pppos_client: support for PPPAUTHTYPE_NONE
Closes https://github.com/espressif/esp-idf/issues/4616
Closes WIFI-1652
2020-04-14 21:46:07 +02:00
David Cermak
94d320473c LwIP: NAPT functionality
Adds Kconfig option to enable experimental NAPT feature for IP packet
forwarding across interfaces.

Closes https://github.com/espressif/esp-idf/issues/1527
2020-04-14 16:04:37 +02:00
Ivan Grokhotkov
55c3c2b73d Merge branch 'feature/vfs_optional' into 'master'
vfs: add option to disable VFS layer, saving some RAM and code size

See merge request espressif/esp-idf!7950
2020-03-24 21:11:28 +08:00
Jiang Jiang Jian
2c06733e10 Merge branch 'optimization/TCPv6_connect_for_master' into 'master'
lw-ip:optimization TCPv6 connect

Closes WIFI-1963

See merge request espressif/esp-idf!8018
2020-03-24 15:25:03 +08:00
Ivan Grokhotkov
b203ac7b02 lwip: handle CONFIG_VFS_SUPPORT_IO=n and CONFIG_VFS_SUPPORT_SELECT=n
* If CONFIG_VFS_SUPPORT_IO=y, keep everything as it is now
* If CONFIG_VFS_SUPPORT_IO=n, defined syscalls which LwIP can
  implement, such as read/write/close
* Make LWIP-only select implementation dependent on
  CONFIG_VFS_SUPPORT_SELECT, deprecate CONFIG_LWIP_USE_ONLY_LWIP_SELECT
2020-03-20 14:03:44 +01:00
xueyunfei
b539e54eed optimization TCPv6 connect 2020-03-20 07:19:23 +00:00
xiehang
a133dbd848 LWIP: Add lwip assert control 2020-03-19 19:00:19 +08:00
Francesco Giancane
872272e23a lwip: make IPV6 link-local support over PPP configurable
Make the link local negotiation for IPV6 in PPP optional and
configurable.
This is because some modems do not support the IPV6 negotiation and
sending IPV6CP frames would in some cases break the network
configuration phase, resulting in a timeout during the Phase Network.

Please note that this does not disable the IPV6 support for the outgoing
communication (IPV6 is still enabled even if this option is not
selected) but just for the local link between lwIP and modem.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4782
Closes https://github.com/espressif/esp-idf/issues/1065
2020-03-05 18:46:48 +00:00