ipv6: add special mode forwarding=2 to send RS while configured as router
authorThomas Graf <tgraf@infradead.org>
Fri, 3 Sep 2010 03:04:20 +0000 (03:04 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Sep 2010 16:43:14 +0000 (09:43 -0700)
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>
net/ipv6/addrconf.c

index ab70a3fbcafafee9a080ea0f8c6eab2ce04fc37e..5bc893e28008147b500ea1a6c0aedb7d1c262bbe 100644 (file)
@@ -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)) {