diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/netfilter.h | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index 5aa931607923..6ee168c4978a 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h | |||
@@ -283,16 +283,25 @@ extern void nf_invalidate_cache(int pf); | |||
283 | Returns true or false. */ | 283 | Returns true or false. */ |
284 | extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); | 284 | extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); |
285 | 285 | ||
286 | struct nf_queue_rerouter { | 286 | struct nf_afinfo { |
287 | void (*save)(const struct sk_buff *skb, struct nf_info *info); | 287 | unsigned short family; |
288 | int (*reroute)(struct sk_buff **skb, const struct nf_info *info); | 288 | void (*saveroute)(const struct sk_buff *skb, |
289 | int rer_size; | 289 | struct nf_info *info); |
290 | int (*reroute)(struct sk_buff **skb, | ||
291 | const struct nf_info *info); | ||
292 | int route_key_size; | ||
290 | }; | 293 | }; |
291 | 294 | ||
292 | #define nf_info_reroute(x) ((void *)x + sizeof(struct nf_info)) | 295 | extern struct nf_afinfo *nf_afinfo[]; |
296 | static inline struct nf_afinfo *nf_get_afinfo(unsigned short family) | ||
297 | { | ||
298 | return rcu_dereference(nf_afinfo[family]); | ||
299 | } | ||
293 | 300 | ||
294 | extern int nf_register_queue_rerouter(int pf, struct nf_queue_rerouter *rer); | 301 | extern int nf_register_afinfo(struct nf_afinfo *afinfo); |
295 | extern int nf_unregister_queue_rerouter(int pf); | 302 | extern void nf_unregister_afinfo(struct nf_afinfo *afinfo); |
303 | |||
304 | #define nf_info_reroute(x) ((void *)x + sizeof(struct nf_info)) | ||
296 | 305 | ||
297 | #include <net/flow.h> | 306 | #include <net/flow.h> |
298 | extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *); | 307 | extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *); |