[IPV6] ROUTE: Try to use router which is not known unreachable.
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Mon, 6 Nov 2006 17:45:44 +0000 (09:45 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 22 Nov 2006 00:16:23 +0000 (16:16 -0800)
Only routers in "FAILED" state should be considered unreachable.
Otherwise, we do not try to use speicific routes unless all least specific
routers are considered unreachable.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
net/ipv6/route.c

index c953466b7afdbde3c77e6494c3f24a46908d9097..5132821e89aa3aa8fb9622ed60990c547bb043c2 100644 (file)
@@ -330,6 +330,8 @@ static int inline rt6_check_neigh(struct rt6_info *rt)
                read_lock_bh(&neigh->lock);
                if (neigh->nud_state & NUD_VALID)
                        m = 2;
+               else if (!(neigh->nud_state & NUD_FAILED))
+                       m = 1;
                read_unlock_bh(&neigh->lock);
        }
        return m;