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 */ 7 #ifndef __LINUX_IP6_NETFILTER_H 8 #define __LINUX_IP6_NETFILTER_H 9 10 #include <uapi/linux/netfilter_ipv6.h> 11 12 13 #ifdef CONFIG_NETFILTER 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); 17 18 int ipv6_netfilter_init(void); 19 void ipv6_netfilter_fini(void); 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); 28 }; 29 30 extern const struct nf_ipv6_ops __rcu *nf_ipv6_ops; nf_get_ipv6_ops(void)31static inline const struct nf_ipv6_ops *nf_get_ipv6_ops(void) 32 { 33 return rcu_dereference(nf_ipv6_ops); 34 } 35 36 #else /* CONFIG_NETFILTER */ ipv6_netfilter_init(void)37static inline int ipv6_netfilter_init(void) { return 0; } ipv6_netfilter_fini(void)38static inline void ipv6_netfilter_fini(void) { return; } 39 #endif /* CONFIG_NETFILTER */ 40 41 #endif /*__LINUX_IP6_NETFILTER_H*/ 42