Skip to content

Commit

Permalink
netfilter: ctnetlink: support individual atomic-get-and-reset of coun…
Browse files Browse the repository at this point in the history
…ters

This allows to use the get operation to atomically get-and-reset
counters.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  • Loading branch information
Pablo Neira Ayuso committed Dec 18, 2011
1 parent 35dba1d commit c4042a3
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions net/netfilter/nf_conntrack_netlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -1015,6 +1015,17 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb,
if (err < 0)
goto out;

if (NFNL_MSG_TYPE(nlh->nlmsg_type) == IPCTNL_MSG_CT_GET_CTRZERO) {
struct nf_conn_counter *acct;

acct = nf_conn_acct_find(ct);
if (acct) {
atomic64_set(&acct[IP_CT_DIR_ORIGINAL].bytes, 0);
atomic64_set(&acct[IP_CT_DIR_ORIGINAL].packets, 0);
atomic64_set(&acct[IP_CT_DIR_REPLY].bytes, 0);
atomic64_set(&acct[IP_CT_DIR_REPLY].packets, 0);
}
}
return 0;

free:
Expand Down

0 comments on commit c4042a3

Please sign in to comment.