1*76404edcSAsim Jamshed #ifndef __STAT_H_
2*76404edcSAsim Jamshed #define __STAT_H_
3*76404edcSAsim Jamshed 
4*76404edcSAsim Jamshed #include "io_module.h"
5*76404edcSAsim Jamshed 
6*76404edcSAsim Jamshed struct run_stat
7*76404edcSAsim Jamshed {
8*76404edcSAsim Jamshed 	uint64_t rounds;
9*76404edcSAsim Jamshed 	uint64_t rounds_rx;
10*76404edcSAsim Jamshed 	uint64_t rounds_rx_try;
11*76404edcSAsim Jamshed 	uint64_t rounds_tx;
12*76404edcSAsim Jamshed 	uint64_t rounds_tx_try;
13*76404edcSAsim Jamshed 	uint64_t rounds_select;
14*76404edcSAsim Jamshed 	uint64_t rounds_select_rx;
15*76404edcSAsim Jamshed 	uint64_t rounds_select_tx;
16*76404edcSAsim Jamshed 	uint64_t rounds_select_intr;
17*76404edcSAsim Jamshed 
18*76404edcSAsim Jamshed 	uint64_t rounds_accept;
19*76404edcSAsim Jamshed 	uint64_t rounds_read;
20*76404edcSAsim Jamshed 	uint64_t rounds_write;
21*76404edcSAsim Jamshed 	uint64_t rounds_epoll;
22*76404edcSAsim Jamshed 	uint64_t rounds_wndadv;
23*76404edcSAsim Jamshed 
24*76404edcSAsim Jamshed 	uint64_t rounds_rtocheck;
25*76404edcSAsim Jamshed 	uint64_t rounds_twcheck;
26*76404edcSAsim Jamshed 	uint64_t rounds_tocheck;
27*76404edcSAsim Jamshed };
28*76404edcSAsim Jamshed 
29*76404edcSAsim Jamshed struct stat_counter
30*76404edcSAsim Jamshed {
31*76404edcSAsim Jamshed 	uint64_t cnt;
32*76404edcSAsim Jamshed 	uint64_t sum;
33*76404edcSAsim Jamshed 	uint64_t max;
34*76404edcSAsim Jamshed 	uint64_t min;
35*76404edcSAsim Jamshed };
36*76404edcSAsim Jamshed 
37*76404edcSAsim Jamshed struct time_stat
38*76404edcSAsim Jamshed {
39*76404edcSAsim Jamshed 	struct stat_counter round;
40*76404edcSAsim Jamshed 	struct stat_counter processing;
41*76404edcSAsim Jamshed 	struct stat_counter tcheck;
42*76404edcSAsim Jamshed 	struct stat_counter epoll;
43*76404edcSAsim Jamshed 	struct stat_counter handle;
44*76404edcSAsim Jamshed 	struct stat_counter xmit;
45*76404edcSAsim Jamshed 	struct stat_counter select;
46*76404edcSAsim Jamshed };
47*76404edcSAsim Jamshed 
48*76404edcSAsim Jamshed struct net_stat
49*76404edcSAsim Jamshed {
50*76404edcSAsim Jamshed 	uint64_t tx_packets[MAX_DEVICES];
51*76404edcSAsim Jamshed 	uint64_t tx_bytes[MAX_DEVICES];
52*76404edcSAsim Jamshed 	uint64_t tx_drops[MAX_DEVICES];
53*76404edcSAsim Jamshed 	uint64_t rx_packets[MAX_DEVICES];
54*76404edcSAsim Jamshed 	uint64_t rx_bytes[MAX_DEVICES];
55*76404edcSAsim Jamshed 	uint64_t rx_errors[MAX_DEVICES];
56*76404edcSAsim Jamshed };
57*76404edcSAsim Jamshed 
58*76404edcSAsim Jamshed struct bcast_stat
59*76404edcSAsim Jamshed {
60*76404edcSAsim Jamshed 	uint64_t cycles;
61*76404edcSAsim Jamshed 	uint64_t write;
62*76404edcSAsim Jamshed 	uint64_t read;
63*76404edcSAsim Jamshed 	uint64_t epoll;
64*76404edcSAsim Jamshed 	uint64_t wnd_adv;
65*76404edcSAsim Jamshed 	uint64_t ack;
66*76404edcSAsim Jamshed };
67*76404edcSAsim Jamshed 
68*76404edcSAsim Jamshed struct timeout_stat
69*76404edcSAsim Jamshed {
70*76404edcSAsim Jamshed 	uint64_t cycles;
71*76404edcSAsim Jamshed 	uint64_t rto_try;
72*76404edcSAsim Jamshed 	uint64_t rto;
73*76404edcSAsim Jamshed 	uint64_t timewait_try;
74*76404edcSAsim Jamshed 	uint64_t timewait;
75*76404edcSAsim Jamshed };
76*76404edcSAsim Jamshed 
77*76404edcSAsim Jamshed #ifdef NETSTAT
78*76404edcSAsim Jamshed #define STAT_COUNT(stat) stat++
79*76404edcSAsim Jamshed #else
80*76404edcSAsim Jamshed #define STAT_COUNT(stat)
81*76404edcSAsim Jamshed #endif
82*76404edcSAsim Jamshed 
83*76404edcSAsim Jamshed #endif /* __STAT_H_ */
84