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