summaryrefslogtreecommitdiffstats
path: root/include/linux/skbuff.h
diff options
context:
space:
mode:
authorJamal Hadi Salim <jhs@mojatatu.com>2016-07-02 06:43:14 -0400
committerDavid S. Miller <davem@davemloft.net>2016-07-04 15:11:13 -0700
commit8b10cab64c134ffbffac96edd1899d303d3afcac (patch)
tree3c02480fc9363974a49cb07e07c97982303b411e /include/linux/skbuff.h
parent8186f6e382d8719d0a4bc0ef218c4dd7cf55b496 (diff)
downloadtalos-obmc-linux-8b10cab64c134ffbffac96edd1899d303d3afcac.tar.gz
talos-obmc-linux-8b10cab64c134ffbffac96edd1899d303d3afcac.zip
net: simplify and make pkt_type_ok() available for other users
Suggested-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r--include/linux/skbuff.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index dc0fca747c5e..638b0e004310 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -37,6 +37,7 @@
#include <net/flow_dissector.h>
#include <linux/splice.h>
#include <linux/in6.h>
+#include <linux/if_packet.h>
#include <net/flow.h>
/* The interface for checksum offload between the stack and networking drivers
@@ -881,6 +882,15 @@ static inline struct rtable *skb_rtable(const struct sk_buff *skb)
return (struct rtable *)skb_dst(skb);
}
+/* For mangling skb->pkt_type from user space side from applications
+ * such as nft, tc, etc, we only allow a conservative subset of
+ * possible pkt_types to be set.
+*/
+static inline bool skb_pkt_type_ok(u32 ptype)
+{
+ return ptype <= PACKET_OTHERHOST;
+}
+
void kfree_skb(struct sk_buff *skb);
void kfree_skb_list(struct sk_buff *segs);
void skb_tx_error(struct sk_buff *skb);
OpenPOWER on IntegriCloud