summaryrefslogtreecommitdiff
path: root/drivers/scsi/bfa/include/cna/pstats/phyport_defs.h
blob: eb7548030d0f869b173a8078722601e877862ac6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
/*
 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
 * All rights reserved.
 *
 * Linux driver for Brocade Fibre Channel Host Bus Adapter.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License (GPL) Version 2 as
 * published by the Free Software Foundation
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 */

#ifndef __PHYPORT_DEFS_H__
#define __PHYPORT_DEFS_H__

#define BNA_TXF_ID_MAX  	64
#define BNA_RXF_ID_MAX  	64

/*
 * Statistics
 */

/*
 * TxF Frame Statistics
 */
struct bna_stats_txf {
	u64        ucast_octets;
	u64        ucast;
	u64        ucast_vlan;

	u64        mcast_octets;
	u64        mcast;
	u64        mcast_vlan;

	u64        bcast_octets;
	u64        bcast;
	u64        bcast_vlan;

	u64        errors;
	u64        filter_vlan;	/* frames filtered due to VLAN */
	u64        filter_mac_sa;	/* frames filtered due to SA check */
};

/*
 * RxF Frame Statistics
 */
struct bna_stats_rxf {
	u64        ucast_octets;
	u64        ucast;
	u64        ucast_vlan;

	u64        mcast_octets;
	u64        mcast;
	u64        mcast_vlan;

	u64        bcast_octets;
	u64        bcast;
	u64        bcast_vlan;
	u64        frame_drops;
};

/*
 * FC Tx Frame Statistics
 */
struct bna_stats_fc_tx {
	u64        txf_ucast_octets;
	u64        txf_ucast;
	u64        txf_ucast_vlan;

	u64        txf_mcast_octets;
	u64        txf_mcast;
	u64        txf_mcast_vlan;

	u64        txf_bcast_octets;
	u64        txf_bcast;
	u64        txf_bcast_vlan;

	u64        txf_parity_errors;
	u64        txf_timeout;
	u64        txf_fid_parity_errors;
};

/*
 * FC Rx Frame Statistics
 */
struct bna_stats_fc_rx {
	u64        rxf_ucast_octets;
	u64        rxf_ucast;
	u64        rxf_ucast_vlan;

	u64        rxf_mcast_octets;
	u64        rxf_mcast;
	u64        rxf_mcast_vlan;

	u64        rxf_bcast_octets;
	u64        rxf_bcast;
	u64        rxf_bcast_vlan;
};

/*
 * RAD Frame Statistics
 */
struct cna_stats_rad {
	u64        rx_frames;
	u64        rx_octets;
	u64        rx_vlan_frames;

	u64        rx_ucast;
	u64        rx_ucast_octets;
	u64        rx_ucast_vlan;

	u64        rx_mcast;
	u64        rx_mcast_octets;
	u64        rx_mcast_vlan;

	u64        rx_bcast;
	u64        rx_bcast_octets;
	u64        rx_bcast_vlan;

	u64        rx_drops;
};

/*
 * BPC Tx Registers
 */
struct cna_stats_bpc_tx {
	u64        tx_pause[8];
	u64        tx_zero_pause[8];	/*  Pause cancellation */
	u64        tx_first_pause[8];	/*  Pause initiation rather
						 *than retention */
};

/*
 * BPC Rx Registers
 */
struct cna_stats_bpc_rx {
	u64        rx_pause[8];
	u64        rx_zero_pause[8];	/*  Pause cancellation */
	u64        rx_first_pause[8];	/*  Pause initiation rather
						 *than retention */
};

/*
 * MAC Rx Statistics
 */
struct cna_stats_mac_rx {
	u64        frame_64;	/* both rx and tx counter */
	u64        frame_65_127;	/* both rx and tx counter */
	u64        frame_128_255;	/* both rx and tx counter */
	u64        frame_256_511;	/* both rx and tx counter */
	u64        frame_512_1023;	/* both rx and tx counter */
	u64        frame_1024_1518;	/* both rx and tx counter */
	u64        frame_1518_1522;	/* both rx and tx counter */
	u64        rx_bytes;
	u64        rx_packets;
	u64        rx_fcs_error;
	u64        rx_multicast;
	u64        rx_broadcast;
	u64        rx_control_frames;
	u64        rx_pause;
	u64        rx_unknown_opcode;
	u64        rx_alignment_error;
	u64        rx_frame_length_error;
	u64        rx_code_error;
	u64        rx_carrier_sense_error;
	u64        rx_undersize;
	u64        rx_oversize;
	u64        rx_fragments;
	u64        rx_jabber;
	u64        rx_drop;
};

/*
 * MAC Tx Statistics
 */
struct cna_stats_mac_tx {
	u64        tx_bytes;
	u64        tx_packets;
	u64        tx_multicast;
	u64        tx_broadcast;
	u64        tx_pause;
	u64        tx_deferral;
	u64        tx_excessive_deferral;
	u64        tx_single_collision;
	u64        tx_muliple_collision;
	u64        tx_late_collision;
	u64        tx_excessive_collision;
	u64        tx_total_collision;
	u64        tx_pause_honored;
	u64        tx_drop;
	u64        tx_jabber;
	u64        tx_fcs_error;
	u64        tx_control_frame;
	u64        tx_oversize;
	u64        tx_undersize;
	u64        tx_fragments;
};

/*
 * Complete statistics
 */
struct bna_stats {
	struct cna_stats_mac_rx mac_rx_stats;
	struct cna_stats_bpc_rx bpc_rx_stats;
	struct cna_stats_rad rad_stats;
	struct bna_stats_fc_rx fc_rx_stats;
	struct cna_stats_mac_tx mac_tx_stats;
	struct cna_stats_bpc_tx bpc_tx_stats;
	struct bna_stats_fc_tx fc_tx_stats;
	struct bna_stats_rxf rxf_stats[BNA_TXF_ID_MAX];
	struct bna_stats_txf txf_stats[BNA_RXF_ID_MAX];
};

#endif