Linux 3.9 routing oddity
Pierre Emeriaud
petrus.lt at gmail.com
Wed Jul 3 09:42:51 CEST 2013
Hi,
2013/7/3 Gert Doering <gert at space.net>:
>
> This indeed sounds weird - it should trigger a ND lookup instead, and only
> if that fails it could consider "not use that route". But it really should
> at least try, as Jeroen said.
I had an answer this morning on netdev[0].
Apparently commit 887c95cc1da53f66a5890fdeab13414613010097[1] is the
culprit here, but I lack some english (and C) skills to fully
understand why.
Workaround proposed:
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -547,6 +547,10 @@ static inline bool rt6_check_neigh(struct rt6_info *rt)
ret = true;
#endif
read_unlock(&neigh->lock);
+ } else {
+#ifdef CONFIG_IPV6_ROUTER_PREF
+ ret = true;
+#endif
}
rcu_read_unlock_bh();
I'll test it this in a few.
Regards,
Pierre.
[0] http://marc.info/?l=linux-netdev&m=137282761914702
[1] http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=887c95cc1da53f66a5890fdeab13414613010097
More information about the ipv6-ops
mailing list