[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGnkfhy6si-sJEZ3_FbrqakeCY3sz=PZBdBbw-iKOGb+LCV-kA@mail.gmail.com>
Date: Mon, 13 Nov 2017 15:28:21 +0100
From: Matteo Croce <mcroce@...hat.com>
To: Erik Kline <ek@...gle.com>
Cc: Nicolas Dichtel <nicolas.dichtel@...nd.com>,
David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
Stefano Brivio <sbrivio@...hat.com>,
Maciej Żenczykowski <maze@...gle.com>
Subject: Re: [PATCH net] ipv6: set all.accept_dad to 0 by default
On Mon, Nov 13, 2017 at 3:21 PM, Erik Kline <ek@...gle.com> wrote:
> Should we consider rolling back the patch that caused this?
> "accept_dad = 1" is the proper IETF-expected default behaviour.
>
> Alternatively, if we really want to make all, default, and ifname
> useful perhaps we need to investigate a tristate option (for currently
> boolean values, at least). -1 could mean no preference, for example.
>
> On 13 November 2017 at 13:45, Nicolas Dichtel <nicolas.dichtel@...nd.com> wrote:
>> The commit a2d3f3e33853 modifies the way to disable dad on an interface.
>> Before the patch, setting <iface>.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 <iface>.accept_dad to 0 to disable it.
>>
>> This is not backward compatible. When a user updates its kernel, the dad
>> may be enabled by error.
>>
>> Let's set all.accept_dad to 0 by default to restore the previous behavior.
>>
>> Fixes: a2d3f3e33853 ("ipv6: fix net.ipv6.conf.all.accept_dad behaviour for real")
>> CC: Stefano Brivio <sbrivio@...hat.com>
>> CC: Matteo Croce <mcroce@...hat.com>
>> CC: Erik Kline <ek@...gle.com>
>> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@...nd.com>
>> ---
>> net/ipv6/addrconf.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
>> index 8a1c846d3df9..ef5b61507b9a 100644
>> --- a/net/ipv6/addrconf.c
>> +++ b/net/ipv6/addrconf.c
>> @@ -231,7 +231,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
>> .proxy_ndp = 0,
>> .accept_source_route = 0, /* we do not accept RH0 by default. */
>> .disable_ipv6 = 0,
>> - .accept_dad = 1,
>> + .accept_dad = 0,
>> .suppress_frag_ndisc = 1,
>> .accept_ra_mtu = 1,
>> .stable_secret = {
>> --
>> 2.13.2
>>
Another way could be putting the "all" and per interface handlers in
logical AND.
The fact is before the patch, the "all" handler really was a noop.
What do you think?
--
Matteo Croce
per aspera ad upstream
Powered by blists - more mailing lists