4 #ifdef MLX4_EN_PERF_STAT
5 #define NUM_PERF_STATS NUM_PERF_COUNTERS
7 #define NUM_PERF_STATS 0
10 #define NUM_PRIORITIES 9
11 #define NUM_PRIORITY_STATS 2
13 struct mlx4_en_pkt_stats {
14 unsigned long rx_multicast_packets;
15 unsigned long rx_broadcast_packets;
16 unsigned long rx_jabbers;
17 unsigned long rx_in_range_length_error;
18 unsigned long rx_out_range_length_error;
19 unsigned long tx_multicast_packets;
20 unsigned long tx_broadcast_packets;
21 unsigned long rx_prio[NUM_PRIORITIES][NUM_PRIORITY_STATS];
22 unsigned long tx_prio[NUM_PRIORITIES][NUM_PRIORITY_STATS];
23 #define NUM_PKT_STATS 43
26 struct mlx4_en_port_stats {
27 unsigned long tso_packets;
28 unsigned long xmit_more;
29 unsigned long queue_stopped;
30 unsigned long wake_queue;
31 unsigned long tx_timeout;
32 unsigned long rx_alloc_failed;
33 unsigned long rx_chksum_good;
34 unsigned long rx_chksum_none;
35 unsigned long rx_chksum_complete;
36 unsigned long tx_chksum_offload;
37 #define NUM_PORT_STATS 10
40 struct mlx4_en_perf_stats {
47 #define NUM_PERF_COUNTERS 6
50 #define NUM_MAIN_STATS 21
52 #define MLX4_NUM_PRIORITIES 8
54 struct mlx4_en_flow_stats_rx {
56 u64 rx_pause_duration;
57 u64 rx_pause_transition;
58 #define NUM_FLOW_STATS_RX 3
59 #define NUM_FLOW_PRIORITY_STATS_RX (NUM_FLOW_STATS_RX * \
63 struct mlx4_en_flow_stats_tx {
65 u64 tx_pause_duration;
66 u64 tx_pause_transition;
67 #define NUM_FLOW_STATS_TX 3
68 #define NUM_FLOW_PRIORITY_STATS_TX (NUM_FLOW_STATS_TX * \
72 #define NUM_FLOW_STATS (NUM_FLOW_STATS_RX + NUM_FLOW_STATS_TX + \
73 NUM_FLOW_PRIORITY_STATS_TX + \
74 NUM_FLOW_PRIORITY_STATS_RX)
76 struct mlx4_en_stat_out_flow_control_mbox {
77 /* Total number of PAUSE frames received from the far-end port */
79 /* Total number of microseconds that far-end port requested to pause
80 * transmission of packets
82 __be64 rx_pause_duration;
83 /* Number of received transmission from XOFF state to XON state */
84 __be64 rx_pause_transition;
85 /* Total number of PAUSE frames sent from the far-end port */
87 /* Total time in microseconds that transmission of packets has been
90 __be64 tx_pause_duration;
91 /* Number of transmitter transitions from XOFF state to XON state */
92 __be64 tx_pause_transition;
98 MLX4_DUMP_ETH_STATS_FLOW_CONTROL = 1 << 12
101 #define NUM_ALL_STATS (NUM_MAIN_STATS + NUM_PORT_STATS + NUM_PKT_STATS + \
102 NUM_FLOW_STATS + NUM_PERF_STATS)
104 #define MLX4_FIND_NETDEV_STAT(n) (offsetof(struct net_device_stats, n) / \
105 sizeof(((struct net_device_stats *)0)->n))