xref: /openbmc/linux/include/net/psample.h (revision 6ae0a6286171154661b74f7f550f9441c6008424)
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