Commit | Line | Data |
---|---|---|
c01cd429 PM |
1 | #ifndef _NF_QUEUE_H |
2 | #define _NF_QUEUE_H | |
3 | ||
4 | /* Each queued (to userspace) skbuff has one of these. */ | |
02f014d8 PM |
5 | struct nf_queue_entry { |
6 | struct list_head list; | |
7 | struct sk_buff *skb; | |
8 | unsigned int id; | |
9 | ||
c01cd429 | 10 | struct nf_hook_ops *elem; |
76108cea | 11 | u_int8_t pf; |
a5fedd43 | 12 | u16 size; /* sizeof(entry) + saved route keys */ |
c01cd429 PM |
13 | unsigned int hook; |
14 | struct net_device *indev; | |
15 | struct net_device *outdev; | |
16 | int (*okfn)(struct sk_buff *); | |
a5fedd43 FW |
17 | |
18 | /* extra space to store route keys */ | |
c01cd429 PM |
19 | }; |
20 | ||
02f014d8 | 21 | #define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry)) |
c01cd429 PM |
22 | |
23 | /* Packet queuing */ | |
24 | struct nf_queue_handler { | |
02f014d8 | 25 | int (*outfn)(struct nf_queue_entry *entry, |
c01cd429 | 26 | unsigned int queuenum); |
c01cd429 PM |
27 | }; |
28 | ||
0360ae41 FW |
29 | void nf_register_queue_handler(const struct nf_queue_handler *qh); |
30 | void nf_unregister_queue_handler(void); | |
02f014d8 | 31 | extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); |
c01cd429 | 32 | |
a5fedd43 FW |
33 | bool nf_queue_entry_get_refs(struct nf_queue_entry *entry); |
34 | void nf_queue_entry_release_refs(struct nf_queue_entry *entry); | |
35 | ||
c01cd429 | 36 | #endif /* _NF_QUEUE_H */ |