netfilter_ipv6.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. #include <uapi/linux/netfilter_ipv6.h>
  10. #ifdef CONFIG_NETFILTER
  11. int ip6_route_me_harder(struct sk_buff *skb);
  12. __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook,
  13. unsigned int dataoff, u_int8_t protocol);
  14. int ipv6_netfilter_init(void);
  15. void ipv6_netfilter_fini(void);
  16. /*
  17. * Hook functions for ipv6 to allow xt_* modules to be built-in even
  18. * if IPv6 is a module.
  19. */
  20. struct nf_ipv6_ops {
  21. int (*chk_addr)(struct net *net, const struct in6_addr *addr,
  22. const struct net_device *dev, int strict);
  23. };
  24. extern const struct nf_ipv6_ops __rcu *nf_ipv6_ops;
  25. static inline const struct nf_ipv6_ops *nf_get_ipv6_ops(void)
  26. {
  27. return rcu_dereference(nf_ipv6_ops);
  28. }
  29. #else /* CONFIG_NETFILTER */
  30. static inline int ipv6_netfilter_init(void) { return 0; }
  31. static inline void ipv6_netfilter_fini(void) { return; }
  32. #endif /* CONFIG_NETFILTER */
  33. #endif /*__LINUX_IP6_NETFILTER_H*/