diff options
author | Thomas Graf <tgraf@infradead.org> | 2010-09-03 03:04:20 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-09-03 09:43:14 -0700 |
commit | c3bccac2fa76f1619dfe4fb7b9bee69de7f066d8 (patch) | |
tree | f2271f01bae9c3d5c0557a550d62757b0061bf63 /net/ipv6/addrconf.c | |
parent | 65e9b62d4503849b10bedfc29bff0473760cc597 (diff) |
ipv6: add special mode forwarding=2 to send RS while configured as router
Similar to accepting router advertisement, the IPv6 stack does not send router
solicitations if forwarding is enabled.
This patch enables this behavior to be overruled by setting forwarding to the
special value 2.
Signed-off-by: Thomas Graf <tgraf@infradead.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index ab70a3fbcaf..5bc893e2800 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -2964,7 +2964,8 @@ static void addrconf_dad_completed(struct inet6_ifaddr *ifp) start sending router solicitations. */ - if (ifp->idev->cnf.forwarding == 0 && + if ((ifp->idev->cnf.forwarding == 0 || + ifp->idev->cnf.forwarding == 2) && ifp->idev->cnf.rtr_solicits > 0 && (dev->flags&IFF_LOOPBACK) == 0 && (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) { |