1 #ifndef _NETFILTER_INGRESS_H_
2 #define _NETFILTER_INGRESS_H_
4 #include <linux/netfilter.h>
5 #include <linux/netdevice.h>
7 #ifdef CONFIG_NETFILTER_INGRESS
8 static inline bool nf_hook_ingress_active(const struct sk_buff
*skb
)
10 #ifdef HAVE_JUMP_LABEL
11 if (!static_key_false(&nf_hooks_needed
[NFPROTO_NETDEV
][NF_NETDEV_INGRESS
]))
14 return !list_empty(&skb
->dev
->nf_hooks_ingress
);
17 static inline int nf_hook_ingress(struct sk_buff
*skb
)
19 struct nf_hook_state state
;
21 nf_hook_state_init(&state
, &skb
->dev
->nf_hooks_ingress
,
22 NF_NETDEV_INGRESS
, INT_MIN
, NFPROTO_NETDEV
,
23 skb
->dev
, NULL
, NULL
, dev_net(skb
->dev
), NULL
);
24 return nf_hook_slow(skb
, &state
);
27 static inline void nf_hook_ingress_init(struct net_device
*dev
)
29 INIT_LIST_HEAD(&dev
->nf_hooks_ingress
);
31 #else /* CONFIG_NETFILTER_INGRESS */
32 static inline int nf_hook_ingress_active(struct sk_buff
*skb
)
37 static inline int nf_hook_ingress(struct sk_buff
*skb
)
42 static inline void nf_hook_ingress_init(struct net_device
*dev
) {}
43 #endif /* CONFIG_NETFILTER_INGRESS */
44 #endif /* _NETFILTER_INGRESS_H_ */