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