Skip to content

Commit f5a0aab

Browse files
David Aherndavem330
authored andcommitted
net: ipv4: dst for local input routes should use l3mdev if relevant
IPv4 output routes already use l3mdev device instead of loopback for dst's if it is applicable. Change local input routes to do the same. This fixes icmp responses for unreachable UDP ports which are directed to the wrong table after commit 9d1a6c4 because local_input routes use the loopback device. Moving from ingress device to loopback loses the L3 domain causing responses based on the dst to get to lost. Fixes: 9d1a6c4 ("net: icmp_route_lookup should use rt dev to determine L3 domain") Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 2344ef3 commit f5a0aab

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

net/ipv4/route.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1914,7 +1914,8 @@ out: return err;
19141914
}
19151915
}
19161916

1917-
rth = rt_dst_alloc(net->loopback_dev, flags | RTCF_LOCAL, res.type,
1917+
rth = rt_dst_alloc(l3mdev_master_dev_rcu(dev) ? : net->loopback_dev,
1918+
flags | RTCF_LOCAL, res.type,
19181919
IN_DEV_CONF_GET(in_dev, NOPOLICY), false, do_cache);
19191920
if (!rth)
19201921
goto e_nobufs;

0 commit comments

Comments
 (0)