summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2006-11-06 09:45:44 -0800
committerDavid S. Miller <davem@sunset.davemloft.net>2006-11-21 16:16:23 -0800
commitea73ee23c43d6eb75f88c4fc9e1230b44673c0d2 (patch)
treee047fcb8f2c0459b7ce2b824d45206e88d46c714
parentb80ebbf39fc628afab7d9cf94b84cfc51d845b2f (diff)
downloadlinux-ea73ee23c43d6eb75f88c4fc9e1230b44673c0d2.tar.gz
linux-ea73ee23c43d6eb75f88c4fc9e1230b44673c0d2.tar.bz2
linux-ea73ee23c43d6eb75f88c4fc9e1230b44673c0d2.zip
[IPV6] ROUTE: Try to use router which is not known unreachable.
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>
-rw-r--r--net/ipv6/route.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index c953466b7afd..5132821e89aa 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -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;