diff options
author | Harald Welte <laforge@netfilter.org> | 2005-08-09 22:42:34 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2005-08-29 18:36:19 -0400 |
commit | 2cc7d5730957c4a3f3659d17d2ba5e06d5581c1f (patch) | |
tree | c2c3d03d8120831d487bb8fcc73e5dcbe13aebea /include/linux | |
parent | 4fdb3bb723db469717c6d38fda667d8b0fa86ebd (diff) |
[NETFILTER]: Move reroute-after-queue code up to the nf_queue layer.
The rerouting functionality is required by the core, therefore it has
to be implemented by the core and not in individual queue handlers.
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/netfilter.h | 11 | ||||
-rw-r--r-- | include/linux/netfilter_ipv6.h | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index 54b97a1baba5..d163e20ca8d9 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h | |||
@@ -198,6 +198,17 @@ extern void nf_invalidate_cache(int pf); | |||
198 | Returns true or false. */ | 198 | Returns true or false. */ |
199 | extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); | 199 | extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); |
200 | 200 | ||
201 | struct nf_queue_rerouter { | ||
202 | void (*save)(const struct sk_buff *skb, struct nf_info *info); | ||
203 | int (*reroute)(struct sk_buff **skb, const struct nf_info *info); | ||
204 | int rer_size; | ||
205 | }; | ||
206 | |||
207 | #define nf_info_reroute(x) ((void *)x + sizeof(struct nf_info)) | ||
208 | |||
209 | extern int nf_register_queue_rerouter(int pf, struct nf_queue_rerouter *rer); | ||
210 | extern int nf_unregister_queue_rerouter(int pf); | ||
211 | |||
201 | #else /* !CONFIG_NETFILTER */ | 212 | #else /* !CONFIG_NETFILTER */ |
202 | #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb) | 213 | #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb) |
203 | static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {} | 214 | static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {} |
diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index 20c069a5e4ac..5d204ee7a312 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h | |||
@@ -71,4 +71,7 @@ enum nf_ip6_hook_priorities { | |||
71 | NF_IP6_PRI_LAST = INT_MAX, | 71 | NF_IP6_PRI_LAST = INT_MAX, |
72 | }; | 72 | }; |
73 | 73 | ||
74 | int ipv6_netfilter_init(void); | ||
75 | void ipv6_netfilter_fini(void); | ||
76 | |||
74 | #endif /*__LINUX_IP6_NETFILTER_H*/ | 77 | #endif /*__LINUX_IP6_NETFILTER_H*/ |