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