hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _NF_CONNTRACK_COMMON_H
#define _NF_CONNTRACK_COMMON_H
 
#include <linux/atomic.h>
#include <uapi/linux/netfilter/nf_conntrack_common.h>
 
struct ip_conntrack_stat {
   unsigned int found;
   unsigned int invalid;
   unsigned int insert;
   unsigned int insert_failed;
   unsigned int clash_resolve;
   unsigned int drop;
   unsigned int early_drop;
   unsigned int error;
   unsigned int expect_new;
   unsigned int expect_create;
   unsigned int expect_delete;
   unsigned int search_restart;
};
 
#define NFCT_INFOMASK    7UL
#define NFCT_PTRMASK    ~(NFCT_INFOMASK)
 
struct nf_conntrack {
   atomic_t use;
};
 
void nf_conntrack_destroy(struct nf_conntrack *nfct);
static inline void nf_conntrack_put(struct nf_conntrack *nfct)
{
   if (nfct && atomic_dec_and_test(&nfct->use))
       nf_conntrack_destroy(nfct);
}
static inline void nf_conntrack_get(struct nf_conntrack *nfct)
{
   if (nfct)
       atomic_inc(&nfct->use);
}
 
#endif /* _NF_CONNTRACK_COMMON_H */