Subject: Re: [PATCH] IPv6: Add 'autoconf' and 'disable_ipv6' module parameters

From: Brian Haley <[email-masked]>
Date: Wed, 25 Mar 2009 11:54:02 -0400

Vlad Yasevich wrote:
> Oh,  and another issue I just figured out this morning...

>>> Add 'autoconf' and 'disable_ipv6' parameters to the IPv6 module.
>>>
>>> The first controls if IPv6 addresses are autoconfigured from
>>> prefixes received in Router Advertisements.  The IPv6 loopback
>>> (::1) and link-local addresses are still configured.
> 
> You are letting link-locals to autoconfigure, but did not correctly
> finish DAD, because once you set disable_ipv6, ip6_output and ipv6_rcv
> will drop all IPv6 packets.
> 
> Then later, when you re-enable IPv6, you will not run DAD because the
> interface will think that it's already finished.
> 
> So there is a possibility of duplicates not being detected.

If you just set autoconf=0 and don't set disable_ipv6=1, then DAD will 
complete for the link-locals just fine.  If you "disable" them both you 
won't get any addresses at all.

So I guess your point is that if you then enable IPv6 on an interface 
and it gets a prefix in an RA, you'll add a global without having 
link-local?  It almost looked like the code in addrconf_prefix_rcv() 
prevented that from happening (ipv6_inherit_eui64()), but it doesn't.

-Brian