]> git.baikalelectronics.ru Git - kernel.git/commit
net: use dst_confirm_neigh for UDP, RAW, ICMP, L2TP
authorJulian Anastasov <ja@ssi.bg>
Mon, 6 Feb 2017 21:14:16 +0000 (23:14 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Feb 2017 18:07:47 +0000 (13:07 -0500)
commita259b2cf981fcb9afc89144a9db39f354e9dc7b8
treefcc479052e78ceb30f8f3b95a881cf986f0564dd
parentfc0ac60c07f75bb6220b51db98c6f1a136067f15
net: use dst_confirm_neigh for UDP, RAW, ICMP, L2TP

When same struct dst_entry can be used for many different
neighbours we can not use it for pending confirmations.

The datagram protocols can use MSG_CONFIRM to confirm the
neighbour. When used with MSG_PROBE we do not reach the
code where neighbour is confirmed, so we have to do the
same slow lookup by using the dst_confirm_neigh() helper.
When MSG_PROBE is not used, ip_append_data/ip6_append_data
will set the skb flag dst_pending_confirm.

Reported-by: YueHaibing <yuehaibing@huawei.com>
Fixes: a7c2301bf4ca ("net: Do delayed neigh confirmation.")
Fixes: 50ab9bbc57a6 ("ipv4: Cache output routes in fib_info nexthops.")
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_output.c
net/ipv4/ping.c
net/ipv4/raw.c
net/ipv4/udp.c
net/ipv6/ip6_output.c
net/ipv6/raw.c
net/ipv6/route.c
net/ipv6/udp.c
net/l2tp/l2tp_ip6.c