net: ipv6: Fix ping to link-local addresses.
authorLorenzo Colitti <lorenzo@google.com>
Fri, 12 Aug 2016 16:13:38 +0000 (01:13 +0900)
committerLorenzo Colitti <lorenzo@google.com>
Fri, 26 Aug 2016 07:26:53 +0000 (16:26 +0900)
commit75c591ea5787a59e69c8d2b803a7f4f0c29ec34e
treecaad310e0adf6319a9766f0d58cf122c02478f07
parent8f5bf76871c346bfc4fed9fcf85eff79948aade2
net: ipv6: Fix ping to link-local addresses.

ping_v6_sendmsg does not set flowi6_oif in response to
sin6_scope_id or sk_bound_dev_if, so it is not possible to use
these APIs to ping an IPv6 address on a different interface.
Instead, it sets flowi6_iif, which is incorrect but harmless.

Stop setting flowi6_iif, and support various ways of setting oif
in the same priority order used by udpv6_sendmsg.

[Backport of net 5e457896986e16c440c97bb94b9ccd95dd157292]

Bug: 29370996
Change-Id: Ibe1b9434c00ed96f1e30acb110734c6570b087b8
Tested: https://android-review.googlesource.com/#/c/254470/
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ping.c