net: ipv6: Don't purge default router if accept_ra=2
authorLorenzo Colitti <lorenzo@google.com>
Sun, 3 Mar 2013 20:46:46 +0000 (20:46 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 27 Mar 2013 02:40:56 +0000 (02:40 +0000)
commitcbfa00d4430c5e630d61e09f90268d6e3a07a91f
tree0b989a2d2c76f181e1de41e5dcdfa11c31451e7e
parent7bdd7e6212cee9ec813c96e9250b922313641c9e
net: ipv6: Don't purge default router if accept_ra=2

[ Upstream commit 3e8b0ac3e41e3c882222a5522d5df7212438ab51 ]

Setting net.ipv6.conf.<interface>.accept_ra=2 causes the kernel
to accept RAs even when forwarding is enabled. However, enabling
forwarding purges all default routes on the system, breaking
connectivity until the next RA is received. Fix this by not
purging default routes on interfaces that have accept_ra=2.

Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/ipv6/route.c