1 #ifndef __LINUX_GEN_STATS_H 2 #define __LINUX_GEN_STATS_H 3 4 #include <linux/types.h> 5 6 enum { 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_MAX, 14 }; 15 #define TCA_STATS_MAX (__TCA_STATS_MAX - 1) 16 17 /** 18 * struct gnet_stats_basic - byte/packet throughput statistics 19 * @bytes: number of seen bytes 20 * @packets: number of seen packets 21 */ 22 struct gnet_stats_basic { 23 __u64 bytes; 24 __u32 packets; 25 }; 26 struct gnet_stats_basic_packed { 27 __u64 bytes; 28 __u32 packets; 29 } __attribute__ ((packed)); 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