1 #ifndef _NF_QUEUE_H 2 #define _NF_QUEUE_H 3 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; 9 10 struct nf_hook_ops *elem; 11 u_int8_t pf; 12 unsigned int hook; 13 struct net_device *indev; 14 struct net_device *outdev; 15 int (*okfn)(struct sk_buff *); 16 }; 17 18 #define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry)) 19 20 /* Packet queuing */ 21 struct nf_queue_handler { 22 int (*outfn)(struct nf_queue_entry *entry, 23 unsigned int queuenum); 24 char *name; 25 }; 26 27 extern int nf_register_queue_handler(u_int8_t pf, 28 const struct nf_queue_handler *qh); 29 extern int nf_unregister_queue_handler(u_int8_t pf, 30 const struct nf_queue_handler *qh); 31 extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); 32 extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); 33 34 #endif /* _NF_QUEUE_H */ 35