OSDN Git Service

net-ipv6: fix excessive RTF_ADDRCONF flag on ::1/128 local route (and others)
authorMaciej Żenczykowski <maze@google.com>
Mon, 2 Sep 2019 16:23:36 +0000 (09:23 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Sep 2019 22:31:50 +0000 (00:31 +0200)
commitd55a2e374a94fa34a3048c6a2be535266e506d97
treeaabaa7f2b246209a378fa34b24436446fc990139
parent10eb56c582c557c629271f1ee31e15e7a9b2558b
net-ipv6: fix excessive RTF_ADDRCONF flag on ::1/128 local route (and others)

There is a subtle change in behaviour introduced by:
  commit c7a1ce397adacaf5d4bb2eab0a738b5f80dc3e43
  'ipv6: Change addrconf_f6i_alloc to use ip6_route_info_create'

Before that patch /proc/net/ipv6_route includes:
00000000000000000000000000000001 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000003 00000000 80200001 lo

Afterwards /proc/net/ipv6_route includes:
00000000000000000000000000000001 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000002 00000000 80240001 lo

ie. the above commit causes the ::1/128 local (automatic) route to be flagged with RTF_ADDRCONF (0x040000).

AFAICT, this is incorrect since these routes are *not* coming from RA's.

As such, this patch restores the old behaviour.

Fixes: c7a1ce397ada ("ipv6: Change addrconf_f6i_alloc to use ip6_route_info_create")
Cc: David Ahern <dsahern@gmail.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c