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

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _IP_CONNTRACK_CORE_H
  2. #define _IP_CONNTRACK_CORE_H
  3. #include <linux/netfilter.h>
  4. #define MAX_IP_CT_PROTO 256
  5. extern struct ip_conntrack_protocol *ip_ct_protos[MAX_IP_CT_PROTO];
  6. /* This header is used to share core functionality between the
  7.    standalone connection tracking module, and the compatibility layer's use
  8.    of connection tracking. */
  9. extern unsigned int ip_conntrack_in(unsigned int hooknum,
  10.     struct sk_buff **pskb,
  11.     const struct net_device *in,
  12.     const struct net_device *out,
  13.     int (*okfn)(struct sk_buff *));
  14. extern int ip_conntrack_init(void);
  15. extern void ip_conntrack_cleanup(void);
  16. struct ip_conntrack_protocol;
  17. extern int
  18. ip_ct_get_tuple(const struct iphdr *iph,
  19. const struct sk_buff *skb,
  20. unsigned int dataoff,
  21. struct ip_conntrack_tuple *tuple,
  22. const struct ip_conntrack_protocol *protocol);
  23. extern int
  24. ip_ct_invert_tuple(struct ip_conntrack_tuple *inverse,
  25.    const struct ip_conntrack_tuple *orig,
  26.    const struct ip_conntrack_protocol *protocol);
  27. /* Find a connection corresponding to a tuple. */
  28. struct ip_conntrack_tuple_hash *
  29. ip_conntrack_find_get(const struct ip_conntrack_tuple *tuple,
  30.       const struct ip_conntrack *ignored_conntrack);
  31. extern int __ip_conntrack_confirm(struct sk_buff **pskb);
  32. /* Confirm a connection: returns NF_DROP if packet must be dropped. */
  33. static inline int ip_conntrack_confirm(struct sk_buff **pskb)
  34. {
  35. struct ip_conntrack *ct = (struct ip_conntrack *)(*pskb)->nfct;
  36. int ret = NF_ACCEPT;
  37. if (ct) {
  38. if (!is_confirmed(ct))
  39. ret = __ip_conntrack_confirm(pskb);
  40. ip_ct_deliver_cached_events(ct);
  41. }
  42. return ret;
  43. }
  44. extern void ip_ct_unlink_expect(struct ip_conntrack_expect *exp);
  45. extern struct list_head *ip_conntrack_hash;
  46. extern struct list_head ip_conntrack_expect_list;
  47. extern rwlock_t ip_conntrack_lock;
  48. #endif /* _IP_CONNTRACK_CORE_H */