mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
The last released version of `smoltcp` is `0.11.0`. That version is almost a year old. Since then, an important "bug" got fixed in the IPv6 handling code of `smoltcp`. In order to route packets to our interface, we define a dummy IPv4 and IPv6 address and create catch-all routes with our interface as the gateway. Together with `set_any_ip(true)`, the makes `smoltcp` accept any packet we pass it to. This is necessary because we don't directly connect `smoltcp` to the TUN device but rather have an `InMemoryDevice` where we explicitly feed certain packets to it. In the last released version, `smoltcp` only performs the above logic for IPv4. For IPv6, the additional check for "do we have a route that this packet matches" doesn't exist and thus no IPv6 traffic is accepted by `smoltcp`. Extracted out of #6944.