diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2016-11-26 01:28:06 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-27 20:38:47 -0500 |
commit | c491680f8f489926eebfdf2cd006767fc8bdaa49 (patch) | |
tree | f177ead97857daa2b63912240f2ef2c88e94085e /include/linux/if_arp.h | |
parent | 55556dd59dfc49e9429b058cf7138a6726c949c7 (diff) | |
download | lwn-c491680f8f489926eebfdf2cd006767fc8bdaa49.tar.gz lwn-c491680f8f489926eebfdf2cd006767fc8bdaa49.zip |
bpf: reuse dev_is_mac_header_xmit for redirect
Commit dcf800344a91 ("net/sched: act_mirred: Refactor detection whether
dev needs xmit at mac header") added dev_is_mac_header_xmit(); since it's
also useful elsewhere, move it to if_arp.h and reuse it for BPF.
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/if_arp.h')
-rw-r--r-- | include/linux/if_arp.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h index f563907ed776..3355efc89781 100644 --- a/include/linux/if_arp.h +++ b/include/linux/if_arp.h @@ -44,4 +44,20 @@ static inline int arp_hdr_len(struct net_device *dev) return sizeof(struct arphdr) + (dev->addr_len + sizeof(u32)) * 2; } } + +static inline bool dev_is_mac_header_xmit(const struct net_device *dev) +{ + switch (dev->type) { + case ARPHRD_TUNNEL: + case ARPHRD_TUNNEL6: + case ARPHRD_SIT: + case ARPHRD_IPGRE: + case ARPHRD_VOID: + case ARPHRD_NONE: + return false; + default: + return true; + } +} + #endif /* _LINUX_IF_ARP_H */ |