| # LwIP patches |
| |
| This directory contains patch files for LwIP that enable required or desired |
| functionality in Matter. Patches that are not yet integrated into mainline LwIP |
| are provided as a patch file. This file also contains a list of helpful patches |
| that may not be present in vendor forks of the LwIP codebase |
| |
| ## Un-merged patches |
| |
| ### Route information options (RIO) |
| |
| Required for wifi devices to support communication with a thread device behind |
| an open thread border router. |
| |
| - patch file: rio_patch_updated.patch |
| - savannah link: https://savannah.nongnu.org/patch/?10114 |
| |
| Troubleshooting: The patch uses the `ip6_addr_net_eq` function, which is a |
| recent API change on upstream LwIP. The previous version of this function is |
| `ip6_addr_netcmp`, so this function call may need to be replaced on older forks. |
| |
| ### ND6 LLADDR fix |
| |
| In earlier version of lwIP, there is a bug where the RA processing fails if the |
| RA includes an LLADDR option with a hw address that is not the max length. This |
| happens for thread devices. Relevant patches from lwIP main that should be |
| applied back to any Matter device using an older version of lwIP: |
| |
| https://git.savannah.nongnu.org/cgit/lwip.git/commit/?id=7807f706f357d2eea85d9927d970991dc4b1ef90 |
| https://git.savannah.nongnu.org/cgit/lwip.git/commit/?id=6f700a157d1049a06ab9c467057d71e98e7798de |
| |
| ## Important upstream patches |
| |
| ### Malformed neighbor solicitation packet fix |
| |
| - issue raised here |
| [Issue 9791](https://github.com/project-chip/connectedhomeip/issues/9791) |
| - fixed in matter fork by |
| [Issue 10160](https://github.com/project-chip/connectedhomeip/pull/10160) |
| - fixed in upstream by |
| [PATCH](https://git.savannah.nongnu.org/cgit/lwip.git/commit/?id=bc08c1d2b79b4763fc0f8f0bf0ed58e0c2899b3a) |
| |
| ### DHCPv6 DNS bug |
| |
| There was a bug in the DHCPv6 code where if the router sent a DNS using DHCPv6 |
| stateless, it would set the DNS server as an ipv4 address, which ended up being |
| garbage. This would invalidate the whole DNS table, and lwip does not have a |
| default backup. |
| |
| - fixed in upstream in this |
| [commit](https://git.savannah.nongnu.org/cgit/lwip.git/commit/?id=941300c21c45a4dbf1c074b29a9ca3c88c9f6553) |