ip_conntrack_helper.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* IP connection tracking helpers. */
  2. #ifndef _IP_CONNTRACK_HELPER_H
  3. #define _IP_CONNTRACK_HELPER_H
  4. #include <linux/netfilter_ipv4/ip_conntrack.h>
  5. struct module;
  6. struct ip_conntrack_helper
  7. {
  8. struct list_head list;  /* Internal use. */
  9. const char *name; /* name of the module */
  10. struct module *me; /* pointer to self */
  11. unsigned int max_expected; /* Maximum number of concurrent 
  12.  * expected connections */
  13. unsigned int timeout; /* timeout for expecteds */
  14. /* Mask of things we will help (compared against server response) */
  15. struct ip_conntrack_tuple tuple;
  16. struct ip_conntrack_tuple mask;
  17. /* Function to call when data passes; return verdict, or -1 to
  18.            invalidate. */
  19. int (*help)(struct sk_buff **pskb,
  20.     struct ip_conntrack *ct,
  21.     enum ip_conntrack_info conntrackinfo);
  22. int (*to_nfattr)(struct sk_buff *skb, const struct ip_conntrack *ct);
  23. };
  24. extern int ip_conntrack_helper_register(struct ip_conntrack_helper *);
  25. extern void ip_conntrack_helper_unregister(struct ip_conntrack_helper *);
  26. /* Allocate space for an expectation: this is mandatory before calling 
  27.    ip_conntrack_expect_related.  You will have to call put afterwards. */
  28. extern struct ip_conntrack_expect *
  29. ip_conntrack_expect_alloc(struct ip_conntrack *master);
  30. extern void ip_conntrack_expect_put(struct ip_conntrack_expect *exp);
  31. /* Add an expected connection: can have more than one per connection */
  32. extern int ip_conntrack_expect_related(struct ip_conntrack_expect *exp);
  33. extern void ip_conntrack_unexpect_related(struct ip_conntrack_expect *exp);
  34. #endif /*_IP_CONNTRACK_HELPER_H*/