You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 20, 2023. It is now read-only.
When the OpenThread interface is disconnected, the Thread stack
removes the addresses on that interface. By the time WARM has a
chance to deal with the situation, the Weave ULA address is no longer
on the interface, and the LwIP call
`netif_remove_ip6_address_with_route` returns an error code. In turn,
when WARM observes that the operation to remove the address fails, it
does not update the state accordingly. When the device rejoins, WARM
(having failed to update the state), does not reassign the Weave ULA
address to the interface. As a result, all the packets going out to
Weave addresses (and the service address in particular) are sent with
the Thread mesh-local address as the source address and thus fail to
be routed properly. By squashing the error on remove, we enable the
WARM state machine to re-add the Weave ULA address on reattach, and
thus put all routing decisions back on their well-worn paths.
We adopt the same approach to handle the internal address on the
OpenThread netif.
0 commit comments