1 /* bnx2x_stats.h: Broadcom Everest network driver.
3 * Copyright (c) 2007-2010 Broadcom Corporation
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation.
9 * Maintained by: Eilon Greenstein <eilong@broadcom.com>
10 * Written by: Eliezer Tamir
11 * Based on code from Michael Chan's bnx2 driver
17 #include <linux/types.h>
19 struct bnx2x_eth_q_stats
{
20 u32 total_bytes_received_hi
;
21 u32 total_bytes_received_lo
;
22 u32 total_bytes_transmitted_hi
;
23 u32 total_bytes_transmitted_lo
;
24 u32 total_unicast_packets_received_hi
;
25 u32 total_unicast_packets_received_lo
;
26 u32 total_multicast_packets_received_hi
;
27 u32 total_multicast_packets_received_lo
;
28 u32 total_broadcast_packets_received_hi
;
29 u32 total_broadcast_packets_received_lo
;
30 u32 total_unicast_packets_transmitted_hi
;
31 u32 total_unicast_packets_transmitted_lo
;
32 u32 total_multicast_packets_transmitted_hi
;
33 u32 total_multicast_packets_transmitted_lo
;
34 u32 total_broadcast_packets_transmitted_hi
;
35 u32 total_broadcast_packets_transmitted_lo
;
36 u32 valid_bytes_received_hi
;
37 u32 valid_bytes_received_lo
;
39 u32 error_bytes_received_hi
;
40 u32 error_bytes_received_lo
;
41 u32 etherstatsoverrsizepkts_hi
;
42 u32 etherstatsoverrsizepkts_lo
;
43 u32 no_buff_discard_hi
;
44 u32 no_buff_discard_lo
;
47 u32 rx_err_discard_pkt
;
48 u32 rx_skb_alloc_failed
;
52 #define BNX2X_NUM_Q_STATS 13
53 #define Q_STATS_OFFSET32(stat_name) \
54 (offsetof(struct bnx2x_eth_q_stats, stat_name) / 4)
60 u32 flow_ctrl_discard
;
71 u32 egress_mac_pkt0_lo
;
72 u32 egress_mac_pkt0_hi
;
73 u32 egress_mac_pkt1_lo
;
74 u32 egress_mac_pkt1_hi
;
78 enum bnx2x_stats_event
{
86 enum bnx2x_stats_state
{
87 STATS_STATE_DISABLED
= 0,
92 struct bnx2x_eth_stats
{
93 u32 total_bytes_received_hi
;
94 u32 total_bytes_received_lo
;
95 u32 total_bytes_transmitted_hi
;
96 u32 total_bytes_transmitted_lo
;
97 u32 total_unicast_packets_received_hi
;
98 u32 total_unicast_packets_received_lo
;
99 u32 total_multicast_packets_received_hi
;
100 u32 total_multicast_packets_received_lo
;
101 u32 total_broadcast_packets_received_hi
;
102 u32 total_broadcast_packets_received_lo
;
103 u32 total_unicast_packets_transmitted_hi
;
104 u32 total_unicast_packets_transmitted_lo
;
105 u32 total_multicast_packets_transmitted_hi
;
106 u32 total_multicast_packets_transmitted_lo
;
107 u32 total_broadcast_packets_transmitted_hi
;
108 u32 total_broadcast_packets_transmitted_lo
;
109 u32 valid_bytes_received_hi
;
110 u32 valid_bytes_received_lo
;
112 u32 error_bytes_received_hi
;
113 u32 error_bytes_received_lo
;
114 u32 etherstatsoverrsizepkts_hi
;
115 u32 etherstatsoverrsizepkts_lo
;
116 u32 no_buff_discard_hi
;
117 u32 no_buff_discard_lo
;
119 u32 rx_stat_ifhcinbadoctets_hi
;
120 u32 rx_stat_ifhcinbadoctets_lo
;
121 u32 tx_stat_ifhcoutbadoctets_hi
;
122 u32 tx_stat_ifhcoutbadoctets_lo
;
123 u32 rx_stat_dot3statsfcserrors_hi
;
124 u32 rx_stat_dot3statsfcserrors_lo
;
125 u32 rx_stat_dot3statsalignmenterrors_hi
;
126 u32 rx_stat_dot3statsalignmenterrors_lo
;
127 u32 rx_stat_dot3statscarriersenseerrors_hi
;
128 u32 rx_stat_dot3statscarriersenseerrors_lo
;
129 u32 rx_stat_falsecarriererrors_hi
;
130 u32 rx_stat_falsecarriererrors_lo
;
131 u32 rx_stat_etherstatsundersizepkts_hi
;
132 u32 rx_stat_etherstatsundersizepkts_lo
;
133 u32 rx_stat_dot3statsframestoolong_hi
;
134 u32 rx_stat_dot3statsframestoolong_lo
;
135 u32 rx_stat_etherstatsfragments_hi
;
136 u32 rx_stat_etherstatsfragments_lo
;
137 u32 rx_stat_etherstatsjabbers_hi
;
138 u32 rx_stat_etherstatsjabbers_lo
;
139 u32 rx_stat_maccontrolframesreceived_hi
;
140 u32 rx_stat_maccontrolframesreceived_lo
;
141 u32 rx_stat_bmac_xpf_hi
;
142 u32 rx_stat_bmac_xpf_lo
;
143 u32 rx_stat_bmac_xcf_hi
;
144 u32 rx_stat_bmac_xcf_lo
;
145 u32 rx_stat_xoffstateentered_hi
;
146 u32 rx_stat_xoffstateentered_lo
;
147 u32 rx_stat_xonpauseframesreceived_hi
;
148 u32 rx_stat_xonpauseframesreceived_lo
;
149 u32 rx_stat_xoffpauseframesreceived_hi
;
150 u32 rx_stat_xoffpauseframesreceived_lo
;
151 u32 tx_stat_outxonsent_hi
;
152 u32 tx_stat_outxonsent_lo
;
153 u32 tx_stat_outxoffsent_hi
;
154 u32 tx_stat_outxoffsent_lo
;
155 u32 tx_stat_flowcontroldone_hi
;
156 u32 tx_stat_flowcontroldone_lo
;
157 u32 tx_stat_etherstatscollisions_hi
;
158 u32 tx_stat_etherstatscollisions_lo
;
159 u32 tx_stat_dot3statssinglecollisionframes_hi
;
160 u32 tx_stat_dot3statssinglecollisionframes_lo
;
161 u32 tx_stat_dot3statsmultiplecollisionframes_hi
;
162 u32 tx_stat_dot3statsmultiplecollisionframes_lo
;
163 u32 tx_stat_dot3statsdeferredtransmissions_hi
;
164 u32 tx_stat_dot3statsdeferredtransmissions_lo
;
165 u32 tx_stat_dot3statsexcessivecollisions_hi
;
166 u32 tx_stat_dot3statsexcessivecollisions_lo
;
167 u32 tx_stat_dot3statslatecollisions_hi
;
168 u32 tx_stat_dot3statslatecollisions_lo
;
169 u32 tx_stat_etherstatspkts64octets_hi
;
170 u32 tx_stat_etherstatspkts64octets_lo
;
171 u32 tx_stat_etherstatspkts65octetsto127octets_hi
;
172 u32 tx_stat_etherstatspkts65octetsto127octets_lo
;
173 u32 tx_stat_etherstatspkts128octetsto255octets_hi
;
174 u32 tx_stat_etherstatspkts128octetsto255octets_lo
;
175 u32 tx_stat_etherstatspkts256octetsto511octets_hi
;
176 u32 tx_stat_etherstatspkts256octetsto511octets_lo
;
177 u32 tx_stat_etherstatspkts512octetsto1023octets_hi
;
178 u32 tx_stat_etherstatspkts512octetsto1023octets_lo
;
179 u32 tx_stat_etherstatspkts1024octetsto1522octets_hi
;
180 u32 tx_stat_etherstatspkts1024octetsto1522octets_lo
;
181 u32 tx_stat_etherstatspktsover1522octets_hi
;
182 u32 tx_stat_etherstatspktsover1522octets_lo
;
183 u32 tx_stat_bmac_2047_hi
;
184 u32 tx_stat_bmac_2047_lo
;
185 u32 tx_stat_bmac_4095_hi
;
186 u32 tx_stat_bmac_4095_lo
;
187 u32 tx_stat_bmac_9216_hi
;
188 u32 tx_stat_bmac_9216_lo
;
189 u32 tx_stat_bmac_16383_hi
;
190 u32 tx_stat_bmac_16383_lo
;
191 u32 tx_stat_dot3statsinternalmactransmiterrors_hi
;
192 u32 tx_stat_dot3statsinternalmactransmiterrors_lo
;
193 u32 tx_stat_bmac_ufl_hi
;
194 u32 tx_stat_bmac_ufl_lo
;
196 u32 pause_frames_received_hi
;
197 u32 pause_frames_received_lo
;
198 u32 pause_frames_sent_hi
;
199 u32 pause_frames_sent_lo
;
201 u32 etherstatspkts1024octetsto1522octets_hi
;
202 u32 etherstatspkts1024octetsto1522octets_lo
;
203 u32 etherstatspktsover1522octets_hi
;
204 u32 etherstatspktsover1522octets_lo
;
211 u32 mac_filter_discard
;
212 u32 xxoverflow_discard
;
213 u32 brb_truncate_discard
;
217 u32 rx_err_discard_pkt
;
218 u32 rx_skb_alloc_failed
;
224 #define BNX2X_NUM_STATS 43
225 #define STATS_OFFSET32(stat_name) \
226 (offsetof(struct bnx2x_eth_stats, stat_name) / 4)
228 /* Forward declaration */
232 void bnx2x_stats_init(struct bnx2x
*bp
);
234 extern const u32 dmae_reg_go_c
[];
235 extern int bnx2x_sp_post(struct bnx2x
*bp
, int command
, int cid
,
236 u32 data_hi
, u32 data_lo
, int common
);
239 #endif /* BNX2X_STATS_H */