Linux-libre 5.4.49-gnu
[librecmc/linux-libre.git] / include / uapi / linux / gen_stats.h
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef __LINUX_GEN_STATS_H
3 #define __LINUX_GEN_STATS_H
4
5 #include <linux/types.h>
6
7 enum {
8         TCA_STATS_UNSPEC,
9         TCA_STATS_BASIC,
10         TCA_STATS_RATE_EST,
11         TCA_STATS_QUEUE,
12         TCA_STATS_APP,
13         TCA_STATS_RATE_EST64,
14         TCA_STATS_PAD,
15         TCA_STATS_BASIC_HW,
16         __TCA_STATS_MAX,
17 };
18 #define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
19
20 /**
21  * struct gnet_stats_basic - byte/packet throughput statistics
22  * @bytes: number of seen bytes
23  * @packets: number of seen packets
24  */
25 struct gnet_stats_basic {
26         __u64   bytes;
27         __u32   packets;
28 };
29 struct gnet_stats_basic_packed {
30         __u64   bytes;
31         __u32   packets;
32 } __attribute__ ((packed));
33
34 /**
35  * struct gnet_stats_rate_est - rate estimator
36  * @bps: current byte rate
37  * @pps: current packet rate
38  */
39 struct gnet_stats_rate_est {
40         __u32   bps;
41         __u32   pps;
42 };
43
44 /**
45  * struct gnet_stats_rate_est64 - rate estimator
46  * @bps: current byte rate
47  * @pps: current packet rate
48  */
49 struct gnet_stats_rate_est64 {
50         __u64   bps;
51         __u64   pps;
52 };
53
54 /**
55  * struct gnet_stats_queue - queuing statistics
56  * @qlen: queue length
57  * @backlog: backlog size of queue
58  * @drops: number of dropped packets
59  * @requeues: number of requeues
60  * @overlimits: number of enqueues over the limit
61  */
62 struct gnet_stats_queue {
63         __u32   qlen;
64         __u32   backlog;
65         __u32   drops;
66         __u32   requeues;
67         __u32   overlimits;
68 };
69
70 /**
71  * struct gnet_estimator - rate estimator configuration
72  * @interval: sampling period
73  * @ewma_log: the log of measurement window weight
74  */
75 struct gnet_estimator {
76         signed char     interval;
77         unsigned char   ewma_log;
78 };
79
80
81 #endif /* __LINUX_GEN_STATS_H */