net/sched: act_ct: update nf_conn_acct for act_ct SW offload in flowtable
authorwenxu <wenxu@ucloud.cn>
Mon, 20 Apr 2020 23:55:43 +0000 (07:55 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Apr 2020 19:48:17 +0000 (12:48 -0700)
When the act_ct SW offload in flowtable, The counter of the conntrack
entry will never update. So update the nf_conn_acct conuter in act_ct
flowtable software offload.

Signed-off-by: wenxu <wenxu@ucloud.cn>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_ct.c

index 1a76639..9adff83 100644 (file)
@@ -30,6 +30,7 @@
 #include <net/netfilter/nf_conntrack_core.h>
 #include <net/netfilter/nf_conntrack_zones.h>
 #include <net/netfilter/nf_conntrack_helper.h>
+#include <net/netfilter/nf_conntrack_acct.h>
 #include <net/netfilter/ipv6/nf_defrag_ipv6.h>
 #include <uapi/linux/netfilter/nf_nat.h>
 
@@ -536,6 +537,7 @@ static bool tcf_ct_flow_table_lookup(struct tcf_ct_params *p,
        flow_offload_refresh(nf_ft, flow);
        nf_conntrack_get(&ct->ct_general);
        nf_ct_set(skb, ct, ctinfo);
+       nf_ct_acct_update(ct, dir, skb->len);
 
        return true;
 }