Commit 9312eaba authored by wenxu's avatar wenxu Committed by Pablo Neira Ayuso
Browse files

netfilter: conntrack: add nf_ct_acct_add()



Add nf_ct_acct_add function to update the conntrack counter
with packets and bytes.

Signed-off-by: default avatarwenxu <wenxu@ucloud.cn>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent d56aab26
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -65,7 +65,16 @@ static inline void nf_ct_set_acct(struct net *net, bool enable)
#endif
}

void nf_ct_acct_update(struct nf_conn *ct, u32 dir, unsigned int bytes);
void nf_ct_acct_add(struct nf_conn *ct, u32 dir, unsigned int packets,
		    unsigned int bytes);

static inline void nf_ct_acct_update(struct nf_conn *ct, u32 dir,
				     unsigned int bytes)
{
#if IS_ENABLED(CONFIG_NF_CONNTRACK)
	nf_ct_acct_add(ct, dir, 1, bytes);
#endif
}

void nf_conntrack_acct_pernet_init(struct net *net);

+4 −3
Original line number Diff line number Diff line
@@ -865,7 +865,8 @@ out:
}
EXPORT_SYMBOL_GPL(nf_conntrack_hash_check_insert);

void nf_ct_acct_update(struct nf_conn *ct, u32 dir, unsigned int bytes)
void nf_ct_acct_add(struct nf_conn *ct, u32 dir, unsigned int packets,
		    unsigned int bytes)
{
	struct nf_conn_acct *acct;

@@ -873,11 +874,11 @@ void nf_ct_acct_update(struct nf_conn *ct, u32 dir, unsigned int bytes)
	if (acct) {
		struct nf_conn_counter *counter = acct->counter;

		atomic64_inc(&counter[dir].packets);
		atomic64_add(packets, &counter[dir].packets);
		atomic64_add(bytes, &counter[dir].bytes);
	}
}
EXPORT_SYMBOL_GPL(nf_ct_acct_update);
EXPORT_SYMBOL_GPL(nf_ct_acct_add);

static void nf_ct_acct_merge(struct nf_conn *ct, enum ip_conntrack_info ctinfo,
			     const struct nf_conn *loser_ct)