Skip to content

Espressif patches in 2.1.2 esp on top of 2.1.2 rel

david-cermak edited this page Mar 10, 2022 · 3 revisions

List of commits on 2.1.2-esp

  • on top of 2.1.2-rel, which is at 1bb6e7f5, i.e. 2.1.3-dev few commits after STABLE 2_1_2_RELEASE
commit id summary/ MR Status
76303df2 test/napt: Add unit test for IP forward with PBUF_REF, espressif/esp-lwip!248 CI:UT
39068263 napt: Fix PBUF_REF type to clone the pbuf before forwarding, espressif/esp-lwip!248 ESP-patch-NAPT
2b922919 version: Update version numbers to match 2.1.2-esp, espressif/esp-lwip!264 N/A
537c69d5 pppos: fix in_tail null, espressif/esp-lwip!263 https://savannah.nongnu.org/patch/?10179
202a07da PPP: Add test exhibiting empty packet null-deref, espressif/esp-lwip!263 CI:UT
1c9cd9c1 pbuf: Add pbuf_copy_partial_pbuf library function, espressif/esp-lwip!262 upstream 843a1161
d2dc577b Add #define for minimum IPv6 MTU length, espressif/esp-lwip!262 upstream ba3b04e7
64ab7f2a zepif: Copy possibly chained output pbuf properly, espressif/esp-lwip!262 upstream 379d5504
4a64731b icmp6: Don't copy too much data, espressif/esp-lwip!262 upstream ecd6009a
7c822ff4 icmp6: Fix copying of chained pbuf in reply, espressif/esp-lwip!262 upstream 6ffe30d9
29100ab6 icmp6: keep to the RFC and send as much as possible with icmp6 error messages, espressif/esp-lwip!262 upstream 8f5a0aaa
ee59f77d dns: Add API to clear dns cache, espressif/esp-lwip!256 apply and post-upstream
5a2bdba7 CI: Fixed adding gitlab key, espressif/esp-lwip!260 Fix CI:gitlab
6b090f7d test case: modify test case test_tcp_new_max_num_remove_FIN_WAIT_1, espressif/esp-lwip!260 Fix CI:UT
2749568f add function for deinit lwip timers, espressif/esp-lwip!256 apply and post-upstream
d827dbf7 dhcp: Fix build issue that set ESP_DHCP_DISABLE_VENDOR_CLASS_IDENTIFIER to true will build fail, espressif/esp-lwip!257 fix DHCP-VCI
54acdb59 Document that sntp_setservername doesn't copy the string, espressif/esp-lwip!255 post-upstream?
ae7edc2a lwip/dhcp: add 60 option for vendor class identify, espressif/esp-lwip!250 DHCP-VCI
55ea9d9c dhcp: Restore dhcp_cb on restart after dhcp_release_and_stop(), espressif/esp-lwip!254 test if applicable (dhcp_cb)
74cf7f9f napt: Fix disbale IPv6 and enable NAPT will build error, espressif/esp-lwip!253 ESP-patch-NAPT
bb63eed1 napt: fix checksum of UDP, espressif/esp-lwip!252 ESP-patch-NAPT
1c1642fe sntp: Fix client receive KOD packet that make pool MEMP_SYS_TIMEOUT not be freed, espressif/esp-lwip!251 posted https://savannah.nongnu.org/bugs/?58817
67deb805 test case: add tcp state and reset test cases, espressif/esp-lwip!249 CI:UT
2195f741 dhcp: Fix client identifier to be added to relevant packets, espressif/esp-lwip!247 Fix DHCP-client-id
5a567d52 dns: Fix server_idx increasing to DNS_MAX_SERVERS and trigger the LWIP_ASSERT, espressif/esp-lwip!246 apply and post-upstream
2c9c531f bugfix for assert when tcp send data, espressif/esp-lwip!242 TODO
9ba86727 lwip_selscan: lwip_selscan return -1 without setting errno number, espressif/esp-lwip!235 upstream 066a2b02
d050c331 tcp_in: Flag the pcb as closing if TCP_EVENT_CLOSED refused, espressif/esp-lwip!232 posted as https://savannah.nongnu.org/patch/?10013
9f382dc3 netdb: Accept '0' as service in lwip_getaddrinfo, espressif/esp-lwip!234 upstream 5bd75183
2117f049 Add dhcp option 61, espressif/esp-lwip!147 DHCP-client-id
9c62fd4e optimization dhcp key state transition message, espressif/esp-lwip!184 More debug logs
595aef0d Add feature for dhcp MTU judgement, espressif/esp-lwip!175 DHCP-MTU
01d0ecff Fix SLIP RX linked list append, espressif/esp-lwip!228 apply and post-upstream
7285b846 fix bug for tcp recv assert, espressif/esp-lwip!226 TODO, see espressif/esp-lwip!189
889c3875 bugfix for ipv6 ping error when src ip miss, espressif/esp-lwip!219 TODO
4fd84aba ipv6 send multicast data fail when src address is nul, espressif/esp-lwip!199 TODO (partly reverts ce5e3430db650d08ccc7f73e15da6e461813ec27
de3e942f fix(dhcp): Fix dhcp renew fail in t1 and will renew ip in t2 every 1s util renew successful, espressif/esp-lwip!217 DHCP-fast_renew
f13c986a tcp: Fix assertion if tcp_kill_state() is called from tcp_alloc() to clean FIN_WAIT sockets, espressif/esp-lwip!174 TODO (related 50e4e0d1)
b1eec77b igmp/mld6: Fix build warnings when !ESP_LWIP_IGMP/MLD6_TIMERS_ONDEMAND, espressif/esp-lwip!187 fix ESP-Patch
80d6d19a fix IPv6 ND6 queue too much pkts issue., espressif/esp-lwip!198 TODO
602d25c5 lwip: fix udp tx packet loss issue, espressif/esp-lwip!200 TODO
ffd1059c Fix select_waiting not being decremented for sockets closed, espressif/esp-lwip!194 upstream 8c43d836
5b2072eb fix bug for ipv6 frangment, espressif/esp-lwip!190 ip6 version of !161: test apply post-upstream
64b640ec feat(tcp): make tcp rto configurable, espressif/esp-lwip!182 apply and post-upstream
50e4e0d1 fixbug for tcp kill state assert, espressif/esp-lwip!186 TODO (related to f13c986a)
754b8d5d napt/tests: add ip4 routing tests, espressif/esp-lwip!172 ESP-patch-NAPT
4b4d6b28 napt: cosmetic updates on NAPT functionality implemented by martin-ger, espressif/esp-lwip!172 ESP-patch-NAPT
a3cacab6 napt: added NAPT patches to 2.1.2, espressif/esp-lwip!172 ESP-patch-NAPT
5c181728 optimization TCPv6 connect, espressif/esp-lwip!180 Revert !105 IPv6
2472862e sync issues and pull request to jira, espressif/esp-lwip!179 CI:jira
b9cb35bb pppapi: Add #if PPP_AUTH_SUPPORT guard for pppapi_set_auth(), espressif/esp-lwip!177 Port:PPP-api
44af234a vallen is verified to be less than len, therefore..., espressif/esp-lwip!176 apply and post-upstream
dd3b3017 fix bug for after udp close select_waiting assert, espressif/esp-lwip!166 test. apply and post-upstream
076270e7 fix bug for netconn marked close crash, espressif/esp-lwip!148 test. apply and post-upstream
13665c14 core/ipv4/dhcp: Set hostname for DISCOVER packets, espressif/esp-lwip!171 test. apply and post-upstream
276baa3e fix ipv6 bug when input the wrong broadcast, espressif/esp-lwip!173 related to !118
893aa7f3 fix bug for crash when socket lock not initialized, espressif/esp-lwip!169 TODO
066ffe0a lwip: Enable IPv6 stateless address autoconfiguration, espressif/esp-lwip!143 Port:ip6-autoconfig
b4eaf11f lwip: Drop packets larger than MTU, espressif/esp-lwip!161 test. apply and post-upstream
c9e3b53c optimize tcp random close, espressif/esp-lwip!156 TODO
d2e4de7e bugfix for improve_performance, espressif/esp-lwip!149 TODO
31e24ae9 fix bug for ramdom tcp crash, espressif/esp-lwip!153 test. apply and post-upstream
c483f30b dhcp state restore, espressif/esp-lwip!129 DHCP-restore
ca011b41 tcpip adapter refactor: notify pbuf free with netif pointer.., espressif/esp-lwip!129 Port:cusotm_pbuf
f2bd195e fix bug for close nonblocking socket crash, espressif/esp-lwip!137 test. apply and post-upstream
32b1aaf2 dhcp_timeout: change the timeout type u16 to u32, espressif/esp-lwip!142 apply and post-upstream
89932176 autoip: used Kconfig parameters instead of constants to be in line with previous esp-lwip port and to have the BCT passed, espressif/esp-lwip!140 modify and post-upstream
8c801667 fix bug for nonblocking udp is zero, espressif/esp-lwip!134 TODO
663b2fdb Try to allocate some LWIP memories in SPIRAM first. If failed, try to allocate in internal RAM then, espressif/esp-lwip!130 Port:heap
61d840ff fix bug for ipv6 MULTICAST, espressif/esp-lwip!125 apply and post-upstream
bafc54f6 add gitlab-ci.yml files, espressif/esp-lwip!123 CI:deploy
1f9a2ace fix bug for udp send error, espressif/esp-lwip!122 Port:num-sys-tmout
c23e4b05 add code for sending gratuitous ARP periodically, espressif/esp-lwip!121 Port:GARP
e3a797c0 optimize: IGMP and MLD6 Timer optimization config added, espressif/esp-lwip!120 ESP-Patch
c82f4925 fix ipv6 bug that input the wrong broadcast address to return OK, espressif/esp-lwip!118 apply and post-upstream
8fc9272b add ipv6 members, espressif/esp-lwip!119 Socket-ext
ce5e3430 fix bug for ipv6 cast, espressif/esp-lwip!114 TODO
35617419 support_for_pppos_example_sntp_example_and_add_ethernetif.c, espressif/esp-lwip!109 Port:PPP-api
e1b3708d add thread safe changes, espressif/esp-lwip!116 socket API
96a70f60 add_nd6_set_cb_and_fix_ipv6_bug , espressif/esp-lwip!105 * Port:status_cb
* IPv6
a25b4963 optimize tcp pcb allocation algorithm, espressif/esp-lwip!113 TBD (breaks pcb UT!)
03d5d6d2 add dhcp correlation, espressif/esp-lwip!108 * Port:status_cb
* DHCP
cac95ece add changes for autoip, espressif/esp-lwip!111 Port
05bf2407 Broadcast ip route based on source ip address, espressif/esp-lwip!106 Port
df15f255 Refactor support for L2 pbuf free notification into each driver, espressif/esp-lwip!104 Port
bded2abf add dns api, espressif/esp-lwip!103 * Port
* DNS
c0211b85 optimize_tcpip_adapter_layer, espressif/esp-lwip!102 Port
e0b9e57b Add sys_thread_sem_func and add sys_sem_signal_isr, espressif/esp-lwip!99 Port
0a27080e add unit test macro, espressif/esp-lwip!107 CI
74e2fa32 fix the poll define and run standard lwip unit tests, espressif/esp-lwip!75 * socket,poll
* CI

Reworked patches

Add as a separate commit

  • .gitlab-ci.yaml
  • test/unit/lwipopts.h
  • jira sync
  • unit test: tcp-state, PPP, NAPT

Issue: Idiomatic C++ might have issues with some macros

  • Use upstream version
  • Add socket API that #undef's macros and create static-inline functions
  • LWIP_COMPAT_SOCKET_INET to include lwip_inet_ntop/pton()
  • lwip_{set/get}sockopt_impl_ext() -- maybe post upstream

Use upstream version and move patches to esp/post

  • sys_thread_sem_func(), sys_sem_signal_isr(), g_lwip_task
  • dns_clear_servers()
  • use custom_pbufs
  • ip4_route_src_hook() -> components/lwip/port/esp32/hooks/lwip_default_hooks.c
  • netif_update_hook on auto-ip, dhcp-cb, nd6-cb
  • PPP: pppapi_set_auth() thread safe
  • GARP to set user-timer
  • num sys timeout to be moved to lwipopts.h: LWIP_NUM_SYS_TIMEOUT_INTERNAL
  • define mem_clib_{m|c}alloc if CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
  • ip6_autoconfig_enabled
  • FALLBACK_DNS_SERVER_ADDRESS
  • Implement dns_server_is_set() for the dns_gethostbyname_addrtype() to fail if no-server set (not just the dns_servers[0])
  • Restore last valid ip address obtained from DHCP server
  • Update timings, retries
  • DHCP fast renew in t2 if t1 fails
  • MTU option
  • Client-id option
  • Vendor class id option
  • ip6_addr_set_solicitednode() if LWIP_IPV6_MLD
  • reverted in 5c181728c894d8c051070b1cf21c55a6222fc64b
  • ESP_LWIP_{IGMP/MLD6}_TIMERS_ONDEMAND
  • NAPT