<linux/sunrpc/svcauth.h>: Define hash_str() in terms of hashlen_string()
[linux-2.6-block.git] / include / linux / netfilter_ingress.h
CommitLineData
e687ad60
PN
1#ifndef _NETFILTER_INGRESS_H_
2#define _NETFILTER_INGRESS_H_
3
4#include <linux/netfilter.h>
5#include <linux/netdevice.h>
6
7#ifdef CONFIG_NETFILTER_INGRESS
61b590b9 8static inline bool nf_hook_ingress_active(const struct sk_buff *skb)
e687ad60 9{
61b590b9
FW
10#ifdef HAVE_JUMP_LABEL
11 if (!static_key_false(&nf_hooks_needed[NFPROTO_NETDEV][NF_NETDEV_INGRESS]))
12 return false;
13#endif
14 return !list_empty(&skb->dev->nf_hooks_ingress);
e687ad60
PN
15}
16
17static inline int nf_hook_ingress(struct sk_buff *skb)
18{
19 struct nf_hook_state state;
20
21 nf_hook_state_init(&state, &skb->dev->nf_hooks_ingress,
b4865988
PNA
22 NF_NETDEV_INGRESS, INT_MIN, NFPROTO_NETDEV,
23 skb->dev, NULL, NULL, dev_net(skb->dev), NULL);
e687ad60
PN
24 return nf_hook_slow(skb, &state);
25}
26
27static inline void nf_hook_ingress_init(struct net_device *dev)
28{
29 INIT_LIST_HEAD(&dev->nf_hooks_ingress);
30}
31#else /* CONFIG_NETFILTER_INGRESS */
32static inline int nf_hook_ingress_active(struct sk_buff *skb)
33{
34 return 0;
35}
36
37static inline int nf_hook_ingress(struct sk_buff *skb)
38{
39 return 0;
40}
41
42static inline void nf_hook_ingress_init(struct net_device *dev) {}
43#endif /* CONFIG_NETFILTER_INGRESS */
44#endif /* _NETFILTER_INGRESS_H_ */