1*d14abf15SRobert Mustacchi 
2*d14abf15SRobert Mustacchi #ifndef MAC_STATS_H
3*d14abf15SRobert Mustacchi #define MAC_STATS_H
4*d14abf15SRobert Mustacchi 
5*d14abf15SRobert Mustacchi 
6*d14abf15SRobert Mustacchi struct emac_stats {
7*d14abf15SRobert Mustacchi 	u32     rx_stat_ifhcinoctets;
8*d14abf15SRobert Mustacchi 	u32     rx_stat_ifhcinbadoctets;
9*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsfragments;
10*d14abf15SRobert Mustacchi 	u32     rx_stat_ifhcinucastpkts;
11*d14abf15SRobert Mustacchi 	u32     rx_stat_ifhcinmulticastpkts;
12*d14abf15SRobert Mustacchi 	u32     rx_stat_ifhcinbroadcastpkts;
13*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsfcserrors;
14*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsalignmenterrors;
15*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statscarriersenseerrors;
16*d14abf15SRobert Mustacchi 	u32     rx_stat_xonpauseframesreceived;
17*d14abf15SRobert Mustacchi 	u32     rx_stat_xoffpauseframesreceived;
18*d14abf15SRobert Mustacchi 	u32     rx_stat_maccontrolframesreceived;
19*d14abf15SRobert Mustacchi 	u32     rx_stat_xoffstateentered;
20*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsframestoolong;
21*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsjabbers;
22*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsundersizepkts;
23*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatspkts64octets;
24*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatspkts65octetsto127octets;
25*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatspkts128octetsto255octets;
26*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatspkts256octetsto511octets;
27*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatspkts512octetsto1023octets;
28*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatspkts1024octetsto1522octets;
29*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatspktsover1522octets;
30*d14abf15SRobert Mustacchi 
31*d14abf15SRobert Mustacchi 	u32     rx_stat_falsecarriererrors;
32*d14abf15SRobert Mustacchi 
33*d14abf15SRobert Mustacchi 	u32     tx_stat_ifhcoutoctets;
34*d14abf15SRobert Mustacchi 	u32     tx_stat_ifhcoutbadoctets;
35*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatscollisions;
36*d14abf15SRobert Mustacchi 	u32     tx_stat_outxonsent;
37*d14abf15SRobert Mustacchi 	u32     tx_stat_outxoffsent;
38*d14abf15SRobert Mustacchi 	u32     tx_stat_flowcontroldone;
39*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statssinglecollisionframes;
40*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsmultiplecollisionframes;
41*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsdeferredtransmissions;
42*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsexcessivecollisions;
43*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statslatecollisions;
44*d14abf15SRobert Mustacchi 	u32     tx_stat_ifhcoutucastpkts;
45*d14abf15SRobert Mustacchi 	u32     tx_stat_ifhcoutmulticastpkts;
46*d14abf15SRobert Mustacchi 	u32     tx_stat_ifhcoutbroadcastpkts;
47*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts64octets;
48*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts65octetsto127octets;
49*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts128octetsto255octets;
50*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts256octetsto511octets;
51*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts512octetsto1023octets;
52*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts1024octetsto1522octets;
53*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspktsover1522octets;
54*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsinternalmactransmiterrors;
55*d14abf15SRobert Mustacchi };
56*d14abf15SRobert Mustacchi 
57*d14abf15SRobert Mustacchi 
58*d14abf15SRobert Mustacchi struct bmac1_stats {
59*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpkt_lo;
60*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpkt_hi;
61*d14abf15SRobert Mustacchi 	u32	tx_stat_gtxpf_lo;
62*d14abf15SRobert Mustacchi 	u32	tx_stat_gtxpf_hi;
63*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfcs_lo;
64*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfcs_hi;
65*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmca_lo;
66*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmca_hi;
67*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbca_lo;
68*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbca_hi;
69*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfrg_lo;
70*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfrg_hi;
71*d14abf15SRobert Mustacchi 	u32	tx_stat_gtovr_lo;
72*d14abf15SRobert Mustacchi 	u32	tx_stat_gtovr_hi;
73*d14abf15SRobert Mustacchi 	u32	tx_stat_gt64_lo;
74*d14abf15SRobert Mustacchi 	u32	tx_stat_gt64_hi;
75*d14abf15SRobert Mustacchi 	u32	tx_stat_gt127_lo;
76*d14abf15SRobert Mustacchi 	u32	tx_stat_gt127_hi;
77*d14abf15SRobert Mustacchi 	u32	tx_stat_gt255_lo;
78*d14abf15SRobert Mustacchi 	u32	tx_stat_gt255_hi;
79*d14abf15SRobert Mustacchi 	u32	tx_stat_gt511_lo;
80*d14abf15SRobert Mustacchi 	u32	tx_stat_gt511_hi;
81*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1023_lo;
82*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1023_hi;
83*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1518_lo;
84*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1518_hi;
85*d14abf15SRobert Mustacchi 	u32	tx_stat_gt2047_lo;
86*d14abf15SRobert Mustacchi 	u32	tx_stat_gt2047_hi;
87*d14abf15SRobert Mustacchi 	u32	tx_stat_gt4095_lo;
88*d14abf15SRobert Mustacchi 	u32	tx_stat_gt4095_hi;
89*d14abf15SRobert Mustacchi 	u32	tx_stat_gt9216_lo;
90*d14abf15SRobert Mustacchi 	u32	tx_stat_gt9216_hi;
91*d14abf15SRobert Mustacchi 	u32	tx_stat_gt16383_lo;
92*d14abf15SRobert Mustacchi 	u32	tx_stat_gt16383_hi;
93*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmax_lo;
94*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmax_hi;
95*d14abf15SRobert Mustacchi 	u32	tx_stat_gtufl_lo;
96*d14abf15SRobert Mustacchi 	u32	tx_stat_gtufl_hi;
97*d14abf15SRobert Mustacchi 	u32	tx_stat_gterr_lo;
98*d14abf15SRobert Mustacchi 	u32	tx_stat_gterr_hi;
99*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbyt_lo;
100*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbyt_hi;
101*d14abf15SRobert Mustacchi 
102*d14abf15SRobert Mustacchi 	u32	rx_stat_gr64_lo;
103*d14abf15SRobert Mustacchi 	u32	rx_stat_gr64_hi;
104*d14abf15SRobert Mustacchi 	u32	rx_stat_gr127_lo;
105*d14abf15SRobert Mustacchi 	u32	rx_stat_gr127_hi;
106*d14abf15SRobert Mustacchi 	u32	rx_stat_gr255_lo;
107*d14abf15SRobert Mustacchi 	u32	rx_stat_gr255_hi;
108*d14abf15SRobert Mustacchi 	u32	rx_stat_gr511_lo;
109*d14abf15SRobert Mustacchi 	u32	rx_stat_gr511_hi;
110*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1023_lo;
111*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1023_hi;
112*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1518_lo;
113*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1518_hi;
114*d14abf15SRobert Mustacchi 	u32	rx_stat_gr2047_lo;
115*d14abf15SRobert Mustacchi 	u32	rx_stat_gr2047_hi;
116*d14abf15SRobert Mustacchi 	u32	rx_stat_gr4095_lo;
117*d14abf15SRobert Mustacchi 	u32	rx_stat_gr4095_hi;
118*d14abf15SRobert Mustacchi 	u32	rx_stat_gr9216_lo;
119*d14abf15SRobert Mustacchi 	u32	rx_stat_gr9216_hi;
120*d14abf15SRobert Mustacchi 	u32	rx_stat_gr16383_lo;
121*d14abf15SRobert Mustacchi 	u32	rx_stat_gr16383_hi;
122*d14abf15SRobert Mustacchi 	u32	rx_stat_grmax_lo;
123*d14abf15SRobert Mustacchi 	u32	rx_stat_grmax_hi;
124*d14abf15SRobert Mustacchi 	u32	rx_stat_grpkt_lo;
125*d14abf15SRobert Mustacchi 	u32	rx_stat_grpkt_hi;
126*d14abf15SRobert Mustacchi 	u32	rx_stat_grfcs_lo;
127*d14abf15SRobert Mustacchi 	u32	rx_stat_grfcs_hi;
128*d14abf15SRobert Mustacchi 	u32	rx_stat_grmca_lo;
129*d14abf15SRobert Mustacchi 	u32	rx_stat_grmca_hi;
130*d14abf15SRobert Mustacchi 	u32	rx_stat_grbca_lo;
131*d14abf15SRobert Mustacchi 	u32	rx_stat_grbca_hi;
132*d14abf15SRobert Mustacchi 	u32	rx_stat_grxcf_lo;
133*d14abf15SRobert Mustacchi 	u32	rx_stat_grxcf_hi;
134*d14abf15SRobert Mustacchi 	u32	rx_stat_grxpf_lo;
135*d14abf15SRobert Mustacchi 	u32	rx_stat_grxpf_hi;
136*d14abf15SRobert Mustacchi 	u32	rx_stat_grxuo_lo;
137*d14abf15SRobert Mustacchi 	u32	rx_stat_grxuo_hi;
138*d14abf15SRobert Mustacchi 	u32	rx_stat_grjbr_lo;
139*d14abf15SRobert Mustacchi 	u32	rx_stat_grjbr_hi;
140*d14abf15SRobert Mustacchi 	u32	rx_stat_grovr_lo;
141*d14abf15SRobert Mustacchi 	u32	rx_stat_grovr_hi;
142*d14abf15SRobert Mustacchi 	u32	rx_stat_grflr_lo;
143*d14abf15SRobert Mustacchi 	u32	rx_stat_grflr_hi;
144*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeg_lo;
145*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeg_hi;
146*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeb_lo;
147*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeb_hi;
148*d14abf15SRobert Mustacchi 	u32	rx_stat_grbyt_lo;
149*d14abf15SRobert Mustacchi 	u32	rx_stat_grbyt_hi;
150*d14abf15SRobert Mustacchi 	u32	rx_stat_grund_lo;
151*d14abf15SRobert Mustacchi 	u32	rx_stat_grund_hi;
152*d14abf15SRobert Mustacchi 	u32	rx_stat_grfrg_lo;
153*d14abf15SRobert Mustacchi 	u32	rx_stat_grfrg_hi;
154*d14abf15SRobert Mustacchi 	u32	rx_stat_grerb_lo;
155*d14abf15SRobert Mustacchi 	u32	rx_stat_grerb_hi;
156*d14abf15SRobert Mustacchi 	u32	rx_stat_grfre_lo;
157*d14abf15SRobert Mustacchi 	u32	rx_stat_grfre_hi;
158*d14abf15SRobert Mustacchi 	u32	rx_stat_gripj_lo;
159*d14abf15SRobert Mustacchi 	u32	rx_stat_gripj_hi;
160*d14abf15SRobert Mustacchi };
161*d14abf15SRobert Mustacchi 
162*d14abf15SRobert Mustacchi struct bmac2_stats {
163*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpk_lo; /* gtpok */
164*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpk_hi; /* gtpok */
165*d14abf15SRobert Mustacchi 	u32	tx_stat_gtxpf_lo; /* gtpf */
166*d14abf15SRobert Mustacchi 	u32	tx_stat_gtxpf_hi; /* gtpf */
167*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpp_lo; /* NEW BMAC2 */
168*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpp_hi; /* NEW BMAC2 */
169*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfcs_lo;
170*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfcs_hi;
171*d14abf15SRobert Mustacchi 	u32	tx_stat_gtuca_lo; /* NEW BMAC2 */
172*d14abf15SRobert Mustacchi 	u32	tx_stat_gtuca_hi; /* NEW BMAC2 */
173*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmca_lo;
174*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmca_hi;
175*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbca_lo;
176*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbca_hi;
177*d14abf15SRobert Mustacchi 	u32	tx_stat_gtovr_lo;
178*d14abf15SRobert Mustacchi 	u32	tx_stat_gtovr_hi;
179*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfrg_lo;
180*d14abf15SRobert Mustacchi 	u32	tx_stat_gtfrg_hi;
181*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpkt1_lo; /* gtpkt */
182*d14abf15SRobert Mustacchi 	u32	tx_stat_gtpkt1_hi; /* gtpkt */
183*d14abf15SRobert Mustacchi 	u32	tx_stat_gt64_lo;
184*d14abf15SRobert Mustacchi 	u32	tx_stat_gt64_hi;
185*d14abf15SRobert Mustacchi 	u32	tx_stat_gt127_lo;
186*d14abf15SRobert Mustacchi 	u32	tx_stat_gt127_hi;
187*d14abf15SRobert Mustacchi 	u32	tx_stat_gt255_lo;
188*d14abf15SRobert Mustacchi 	u32	tx_stat_gt255_hi;
189*d14abf15SRobert Mustacchi 	u32	tx_stat_gt511_lo;
190*d14abf15SRobert Mustacchi 	u32	tx_stat_gt511_hi;
191*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1023_lo;
192*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1023_hi;
193*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1518_lo;
194*d14abf15SRobert Mustacchi 	u32	tx_stat_gt1518_hi;
195*d14abf15SRobert Mustacchi 	u32	tx_stat_gt2047_lo;
196*d14abf15SRobert Mustacchi 	u32	tx_stat_gt2047_hi;
197*d14abf15SRobert Mustacchi 	u32	tx_stat_gt4095_lo;
198*d14abf15SRobert Mustacchi 	u32	tx_stat_gt4095_hi;
199*d14abf15SRobert Mustacchi 	u32	tx_stat_gt9216_lo;
200*d14abf15SRobert Mustacchi 	u32	tx_stat_gt9216_hi;
201*d14abf15SRobert Mustacchi 	u32	tx_stat_gt16383_lo;
202*d14abf15SRobert Mustacchi 	u32	tx_stat_gt16383_hi;
203*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmax_lo;
204*d14abf15SRobert Mustacchi 	u32	tx_stat_gtmax_hi;
205*d14abf15SRobert Mustacchi 	u32	tx_stat_gtufl_lo;
206*d14abf15SRobert Mustacchi 	u32	tx_stat_gtufl_hi;
207*d14abf15SRobert Mustacchi 	u32	tx_stat_gterr_lo;
208*d14abf15SRobert Mustacchi 	u32	tx_stat_gterr_hi;
209*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbyt_lo;
210*d14abf15SRobert Mustacchi 	u32	tx_stat_gtbyt_hi;
211*d14abf15SRobert Mustacchi 
212*d14abf15SRobert Mustacchi 	u32	rx_stat_gr64_lo;
213*d14abf15SRobert Mustacchi 	u32	rx_stat_gr64_hi;
214*d14abf15SRobert Mustacchi 	u32	rx_stat_gr127_lo;
215*d14abf15SRobert Mustacchi 	u32	rx_stat_gr127_hi;
216*d14abf15SRobert Mustacchi 	u32	rx_stat_gr255_lo;
217*d14abf15SRobert Mustacchi 	u32	rx_stat_gr255_hi;
218*d14abf15SRobert Mustacchi 	u32	rx_stat_gr511_lo;
219*d14abf15SRobert Mustacchi 	u32	rx_stat_gr511_hi;
220*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1023_lo;
221*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1023_hi;
222*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1518_lo;
223*d14abf15SRobert Mustacchi 	u32	rx_stat_gr1518_hi;
224*d14abf15SRobert Mustacchi 	u32	rx_stat_gr2047_lo;
225*d14abf15SRobert Mustacchi 	u32	rx_stat_gr2047_hi;
226*d14abf15SRobert Mustacchi 	u32	rx_stat_gr4095_lo;
227*d14abf15SRobert Mustacchi 	u32	rx_stat_gr4095_hi;
228*d14abf15SRobert Mustacchi 	u32	rx_stat_gr9216_lo;
229*d14abf15SRobert Mustacchi 	u32	rx_stat_gr9216_hi;
230*d14abf15SRobert Mustacchi 	u32	rx_stat_gr16383_lo;
231*d14abf15SRobert Mustacchi 	u32	rx_stat_gr16383_hi;
232*d14abf15SRobert Mustacchi 	u32	rx_stat_grmax_lo;
233*d14abf15SRobert Mustacchi 	u32	rx_stat_grmax_hi;
234*d14abf15SRobert Mustacchi 	u32	rx_stat_grpkt_lo;
235*d14abf15SRobert Mustacchi 	u32	rx_stat_grpkt_hi;
236*d14abf15SRobert Mustacchi 	u32	rx_stat_grfcs_lo;
237*d14abf15SRobert Mustacchi 	u32	rx_stat_grfcs_hi;
238*d14abf15SRobert Mustacchi 	u32	rx_stat_gruca_lo;
239*d14abf15SRobert Mustacchi 	u32	rx_stat_gruca_hi;
240*d14abf15SRobert Mustacchi 	u32	rx_stat_grmca_lo;
241*d14abf15SRobert Mustacchi 	u32	rx_stat_grmca_hi;
242*d14abf15SRobert Mustacchi 	u32	rx_stat_grbca_lo;
243*d14abf15SRobert Mustacchi 	u32	rx_stat_grbca_hi;
244*d14abf15SRobert Mustacchi 	u32	rx_stat_grxpf_lo; /* grpf */
245*d14abf15SRobert Mustacchi 	u32	rx_stat_grxpf_hi; /* grpf */
246*d14abf15SRobert Mustacchi 	u32	rx_stat_grpp_lo;
247*d14abf15SRobert Mustacchi 	u32	rx_stat_grpp_hi;
248*d14abf15SRobert Mustacchi 	u32	rx_stat_grxuo_lo; /* gruo */
249*d14abf15SRobert Mustacchi 	u32	rx_stat_grxuo_hi; /* gruo */
250*d14abf15SRobert Mustacchi 	u32	rx_stat_grjbr_lo;
251*d14abf15SRobert Mustacchi 	u32	rx_stat_grjbr_hi;
252*d14abf15SRobert Mustacchi 	u32	rx_stat_grovr_lo;
253*d14abf15SRobert Mustacchi 	u32	rx_stat_grovr_hi;
254*d14abf15SRobert Mustacchi 	u32	rx_stat_grxcf_lo; /* grcf */
255*d14abf15SRobert Mustacchi 	u32	rx_stat_grxcf_hi; /* grcf */
256*d14abf15SRobert Mustacchi 	u32	rx_stat_grflr_lo;
257*d14abf15SRobert Mustacchi 	u32	rx_stat_grflr_hi;
258*d14abf15SRobert Mustacchi 	u32	rx_stat_grpok_lo;
259*d14abf15SRobert Mustacchi 	u32	rx_stat_grpok_hi;
260*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeg_lo;
261*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeg_hi;
262*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeb_lo;
263*d14abf15SRobert Mustacchi 	u32	rx_stat_grmeb_hi;
264*d14abf15SRobert Mustacchi 	u32	rx_stat_grbyt_lo;
265*d14abf15SRobert Mustacchi 	u32	rx_stat_grbyt_hi;
266*d14abf15SRobert Mustacchi 	u32	rx_stat_grund_lo;
267*d14abf15SRobert Mustacchi 	u32	rx_stat_grund_hi;
268*d14abf15SRobert Mustacchi 	u32	rx_stat_grfrg_lo;
269*d14abf15SRobert Mustacchi 	u32	rx_stat_grfrg_hi;
270*d14abf15SRobert Mustacchi 	u32	rx_stat_grerb_lo; /* grerrbyt */
271*d14abf15SRobert Mustacchi 	u32	rx_stat_grerb_hi; /* grerrbyt */
272*d14abf15SRobert Mustacchi 	u32	rx_stat_grfre_lo; /* grfrerr */
273*d14abf15SRobert Mustacchi 	u32	rx_stat_grfre_hi; /* grfrerr */
274*d14abf15SRobert Mustacchi 	u32	rx_stat_gripj_lo;
275*d14abf15SRobert Mustacchi 	u32	rx_stat_gripj_hi;
276*d14abf15SRobert Mustacchi };
277*d14abf15SRobert Mustacchi 
278*d14abf15SRobert Mustacchi struct mstat_stats {
279*d14abf15SRobert Mustacchi 	struct {
280*d14abf15SRobert Mustacchi 		/* OTE MSTAT on E3 has a bug where this register's contents are
281*d14abf15SRobert Mustacchi 		 * actually tx_gtxpok + tx_gtxpf + (possibly)tx_gtxpp
282*d14abf15SRobert Mustacchi 		 */
283*d14abf15SRobert Mustacchi 		u32 tx_gtxpok_lo;
284*d14abf15SRobert Mustacchi 		u32 tx_gtxpok_hi;
285*d14abf15SRobert Mustacchi 		u32 tx_gtxpf_lo;
286*d14abf15SRobert Mustacchi 		u32 tx_gtxpf_hi;
287*d14abf15SRobert Mustacchi 		u32 tx_gtxpp_lo;
288*d14abf15SRobert Mustacchi 		u32 tx_gtxpp_hi;
289*d14abf15SRobert Mustacchi 		u32 tx_gtfcs_lo;
290*d14abf15SRobert Mustacchi 		u32 tx_gtfcs_hi;
291*d14abf15SRobert Mustacchi 		u32 tx_gtuca_lo;
292*d14abf15SRobert Mustacchi 		u32 tx_gtuca_hi;
293*d14abf15SRobert Mustacchi 		u32 tx_gtmca_lo;
294*d14abf15SRobert Mustacchi 		u32 tx_gtmca_hi;
295*d14abf15SRobert Mustacchi 		u32 tx_gtgca_lo;
296*d14abf15SRobert Mustacchi 		u32 tx_gtgca_hi;
297*d14abf15SRobert Mustacchi 		u32 tx_gtpkt_lo;
298*d14abf15SRobert Mustacchi 		u32 tx_gtpkt_hi;
299*d14abf15SRobert Mustacchi 		u32 tx_gt64_lo;
300*d14abf15SRobert Mustacchi 		u32 tx_gt64_hi;
301*d14abf15SRobert Mustacchi 		u32 tx_gt127_lo;
302*d14abf15SRobert Mustacchi 		u32 tx_gt127_hi;
303*d14abf15SRobert Mustacchi 		u32 tx_gt255_lo;
304*d14abf15SRobert Mustacchi 		u32 tx_gt255_hi;
305*d14abf15SRobert Mustacchi 		u32 tx_gt511_lo;
306*d14abf15SRobert Mustacchi 		u32 tx_gt511_hi;
307*d14abf15SRobert Mustacchi 		u32 tx_gt1023_lo;
308*d14abf15SRobert Mustacchi 		u32 tx_gt1023_hi;
309*d14abf15SRobert Mustacchi 		u32 tx_gt1518_lo;
310*d14abf15SRobert Mustacchi 		u32 tx_gt1518_hi;
311*d14abf15SRobert Mustacchi 		u32 tx_gt2047_lo;
312*d14abf15SRobert Mustacchi 		u32 tx_gt2047_hi;
313*d14abf15SRobert Mustacchi 		u32 tx_gt4095_lo;
314*d14abf15SRobert Mustacchi 		u32 tx_gt4095_hi;
315*d14abf15SRobert Mustacchi 		u32 tx_gt9216_lo;
316*d14abf15SRobert Mustacchi 		u32 tx_gt9216_hi;
317*d14abf15SRobert Mustacchi 		u32 tx_gt16383_lo;
318*d14abf15SRobert Mustacchi 		u32 tx_gt16383_hi;
319*d14abf15SRobert Mustacchi 		u32 tx_gtufl_lo;
320*d14abf15SRobert Mustacchi 		u32 tx_gtufl_hi;
321*d14abf15SRobert Mustacchi 		u32 tx_gterr_lo;
322*d14abf15SRobert Mustacchi 		u32 tx_gterr_hi;
323*d14abf15SRobert Mustacchi 		u32 tx_gtbyt_lo;
324*d14abf15SRobert Mustacchi 		u32 tx_gtbyt_hi;
325*d14abf15SRobert Mustacchi 		u32 tx_collisions_lo;
326*d14abf15SRobert Mustacchi 		u32 tx_collisions_hi;
327*d14abf15SRobert Mustacchi 		u32 tx_singlecollision_lo;
328*d14abf15SRobert Mustacchi 		u32 tx_singlecollision_hi;
329*d14abf15SRobert Mustacchi 		u32 tx_multiplecollisions_lo;
330*d14abf15SRobert Mustacchi 		u32 tx_multiplecollisions_hi;
331*d14abf15SRobert Mustacchi 		u32 tx_deferred_lo;
332*d14abf15SRobert Mustacchi 		u32 tx_deferred_hi;
333*d14abf15SRobert Mustacchi 		u32 tx_excessivecollisions_lo;
334*d14abf15SRobert Mustacchi 		u32 tx_excessivecollisions_hi;
335*d14abf15SRobert Mustacchi 		u32 tx_latecollisions_lo;
336*d14abf15SRobert Mustacchi 		u32 tx_latecollisions_hi;
337*d14abf15SRobert Mustacchi 	} stats_tx;
338*d14abf15SRobert Mustacchi 
339*d14abf15SRobert Mustacchi 	struct {
340*d14abf15SRobert Mustacchi 		u32 rx_gr64_lo;
341*d14abf15SRobert Mustacchi 		u32 rx_gr64_hi;
342*d14abf15SRobert Mustacchi 		u32 rx_gr127_lo;
343*d14abf15SRobert Mustacchi 		u32 rx_gr127_hi;
344*d14abf15SRobert Mustacchi 		u32 rx_gr255_lo;
345*d14abf15SRobert Mustacchi 		u32 rx_gr255_hi;
346*d14abf15SRobert Mustacchi 		u32 rx_gr511_lo;
347*d14abf15SRobert Mustacchi 		u32 rx_gr511_hi;
348*d14abf15SRobert Mustacchi 		u32 rx_gr1023_lo;
349*d14abf15SRobert Mustacchi 		u32 rx_gr1023_hi;
350*d14abf15SRobert Mustacchi 		u32 rx_gr1518_lo;
351*d14abf15SRobert Mustacchi 		u32 rx_gr1518_hi;
352*d14abf15SRobert Mustacchi 		u32 rx_gr2047_lo;
353*d14abf15SRobert Mustacchi 		u32 rx_gr2047_hi;
354*d14abf15SRobert Mustacchi 		u32 rx_gr4095_lo;
355*d14abf15SRobert Mustacchi 		u32 rx_gr4095_hi;
356*d14abf15SRobert Mustacchi 		u32 rx_gr9216_lo;
357*d14abf15SRobert Mustacchi 		u32 rx_gr9216_hi;
358*d14abf15SRobert Mustacchi 		u32 rx_gr16383_lo;
359*d14abf15SRobert Mustacchi 		u32 rx_gr16383_hi;
360*d14abf15SRobert Mustacchi 		u32 rx_grpkt_lo;
361*d14abf15SRobert Mustacchi 		u32 rx_grpkt_hi;
362*d14abf15SRobert Mustacchi 		u32 rx_grfcs_lo;
363*d14abf15SRobert Mustacchi 		u32 rx_grfcs_hi;
364*d14abf15SRobert Mustacchi 		u32 rx_gruca_lo;
365*d14abf15SRobert Mustacchi 		u32 rx_gruca_hi;
366*d14abf15SRobert Mustacchi 		u32 rx_grmca_lo;
367*d14abf15SRobert Mustacchi 		u32 rx_grmca_hi;
368*d14abf15SRobert Mustacchi 		u32 rx_grbca_lo;
369*d14abf15SRobert Mustacchi 		u32 rx_grbca_hi;
370*d14abf15SRobert Mustacchi 		u32 rx_grxpf_lo;
371*d14abf15SRobert Mustacchi 		u32 rx_grxpf_hi;
372*d14abf15SRobert Mustacchi 		u32 rx_grxpp_lo;
373*d14abf15SRobert Mustacchi 		u32 rx_grxpp_hi;
374*d14abf15SRobert Mustacchi 		u32 rx_grxuo_lo;
375*d14abf15SRobert Mustacchi 		u32 rx_grxuo_hi;
376*d14abf15SRobert Mustacchi 		u32 rx_grovr_lo;
377*d14abf15SRobert Mustacchi 		u32 rx_grovr_hi;
378*d14abf15SRobert Mustacchi 		u32 rx_grxcf_lo;
379*d14abf15SRobert Mustacchi 		u32 rx_grxcf_hi;
380*d14abf15SRobert Mustacchi 		u32 rx_grflr_lo;
381*d14abf15SRobert Mustacchi 		u32 rx_grflr_hi;
382*d14abf15SRobert Mustacchi 		u32 rx_grpok_lo;
383*d14abf15SRobert Mustacchi 		u32 rx_grpok_hi;
384*d14abf15SRobert Mustacchi 		u32 rx_grbyt_lo;
385*d14abf15SRobert Mustacchi 		u32 rx_grbyt_hi;
386*d14abf15SRobert Mustacchi 		u32 rx_grund_lo;
387*d14abf15SRobert Mustacchi 		u32 rx_grund_hi;
388*d14abf15SRobert Mustacchi 		u32 rx_grfrg_lo;
389*d14abf15SRobert Mustacchi 		u32 rx_grfrg_hi;
390*d14abf15SRobert Mustacchi 		u32 rx_grerb_lo;
391*d14abf15SRobert Mustacchi 		u32 rx_grerb_hi;
392*d14abf15SRobert Mustacchi 		u32 rx_grfre_lo;
393*d14abf15SRobert Mustacchi 		u32 rx_grfre_hi;
394*d14abf15SRobert Mustacchi 
395*d14abf15SRobert Mustacchi 		u32 rx_alignmenterrors_lo;
396*d14abf15SRobert Mustacchi 		u32 rx_alignmenterrors_hi;
397*d14abf15SRobert Mustacchi 		u32 rx_falsecarrier_lo;
398*d14abf15SRobert Mustacchi 		u32 rx_falsecarrier_hi;
399*d14abf15SRobert Mustacchi 		u32 rx_llfcmsgcnt_lo;
400*d14abf15SRobert Mustacchi 		u32 rx_llfcmsgcnt_hi;
401*d14abf15SRobert Mustacchi 	} stats_rx;
402*d14abf15SRobert Mustacchi };
403*d14abf15SRobert Mustacchi 
404*d14abf15SRobert Mustacchi union mac_stats {
405*d14abf15SRobert Mustacchi 	struct emac_stats	emac_stats;
406*d14abf15SRobert Mustacchi 	struct bmac1_stats	bmac1_stats;
407*d14abf15SRobert Mustacchi 	struct bmac2_stats	bmac2_stats;
408*d14abf15SRobert Mustacchi 	struct mstat_stats	mstat_stats;
409*d14abf15SRobert Mustacchi };
410*d14abf15SRobert Mustacchi 
411*d14abf15SRobert Mustacchi 
412*d14abf15SRobert Mustacchi struct mac_stx {
413*d14abf15SRobert Mustacchi 	/* in_bad_octets */
414*d14abf15SRobert Mustacchi 	u32     rx_stat_ifhcinbadoctets_hi;
415*d14abf15SRobert Mustacchi 	u32     rx_stat_ifhcinbadoctets_lo;
416*d14abf15SRobert Mustacchi 
417*d14abf15SRobert Mustacchi 	/* out_bad_octets */
418*d14abf15SRobert Mustacchi 	u32     tx_stat_ifhcoutbadoctets_hi;
419*d14abf15SRobert Mustacchi 	u32     tx_stat_ifhcoutbadoctets_lo;
420*d14abf15SRobert Mustacchi 
421*d14abf15SRobert Mustacchi 	/* crc_receive_errors */
422*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsfcserrors_hi;
423*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsfcserrors_lo;
424*d14abf15SRobert Mustacchi 	/* alignment_errors */
425*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsalignmenterrors_hi;
426*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsalignmenterrors_lo;
427*d14abf15SRobert Mustacchi 	/* carrier_sense_errors */
428*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statscarriersenseerrors_hi;
429*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statscarriersenseerrors_lo;
430*d14abf15SRobert Mustacchi 	/* false_carrier_detections */
431*d14abf15SRobert Mustacchi 	u32     rx_stat_falsecarriererrors_hi;
432*d14abf15SRobert Mustacchi 	u32     rx_stat_falsecarriererrors_lo;
433*d14abf15SRobert Mustacchi 
434*d14abf15SRobert Mustacchi 	/* runt_packets_received */
435*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsundersizepkts_hi;
436*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsundersizepkts_lo;
437*d14abf15SRobert Mustacchi 	/* jabber_packets_received */
438*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsframestoolong_hi;
439*d14abf15SRobert Mustacchi 	u32     rx_stat_dot3statsframestoolong_lo;
440*d14abf15SRobert Mustacchi 
441*d14abf15SRobert Mustacchi 	/* error_runt_packets_received */
442*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsfragments_hi;
443*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsfragments_lo;
444*d14abf15SRobert Mustacchi 	/* error_jabber_packets_received */
445*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsjabbers_hi;
446*d14abf15SRobert Mustacchi 	u32     rx_stat_etherstatsjabbers_lo;
447*d14abf15SRobert Mustacchi 
448*d14abf15SRobert Mustacchi 	/* control_frames_received */
449*d14abf15SRobert Mustacchi 	u32     rx_stat_maccontrolframesreceived_hi;
450*d14abf15SRobert Mustacchi 	u32     rx_stat_maccontrolframesreceived_lo;
451*d14abf15SRobert Mustacchi 	u32     rx_stat_mac_xpf_hi;
452*d14abf15SRobert Mustacchi 	u32     rx_stat_mac_xpf_lo;
453*d14abf15SRobert Mustacchi 	u32     rx_stat_mac_xcf_hi;
454*d14abf15SRobert Mustacchi 	u32     rx_stat_mac_xcf_lo;
455*d14abf15SRobert Mustacchi 
456*d14abf15SRobert Mustacchi 	/* xoff_state_entered */
457*d14abf15SRobert Mustacchi 	u32     rx_stat_xoffstateentered_hi;
458*d14abf15SRobert Mustacchi 	u32     rx_stat_xoffstateentered_lo;
459*d14abf15SRobert Mustacchi 	/* pause_xon_frames_received */
460*d14abf15SRobert Mustacchi 	u32     rx_stat_xonpauseframesreceived_hi;
461*d14abf15SRobert Mustacchi 	u32     rx_stat_xonpauseframesreceived_lo;
462*d14abf15SRobert Mustacchi 	/* pause_xoff_frames_received */
463*d14abf15SRobert Mustacchi 	u32     rx_stat_xoffpauseframesreceived_hi;
464*d14abf15SRobert Mustacchi 	u32     rx_stat_xoffpauseframesreceived_lo;
465*d14abf15SRobert Mustacchi 	/* pause_xon_frames_transmitted */
466*d14abf15SRobert Mustacchi 	u32     tx_stat_outxonsent_hi;
467*d14abf15SRobert Mustacchi 	u32     tx_stat_outxonsent_lo;
468*d14abf15SRobert Mustacchi 	/* pause_xoff_frames_transmitted */
469*d14abf15SRobert Mustacchi 	u32     tx_stat_outxoffsent_hi;
470*d14abf15SRobert Mustacchi 	u32     tx_stat_outxoffsent_lo;
471*d14abf15SRobert Mustacchi 	/* flow_control_done */
472*d14abf15SRobert Mustacchi 	u32     tx_stat_flowcontroldone_hi;
473*d14abf15SRobert Mustacchi 	u32     tx_stat_flowcontroldone_lo;
474*d14abf15SRobert Mustacchi 
475*d14abf15SRobert Mustacchi 	/* ether_stats_collisions */
476*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatscollisions_hi;
477*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatscollisions_lo;
478*d14abf15SRobert Mustacchi 	/* single_collision_transmit_frames */
479*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statssinglecollisionframes_hi;
480*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statssinglecollisionframes_lo;
481*d14abf15SRobert Mustacchi 	/* multiple_collision_transmit_frames */
482*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsmultiplecollisionframes_hi;
483*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsmultiplecollisionframes_lo;
484*d14abf15SRobert Mustacchi 	/* deferred_transmissions */
485*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsdeferredtransmissions_hi;
486*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsdeferredtransmissions_lo;
487*d14abf15SRobert Mustacchi 	/* excessive_collision_frames */
488*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsexcessivecollisions_hi;
489*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsexcessivecollisions_lo;
490*d14abf15SRobert Mustacchi 	/* late_collision_frames */
491*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statslatecollisions_hi;
492*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statslatecollisions_lo;
493*d14abf15SRobert Mustacchi 
494*d14abf15SRobert Mustacchi 	/* frames_transmitted_64_bytes */
495*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts64octets_hi;
496*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts64octets_lo;
497*d14abf15SRobert Mustacchi 	/* frames_transmitted_65_127_bytes */
498*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts65octetsto127octets_hi;
499*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts65octetsto127octets_lo;
500*d14abf15SRobert Mustacchi 	/* frames_transmitted_128_255_bytes */
501*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts128octetsto255octets_hi;
502*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts128octetsto255octets_lo;
503*d14abf15SRobert Mustacchi 	/* frames_transmitted_256_511_bytes */
504*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts256octetsto511octets_hi;
505*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts256octetsto511octets_lo;
506*d14abf15SRobert Mustacchi 	/* frames_transmitted_512_1023_bytes */
507*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts512octetsto1023octets_hi;
508*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts512octetsto1023octets_lo;
509*d14abf15SRobert Mustacchi 	/* frames_transmitted_1024_1522_bytes */
510*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts1024octetsto1522octets_hi;
511*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspkts1024octetsto1522octets_lo;
512*d14abf15SRobert Mustacchi 	/* frames_transmitted_1523_9022_bytes */
513*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspktsover1522octets_hi;
514*d14abf15SRobert Mustacchi 	u32     tx_stat_etherstatspktsover1522octets_lo;
515*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_2047_hi;
516*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_2047_lo;
517*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_4095_hi;
518*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_4095_lo;
519*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_9216_hi;
520*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_9216_lo;
521*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_16383_hi;
522*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_16383_lo;
523*d14abf15SRobert Mustacchi 
524*d14abf15SRobert Mustacchi 	/* internal_mac_transmit_errors */
525*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsinternalmactransmiterrors_hi;
526*d14abf15SRobert Mustacchi 	u32     tx_stat_dot3statsinternalmactransmiterrors_lo;
527*d14abf15SRobert Mustacchi 
528*d14abf15SRobert Mustacchi 	/* if_out_discards */
529*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_ufl_hi;
530*d14abf15SRobert Mustacchi 	u32     tx_stat_mac_ufl_lo;
531*d14abf15SRobert Mustacchi };
532*d14abf15SRobert Mustacchi 
533*d14abf15SRobert Mustacchi 
534*d14abf15SRobert Mustacchi #define MAC_STX_IDX_MAX                     2
535*d14abf15SRobert Mustacchi 
536*d14abf15SRobert Mustacchi struct host_port_stats {
537*d14abf15SRobert Mustacchi 	u32            host_port_stats_counter;
538*d14abf15SRobert Mustacchi 
539*d14abf15SRobert Mustacchi 	struct mac_stx mac_stx[MAC_STX_IDX_MAX];
540*d14abf15SRobert Mustacchi 
541*d14abf15SRobert Mustacchi 	u32            brb_drop_hi;
542*d14abf15SRobert Mustacchi 	u32            brb_drop_lo;
543*d14abf15SRobert Mustacchi 
544*d14abf15SRobert Mustacchi 	u32            not_used; /* obsolete as of MFW 7.2.1 */
545*d14abf15SRobert Mustacchi 
546*d14abf15SRobert Mustacchi 	u32            pfc_frames_tx_hi;
547*d14abf15SRobert Mustacchi 	u32            pfc_frames_tx_lo;
548*d14abf15SRobert Mustacchi 	u32            pfc_frames_rx_hi;
549*d14abf15SRobert Mustacchi 	u32            pfc_frames_rx_lo;
550*d14abf15SRobert Mustacchi 
551*d14abf15SRobert Mustacchi 	u32            eee_lpi_count_hi;
552*d14abf15SRobert Mustacchi 	u32            eee_lpi_count_lo;
553*d14abf15SRobert Mustacchi };
554*d14abf15SRobert Mustacchi 
555*d14abf15SRobert Mustacchi 
556*d14abf15SRobert Mustacchi struct host_func_stats {
557*d14abf15SRobert Mustacchi 	u32     host_func_stats_start;
558*d14abf15SRobert Mustacchi 
559*d14abf15SRobert Mustacchi 	u32     total_bytes_received_hi;
560*d14abf15SRobert Mustacchi 	u32     total_bytes_received_lo;
561*d14abf15SRobert Mustacchi 
562*d14abf15SRobert Mustacchi 	u32     total_bytes_transmitted_hi;
563*d14abf15SRobert Mustacchi 	u32     total_bytes_transmitted_lo;
564*d14abf15SRobert Mustacchi 
565*d14abf15SRobert Mustacchi 	u32     total_unicast_packets_received_hi;
566*d14abf15SRobert Mustacchi 	u32     total_unicast_packets_received_lo;
567*d14abf15SRobert Mustacchi 
568*d14abf15SRobert Mustacchi 	u32     total_multicast_packets_received_hi;
569*d14abf15SRobert Mustacchi 	u32     total_multicast_packets_received_lo;
570*d14abf15SRobert Mustacchi 
571*d14abf15SRobert Mustacchi 	u32     total_broadcast_packets_received_hi;
572*d14abf15SRobert Mustacchi 	u32     total_broadcast_packets_received_lo;
573*d14abf15SRobert Mustacchi 
574*d14abf15SRobert Mustacchi 	u32     total_unicast_packets_transmitted_hi;
575*d14abf15SRobert Mustacchi 	u32     total_unicast_packets_transmitted_lo;
576*d14abf15SRobert Mustacchi 
577*d14abf15SRobert Mustacchi 	u32     total_multicast_packets_transmitted_hi;
578*d14abf15SRobert Mustacchi 	u32     total_multicast_packets_transmitted_lo;
579*d14abf15SRobert Mustacchi 
580*d14abf15SRobert Mustacchi 	u32     total_broadcast_packets_transmitted_hi;
581*d14abf15SRobert Mustacchi 	u32     total_broadcast_packets_transmitted_lo;
582*d14abf15SRobert Mustacchi 
583*d14abf15SRobert Mustacchi 	u32     valid_bytes_received_hi;
584*d14abf15SRobert Mustacchi 	u32     valid_bytes_received_lo;
585*d14abf15SRobert Mustacchi 
586*d14abf15SRobert Mustacchi 	u32     host_func_stats_end;
587*d14abf15SRobert Mustacchi };
588*d14abf15SRobert Mustacchi 
589*d14abf15SRobert Mustacchi /* VIC definitions */
590*d14abf15SRobert Mustacchi #define VICSTATST_UIF_INDEX 2
591*d14abf15SRobert Mustacchi 
592*d14abf15SRobert Mustacchi /*
593*d14abf15SRobert Mustacchi  * stats collected for afex.
594*d14abf15SRobert Mustacchi  * NOTE: structure is exactly as expected to be received by the switch.
595*d14abf15SRobert Mustacchi  *       order must remain exactly as is unless protocol changes !
596*d14abf15SRobert Mustacchi  */
597*d14abf15SRobert Mustacchi struct afex_stats {
598*d14abf15SRobert Mustacchi 	u32 tx_unicast_frames_hi;
599*d14abf15SRobert Mustacchi 	u32 tx_unicast_frames_lo;
600*d14abf15SRobert Mustacchi 	u32 tx_unicast_bytes_hi;
601*d14abf15SRobert Mustacchi 	u32 tx_unicast_bytes_lo;
602*d14abf15SRobert Mustacchi 	u32 tx_multicast_frames_hi;
603*d14abf15SRobert Mustacchi 	u32 tx_multicast_frames_lo;
604*d14abf15SRobert Mustacchi 	u32 tx_multicast_bytes_hi;
605*d14abf15SRobert Mustacchi 	u32 tx_multicast_bytes_lo;
606*d14abf15SRobert Mustacchi 	u32 tx_broadcast_frames_hi;
607*d14abf15SRobert Mustacchi 	u32 tx_broadcast_frames_lo;
608*d14abf15SRobert Mustacchi 	u32 tx_broadcast_bytes_hi;
609*d14abf15SRobert Mustacchi 	u32 tx_broadcast_bytes_lo;
610*d14abf15SRobert Mustacchi 	u32 tx_frames_discarded_hi;
611*d14abf15SRobert Mustacchi 	u32 tx_frames_discarded_lo;
612*d14abf15SRobert Mustacchi 	u32 tx_frames_dropped_hi;
613*d14abf15SRobert Mustacchi 	u32 tx_frames_dropped_lo;
614*d14abf15SRobert Mustacchi 
615*d14abf15SRobert Mustacchi 	u32 rx_unicast_frames_hi;
616*d14abf15SRobert Mustacchi 	u32 rx_unicast_frames_lo;
617*d14abf15SRobert Mustacchi 	u32 rx_unicast_bytes_hi;
618*d14abf15SRobert Mustacchi 	u32 rx_unicast_bytes_lo;
619*d14abf15SRobert Mustacchi 	u32 rx_multicast_frames_hi;
620*d14abf15SRobert Mustacchi 	u32 rx_multicast_frames_lo;
621*d14abf15SRobert Mustacchi 	u32 rx_multicast_bytes_hi;
622*d14abf15SRobert Mustacchi 	u32 rx_multicast_bytes_lo;
623*d14abf15SRobert Mustacchi 	u32 rx_broadcast_frames_hi;
624*d14abf15SRobert Mustacchi 	u32 rx_broadcast_frames_lo;
625*d14abf15SRobert Mustacchi 	u32 rx_broadcast_bytes_hi;
626*d14abf15SRobert Mustacchi 	u32 rx_broadcast_bytes_lo;
627*d14abf15SRobert Mustacchi 	u32 rx_frames_discarded_hi;
628*d14abf15SRobert Mustacchi 	u32 rx_frames_discarded_lo;
629*d14abf15SRobert Mustacchi 	u32 rx_frames_dropped_hi;
630*d14abf15SRobert Mustacchi 	u32 rx_frames_dropped_lo;
631*d14abf15SRobert Mustacchi };
632*d14abf15SRobert Mustacchi 
633*d14abf15SRobert Mustacchi /* To maintain backward compatibility between FW and drivers, new elements */
634*d14abf15SRobert Mustacchi /* should be added to the end of the structure. */
635*d14abf15SRobert Mustacchi 
636*d14abf15SRobert Mustacchi /* Per  Port Statistics    */
637*d14abf15SRobert Mustacchi struct port_info {
638*d14abf15SRobert Mustacchi 	u32 size; /* size of this structure (i.e. sizeof(port_info))  */
639*d14abf15SRobert Mustacchi 	u32 enabled;      /* 0 =Disabled, 1= Enabled */
640*d14abf15SRobert Mustacchi 	u32 link_speed;   /* multiplier of 100Mb */
641*d14abf15SRobert Mustacchi 	u32 wol_support;  /* WoL Support (i.e. Non-Zero if WOL supported ) */
642*d14abf15SRobert Mustacchi 	u32 flow_control; /* 802.3X Flow Ctrl. 0=off 1=RX 2=TX 3=RX&TX.*/
643*d14abf15SRobert Mustacchi 	u32 flex10;     /* Flex10 mode enabled. non zero = yes */
644*d14abf15SRobert Mustacchi 	u32 rx_drops;  /* RX Discards. Counters roll over, never reset */
645*d14abf15SRobert Mustacchi 	u32 rx_errors; /* RX Errors. Physical Port Stats L95, All PFs and NC-SI.
646*d14abf15SRobert Mustacchi 				   This is flagged by Consumer as an error. */
647*d14abf15SRobert Mustacchi 	u32 rx_uncast_lo;   /* RX Unicast Packets. Free running counters: */
648*d14abf15SRobert Mustacchi 	u32 rx_uncast_hi;   /* RX Unicast Packets. Free running counters: */
649*d14abf15SRobert Mustacchi 	u32 rx_mcast_lo;    /* RX Multicast Packets  */
650*d14abf15SRobert Mustacchi 	u32 rx_mcast_hi;    /* RX Multicast Packets  */
651*d14abf15SRobert Mustacchi 	u32 rx_bcast_lo;    /* RX Broadcast Packets  */
652*d14abf15SRobert Mustacchi 	u32 rx_bcast_hi;    /* RX Broadcast Packets  */
653*d14abf15SRobert Mustacchi 	u32 tx_uncast_lo;   /* TX Unicast Packets   */
654*d14abf15SRobert Mustacchi 	u32 tx_uncast_hi;   /* TX Unicast Packets   */
655*d14abf15SRobert Mustacchi 	u32 tx_mcast_lo;    /* TX Multicast Packets  */
656*d14abf15SRobert Mustacchi 	u32 tx_mcast_hi;    /* TX Multicast Packets  */
657*d14abf15SRobert Mustacchi 	u32 tx_bcast_lo;    /* TX Broadcast Packets  */
658*d14abf15SRobert Mustacchi 	u32 tx_bcast_hi;    /* TX Broadcast Packets  */
659*d14abf15SRobert Mustacchi 	u32 tx_errors;      /* TX Errors              */
660*d14abf15SRobert Mustacchi 	u32 tx_discards;    /* TX Discards          */
661*d14abf15SRobert Mustacchi 	u32 rx_frames_lo;   /* RX Frames received  */
662*d14abf15SRobert Mustacchi 	u32 rx_frames_hi;   /* RX Frames received  */
663*d14abf15SRobert Mustacchi 	u32 rx_bytes_lo;    /* RX Bytes received    */
664*d14abf15SRobert Mustacchi 	u32 rx_bytes_hi;    /* RX Bytes received    */
665*d14abf15SRobert Mustacchi 	u32 tx_frames_lo;   /* TX Frames sent      */
666*d14abf15SRobert Mustacchi 	u32 tx_frames_hi;   /* TX Frames sent      */
667*d14abf15SRobert Mustacchi 	u32 tx_bytes_lo;    /* TX Bytes sent        */
668*d14abf15SRobert Mustacchi 	u32 tx_bytes_hi;    /* TX Bytes sent        */
669*d14abf15SRobert Mustacchi 	u32 link_status;  /* Port P Link Status. 1:0 bit for port enabled.
670*d14abf15SRobert Mustacchi 				1:1 bit for link good,
671*d14abf15SRobert Mustacchi 				2:1 Set if link changed between last poll. */
672*d14abf15SRobert Mustacchi 	u32 tx_pfc_frames_lo;   /* PFC Frames sent.    */
673*d14abf15SRobert Mustacchi 	u32 tx_pfc_frames_hi;   /* PFC Frames sent.    */
674*d14abf15SRobert Mustacchi 	u32 rx_pfc_frames_lo;   /* PFC Frames Received. */
675*d14abf15SRobert Mustacchi 	u32 rx_pfc_frames_hi;   /* PFC Frames Received. */
676*d14abf15SRobert Mustacchi };
677*d14abf15SRobert Mustacchi 
678*d14abf15SRobert Mustacchi #endif /* MAC_STATS_H */
679*d14abf15SRobert Mustacchi 
680