aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/if_arp.h
diff options
context:
space:
mode:
authorDaniel Borkmann <daniel@iogearbox.net>2016-11-26 01:28:06 +0100
committerDavid S. Miller <davem@davemloft.net>2016-11-27 20:38:47 -0500
commitc491680f8f489926eebfdf2cd006767fc8bdaa49 (patch)
treef177ead97857daa2b63912240f2ef2c88e94085e /include/linux/if_arp.h
parentbpf: drop useless bpf_fd member from cls/act (diff)
downloadwireguard-linux-c491680f8f489926eebfdf2cd006767fc8bdaa49.tar.xz
wireguard-linux-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.h16
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 */