net: ipv6: Fix ping to link-local addresses.
authorLorenzo Colitti <lorenzo@google.com>
Fri, 12 Aug 2016 16:13:38 +0000 (01:13 +0900)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Aug 2016 19:19:09 +0000 (12:19 -0700)
commit5e457896986e16c440c97bb94b9ccd95dd157292
treef5ea984e93a8d87d8dadddc54c19536cb3d80d6b
parent12311959ecf8a3a64676c01b62ce67a0c5f0fd49
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.

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