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