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