]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
6ae0a628 YG |
2 | #ifndef __NET_PSAMPLE_H |
3 | #define __NET_PSAMPLE_H | |
4 | ||
5 | #include <uapi/linux/psample.h> | |
6ae0a628 YG |
6 | #include <linux/list.h> |
7 | ||
8 | struct psample_group { | |
9 | struct list_head list; | |
10 | struct net *net; | |
11 | u32 group_num; | |
12 | u32 refcount; | |
13 | u32 seq; | |
dbf47a2a | 14 | struct rcu_head rcu; |
6ae0a628 YG |
15 | }; |
16 | ||
17 | struct psample_group *psample_group_get(struct net *net, u32 group_num); | |
4a5da47d | 18 | void psample_group_take(struct psample_group *group); |
6ae0a628 YG |
19 | void psample_group_put(struct psample_group *group); |
20 | ||
21 | #if IS_ENABLED(CONFIG_PSAMPLE) | |
22 | ||
23 | void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, | |
24 | u32 trunc_size, int in_ifindex, int out_ifindex, | |
25 | u32 sample_rate); | |
26 | ||
27 | #else | |
28 | ||
29 | static inline void psample_sample_packet(struct psample_group *group, | |
30 | struct sk_buff *skb, u32 trunc_size, | |
31 | int in_ifindex, int out_ifindex, | |
32 | u32 sample_rate) | |
33 | { | |
34 | } | |
35 | ||
36 | #endif | |
37 | ||
38 | #endif /* __NET_PSAMPLE_H */ |