Commit | Line | Data |
---|---|---|
b85daafe KG |
1 | /* |
2 | * Copyright (c) 2005-2010 Brocade Communications Systems, Inc. | |
3 | * All rights reserved | |
4 | * www.brocade.com | |
5 | * | |
6 | * Linux driver for Brocade Fibre Channel Host Bus Adapter. | |
7 | * | |
8 | * This program is free software; you can redistribute it and/or modify it | |
9 | * under the terms of the GNU General Public License (GPL) Version 2 as | |
10 | * published by the Free Software Foundation | |
11 | * | |
12 | * This program is distributed in the hope that it will be useful, but | |
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 | * General Public License for more details. | |
16 | */ | |
17 | #ifndef BFAD_BSG_H | |
18 | #define BFAD_BSG_H | |
19 | ||
20 | #include "bfa_defs.h" | |
21 | #include "bfa_defs_fcs.h" | |
22 | ||
23 | /* Definitions of vendor unique structures and command codes passed in | |
24 | * using FC_BSG_HST_VENDOR message code. | |
25 | */ | |
26 | enum { | |
60138066 KG |
27 | IOCMD_IOC_ENABLE = 0x1, |
28 | IOCMD_IOC_DISABLE, | |
29 | IOCMD_IOC_GET_ATTR, | |
b85daafe | 30 | IOCMD_IOC_GET_INFO, |
60138066 KG |
31 | IOCMD_IOC_GET_STATS, |
32 | IOCMD_IOC_GET_FWSTATS, | |
f2ee7601 KG |
33 | IOCMD_IOC_RESET_STATS, |
34 | IOCMD_IOC_RESET_FWSTATS, | |
35 | IOCMD_IOC_SET_ADAPTER_NAME, | |
36 | IOCMD_IOC_SET_PORT_NAME, | |
28d358d0 | 37 | IOCMD_IOC_FW_SIG_INV, |
60138066 KG |
38 | IOCMD_IOCFC_GET_ATTR, |
39 | IOCMD_IOCFC_SET_INTR, | |
40 | IOCMD_PORT_ENABLE, | |
41 | IOCMD_PORT_DISABLE, | |
b85daafe | 42 | IOCMD_PORT_GET_ATTR, |
60138066 | 43 | IOCMD_PORT_GET_STATS, |
f2ee7601 KG |
44 | IOCMD_PORT_RESET_STATS, |
45 | IOCMD_PORT_CFG_TOPO, | |
46 | IOCMD_PORT_CFG_SPEED, | |
47 | IOCMD_PORT_CFG_ALPA, | |
48 | IOCMD_PORT_CFG_MAXFRSZ, | |
49 | IOCMD_PORT_CLR_ALPA, | |
bbe37a67 VMG |
50 | IOCMD_PORT_BBCR_ENABLE, |
51 | IOCMD_PORT_BBCR_DISABLE, | |
52 | IOCMD_PORT_BBCR_GET_ATTR, | |
b85daafe | 53 | IOCMD_LPORT_GET_ATTR, |
60138066 KG |
54 | IOCMD_LPORT_GET_RPORTS, |
55 | IOCMD_LPORT_GET_STATS, | |
f2ee7601 | 56 | IOCMD_LPORT_RESET_STATS, |
60138066 KG |
57 | IOCMD_LPORT_GET_IOSTATS, |
58 | IOCMD_RPORT_GET_ATTR, | |
b85daafe | 59 | IOCMD_RPORT_GET_ADDR, |
60138066 | 60 | IOCMD_RPORT_GET_STATS, |
f2ee7601 KG |
61 | IOCMD_RPORT_RESET_STATS, |
62 | IOCMD_RPORT_SET_SPEED, | |
63 | IOCMD_VPORT_GET_ATTR, | |
64 | IOCMD_VPORT_GET_STATS, | |
65 | IOCMD_VPORT_RESET_STATS, | |
b85daafe | 66 | IOCMD_FABRIC_GET_LPORTS, |
f2ee7601 KG |
67 | IOCMD_RATELIM_ENABLE, |
68 | IOCMD_RATELIM_DISABLE, | |
69 | IOCMD_RATELIM_DEF_SPEED, | |
70 | IOCMD_FCPIM_FAILOVER, | |
60138066 | 71 | IOCMD_FCPIM_MODSTATS, |
f2ee7601 | 72 | IOCMD_FCPIM_MODSTATSCLR, |
60138066 | 73 | IOCMD_FCPIM_DEL_ITN_STATS, |
b85daafe | 74 | IOCMD_ITNIM_GET_ATTR, |
60138066 | 75 | IOCMD_ITNIM_GET_IOSTATS, |
f2ee7601 | 76 | IOCMD_ITNIM_RESET_STATS, |
60138066 | 77 | IOCMD_ITNIM_GET_ITNSTATS, |
1a4d8e1b | 78 | IOCMD_IOC_PCIFN_CFG, |
60138066 KG |
79 | IOCMD_FCPORT_ENABLE, |
80 | IOCMD_FCPORT_DISABLE, | |
1a4d8e1b KG |
81 | IOCMD_PCIFN_CREATE, |
82 | IOCMD_PCIFN_DELETE, | |
83 | IOCMD_PCIFN_BW, | |
84 | IOCMD_ADAPTER_CFG_MODE, | |
85 | IOCMD_PORT_CFG_MODE, | |
86 | IOCMD_FLASH_ENABLE_OPTROM, | |
87 | IOCMD_FLASH_DISABLE_OPTROM, | |
a714134a | 88 | IOCMD_FAA_QUERY, |
148d6103 KG |
89 | IOCMD_CEE_GET_ATTR, |
90 | IOCMD_CEE_GET_STATS, | |
91 | IOCMD_CEE_RESET_STATS, | |
51e569aa KG |
92 | IOCMD_SFP_MEDIA, |
93 | IOCMD_SFP_SPEED, | |
5a54b1d5 KG |
94 | IOCMD_FLASH_GET_ATTR, |
95 | IOCMD_FLASH_ERASE_PART, | |
96 | IOCMD_FLASH_UPDATE_PART, | |
97 | IOCMD_FLASH_READ_PART, | |
3d7fc66d KG |
98 | IOCMD_DIAG_TEMP, |
99 | IOCMD_DIAG_MEMTEST, | |
100 | IOCMD_DIAG_LOOPBACK, | |
101 | IOCMD_DIAG_FWPING, | |
102 | IOCMD_DIAG_QUEUETEST, | |
103 | IOCMD_DIAG_SFP, | |
104 | IOCMD_DIAG_LED, | |
105 | IOCMD_DIAG_BEACON_LPORT, | |
106 | IOCMD_DIAG_LB_STAT, | |
3350d98d KG |
107 | IOCMD_PHY_GET_ATTR, |
108 | IOCMD_PHY_GET_STATS, | |
109 | IOCMD_PHY_UPDATE_FW, | |
110 | IOCMD_PHY_READ_FW, | |
61e62e21 KG |
111 | IOCMD_VHBA_QUERY, |
112 | IOCMD_DEBUG_PORTLOG, | |
f2ee7601 KG |
113 | IOCMD_DEBUG_FW_CORE, |
114 | IOCMD_DEBUG_FW_STATE_CLR, | |
115 | IOCMD_DEBUG_PORTLOG_CLR, | |
116 | IOCMD_DEBUG_START_DTRC, | |
117 | IOCMD_DEBUG_STOP_DTRC, | |
118 | IOCMD_DEBUG_PORTLOG_CTL, | |
42a8e6e2 KG |
119 | IOCMD_FCPIM_PROFILE_ON, |
120 | IOCMD_FCPIM_PROFILE_OFF, | |
121 | IOCMD_ITNIM_GET_IOPROFILE, | |
37ea0558 KG |
122 | IOCMD_FCPORT_GET_STATS, |
123 | IOCMD_FCPORT_RESET_STATS, | |
a46bd300 KG |
124 | IOCMD_BOOT_CFG, |
125 | IOCMD_BOOT_QUERY, | |
126 | IOCMD_PREBOOT_QUERY, | |
127 | IOCMD_ETHBOOT_CFG, | |
128 | IOCMD_ETHBOOT_QUERY, | |
45191236 KG |
129 | IOCMD_TRUNK_ENABLE, |
130 | IOCMD_TRUNK_DISABLE, | |
131 | IOCMD_TRUNK_GET_ATTR, | |
3ec4f2c8 KG |
132 | IOCMD_QOS_ENABLE, |
133 | IOCMD_QOS_DISABLE, | |
134 | IOCMD_QOS_GET_ATTR, | |
135 | IOCMD_QOS_GET_VC_ATTR, | |
136 | IOCMD_QOS_GET_STATS, | |
137 | IOCMD_QOS_RESET_STATS, | |
c0350bf5 KG |
138 | IOCMD_VF_GET_STATS, |
139 | IOCMD_VF_RESET_STATS, | |
4c5d22bf KG |
140 | IOCMD_FCPIM_LUNMASK_ENABLE, |
141 | IOCMD_FCPIM_LUNMASK_DISABLE, | |
142 | IOCMD_FCPIM_LUNMASK_CLEAR, | |
143 | IOCMD_FCPIM_LUNMASK_QUERY, | |
144 | IOCMD_FCPIM_LUNMASK_ADD, | |
145 | IOCMD_FCPIM_LUNMASK_DELETE, | |
e353546e KG |
146 | IOCMD_DIAG_DPORT_ENABLE, |
147 | IOCMD_DIAG_DPORT_DISABLE, | |
6894f013 | 148 | IOCMD_QOS_SET_BW, |
7ace27ae | 149 | IOCMD_FCPIM_THROTTLE_QUERY, |
e6826c96 KG |
150 | IOCMD_FCPIM_THROTTLE_SET, |
151 | IOCMD_TFRU_READ, | |
152 | IOCMD_TFRU_WRITE, | |
153 | IOCMD_FRUVPD_READ, | |
154 | IOCMD_FRUVPD_UPDATE, | |
155 | IOCMD_FRUVPD_GET_MAX_SIZE, | |
1a898a79 VMG |
156 | IOCMD_DIAG_DPORT_SHOW, |
157 | IOCMD_DIAG_DPORT_START, | |
1a4d8e1b KG |
158 | }; |
159 | ||
160 | struct bfa_bsg_gen_s { | |
161 | bfa_status_t status; | |
162 | u16 bfad_num; | |
163 | u16 rsvd; | |
b85daafe KG |
164 | }; |
165 | ||
f2ee7601 KG |
166 | struct bfa_bsg_portlogctl_s { |
167 | bfa_status_t status; | |
168 | u16 bfad_num; | |
169 | u16 rsvd; | |
170 | bfa_boolean_t ctl; | |
171 | int inst_no; | |
172 | }; | |
173 | ||
42a8e6e2 KG |
174 | struct bfa_bsg_fcpim_profile_s { |
175 | bfa_status_t status; | |
176 | u16 bfad_num; | |
177 | u16 rsvd; | |
178 | }; | |
179 | ||
180 | struct bfa_bsg_itnim_ioprofile_s { | |
181 | bfa_status_t status; | |
182 | u16 bfad_num; | |
183 | u16 vf_id; | |
184 | wwn_t lpwwn; | |
185 | wwn_t rpwwn; | |
186 | struct bfa_itnim_ioprofile_s ioprofile; | |
187 | }; | |
188 | ||
37ea0558 KG |
189 | struct bfa_bsg_fcport_stats_s { |
190 | bfa_status_t status; | |
191 | u16 bfad_num; | |
192 | u16 rsvd; | |
193 | union bfa_fcport_stats_u stats; | |
194 | }; | |
195 | ||
f2ee7601 KG |
196 | struct bfa_bsg_ioc_name_s { |
197 | bfa_status_t status; | |
198 | u16 bfad_num; | |
199 | u16 rsvd; | |
200 | char name[BFA_ADAPTER_SYM_NAME_LEN]; | |
201 | }; | |
202 | ||
b85daafe KG |
203 | struct bfa_bsg_ioc_info_s { |
204 | bfa_status_t status; | |
205 | u16 bfad_num; | |
206 | u16 rsvd; | |
207 | char serialnum[64]; | |
208 | char hwpath[BFA_STRING_32]; | |
209 | char adapter_hwpath[BFA_STRING_32]; | |
210 | char guid[BFA_ADAPTER_SYM_NAME_LEN*2]; | |
211 | char name[BFA_ADAPTER_SYM_NAME_LEN]; | |
212 | char port_name[BFA_ADAPTER_SYM_NAME_LEN]; | |
213 | char eth_name[BFA_ADAPTER_SYM_NAME_LEN]; | |
214 | wwn_t pwwn; | |
215 | wwn_t nwwn; | |
216 | wwn_t factorypwwn; | |
217 | wwn_t factorynwwn; | |
218 | mac_t mac; | |
219 | mac_t factory_mac; /* Factory mac address */ | |
220 | mac_t current_mac; /* Currently assigned mac address */ | |
221 | enum bfa_ioc_type_e ioc_type; | |
222 | u16 pvid; /* Port vlan id */ | |
223 | u16 rsvd1; | |
224 | u32 host; | |
225 | u32 bandwidth; /* For PF support */ | |
226 | u32 rsvd2; | |
227 | }; | |
228 | ||
229 | struct bfa_bsg_ioc_attr_s { | |
230 | bfa_status_t status; | |
231 | u16 bfad_num; | |
232 | u16 rsvd; | |
233 | struct bfa_ioc_attr_s ioc_attr; | |
234 | }; | |
235 | ||
60138066 KG |
236 | struct bfa_bsg_ioc_stats_s { |
237 | bfa_status_t status; | |
238 | u16 bfad_num; | |
239 | u16 rsvd; | |
240 | struct bfa_ioc_stats_s ioc_stats; | |
241 | }; | |
242 | ||
243 | struct bfa_bsg_ioc_fwstats_s { | |
244 | bfa_status_t status; | |
245 | u16 bfad_num; | |
246 | u16 rsvd; | |
247 | u32 buf_size; | |
248 | u32 rsvd1; | |
249 | u64 buf_ptr; | |
250 | }; | |
251 | ||
252 | struct bfa_bsg_iocfc_attr_s { | |
253 | bfa_status_t status; | |
254 | u16 bfad_num; | |
255 | u16 rsvd; | |
256 | struct bfa_iocfc_attr_s iocfc_attr; | |
257 | }; | |
258 | ||
259 | struct bfa_bsg_iocfc_intr_s { | |
260 | bfa_status_t status; | |
261 | u16 bfad_num; | |
262 | u16 rsvd; | |
263 | struct bfa_iocfc_intr_attr_s attr; | |
264 | }; | |
265 | ||
b85daafe KG |
266 | struct bfa_bsg_port_attr_s { |
267 | bfa_status_t status; | |
268 | u16 bfad_num; | |
269 | u16 rsvd; | |
270 | struct bfa_port_attr_s attr; | |
271 | }; | |
272 | ||
f2ee7601 KG |
273 | struct bfa_bsg_port_cfg_s { |
274 | bfa_status_t status; | |
275 | u16 bfad_num; | |
276 | u16 rsvd; | |
277 | u32 param; | |
278 | u32 rsvd1; | |
279 | }; | |
280 | ||
281 | struct bfa_bsg_port_cfg_maxfrsize_s { | |
282 | bfa_status_t status; | |
283 | u16 bfad_num; | |
284 | u16 maxfrsize; | |
285 | }; | |
286 | ||
60138066 KG |
287 | struct bfa_bsg_port_stats_s { |
288 | bfa_status_t status; | |
289 | u16 bfad_num; | |
290 | u16 rsvd; | |
291 | u32 buf_size; | |
292 | u32 rsvd1; | |
293 | u64 buf_ptr; | |
294 | }; | |
295 | ||
b85daafe KG |
296 | struct bfa_bsg_lport_attr_s { |
297 | bfa_status_t status; | |
298 | u16 bfad_num; | |
299 | u16 vf_id; | |
300 | wwn_t pwwn; | |
301 | struct bfa_lport_attr_s port_attr; | |
302 | }; | |
303 | ||
60138066 KG |
304 | struct bfa_bsg_lport_stats_s { |
305 | bfa_status_t status; | |
306 | u16 bfad_num; | |
307 | u16 vf_id; | |
308 | wwn_t pwwn; | |
309 | struct bfa_lport_stats_s port_stats; | |
310 | }; | |
311 | ||
312 | struct bfa_bsg_lport_iostats_s { | |
313 | bfa_status_t status; | |
314 | u16 bfad_num; | |
315 | u16 vf_id; | |
316 | wwn_t pwwn; | |
317 | struct bfa_itnim_iostats_s iostats; | |
318 | }; | |
319 | ||
320 | struct bfa_bsg_lport_get_rports_s { | |
321 | bfa_status_t status; | |
322 | u16 bfad_num; | |
323 | u16 vf_id; | |
324 | wwn_t pwwn; | |
325 | u64 rbuf_ptr; | |
326 | u32 nrports; | |
327 | u32 rsvd; | |
328 | }; | |
329 | ||
330 | struct bfa_bsg_rport_attr_s { | |
331 | bfa_status_t status; | |
332 | u16 bfad_num; | |
333 | u16 vf_id; | |
334 | wwn_t pwwn; | |
335 | wwn_t rpwwn; | |
ee1a4a42 KG |
336 | u32 pid; |
337 | u32 rsvd; | |
60138066 KG |
338 | struct bfa_rport_attr_s attr; |
339 | }; | |
340 | ||
341 | struct bfa_bsg_rport_stats_s { | |
342 | bfa_status_t status; | |
343 | u16 bfad_num; | |
344 | u16 vf_id; | |
345 | wwn_t pwwn; | |
346 | wwn_t rpwwn; | |
347 | struct bfa_rport_stats_s stats; | |
348 | }; | |
349 | ||
b85daafe KG |
350 | struct bfa_bsg_rport_scsi_addr_s { |
351 | bfa_status_t status; | |
352 | u16 bfad_num; | |
353 | u16 vf_id; | |
354 | wwn_t pwwn; | |
355 | wwn_t rpwwn; | |
356 | u32 host; | |
357 | u32 bus; | |
358 | u32 target; | |
359 | u32 lun; | |
360 | }; | |
361 | ||
f2ee7601 KG |
362 | struct bfa_bsg_rport_reset_stats_s { |
363 | bfa_status_t status; | |
364 | u16 bfad_num; | |
365 | u16 vf_id; | |
366 | wwn_t pwwn; | |
367 | wwn_t rpwwn; | |
368 | }; | |
369 | ||
370 | struct bfa_bsg_rport_set_speed_s { | |
371 | bfa_status_t status; | |
372 | u16 bfad_num; | |
373 | u16 vf_id; | |
374 | enum bfa_port_speed speed; | |
375 | u32 rsvd; | |
376 | wwn_t pwwn; | |
377 | wwn_t rpwwn; | |
378 | }; | |
379 | ||
380 | struct bfa_bsg_vport_attr_s { | |
381 | bfa_status_t status; | |
382 | u16 bfad_num; | |
383 | u16 vf_id; | |
384 | wwn_t vpwwn; | |
385 | struct bfa_vport_attr_s vport_attr; | |
386 | }; | |
387 | ||
388 | struct bfa_bsg_vport_stats_s { | |
389 | bfa_status_t status; | |
390 | u16 bfad_num; | |
391 | u16 vf_id; | |
392 | wwn_t vpwwn; | |
393 | struct bfa_vport_stats_s vport_stats; | |
394 | }; | |
395 | ||
396 | struct bfa_bsg_reset_stats_s { | |
397 | bfa_status_t status; | |
398 | u16 bfad_num; | |
399 | u16 vf_id; | |
400 | wwn_t vpwwn; | |
401 | }; | |
402 | ||
b85daafe KG |
403 | struct bfa_bsg_fabric_get_lports_s { |
404 | bfa_status_t status; | |
405 | u16 bfad_num; | |
406 | u16 vf_id; | |
407 | u64 buf_ptr; | |
408 | u32 nports; | |
409 | u32 rsvd; | |
410 | }; | |
411 | ||
f2ee7601 KG |
412 | struct bfa_bsg_trl_speed_s { |
413 | bfa_status_t status; | |
414 | u16 bfad_num; | |
415 | u16 rsvd; | |
416 | enum bfa_port_speed speed; | |
417 | }; | |
418 | ||
419 | struct bfa_bsg_fcpim_s { | |
420 | bfa_status_t status; | |
421 | u16 bfad_num; | |
422 | u16 param; | |
423 | }; | |
424 | ||
60138066 KG |
425 | struct bfa_bsg_fcpim_modstats_s { |
426 | bfa_status_t status; | |
427 | u16 bfad_num; | |
428 | struct bfa_itnim_iostats_s modstats; | |
429 | }; | |
430 | ||
431 | struct bfa_bsg_fcpim_del_itn_stats_s { | |
432 | bfa_status_t status; | |
433 | u16 bfad_num; | |
434 | struct bfa_fcpim_del_itn_stats_s modstats; | |
435 | }; | |
436 | ||
f2ee7601 KG |
437 | struct bfa_bsg_fcpim_modstatsclr_s { |
438 | bfa_status_t status; | |
439 | u16 bfad_num; | |
440 | }; | |
441 | ||
b85daafe KG |
442 | struct bfa_bsg_itnim_attr_s { |
443 | bfa_status_t status; | |
444 | u16 bfad_num; | |
445 | u16 vf_id; | |
446 | wwn_t lpwwn; | |
447 | wwn_t rpwwn; | |
448 | struct bfa_itnim_attr_s attr; | |
449 | }; | |
450 | ||
60138066 KG |
451 | struct bfa_bsg_itnim_iostats_s { |
452 | bfa_status_t status; | |
453 | u16 bfad_num; | |
454 | u16 vf_id; | |
455 | wwn_t lpwwn; | |
456 | wwn_t rpwwn; | |
457 | struct bfa_itnim_iostats_s iostats; | |
458 | }; | |
459 | ||
460 | struct bfa_bsg_itnim_itnstats_s { | |
461 | bfa_status_t status; | |
462 | u16 bfad_num; | |
463 | u16 vf_id; | |
464 | wwn_t lpwwn; | |
465 | wwn_t rpwwn; | |
466 | struct bfa_itnim_stats_s itnstats; | |
467 | }; | |
468 | ||
1a4d8e1b KG |
469 | struct bfa_bsg_pcifn_cfg_s { |
470 | bfa_status_t status; | |
471 | u16 bfad_num; | |
472 | u16 rsvd; | |
473 | struct bfa_ablk_cfg_s pcifn_cfg; | |
474 | }; | |
475 | ||
476 | struct bfa_bsg_pcifn_s { | |
477 | bfa_status_t status; | |
478 | u16 bfad_num; | |
479 | u16 pcifn_id; | |
1a1297c6 KG |
480 | u16 bw_min; |
481 | u16 bw_max; | |
1a4d8e1b KG |
482 | u8 port; |
483 | enum bfi_pcifn_class pcifn_class; | |
484 | u8 rsvd[1]; | |
485 | }; | |
486 | ||
487 | struct bfa_bsg_adapter_cfg_mode_s { | |
488 | bfa_status_t status; | |
489 | u16 bfad_num; | |
490 | u16 rsvd; | |
491 | struct bfa_adapter_cfg_mode_s cfg; | |
492 | }; | |
493 | ||
494 | struct bfa_bsg_port_cfg_mode_s { | |
495 | bfa_status_t status; | |
496 | u16 bfad_num; | |
497 | u16 instance; | |
498 | struct bfa_port_cfg_mode_s cfg; | |
499 | }; | |
500 | ||
bbe37a67 VMG |
501 | struct bfa_bsg_bbcr_enable_s { |
502 | bfa_status_t status; | |
503 | u16 bfad_num; | |
504 | u8 bb_scn; | |
505 | u8 rsvd; | |
506 | }; | |
507 | ||
508 | struct bfa_bsg_bbcr_attr_s { | |
509 | bfa_status_t status; | |
510 | u16 bfad_num; | |
511 | u16 rsvd; | |
512 | struct bfa_bbcr_attr_s attr; | |
513 | }; | |
514 | ||
a714134a KG |
515 | struct bfa_bsg_faa_attr_s { |
516 | bfa_status_t status; | |
517 | u16 bfad_num; | |
518 | u16 rsvd; | |
519 | struct bfa_faa_attr_s faa_attr; | |
520 | }; | |
521 | ||
148d6103 KG |
522 | struct bfa_bsg_cee_attr_s { |
523 | bfa_status_t status; | |
524 | u16 bfad_num; | |
525 | u16 rsvd; | |
526 | u32 buf_size; | |
527 | u32 rsvd1; | |
528 | u64 buf_ptr; | |
529 | }; | |
530 | ||
531 | struct bfa_bsg_cee_stats_s { | |
532 | bfa_status_t status; | |
533 | u16 bfad_num; | |
534 | u16 rsvd; | |
535 | u32 buf_size; | |
536 | u32 rsvd1; | |
537 | u64 buf_ptr; | |
538 | }; | |
539 | ||
51e569aa KG |
540 | struct bfa_bsg_sfp_media_s { |
541 | bfa_status_t status; | |
542 | u16 bfad_num; | |
543 | u16 rsvd; | |
544 | enum bfa_defs_sfp_media_e media; | |
545 | }; | |
546 | ||
547 | struct bfa_bsg_sfp_speed_s { | |
548 | bfa_status_t status; | |
549 | u16 bfad_num; | |
550 | u16 rsvd; | |
551 | enum bfa_port_speed speed; | |
552 | }; | |
553 | ||
5a54b1d5 KG |
554 | struct bfa_bsg_flash_attr_s { |
555 | bfa_status_t status; | |
556 | u16 bfad_num; | |
557 | u16 rsvd; | |
558 | struct bfa_flash_attr_s attr; | |
559 | }; | |
560 | ||
561 | struct bfa_bsg_flash_s { | |
562 | bfa_status_t status; | |
563 | u16 bfad_num; | |
564 | u8 instance; | |
565 | u8 rsvd; | |
566 | enum bfa_flash_part_type type; | |
567 | int bufsz; | |
568 | u64 buf_ptr; | |
569 | }; | |
570 | ||
3d7fc66d KG |
571 | struct bfa_bsg_diag_get_temp_s { |
572 | bfa_status_t status; | |
573 | u16 bfad_num; | |
574 | u16 rsvd; | |
575 | struct bfa_diag_results_tempsensor_s result; | |
576 | }; | |
577 | ||
578 | struct bfa_bsg_diag_memtest_s { | |
579 | bfa_status_t status; | |
580 | u16 bfad_num; | |
581 | u16 rsvd[3]; | |
582 | u32 pat; | |
583 | struct bfa_diag_memtest_result result; | |
584 | struct bfa_diag_memtest_s memtest; | |
585 | }; | |
586 | ||
587 | struct bfa_bsg_diag_loopback_s { | |
588 | bfa_status_t status; | |
589 | u16 bfad_num; | |
590 | u16 rsvd; | |
591 | enum bfa_port_opmode opmode; | |
592 | enum bfa_port_speed speed; | |
593 | u32 lpcnt; | |
594 | u32 pat; | |
595 | struct bfa_diag_loopback_result_s result; | |
596 | }; | |
597 | ||
1a898a79 VMG |
598 | struct bfa_bsg_diag_dport_show_s { |
599 | bfa_status_t status; | |
600 | u16 bfad_num; | |
601 | u16 rsvd; | |
602 | struct bfa_diag_dport_result_s result; | |
603 | }; | |
604 | ||
605 | struct bfa_bsg_dport_enable_s { | |
606 | bfa_status_t status; | |
607 | u16 bfad_num; | |
608 | u16 rsvd; | |
609 | u16 lpcnt; | |
610 | u16 pat; | |
611 | }; | |
612 | ||
3d7fc66d KG |
613 | struct bfa_bsg_diag_fwping_s { |
614 | bfa_status_t status; | |
615 | u16 bfad_num; | |
616 | u16 rsvd; | |
617 | u32 cnt; | |
618 | u32 pattern; | |
619 | struct bfa_diag_results_fwping result; | |
620 | }; | |
621 | ||
622 | struct bfa_bsg_diag_qtest_s { | |
623 | bfa_status_t status; | |
624 | u16 bfad_num; | |
625 | u16 rsvd; | |
626 | u32 force; | |
627 | u32 queue; | |
628 | struct bfa_diag_qtest_result_s result; | |
629 | }; | |
630 | ||
631 | struct bfa_bsg_sfp_show_s { | |
632 | bfa_status_t status; | |
633 | u16 bfad_num; | |
634 | u16 rsvd; | |
635 | struct sfp_mem_s sfp; | |
636 | }; | |
637 | ||
638 | struct bfa_bsg_diag_led_s { | |
639 | bfa_status_t status; | |
640 | u16 bfad_num; | |
641 | u16 rsvd; | |
642 | struct bfa_diag_ledtest_s ledtest; | |
643 | }; | |
644 | ||
645 | struct bfa_bsg_diag_beacon_s { | |
646 | bfa_status_t status; | |
647 | u16 bfad_num; | |
648 | u16 rsvd; | |
649 | bfa_boolean_t beacon; | |
650 | bfa_boolean_t link_e2e_beacon; | |
651 | u32 second; | |
652 | }; | |
653 | ||
654 | struct bfa_bsg_diag_lb_stat_s { | |
655 | bfa_status_t status; | |
656 | u16 bfad_num; | |
657 | u16 rsvd; | |
658 | }; | |
659 | ||
3350d98d KG |
660 | struct bfa_bsg_phy_attr_s { |
661 | bfa_status_t status; | |
662 | u16 bfad_num; | |
663 | u16 instance; | |
664 | struct bfa_phy_attr_s attr; | |
665 | }; | |
666 | ||
667 | struct bfa_bsg_phy_s { | |
668 | bfa_status_t status; | |
669 | u16 bfad_num; | |
670 | u16 instance; | |
671 | u64 bufsz; | |
672 | u64 buf_ptr; | |
673 | }; | |
674 | ||
61e62e21 KG |
675 | struct bfa_bsg_debug_s { |
676 | bfa_status_t status; | |
677 | u16 bfad_num; | |
678 | u16 rsvd; | |
679 | u32 bufsz; | |
680 | int inst_no; | |
681 | u64 buf_ptr; | |
682 | u64 offset; | |
683 | }; | |
684 | ||
3350d98d KG |
685 | struct bfa_bsg_phy_stats_s { |
686 | bfa_status_t status; | |
687 | u16 bfad_num; | |
688 | u16 instance; | |
689 | struct bfa_phy_stats_s stats; | |
690 | }; | |
691 | ||
61e62e21 KG |
692 | struct bfa_bsg_vhba_attr_s { |
693 | bfa_status_t status; | |
694 | u16 bfad_num; | |
695 | u16 pcifn_id; | |
696 | struct bfa_vhba_attr_s attr; | |
697 | }; | |
698 | ||
a46bd300 KG |
699 | struct bfa_bsg_boot_s { |
700 | bfa_status_t status; | |
701 | u16 bfad_num; | |
702 | u16 rsvd; | |
703 | struct bfa_boot_cfg_s cfg; | |
704 | }; | |
705 | ||
706 | struct bfa_bsg_preboot_s { | |
707 | bfa_status_t status; | |
708 | u16 bfad_num; | |
709 | u16 rsvd; | |
710 | struct bfa_boot_pbc_s cfg; | |
711 | }; | |
712 | ||
713 | struct bfa_bsg_ethboot_s { | |
714 | bfa_status_t status; | |
715 | u16 bfad_num; | |
716 | u16 rsvd; | |
717 | struct bfa_ethboot_cfg_s cfg; | |
718 | }; | |
719 | ||
45191236 KG |
720 | struct bfa_bsg_trunk_attr_s { |
721 | bfa_status_t status; | |
722 | u16 bfad_num; | |
723 | u16 rsvd; | |
724 | struct bfa_trunk_attr_s attr; | |
725 | }; | |
726 | ||
3ec4f2c8 KG |
727 | struct bfa_bsg_qos_attr_s { |
728 | bfa_status_t status; | |
729 | u16 bfad_num; | |
730 | u16 rsvd; | |
731 | struct bfa_qos_attr_s attr; | |
732 | }; | |
733 | ||
734 | struct bfa_bsg_qos_vc_attr_s { | |
735 | bfa_status_t status; | |
736 | u16 bfad_num; | |
737 | u16 rsvd; | |
738 | struct bfa_qos_vc_attr_s attr; | |
739 | }; | |
740 | ||
6894f013 KG |
741 | struct bfa_bsg_qos_bw_s { |
742 | bfa_status_t status; | |
743 | u16 bfad_num; | |
744 | u16 rsvd; | |
745 | struct bfa_qos_bw_s qos_bw; | |
746 | }; | |
747 | ||
c0350bf5 KG |
748 | struct bfa_bsg_vf_stats_s { |
749 | bfa_status_t status; | |
750 | u16 bfad_num; | |
751 | u16 vf_id; | |
752 | struct bfa_vf_stats_s stats; | |
753 | }; | |
754 | ||
755 | struct bfa_bsg_vf_reset_stats_s { | |
756 | bfa_status_t status; | |
757 | u16 bfad_num; | |
758 | u16 vf_id; | |
759 | }; | |
760 | ||
4c5d22bf KG |
761 | struct bfa_bsg_fcpim_lunmask_query_s { |
762 | bfa_status_t status; | |
763 | u16 bfad_num; | |
764 | struct bfa_lunmask_cfg_s lun_mask; | |
765 | }; | |
766 | ||
767 | struct bfa_bsg_fcpim_lunmask_s { | |
768 | bfa_status_t status; | |
769 | u16 bfad_num; | |
770 | u16 vf_id; | |
771 | wwn_t pwwn; | |
772 | wwn_t rpwwn; | |
773 | struct scsi_lun lun; | |
774 | }; | |
775 | ||
7ace27ae KG |
776 | struct bfa_bsg_fcpim_throttle_s { |
777 | bfa_status_t status; | |
778 | u16 bfad_num; | |
779 | u16 vf_id; | |
780 | struct bfa_defs_fcpim_throttle_s throttle; | |
781 | }; | |
782 | ||
e6826c96 KG |
783 | #define BFA_TFRU_DATA_SIZE 64 |
784 | #define BFA_MAX_FRUVPD_TRANSFER_SIZE 0x1000 | |
785 | ||
786 | struct bfa_bsg_tfru_s { | |
787 | bfa_status_t status; | |
788 | u16 bfad_num; | |
789 | u16 rsvd; | |
790 | u32 offset; | |
791 | u32 len; | |
792 | u8 data[BFA_TFRU_DATA_SIZE]; | |
793 | }; | |
794 | ||
795 | struct bfa_bsg_fruvpd_s { | |
796 | bfa_status_t status; | |
797 | u16 bfad_num; | |
079bcbc3 | 798 | u16 rsvd1; |
e6826c96 KG |
799 | u32 offset; |
800 | u32 len; | |
801 | u8 data[BFA_MAX_FRUVPD_TRANSFER_SIZE]; | |
079bcbc3 VMG |
802 | u8 trfr_cmpl; |
803 | u8 rsvd2[3]; | |
e6826c96 KG |
804 | }; |
805 | ||
806 | struct bfa_bsg_fruvpd_max_size_s { | |
807 | bfa_status_t status; | |
808 | u16 bfad_num; | |
809 | u16 rsvd; | |
810 | u32 max_size; | |
811 | }; | |
812 | ||
b85daafe KG |
813 | struct bfa_bsg_fcpt_s { |
814 | bfa_status_t status; | |
815 | u16 vf_id; | |
816 | wwn_t lpwwn; | |
817 | wwn_t dpwwn; | |
818 | u32 tsecs; | |
819 | int cts; | |
820 | enum fc_cos cos; | |
821 | struct fchs_s fchs; | |
822 | }; | |
823 | #define bfa_bsg_fcpt_t struct bfa_bsg_fcpt_s | |
824 | ||
bccd2683 | 825 | #pragma pack(1) |
b85daafe KG |
826 | struct bfa_bsg_data { |
827 | int payload_len; | |
bccd2683 | 828 | u64 payload; |
b85daafe | 829 | }; |
bccd2683 | 830 | #pragma pack() |
b85daafe KG |
831 | |
832 | #define bfad_chk_iocmd_sz(__payload_len, __hdrsz, __bufsz) \ | |
833 | (((__payload_len) != ((__hdrsz) + (__bufsz))) ? \ | |
834 | BFA_STATUS_FAILED : BFA_STATUS_OK) | |
835 | ||
836 | #endif /* BFAD_BSG_H */ |