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
12 * UDP CSUM errata workaround by Arik Gendelman
13 * Slowpath and fastpath rework by Vladislav Zolotarov
14 * Statistics and Link management by Yitchak Gertner
21 #include <linux/types.h>
23 struct bnx2x_eth_q_stats
{
24 u32 total_bytes_received_hi
;
25 u32 total_bytes_received_lo
;
26 u32 total_bytes_transmitted_hi
;
27 u32 total_bytes_transmitted_lo
;
28 u32 total_unicast_packets_received_hi
;
29 u32 total_unicast_packets_received_lo
;
30 u32 total_multicast_packets_received_hi
;
31 u32 total_multicast_packets_received_lo
;
32 u32 total_broadcast_packets_received_hi
;
33 u32 total_broadcast_packets_received_lo
;
34 u32 total_unicast_packets_transmitted_hi
;
35 u32 total_unicast_packets_transmitted_lo
;
36 u32 total_multicast_packets_transmitted_hi
;
37 u32 total_multicast_packets_transmitted_lo
;
38 u32 total_broadcast_packets_transmitted_hi
;
39 u32 total_broadcast_packets_transmitted_lo
;
40 u32 valid_bytes_received_hi
;
41 u32 valid_bytes_received_lo
;
43 u32 error_bytes_received_hi
;
44 u32 error_bytes_received_lo
;
45 u32 etherstatsoverrsizepkts_hi
;
46 u32 etherstatsoverrsizepkts_lo
;
47 u32 no_buff_discard_hi
;
48 u32 no_buff_discard_lo
;
51 u32 rx_err_discard_pkt
;
52 u32 rx_skb_alloc_failed
;
56 #define BNX2X_NUM_Q_STATS 13
57 #define Q_STATS_OFFSET32(stat_name) \
58 (offsetof(struct bnx2x_eth_q_stats, stat_name) / 4)
64 u32 flow_ctrl_discard
;
75 u32 egress_mac_pkt0_lo
;
76 u32 egress_mac_pkt0_hi
;
77 u32 egress_mac_pkt1_lo
;
78 u32 egress_mac_pkt1_hi
;
82 enum bnx2x_stats_event
{
90 enum bnx2x_stats_state
{
91 STATS_STATE_DISABLED
= 0,
96 struct bnx2x_eth_stats
{
97 u32 total_bytes_received_hi
;
98 u32 total_bytes_received_lo
;
99 u32 total_bytes_transmitted_hi
;
100 u32 total_bytes_transmitted_lo
;
101 u32 total_unicast_packets_received_hi
;
102 u32 total_unicast_packets_received_lo
;
103 u32 total_multicast_packets_received_hi
;
104 u32 total_multicast_packets_received_lo
;
105 u32 total_broadcast_packets_received_hi
;
106 u32 total_broadcast_packets_received_lo
;
107 u32 total_unicast_packets_transmitted_hi
;
108 u32 total_unicast_packets_transmitted_lo
;
109 u32 total_multicast_packets_transmitted_hi
;
110 u32 total_multicast_packets_transmitted_lo
;
111 u32 total_broadcast_packets_transmitted_hi
;
112 u32 total_broadcast_packets_transmitted_lo
;
113 u32 valid_bytes_received_hi
;
114 u32 valid_bytes_received_lo
;
116 u32 error_bytes_received_hi
;
117 u32 error_bytes_received_lo
;
118 u32 etherstatsoverrsizepkts_hi
;
119 u32 etherstatsoverrsizepkts_lo
;
120 u32 no_buff_discard_hi
;
121 u32 no_buff_discard_lo
;
123 u32 rx_stat_ifhcinbadoctets_hi
;
124 u32 rx_stat_ifhcinbadoctets_lo
;
125 u32 tx_stat_ifhcoutbadoctets_hi
;
126 u32 tx_stat_ifhcoutbadoctets_lo
;
127 u32 rx_stat_dot3statsfcserrors_hi
;
128 u32 rx_stat_dot3statsfcserrors_lo
;
129 u32 rx_stat_dot3statsalignmenterrors_hi
;
130 u32 rx_stat_dot3statsalignmenterrors_lo
;
131 u32 rx_stat_dot3statscarriersenseerrors_hi
;
132 u32 rx_stat_dot3statscarriersenseerrors_lo
;
133 u32 rx_stat_falsecarriererrors_hi
;
134 u32 rx_stat_falsecarriererrors_lo
;
135 u32 rx_stat_etherstatsundersizepkts_hi
;
136 u32 rx_stat_etherstatsundersizepkts_lo
;
137 u32 rx_stat_dot3statsframestoolong_hi
;
138 u32 rx_stat_dot3statsframestoolong_lo
;
139 u32 rx_stat_etherstatsfragments_hi
;
140 u32 rx_stat_etherstatsfragments_lo
;
141 u32 rx_stat_etherstatsjabbers_hi
;
142 u32 rx_stat_etherstatsjabbers_lo
;
143 u32 rx_stat_maccontrolframesreceived_hi
;
144 u32 rx_stat_maccontrolframesreceived_lo
;
145 u32 rx_stat_bmac_xpf_hi
;
146 u32 rx_stat_bmac_xpf_lo
;
147 u32 rx_stat_bmac_xcf_hi
;
148 u32 rx_stat_bmac_xcf_lo
;
149 u32 rx_stat_xoffstateentered_hi
;
150 u32 rx_stat_xoffstateentered_lo
;
151 u32 rx_stat_xonpauseframesreceived_hi
;
152 u32 rx_stat_xonpauseframesreceived_lo
;
153 u32 rx_stat_xoffpauseframesreceived_hi
;
154 u32 rx_stat_xoffpauseframesreceived_lo
;
155 u32 tx_stat_outxonsent_hi
;
156 u32 tx_stat_outxonsent_lo
;
157 u32 tx_stat_outxoffsent_hi
;
158 u32 tx_stat_outxoffsent_lo
;
159 u32 tx_stat_flowcontroldone_hi
;
160 u32 tx_stat_flowcontroldone_lo
;
161 u32 tx_stat_etherstatscollisions_hi
;
162 u32 tx_stat_etherstatscollisions_lo
;
163 u32 tx_stat_dot3statssinglecollisionframes_hi
;
164 u32 tx_stat_dot3statssinglecollisionframes_lo
;
165 u32 tx_stat_dot3statsmultiplecollisionframes_hi
;
166 u32 tx_stat_dot3statsmultiplecollisionframes_lo
;
167 u32 tx_stat_dot3statsdeferredtransmissions_hi
;
168 u32 tx_stat_dot3statsdeferredtransmissions_lo
;
169 u32 tx_stat_dot3statsexcessivecollisions_hi
;
170 u32 tx_stat_dot3statsexcessivecollisions_lo
;
171 u32 tx_stat_dot3statslatecollisions_hi
;
172 u32 tx_stat_dot3statslatecollisions_lo
;
173 u32 tx_stat_etherstatspkts64octets_hi
;
174 u32 tx_stat_etherstatspkts64octets_lo
;
175 u32 tx_stat_etherstatspkts65octetsto127octets_hi
;
176 u32 tx_stat_etherstatspkts65octetsto127octets_lo
;
177 u32 tx_stat_etherstatspkts128octetsto255octets_hi
;
178 u32 tx_stat_etherstatspkts128octetsto255octets_lo
;
179 u32 tx_stat_etherstatspkts256octetsto511octets_hi
;
180 u32 tx_stat_etherstatspkts256octetsto511octets_lo
;
181 u32 tx_stat_etherstatspkts512octetsto1023octets_hi
;
182 u32 tx_stat_etherstatspkts512octetsto1023octets_lo
;
183 u32 tx_stat_etherstatspkts1024octetsto1522octets_hi
;
184 u32 tx_stat_etherstatspkts1024octetsto1522octets_lo
;
185 u32 tx_stat_etherstatspktsover1522octets_hi
;
186 u32 tx_stat_etherstatspktsover1522octets_lo
;
187 u32 tx_stat_bmac_2047_hi
;
188 u32 tx_stat_bmac_2047_lo
;
189 u32 tx_stat_bmac_4095_hi
;
190 u32 tx_stat_bmac_4095_lo
;
191 u32 tx_stat_bmac_9216_hi
;
192 u32 tx_stat_bmac_9216_lo
;
193 u32 tx_stat_bmac_16383_hi
;
194 u32 tx_stat_bmac_16383_lo
;
195 u32 tx_stat_dot3statsinternalmactransmiterrors_hi
;
196 u32 tx_stat_dot3statsinternalmactransmiterrors_lo
;
197 u32 tx_stat_bmac_ufl_hi
;
198 u32 tx_stat_bmac_ufl_lo
;
200 u32 pause_frames_received_hi
;
201 u32 pause_frames_received_lo
;
202 u32 pause_frames_sent_hi
;
203 u32 pause_frames_sent_lo
;
205 u32 etherstatspkts1024octetsto1522octets_hi
;
206 u32 etherstatspkts1024octetsto1522octets_lo
;
207 u32 etherstatspktsover1522octets_hi
;
208 u32 etherstatspktsover1522octets_lo
;
215 u32 mac_filter_discard
;
216 u32 xxoverflow_discard
;
217 u32 brb_truncate_discard
;
221 u32 rx_err_discard_pkt
;
222 u32 rx_skb_alloc_failed
;
228 #define BNX2X_NUM_STATS 43
229 #define STATS_OFFSET32(stat_name) \
230 (offsetof(struct bnx2x_eth_stats, stat_name) / 4)
232 /* Forward declaration */
235 void bnx2x_stats_init(struct bnx2x
*bp
);
237 extern const u32 dmae_reg_go_c
[];
239 #endif /* BNX2X_STATS_H */