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