Re: Not getting IPv6 link local address when link carrier goes up -> down -> up
Floris Bos
Mon Oct 21 20:54:04 2019
On 21/10/2019 12:33, Roy Marples wrote:
On 20/10/2019 23:04, Floris Bos wrote:
Played a bit with adding a couple more debug logging statements to
the code.
The problem seems to be that after the link local address is added,
the kernel eventually sends you a RTM_NEWADDR event.
Upon receipt of the event you add the IPv6 address to your
state->addrs list.
After it gets removed the kernel eventually sends a RTM_DELADDR and
you remove it again from the list.
The problem is that those events arrive delayed, and we are hitting a
situation in which the RTM_NEWADDR event is not delivered until after
the address has been deleted. And RTM_DELADDR is even lagging further
behind.
Since state->addr still has the address in the list,
ipv6_tryaddlinklocal() thinks there is already a link local address,
so does no attempt to add one.
Does this patch help at all?
No difference.
Yours sincerely,
Floris Bos
Archive administrator: postmaster@marples.name