]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | */ | |
607ca46e DH |
7 | #ifndef __LINUX_IP6_NETFILTER_H |
8 | #define __LINUX_IP6_NETFILTER_H | |
1da177e4 | 9 | |
607ca46e | 10 | #include <uapi/linux/netfilter_ipv6.h> |
1da177e4 | 11 | |
cdf060a5 | 12 | |
bb94aa16 | 13 | #ifdef CONFIG_NETFILTER |
a0f4ecf3 JP |
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); | |
422c346f | 17 | |
a0f4ecf3 JP |
18 | int ipv6_netfilter_init(void); |
19 | void ipv6_netfilter_fini(void); | |
2a7851bf FW |
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); | |
72b31f72 | 28 | void (*route_input)(struct sk_buff *skb); |
efb6de9b BT |
29 | int (*fragment)(struct sock *sk, struct sk_buff *skb, |
30 | int (*output)(struct sock *, struct sk_buff *)); | |
2a7851bf FW |
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 | ||
bb94aa16 PM |
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 */ | |
2cc7d573 | 43 | |
1da177e4 | 44 | #endif /*__LINUX_IP6_NETFILTER_H*/ |