Contributors: 6
	  
        
          | Author | 
          Tokens | 
          Token Proportion | 
          Commits | 
          Commit Proportion | 
        
	  
	  
        
        
          | Yotam Gigi | 
          115 | 
          59.59% | 
          1 | 
          10.00% | 
        
        
          | Ido Schimmel | 
          53 | 
          27.46% | 
          2 | 
          20.00% | 
        
        
          | Adrian Moreno | 
          15 | 
          7.77% | 
          3 | 
          30.00% | 
        
        
          | Vlad Buslov | 
          6 | 
          3.11% | 
          2 | 
          20.00% | 
        
        
          | Roi Dayan | 
          3 | 
          1.55% | 
          1 | 
          10.00% | 
        
        
          | Greg Kroah-Hartman | 
          1 | 
          0.52% | 
          1 | 
          10.00% | 
        
	  
	  
        
          | Total | 
          193 | 
           | 
          10 | 
           | 
	    
	  
    
 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __NET_PSAMPLE_H
#define __NET_PSAMPLE_H
#include <uapi/linux/psample.h>
#include <linux/list.h>
struct psample_group {
	struct list_head list;
	struct net *net;
	u32 group_num;
	u32 refcount;
	u32 seq;
	struct rcu_head rcu;
};
struct psample_metadata {
	u32 trunc_size;
	int in_ifindex;
	int out_ifindex;
	u16 out_tc;
	u64 out_tc_occ;	/* bytes */
	u64 latency;	/* nanoseconds */
	u8 out_tc_valid:1,
	   out_tc_occ_valid:1,
	   latency_valid:1,
	   rate_as_probability:1,
	   unused:4;
	const u8 *user_cookie;
	u32 user_cookie_len;
};
struct psample_group *psample_group_get(struct net *net, u32 group_num);
void psample_group_take(struct psample_group *group);
void psample_group_put(struct psample_group *group);
struct sk_buff;
#if IS_ENABLED(CONFIG_PSAMPLE)
void psample_sample_packet(struct psample_group *group,
			   const struct sk_buff *skb, u32 sample_rate,
			   const struct psample_metadata *md);
#else
static inline void psample_sample_packet(struct psample_group *group,
					 const struct sk_buff *skb,
					 u32 sample_rate,
					 const struct psample_metadata *md)
{
}
#endif
#endif /* __NET_PSAMPLE_H */