BACKPORT: net: dev_is_mac_header_xmit() true for ARPHRD_RAWIP

__bpf_redirect() and act_mirred checks this boolean
to determine whether to prefix an ethernet header.

Signed-off-by: Maciej Żenczykowski <maze@google.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

Note: this is commit 3b707c3008cad04604c1f50e39f456621821c414 upstream,
but it does not trivially cherrypick to 4.9, because the function does
not yet exist, and because ARPHRD_RAWIP is not yet defined.  However,
ARPHRD_RAWIP does exist in many device kernels, so by hiding it in
 #ifdef/#endif clause, we fix any device kernels which merge common.

Bug: 65674744
Change-Id: I79a14d064738805f4c82612b020406cd75eb872c
This commit is contained in:
Maciej Żenczykowski 2019-01-24 03:07:02 -08:00
commit 7d08263a13

View file

@ -1711,6 +1711,9 @@ static int __bpf_redirect(struct sk_buff *skb, struct net_device *dev,
case ARPHRD_IPGRE:
case ARPHRD_VOID:
case ARPHRD_NONE:
#ifdef ARPHRD_RAWIP
case ARPHRD_RAWIP:
#endif
return __bpf_redirect_no_mac(skb, dev, flags);
default:
return __bpf_redirect_common(skb, dev, flags);