| #ifndef _NF_QUEUE_H |
| #define _NF_QUEUE_H |
| |
| /* Each queued (to userspace) skbuff has one of these. */ |
| struct nf_queue_entry { |
| struct list_head list; |
| struct sk_buff *skb; |
| unsigned int id; |
| |
| struct nf_hook_ops *elem; |
| u_int8_t pf; |
| unsigned int hook; |
| struct net_device *indev; |
| struct net_device *outdev; |
| int (*okfn)(struct sk_buff *); |
| }; |
| |
| #define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry)) |
| |
| /* Packet queuing */ |
| struct nf_queue_handler { |
| int (*outfn)(struct nf_queue_entry *entry, |
| unsigned int queuenum); |
| char *name; |
| }; |
| |
| extern int nf_register_queue_handler(u_int8_t pf, |
| const struct nf_queue_handler *qh); |
| extern int nf_unregister_queue_handler(u_int8_t pf, |
| const struct nf_queue_handler *qh); |
| extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); |
| extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); |
| |
| #endif /* _NF_QUEUE_H */ |