Pekka Savola wrote: > On kernel based on 2.6.20.3-rc1 (FC6), 'ip -6 r l' shows: > > default via fe80::212:f0ff:fe5f:c4ec dev eth1 proto kernel metric > 1024 expires 7191sec mtu 1500 advmss 1440 hoplimit 4294967295 > > (this is the same with iproute2-ss061214 and iproute2-ss070313.) > > So, it seems that the data length for hoplimit is not quite right, or > it's reported as 2^32-1 instead of 2^8-1...
Does this fix it? Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]>
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 0e1f4b2..ec347e5 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1216,7 +1216,7 @@ install_route: } if (rt->u.dst.metrics[RTAX_HOPLIMIT-1] == 0) - rt->u.dst.metrics[RTAX_HOPLIMIT-1] = -1; + rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255; if (!rt->u.dst.metrics[RTAX_MTU-1]) rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(dev); if (!rt->u.dst.metrics[RTAX_ADVMSS-1]) @@ -1821,7 +1821,7 @@ struct rt6_info *addrconf_dst_alloc(stru rt->rt6i_idev = idev; rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev); rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst)); - rt->u.dst.metrics[RTAX_HOPLIMIT-1] = -1; + rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255; rt->u.dst.obsolete = -1; rt->rt6i_flags = RTF_UP | RTF_NONEXTHOP;