gen_stats.h revision d639d9d18b2ef5a43cda5424830005333acfb288
19a561d539158a30b68fc258b81a994f3fac10212Richard Smith#ifndef __LINUX_GEN_STATS_H 29a561d539158a30b68fc258b81a994f3fac10212Richard Smith#define __LINUX_GEN_STATS_H 39a561d539158a30b68fc258b81a994f3fac10212Richard Smith 49a561d539158a30b68fc258b81a994f3fac10212Richard Smith#include <linux/types.h> 59a561d539158a30b68fc258b81a994f3fac10212Richard Smith 69a561d539158a30b68fc258b81a994f3fac10212Richard Smithenum { 76c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith TCA_STATS_UNSPEC, 89a561d539158a30b68fc258b81a994f3fac10212Richard Smith TCA_STATS_BASIC, 99a561d539158a30b68fc258b81a994f3fac10212Richard Smith TCA_STATS_RATE_EST, 109a561d539158a30b68fc258b81a994f3fac10212Richard Smith TCA_STATS_QUEUE, 119a561d539158a30b68fc258b81a994f3fac10212Richard Smith TCA_STATS_APP, 129a561d539158a30b68fc258b81a994f3fac10212Richard Smith __TCA_STATS_MAX, 139a561d539158a30b68fc258b81a994f3fac10212Richard Smith}; 149a561d539158a30b68fc258b81a994f3fac10212Richard Smith#define TCA_STATS_MAX (__TCA_STATS_MAX - 1) 159a561d539158a30b68fc258b81a994f3fac10212Richard Smith 169a561d539158a30b68fc258b81a994f3fac10212Richard Smith/** 176c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith * struct gnet_stats_basic - byte/packet throughput statistics 189a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @bytes: number of seen bytes 19a2e76f56c60dbd4de3dc0fed02bb01bea4dcff81Richard Smith * @packets: number of seen packets 209a561d539158a30b68fc258b81a994f3fac10212Richard Smith */ 219a561d539158a30b68fc258b81a994f3fac10212Richard Smithstruct gnet_stats_basic 226c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith{ 239a561d539158a30b68fc258b81a994f3fac10212Richard Smith __u64 bytes; 249a561d539158a30b68fc258b81a994f3fac10212Richard Smith __u32 packets; 25a2e76f56c60dbd4de3dc0fed02bb01bea4dcff81Richard Smith}; 269a561d539158a30b68fc258b81a994f3fac10212Richard Smith 279a561d539158a30b68fc258b81a994f3fac10212Richard Smith/** 289a561d539158a30b68fc258b81a994f3fac10212Richard Smith * struct gnet_stats_rate_est - rate estimator 296c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith * @bps: current byte rate 309a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @pps: current packet rate 31a2e76f56c60dbd4de3dc0fed02bb01bea4dcff81Richard Smith */ 329a561d539158a30b68fc258b81a994f3fac10212Richard Smithstruct gnet_stats_rate_est 339a561d539158a30b68fc258b81a994f3fac10212Richard Smith{ 346c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith __u32 bps; 359a561d539158a30b68fc258b81a994f3fac10212Richard Smith __u32 pps; 369a561d539158a30b68fc258b81a994f3fac10212Richard Smith}; 37a2e76f56c60dbd4de3dc0fed02bb01bea4dcff81Richard Smith 389a561d539158a30b68fc258b81a994f3fac10212Richard Smith/** 399a561d539158a30b68fc258b81a994f3fac10212Richard Smith * struct gnet_stats_queue - queuing statistics 409a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @qlen: queue length 419a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @backlog: backlog size of queue 429a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @drops: number of dropped packets 439a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @requeues: number of requeues 446c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith * @overlimits: number of enqueues over the limit 459a561d539158a30b68fc258b81a994f3fac10212Richard Smith */ 466c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smithstruct gnet_stats_queue 479a561d539158a30b68fc258b81a994f3fac10212Richard Smith{ 489a561d539158a30b68fc258b81a994f3fac10212Richard Smith __u32 qlen; 496c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith __u32 backlog; 509a561d539158a30b68fc258b81a994f3fac10212Richard Smith __u32 drops; 516c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith __u32 requeues; 529a561d539158a30b68fc258b81a994f3fac10212Richard Smith __u32 overlimits; 539a561d539158a30b68fc258b81a994f3fac10212Richard Smith}; 546c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith 559a561d539158a30b68fc258b81a994f3fac10212Richard Smith/** 566c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith * struct gnet_estimator - rate estimator configuration 579a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @interval: sampling period 589a561d539158a30b68fc258b81a994f3fac10212Richard Smith * @ewma_log: the log of measurement window weight 596c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith */ 609a561d539158a30b68fc258b81a994f3fac10212Richard Smithstruct gnet_estimator 616c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith{ 629a561d539158a30b68fc258b81a994f3fac10212Richard Smith signed char interval; 639a561d539158a30b68fc258b81a994f3fac10212Richard Smith unsigned char ewma_log; 646c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith}; 659a561d539158a30b68fc258b81a994f3fac10212Richard Smith 666c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith 676c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith#endif /* __LINUX_GEN_STATS_H */ 686c4c36c4ed1007143f5b8655eb68b313a7e12e76Richard Smith