| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef __NET_GEN_STATS_H | 
 | 2 | #define __NET_GEN_STATS_H | 
 | 3 |  | 
 | 4 | #include <linux/gen_stats.h> | 
 | 5 | #include <linux/socket.h> | 
 | 6 | #include <linux/rtnetlink.h> | 
 | 7 | #include <linux/pkt_sched.h> | 
 | 8 |  | 
 | 9 | struct gnet_dump | 
 | 10 | { | 
 | 11 | 	spinlock_t *      lock; | 
 | 12 | 	struct sk_buff *  skb; | 
| Patrick McHardy | 1e90474 | 2008-01-22 22:11:17 -0800 | [diff] [blame] | 13 | 	struct nlattr *   tail; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 14 |  | 
 | 15 | 	/* Backward compatability */ | 
 | 16 | 	int               compat_tc_stats; | 
 | 17 | 	int               compat_xstats; | 
 | 18 | 	void *            xstats; | 
 | 19 | 	int               xstats_len; | 
 | 20 | 	struct tc_stats   tc_stats; | 
 | 21 | }; | 
 | 22 |  | 
 | 23 | extern int gnet_stats_start_copy(struct sk_buff *skb, int type, | 
 | 24 | 				 spinlock_t *lock, struct gnet_dump *d); | 
 | 25 |  | 
 | 26 | extern int gnet_stats_start_copy_compat(struct sk_buff *skb, int type, | 
 | 27 | 					int tc_stats_type,int xstats_type, | 
 | 28 | 					spinlock_t *lock, struct gnet_dump *d); | 
 | 29 |  | 
 | 30 | extern int gnet_stats_copy_basic(struct gnet_dump *d, | 
| Eric Dumazet | c1a8f1f | 2009-08-16 09:36:49 +0000 | [diff] [blame] | 31 | 				 struct gnet_stats_basic_packed *b); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 32 | extern int gnet_stats_copy_rate_est(struct gnet_dump *d, | 
 | 33 | 				    struct gnet_stats_rate_est *r); | 
 | 34 | extern int gnet_stats_copy_queue(struct gnet_dump *d, | 
 | 35 | 				 struct gnet_stats_queue *q); | 
 | 36 | extern int gnet_stats_copy_app(struct gnet_dump *d, void *st, int len); | 
 | 37 |  | 
 | 38 | extern int gnet_stats_finish_copy(struct gnet_dump *d); | 
 | 39 |  | 
| Eric Dumazet | c1a8f1f | 2009-08-16 09:36:49 +0000 | [diff] [blame] | 40 | extern int gen_new_estimator(struct gnet_stats_basic_packed *bstats, | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 41 | 			     struct gnet_stats_rate_est *rate_est, | 
| Patrick McHardy | 1e90474 | 2008-01-22 22:11:17 -0800 | [diff] [blame] | 42 | 			     spinlock_t *stats_lock, struct nlattr *opt); | 
| Eric Dumazet | c1a8f1f | 2009-08-16 09:36:49 +0000 | [diff] [blame] | 43 | extern void gen_kill_estimator(struct gnet_stats_basic_packed *bstats, | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 44 | 			       struct gnet_stats_rate_est *rate_est); | 
| Eric Dumazet | c1a8f1f | 2009-08-16 09:36:49 +0000 | [diff] [blame] | 45 | extern int gen_replace_estimator(struct gnet_stats_basic_packed *bstats, | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 46 | 				 struct gnet_stats_rate_est *rate_est, | 
| Patrick McHardy | 1e90474 | 2008-01-22 22:11:17 -0800 | [diff] [blame] | 47 | 				 spinlock_t *stats_lock, struct nlattr *opt); | 
| Eric Dumazet | c1a8f1f | 2009-08-16 09:36:49 +0000 | [diff] [blame] | 48 | extern bool gen_estimator_active(const struct gnet_stats_basic_packed *bstats, | 
| Jarek Poplawski | 244e6c2 | 2008-11-26 15:24:32 -0800 | [diff] [blame] | 49 | 				 const struct gnet_stats_rate_est *rate_est); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 50 | #endif |