forked from mirrors/linux
		
	netfilter: flowtable: add counter support in HW offload
Store the conntrack counters to the conntrack entry in the HW flowtable offload. Signed-off-by: wenxu <wenxu@ucloud.cn> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
		
							parent
							
								
									9312eabab4
								
							
						
					
					
						commit
						ef803b3cf9
					
				
					 1 changed files with 12 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -9,6 +9,7 @@
 | 
			
		|||
#include <net/netfilter/nf_flow_table.h>
 | 
			
		||||
#include <net/netfilter/nf_tables.h>
 | 
			
		||||
#include <net/netfilter/nf_conntrack.h>
 | 
			
		||||
#include <net/netfilter/nf_conntrack_acct.h>
 | 
			
		||||
#include <net/netfilter/nf_conntrack_core.h>
 | 
			
		||||
#include <net/netfilter/nf_conntrack_tuple.h>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -783,6 +784,17 @@ static void flow_offload_work_stats(struct flow_offload_work *offload)
 | 
			
		|||
	lastused = max_t(u64, stats[0].lastused, stats[1].lastused);
 | 
			
		||||
	offload->flow->timeout = max_t(u64, offload->flow->timeout,
 | 
			
		||||
				       lastused + NF_FLOW_TIMEOUT);
 | 
			
		||||
 | 
			
		||||
	if (offload->flowtable->flags & NF_FLOWTABLE_COUNTER) {
 | 
			
		||||
		if (stats[0].pkts)
 | 
			
		||||
			nf_ct_acct_add(offload->flow->ct,
 | 
			
		||||
				       FLOW_OFFLOAD_DIR_ORIGINAL,
 | 
			
		||||
				       stats[0].pkts, stats[0].bytes);
 | 
			
		||||
		if (stats[1].pkts)
 | 
			
		||||
			nf_ct_acct_add(offload->flow->ct,
 | 
			
		||||
				       FLOW_OFFLOAD_DIR_REPLY,
 | 
			
		||||
				       stats[1].pkts, stats[1].bytes);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void flow_offload_work_handler(struct work_struct *work)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue