summaryrefslogtreecommitdiffstats
path: root/include/linux/netfilter/nf_conntrack_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/netfilter/nf_conntrack_common.h')
-rw-r--r--include/linux/netfilter/nf_conntrack_common.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/linux/netfilter/nf_conntrack_common.h b/include/linux/netfilter/nf_conntrack_common.h
new file mode 100644
index 000000000..2770db2fa
--- /dev/null
+++ b/include/linux/netfilter/nf_conntrack_common.h
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _NF_CONNTRACK_COMMON_H
+#define _NF_CONNTRACK_COMMON_H
+
+#include <linux/refcount.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;
+ unsigned int chaintoolong;
+};
+
+#define NFCT_INFOMASK 7UL
+#define NFCT_PTRMASK ~(NFCT_INFOMASK)
+
+struct nf_conntrack {
+ refcount_t use;
+};
+
+void nf_conntrack_destroy(struct nf_conntrack *nfct);
+
+/* like nf_ct_put, but without module dependency on nf_conntrack */
+static inline void nf_conntrack_put(struct nf_conntrack *nfct)
+{
+ if (nfct && refcount_dec_and_test(&nfct->use))
+ nf_conntrack_destroy(nfct);
+}
+static inline void nf_conntrack_get(struct nf_conntrack *nfct)
+{
+ if (nfct)
+ refcount_inc(&nfct->use);
+}
+
+#endif /* _NF_CONNTRACK_COMMON_H */