On Tue, 14 Nov 2017 14:21:32 +0100
Nicolas Dichtel <[email protected]> wrote:
> With commits 35e015e1f577 and a2d3f3e33853, the global 'accept_dad' flag
> is also taken into account (default value is 1). If either global or
> per-interface flag is non-zero, DAD will be enabled on a given interface.
>
> This is not backward compatible: before those patches, the user could
> disable DAD just by setting the per-interface flag to 0. Now, the
> user instead needs to set both flags to 0 to actually disable DAD.
>
> Restore the previous behaviour by setting the default for the global
> 'accept_dad' flag to 0. This way, DAD is still enabled by default,
> as per-interface flags are set to 1 on device creation, but setting
> them to 0 is enough to disable DAD on a given interface.
>
> - Before 35e015e1f57a7 and a2d3f3e33853:
> global per-interface DAD enabled
> [default] 1 1 yes
> X 0 no
> X 1 yes
>
> - After 35e015e1f577 and a2d3f3e33853:
> global per-interface DAD enabled
> [default] 1 1 yes
> 0 0 no
> 0 1 yes
> 1 0 yes
>
> - After this fix:
> global per-interface DAD enabled
> 1 1 yes
> 0 0 no
> [default] 0 1 yes
> 1 0 yes
>
> Fixes: 35e015e1f577 ("ipv6: fix net.ipv6.conf.all interface DAD handlers")
> Fixes: a2d3f3e33853 ("ipv6: fix net.ipv6.conf.all.accept_dad behaviour for
> real")
> CC: Stefano Brivio <[email protected]>
> CC: Matteo Croce <[email protected]>
> CC: Erik Kline <[email protected]>
> Signed-off-by: Nicolas Dichtel <[email protected]>
Acked-by: Stefano Brivio <[email protected]>
--
Stefano