From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Brivio Subject: Re: [PATCH net] ipv6: set all.accept_dad to 0 by default Date: Tue, 14 Nov 2017 03:24:03 +0100 Message-ID: <20171114032403.11ed517e@elisabeth> References: <20171113134536.15382-1-nicolas.dichtel@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: davem@davemloft.net, netdev@vger.kernel.org, Matteo Croce , Erik Kline To: Nicolas Dichtel Return-path: Received: from mx1.redhat.com ([209.132.183.28]:41852 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751182AbdKNCYN (ORCPT ); Mon, 13 Nov 2017 21:24:13 -0500 In-Reply-To: <20171113134536.15382-1-nicolas.dichtel@6wind.com> Sender: netdev-owner@vger.kernel.org List-ID: On Mon, 13 Nov 2017 14:45:36 +0100 Nicolas Dichtel wrote: > The commit a2d3f3e33853 modifies the way to disable dad on an interface. > Before the patch, setting .accept_dad to 0 was enough to disable it. > Because all.accept_dad is set to 1 by default, after the patch, the user > needs to set both all.accept_dad and .accept_dad to 0 to disable it. Perhaps it would make sense to be a bit more descriptive here, this seems to have generated quite some confusion. Besides, a2d3f3e33853 was just a fix-up for 35e015e1f577, which is instead the change which actually changed the behaviour. What about: --- With commit 35e015e1f577 ("ipv6: fix net.ipv6.conf.all interface DAD handlers"), the global 'accept_dad' flag is also taken into account and set to 1 by default. If either global or per-interface flag is non-zero, DAD will be enabled on a given interface. This is not backward compatible: before 35e015e1f577, 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 35e015e1f577: global per-interface DAD enabled [default] 1 1 yes X 0 no X 1 yes - After 35e015e1f577: global per-interface DAD enabled 0 0 no 0 1 yes 1 0 yes [default] 1 1 yes - After this fix: global per-interface DAD enabled 0 0 no [default] 0 1 yes 1 0 yes 1 1 yes --- > Fixes: a2d3f3e33853 ("ipv6: fix net.ipv6.conf.all.accept_dad behaviour for real") And I'd rather say: Fixes: 35e015e1f577 ("ipv6: fix net.ipv6.conf.all interface DAD handlers") > CC: Stefano Brivio > CC: Matteo Croce > CC: Erik Kline > Signed-off-by: Nicolas Dichtel With a more descriptive commit message and the appropriate Fixes: reference, FWIW, Acked-by: Stefano Brivio -- Stefano