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