[IPV6] ROUTE: Do not enable router reachability probing in router mode.

RFC4191 explicitly states that the procedures are applicable to
hosts only.  We should not have changed behavior of routers.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
This commit is contained in:
YOSHIFUJI Hideaki 2006-11-06 09:45:45 -08:00 committed by David S. Miller
parent 557e92efd4
commit ea659e0775

View File

@ -380,10 +380,11 @@ static struct rt6_info *rt6_select(struct rt6_info **head, int oif,
continue; continue;
if (m > mpri) { if (m > mpri) {
rt6_probe(match); if (strict & RT6_LOOKUP_F_REACHABLE)
rt6_probe(match);
match = rt; match = rt;
mpri = m; mpri = m;
} else { } else if (strict & RT6_LOOKUP_F_REACHABLE) {
rt6_probe(rt); rt6_probe(rt);
} }
} }
@ -636,7 +637,7 @@ static struct rt6_info *ip6_pol_route_input(struct fib6_table *table,
int strict = 0; int strict = 0;
int attempts = 3; int attempts = 3;
int err; int err;
int reachable = RT6_LOOKUP_F_REACHABLE; int reachable = ipv6_devconf.forwarding ? 0 : RT6_LOOKUP_F_REACHABLE;
strict |= flags & RT6_LOOKUP_F_IFACE; strict |= flags & RT6_LOOKUP_F_IFACE;
@ -733,7 +734,7 @@ static struct rt6_info *ip6_pol_route_output(struct fib6_table *table,
int strict = 0; int strict = 0;
int attempts = 3; int attempts = 3;
int err; int err;
int reachable = RT6_LOOKUP_F_REACHABLE; int reachable = ipv6_devconf.forwarding ? 0 : RT6_LOOKUP_F_REACHABLE;
strict |= flags & RT6_LOOKUP_F_IFACE; strict |= flags & RT6_LOOKUP_F_IFACE;