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_PKT64, 17 __TCA_STATS_MAX, 18 }; 19 #define TCA_STATS_MAX (__TCA_STATS_MAX - 1) 20 21 /** 22 * struct gnet_stats_basic - byte/packet throughput statistics 23 * @bytes: number of seen bytes 24 * @packets: number of seen packets 25 */ 26 struct gnet_stats_basic { 27 __u64 bytes; 28 __u32 packets; 29 }; 30 31 /** 32 * struct gnet_stats_rate_est - rate estimator 33 * @bps: current byte rate 34 * @pps: current packet rate 35 */ 36 struct gnet_stats_rate_est { 37 __u32 bps; 38 __u32 pps; 39 }; 40 41 /** 42 * struct gnet_stats_rate_est64 - rate estimator 43 * @bps: current byte rate 44 * @pps: current packet rate 45 */ 46 struct gnet_stats_rate_est64 { 47 __u64 bps; 48 __u64 pps; 49 }; 50 51 /** 52 * struct gnet_stats_queue - queuing statistics 53 * @qlen: queue length 54 * @backlog: backlog size of queue 55 * @drops: number of dropped packets 56 * @requeues: number of requeues 57 * @overlimits: number of enqueues over the limit 58 */ 59 struct gnet_stats_queue { 60 __u32 qlen; 61 __u32 backlog; 62 __u32 drops; 63 __u32 requeues; 64 __u32 overlimits; 65 }; 66 67 /** 68 * struct gnet_estimator - rate estimator configuration 69 * @interval: sampling period 70 * @ewma_log: the log of measurement window weight 71 */ 72 struct gnet_estimator { 73 signed char interval; 74 unsigned char ewma_log; 75 }; 76 77 78 #endif /* __LINUX_GEN_STATS_H */ 79