Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[linux-2.6.git] / include / net / netfilter / nf_queue.h
blobaaba4bbcdda0e9e7b4b7adfcb4c19e3555bb4219
1 #ifndef _NF_QUEUE_H
2 #define _NF_QUEUE_H
4 /* Each queued (to userspace) skbuff has one of these. */
5 struct nf_queue_entry {
6 struct list_head list;
7 struct sk_buff *skb;
8 unsigned int id;
10 struct nf_hook_ops *elem;
11 u_int8_t pf;
12 u16 size; /* sizeof(entry) + saved route keys */
13 unsigned int hook;
14 struct net_device *indev;
15 struct net_device *outdev;
16 int (*okfn)(struct sk_buff *);
18 /* extra space to store route keys */
21 #define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry))
23 /* Packet queuing */
24 struct nf_queue_handler {
25 int (*outfn)(struct nf_queue_entry *entry,
26 unsigned int queuenum);
29 void nf_register_queue_handler(const struct nf_queue_handler *qh);
30 void nf_unregister_queue_handler(void);
31 extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
33 bool nf_queue_entry_get_refs(struct nf_queue_entry *entry);
34 void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
36 #endif /* _NF_QUEUE_H */