Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* IPv6-specific defines for netfilter. |
| 2 | * (C)1998 Rusty Russell -- This code is GPL. |
| 3 | * (C)1999 David Jeffery |
| 4 | * this header was blatantly ripped from netfilter_ipv4.h |
| 5 | * it's amazing what adding a bunch of 6s can do =8^) |
| 6 | */ |
David Howells | 607ca46 | 2012-10-13 10:46:48 +0100 | [diff] [blame] | 7 | #ifndef __LINUX_IP6_NETFILTER_H |
| 8 | #define __LINUX_IP6_NETFILTER_H |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 9 | |
David Howells | 607ca46 | 2012-10-13 10:46:48 +0100 | [diff] [blame] | 10 | #include <uapi/linux/netfilter_ipv6.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 11 | |
Adrian Bunk | cdf060a | 2008-07-08 02:36:40 -0700 | [diff] [blame] | 12 | |
Patrick McHardy | bb94aa1 | 2006-01-09 16:43:13 -0800 | [diff] [blame] | 13 | #ifdef CONFIG_NETFILTER |
Joe Perches | a0f4ecf | 2013-09-26 14:48:15 -0700 | [diff] [blame] | 14 | int ip6_route_me_harder(struct sk_buff *skb); |
| 15 | __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, |
| 16 | unsigned int dataoff, u_int8_t protocol); |
Patrick McHardy | 422c346 | 2006-04-06 14:18:43 -0700 | [diff] [blame] | 17 | |
Joe Perches | a0f4ecf | 2013-09-26 14:48:15 -0700 | [diff] [blame] | 18 | int ipv6_netfilter_init(void); |
| 19 | void ipv6_netfilter_fini(void); |
Florian Westphal | 2a7851b | 2013-05-17 03:56:10 +0000 | [diff] [blame] | 20 | |
| 21 | /* |
| 22 | * Hook functions for ipv6 to allow xt_* modules to be built-in even |
| 23 | * if IPv6 is a module. |
| 24 | */ |
| 25 | struct nf_ipv6_ops { |
| 26 | int (*chk_addr)(struct net *net, const struct in6_addr *addr, |
| 27 | const struct net_device *dev, int strict); |
Bernhard Thaler | 72b31f7 | 2015-05-30 15:27:40 +0200 | [diff] [blame] | 28 | void (*route_input)(struct sk_buff *skb); |
Bernhard Thaler | efb6de9 | 2015-05-30 15:30:16 +0200 | [diff] [blame] | 29 | int (*fragment)(struct sock *sk, struct sk_buff *skb, |
| 30 | int (*output)(struct sock *, struct sk_buff *)); |
Florian Westphal | 2a7851b | 2013-05-17 03:56:10 +0000 | [diff] [blame] | 31 | }; |
| 32 | |
| 33 | extern const struct nf_ipv6_ops __rcu *nf_ipv6_ops; |
| 34 | static inline const struct nf_ipv6_ops *nf_get_ipv6_ops(void) |
| 35 | { |
| 36 | return rcu_dereference(nf_ipv6_ops); |
| 37 | } |
| 38 | |
Patrick McHardy | bb94aa1 | 2006-01-09 16:43:13 -0800 | [diff] [blame] | 39 | #else /* CONFIG_NETFILTER */ |
| 40 | static inline int ipv6_netfilter_init(void) { return 0; } |
| 41 | static inline void ipv6_netfilter_fini(void) { return; } |
| 42 | #endif /* CONFIG_NETFILTER */ |
Harald Welte | 2cc7d57 | 2005-08-09 19:42:34 -0700 | [diff] [blame] | 43 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 44 | #endif /*__LINUX_IP6_NETFILTER_H*/ |