root/include/net/netfilter/nf_conntrack_count.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef _NF_CONNTRACK_COUNT_H
   2 #define _NF_CONNTRACK_COUNT_H
   3 
   4 #include <linux/list.h>
   5 #include <linux/spinlock.h>
   6 #include <net/netfilter/nf_conntrack_tuple.h>
   7 #include <net/netfilter/nf_conntrack_zones.h>
   8 
   9 struct nf_conncount_data;
  10 
  11 struct nf_conncount_list {
  12         spinlock_t list_lock;
  13         struct list_head head;  /* connections with the same filtering key */
  14         unsigned int count;     /* length of list */
  15 };
  16 
  17 struct nf_conncount_data *nf_conncount_init(struct net *net, unsigned int family,
  18                                             unsigned int keylen);
  19 void nf_conncount_destroy(struct net *net, unsigned int family,
  20                           struct nf_conncount_data *data);
  21 
  22 unsigned int nf_conncount_count(struct net *net,
  23                                 struct nf_conncount_data *data,
  24                                 const u32 *key,
  25                                 const struct nf_conntrack_tuple *tuple,
  26                                 const struct nf_conntrack_zone *zone);
  27 
  28 int nf_conncount_add(struct net *net, struct nf_conncount_list *list,
  29                      const struct nf_conntrack_tuple *tuple,
  30                      const struct nf_conntrack_zone *zone);
  31 
  32 void nf_conncount_list_init(struct nf_conncount_list *list);
  33 
  34 bool nf_conncount_gc_list(struct net *net,
  35                           struct nf_conncount_list *list);
  36 
  37 void nf_conncount_cache_free(struct nf_conncount_list *list);
  38 
  39 #endif

/* [<][>][^][v][top][bottom][index][help] */