1*6ae0a628SYotam Gigi #ifndef __NET_PSAMPLE_H 2*6ae0a628SYotam Gigi #define __NET_PSAMPLE_H 3*6ae0a628SYotam Gigi 4*6ae0a628SYotam Gigi #include <uapi/linux/psample.h> 5*6ae0a628SYotam Gigi #include <linux/module.h> 6*6ae0a628SYotam Gigi #include <linux/list.h> 7*6ae0a628SYotam Gigi 8*6ae0a628SYotam Gigi struct psample_group { 9*6ae0a628SYotam Gigi struct list_head list; 10*6ae0a628SYotam Gigi struct net *net; 11*6ae0a628SYotam Gigi u32 group_num; 12*6ae0a628SYotam Gigi u32 refcount; 13*6ae0a628SYotam Gigi u32 seq; 14*6ae0a628SYotam Gigi }; 15*6ae0a628SYotam Gigi 16*6ae0a628SYotam Gigi struct psample_group *psample_group_get(struct net *net, u32 group_num); 17*6ae0a628SYotam Gigi void psample_group_put(struct psample_group *group); 18*6ae0a628SYotam Gigi 19*6ae0a628SYotam Gigi #if IS_ENABLED(CONFIG_PSAMPLE) 20*6ae0a628SYotam Gigi 21*6ae0a628SYotam Gigi void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, 22*6ae0a628SYotam Gigi u32 trunc_size, int in_ifindex, int out_ifindex, 23*6ae0a628SYotam Gigi u32 sample_rate); 24*6ae0a628SYotam Gigi 25*6ae0a628SYotam Gigi #else 26*6ae0a628SYotam Gigi 27*6ae0a628SYotam Gigi static inline void psample_sample_packet(struct psample_group *group, 28*6ae0a628SYotam Gigi struct sk_buff *skb, u32 trunc_size, 29*6ae0a628SYotam Gigi int in_ifindex, int out_ifindex, 30*6ae0a628SYotam Gigi u32 sample_rate) 31*6ae0a628SYotam Gigi { 32*6ae0a628SYotam Gigi } 33*6ae0a628SYotam Gigi 34*6ae0a628SYotam Gigi #endif 35*6ae0a628SYotam Gigi 36*6ae0a628SYotam Gigi #endif /* __NET_PSAMPLE_H */ 37