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