On Thu, 2016-06-23 at 15:11 +0200, Paolo Abeni wrote: > with the commit 8c14586fc320 ("net: ipv6: Use passed in table for > nexthop lookups"), net hop lookup is first performed on route creation > in the passed-in table. > However device match is not enforced in table lookup, so the found > route can be later discarded due to egress device mismatch and no > global lookup will be performed. > This cause the following to fail: > > ip link add dummy1 type dummy > ip link add dummy2 type dummy > ip link set dummy1 up > ip link set dummy2 up > ip route add 2001:db8:8086::/48 dev dummy1 metric 20 > ip route add 2001:db8:d34d::/64 via 2001:db8:8086::2 dev dummy1 metric 20 > ip route add 2001:db8:8086::/48 dev dummy2 metric 21 > ip route add 2001:db8:d34d::/64 via 2001:db8:8086::2 dev dummy2 metric 21 > RTNETLINK answers: No route to host > > This change fixes the issue enforcing device lookup in > ip6_nh_lookup_table() > > Fixes: 8c14586fc320 ("net: ipv6: Use passed in table for nexthop lookups") > Reported-and-tested-by: Beniamino Galvani <bgalv...@redhat.com> > Signed-off-by: Paolo Abeni <pab...@redhat.com>
Oops, bad commit message title (not updated from a previous implementation), I'll resubmit with a more relevant one. Sorry for the noise. Paolo