xref: /linux/include/net/tc_act/tc_sample.h (revision 8be4d31cb8aaeea27bde4b7ddb26e28a89062ebf)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __NET_TC_SAMPLE_H
3 #define __NET_TC_SAMPLE_H
4 
5 #include <net/act_api.h>
6 #include <linux/tc_act/tc_sample.h>
7 #include <net/psample.h>
8 
9 struct tcf_sample {
10 	struct tc_action common;
11 	u32 rate;
12 	bool truncate;
13 	u32 trunc_size;
14 	struct psample_group __rcu *psample_group;
15 	u32 psample_group_num;
16 	struct list_head tcfm_list;
17 };
18 #define to_sample(a) ((struct tcf_sample *)a)
19 
tcf_sample_rate(const struct tc_action * a)20 static inline __u32 tcf_sample_rate(const struct tc_action *a)
21 {
22 	return to_sample(a)->rate;
23 }
24 
tcf_sample_truncate(const struct tc_action * a)25 static inline bool tcf_sample_truncate(const struct tc_action *a)
26 {
27 	return to_sample(a)->truncate;
28 }
29 
tcf_sample_trunc_size(const struct tc_action * a)30 static inline int tcf_sample_trunc_size(const struct tc_action *a)
31 {
32 	return to_sample(a)->trunc_size;
33 }
34 
35 #endif /* __NET_TC_SAMPLE_H */
36