0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BFAD_BSG_H
0011 #define BFAD_BSG_H
0012
0013 #include "bfa_defs.h"
0014 #include "bfa_defs_fcs.h"
0015
0016
0017
0018
0019 enum {
0020 IOCMD_IOC_ENABLE = 0x1,
0021 IOCMD_IOC_DISABLE,
0022 IOCMD_IOC_GET_ATTR,
0023 IOCMD_IOC_GET_INFO,
0024 IOCMD_IOC_GET_STATS,
0025 IOCMD_IOC_GET_FWSTATS,
0026 IOCMD_IOC_RESET_STATS,
0027 IOCMD_IOC_RESET_FWSTATS,
0028 IOCMD_IOC_SET_ADAPTER_NAME,
0029 IOCMD_IOC_SET_PORT_NAME,
0030 IOCMD_IOC_FW_SIG_INV,
0031 IOCMD_IOCFC_GET_ATTR,
0032 IOCMD_IOCFC_SET_INTR,
0033 IOCMD_PORT_ENABLE,
0034 IOCMD_PORT_DISABLE,
0035 IOCMD_PORT_GET_ATTR,
0036 IOCMD_PORT_GET_STATS,
0037 IOCMD_PORT_RESET_STATS,
0038 IOCMD_PORT_CFG_TOPO,
0039 IOCMD_PORT_CFG_SPEED,
0040 IOCMD_PORT_CFG_ALPA,
0041 IOCMD_PORT_CFG_MAXFRSZ,
0042 IOCMD_PORT_CLR_ALPA,
0043 IOCMD_PORT_BBCR_ENABLE,
0044 IOCMD_PORT_BBCR_DISABLE,
0045 IOCMD_PORT_BBCR_GET_ATTR,
0046 IOCMD_LPORT_GET_ATTR,
0047 IOCMD_LPORT_GET_RPORTS,
0048 IOCMD_LPORT_GET_STATS,
0049 IOCMD_LPORT_RESET_STATS,
0050 IOCMD_LPORT_GET_IOSTATS,
0051 IOCMD_RPORT_GET_ATTR,
0052 IOCMD_RPORT_GET_ADDR,
0053 IOCMD_RPORT_GET_STATS,
0054 IOCMD_RPORT_RESET_STATS,
0055 IOCMD_RPORT_SET_SPEED,
0056 IOCMD_VPORT_GET_ATTR,
0057 IOCMD_VPORT_GET_STATS,
0058 IOCMD_VPORT_RESET_STATS,
0059 IOCMD_FABRIC_GET_LPORTS,
0060 IOCMD_RATELIM_ENABLE,
0061 IOCMD_RATELIM_DISABLE,
0062 IOCMD_RATELIM_DEF_SPEED,
0063 IOCMD_FCPIM_FAILOVER,
0064 IOCMD_FCPIM_MODSTATS,
0065 IOCMD_FCPIM_MODSTATSCLR,
0066 IOCMD_FCPIM_DEL_ITN_STATS,
0067 IOCMD_ITNIM_GET_ATTR,
0068 IOCMD_ITNIM_GET_IOSTATS,
0069 IOCMD_ITNIM_RESET_STATS,
0070 IOCMD_ITNIM_GET_ITNSTATS,
0071 IOCMD_IOC_PCIFN_CFG,
0072 IOCMD_FCPORT_ENABLE,
0073 IOCMD_FCPORT_DISABLE,
0074 IOCMD_PCIFN_CREATE,
0075 IOCMD_PCIFN_DELETE,
0076 IOCMD_PCIFN_BW,
0077 IOCMD_ADAPTER_CFG_MODE,
0078 IOCMD_PORT_CFG_MODE,
0079 IOCMD_FLASH_ENABLE_OPTROM,
0080 IOCMD_FLASH_DISABLE_OPTROM,
0081 IOCMD_FAA_QUERY,
0082 IOCMD_CEE_GET_ATTR,
0083 IOCMD_CEE_GET_STATS,
0084 IOCMD_CEE_RESET_STATS,
0085 IOCMD_SFP_MEDIA,
0086 IOCMD_SFP_SPEED,
0087 IOCMD_FLASH_GET_ATTR,
0088 IOCMD_FLASH_ERASE_PART,
0089 IOCMD_FLASH_UPDATE_PART,
0090 IOCMD_FLASH_READ_PART,
0091 IOCMD_DIAG_TEMP,
0092 IOCMD_DIAG_MEMTEST,
0093 IOCMD_DIAG_LOOPBACK,
0094 IOCMD_DIAG_FWPING,
0095 IOCMD_DIAG_QUEUETEST,
0096 IOCMD_DIAG_SFP,
0097 IOCMD_DIAG_LED,
0098 IOCMD_DIAG_BEACON_LPORT,
0099 IOCMD_DIAG_LB_STAT,
0100 IOCMD_PHY_GET_ATTR,
0101 IOCMD_PHY_GET_STATS,
0102 IOCMD_PHY_UPDATE_FW,
0103 IOCMD_PHY_READ_FW,
0104 IOCMD_VHBA_QUERY,
0105 IOCMD_DEBUG_PORTLOG,
0106 IOCMD_DEBUG_FW_CORE,
0107 IOCMD_DEBUG_FW_STATE_CLR,
0108 IOCMD_DEBUG_PORTLOG_CLR,
0109 IOCMD_DEBUG_START_DTRC,
0110 IOCMD_DEBUG_STOP_DTRC,
0111 IOCMD_DEBUG_PORTLOG_CTL,
0112 IOCMD_FCPIM_PROFILE_ON,
0113 IOCMD_FCPIM_PROFILE_OFF,
0114 IOCMD_ITNIM_GET_IOPROFILE,
0115 IOCMD_FCPORT_GET_STATS,
0116 IOCMD_FCPORT_RESET_STATS,
0117 IOCMD_BOOT_CFG,
0118 IOCMD_BOOT_QUERY,
0119 IOCMD_PREBOOT_QUERY,
0120 IOCMD_ETHBOOT_CFG,
0121 IOCMD_ETHBOOT_QUERY,
0122 IOCMD_TRUNK_ENABLE,
0123 IOCMD_TRUNK_DISABLE,
0124 IOCMD_TRUNK_GET_ATTR,
0125 IOCMD_QOS_ENABLE,
0126 IOCMD_QOS_DISABLE,
0127 IOCMD_QOS_GET_ATTR,
0128 IOCMD_QOS_GET_VC_ATTR,
0129 IOCMD_QOS_GET_STATS,
0130 IOCMD_QOS_RESET_STATS,
0131 IOCMD_VF_GET_STATS,
0132 IOCMD_VF_RESET_STATS,
0133 IOCMD_FCPIM_LUNMASK_ENABLE,
0134 IOCMD_FCPIM_LUNMASK_DISABLE,
0135 IOCMD_FCPIM_LUNMASK_CLEAR,
0136 IOCMD_FCPIM_LUNMASK_QUERY,
0137 IOCMD_FCPIM_LUNMASK_ADD,
0138 IOCMD_FCPIM_LUNMASK_DELETE,
0139 IOCMD_DIAG_DPORT_ENABLE,
0140 IOCMD_DIAG_DPORT_DISABLE,
0141 IOCMD_QOS_SET_BW,
0142 IOCMD_FCPIM_THROTTLE_QUERY,
0143 IOCMD_FCPIM_THROTTLE_SET,
0144 IOCMD_TFRU_READ,
0145 IOCMD_TFRU_WRITE,
0146 IOCMD_FRUVPD_READ,
0147 IOCMD_FRUVPD_UPDATE,
0148 IOCMD_FRUVPD_GET_MAX_SIZE,
0149 IOCMD_DIAG_DPORT_SHOW,
0150 IOCMD_DIAG_DPORT_START,
0151 };
0152
0153 struct bfa_bsg_gen_s {
0154 bfa_status_t status;
0155 u16 bfad_num;
0156 u16 rsvd;
0157 };
0158
0159 struct bfa_bsg_portlogctl_s {
0160 bfa_status_t status;
0161 u16 bfad_num;
0162 u16 rsvd;
0163 bfa_boolean_t ctl;
0164 int inst_no;
0165 };
0166
0167 struct bfa_bsg_fcpim_profile_s {
0168 bfa_status_t status;
0169 u16 bfad_num;
0170 u16 rsvd;
0171 };
0172
0173 struct bfa_bsg_itnim_ioprofile_s {
0174 bfa_status_t status;
0175 u16 bfad_num;
0176 u16 vf_id;
0177 wwn_t lpwwn;
0178 wwn_t rpwwn;
0179 struct bfa_itnim_ioprofile_s ioprofile;
0180 };
0181
0182 struct bfa_bsg_fcport_stats_s {
0183 bfa_status_t status;
0184 u16 bfad_num;
0185 u16 rsvd;
0186 union bfa_fcport_stats_u stats;
0187 };
0188
0189 struct bfa_bsg_ioc_name_s {
0190 bfa_status_t status;
0191 u16 bfad_num;
0192 u16 rsvd;
0193 char name[BFA_ADAPTER_SYM_NAME_LEN];
0194 };
0195
0196 struct bfa_bsg_ioc_info_s {
0197 bfa_status_t status;
0198 u16 bfad_num;
0199 u16 rsvd;
0200 char serialnum[64];
0201 char hwpath[BFA_STRING_32];
0202 char adapter_hwpath[BFA_STRING_32];
0203 char guid[BFA_ADAPTER_SYM_NAME_LEN*2];
0204 char name[BFA_ADAPTER_SYM_NAME_LEN];
0205 char port_name[BFA_ADAPTER_SYM_NAME_LEN];
0206 char eth_name[BFA_ADAPTER_SYM_NAME_LEN];
0207 wwn_t pwwn;
0208 wwn_t nwwn;
0209 wwn_t factorypwwn;
0210 wwn_t factorynwwn;
0211 mac_t mac;
0212 mac_t factory_mac;
0213 mac_t current_mac;
0214 enum bfa_ioc_type_e ioc_type;
0215 u16 pvid;
0216 u16 rsvd1;
0217 u32 host;
0218 u32 bandwidth;
0219 u32 rsvd2;
0220 };
0221
0222 struct bfa_bsg_ioc_attr_s {
0223 bfa_status_t status;
0224 u16 bfad_num;
0225 u16 rsvd;
0226 struct bfa_ioc_attr_s ioc_attr;
0227 };
0228
0229 struct bfa_bsg_ioc_stats_s {
0230 bfa_status_t status;
0231 u16 bfad_num;
0232 u16 rsvd;
0233 struct bfa_ioc_stats_s ioc_stats;
0234 };
0235
0236 struct bfa_bsg_ioc_fwstats_s {
0237 bfa_status_t status;
0238 u16 bfad_num;
0239 u16 rsvd;
0240 u32 buf_size;
0241 u32 rsvd1;
0242 u64 buf_ptr;
0243 };
0244
0245 struct bfa_bsg_iocfc_attr_s {
0246 bfa_status_t status;
0247 u16 bfad_num;
0248 u16 rsvd;
0249 struct bfa_iocfc_attr_s iocfc_attr;
0250 };
0251
0252 struct bfa_bsg_iocfc_intr_s {
0253 bfa_status_t status;
0254 u16 bfad_num;
0255 u16 rsvd;
0256 struct bfa_iocfc_intr_attr_s attr;
0257 };
0258
0259 struct bfa_bsg_port_attr_s {
0260 bfa_status_t status;
0261 u16 bfad_num;
0262 u16 rsvd;
0263 struct bfa_port_attr_s attr;
0264 };
0265
0266 struct bfa_bsg_port_cfg_s {
0267 bfa_status_t status;
0268 u16 bfad_num;
0269 u16 rsvd;
0270 u32 param;
0271 u32 rsvd1;
0272 };
0273
0274 struct bfa_bsg_port_cfg_maxfrsize_s {
0275 bfa_status_t status;
0276 u16 bfad_num;
0277 u16 maxfrsize;
0278 };
0279
0280 struct bfa_bsg_port_stats_s {
0281 bfa_status_t status;
0282 u16 bfad_num;
0283 u16 rsvd;
0284 u32 buf_size;
0285 u32 rsvd1;
0286 u64 buf_ptr;
0287 };
0288
0289 struct bfa_bsg_lport_attr_s {
0290 bfa_status_t status;
0291 u16 bfad_num;
0292 u16 vf_id;
0293 wwn_t pwwn;
0294 struct bfa_lport_attr_s port_attr;
0295 };
0296
0297 struct bfa_bsg_lport_stats_s {
0298 bfa_status_t status;
0299 u16 bfad_num;
0300 u16 vf_id;
0301 wwn_t pwwn;
0302 struct bfa_lport_stats_s port_stats;
0303 };
0304
0305 struct bfa_bsg_lport_iostats_s {
0306 bfa_status_t status;
0307 u16 bfad_num;
0308 u16 vf_id;
0309 wwn_t pwwn;
0310 struct bfa_itnim_iostats_s iostats;
0311 };
0312
0313 struct bfa_bsg_lport_get_rports_s {
0314 bfa_status_t status;
0315 u16 bfad_num;
0316 u16 vf_id;
0317 wwn_t pwwn;
0318 u64 rbuf_ptr;
0319 u32 nrports;
0320 u32 rsvd;
0321 };
0322
0323 struct bfa_bsg_rport_attr_s {
0324 bfa_status_t status;
0325 u16 bfad_num;
0326 u16 vf_id;
0327 wwn_t pwwn;
0328 wwn_t rpwwn;
0329 u32 pid;
0330 u32 rsvd;
0331 struct bfa_rport_attr_s attr;
0332 };
0333
0334 struct bfa_bsg_rport_stats_s {
0335 bfa_status_t status;
0336 u16 bfad_num;
0337 u16 vf_id;
0338 wwn_t pwwn;
0339 wwn_t rpwwn;
0340 struct bfa_rport_stats_s stats;
0341 };
0342
0343 struct bfa_bsg_rport_scsi_addr_s {
0344 bfa_status_t status;
0345 u16 bfad_num;
0346 u16 vf_id;
0347 wwn_t pwwn;
0348 wwn_t rpwwn;
0349 u32 host;
0350 u32 bus;
0351 u32 target;
0352 u32 lun;
0353 };
0354
0355 struct bfa_bsg_rport_reset_stats_s {
0356 bfa_status_t status;
0357 u16 bfad_num;
0358 u16 vf_id;
0359 wwn_t pwwn;
0360 wwn_t rpwwn;
0361 };
0362
0363 struct bfa_bsg_rport_set_speed_s {
0364 bfa_status_t status;
0365 u16 bfad_num;
0366 u16 vf_id;
0367 enum bfa_port_speed speed;
0368 u32 rsvd;
0369 wwn_t pwwn;
0370 wwn_t rpwwn;
0371 };
0372
0373 struct bfa_bsg_vport_attr_s {
0374 bfa_status_t status;
0375 u16 bfad_num;
0376 u16 vf_id;
0377 wwn_t vpwwn;
0378 struct bfa_vport_attr_s vport_attr;
0379 };
0380
0381 struct bfa_bsg_vport_stats_s {
0382 bfa_status_t status;
0383 u16 bfad_num;
0384 u16 vf_id;
0385 wwn_t vpwwn;
0386 struct bfa_vport_stats_s vport_stats;
0387 };
0388
0389 struct bfa_bsg_reset_stats_s {
0390 bfa_status_t status;
0391 u16 bfad_num;
0392 u16 vf_id;
0393 wwn_t vpwwn;
0394 };
0395
0396 struct bfa_bsg_fabric_get_lports_s {
0397 bfa_status_t status;
0398 u16 bfad_num;
0399 u16 vf_id;
0400 u64 buf_ptr;
0401 u32 nports;
0402 u32 rsvd;
0403 };
0404
0405 struct bfa_bsg_trl_speed_s {
0406 bfa_status_t status;
0407 u16 bfad_num;
0408 u16 rsvd;
0409 enum bfa_port_speed speed;
0410 };
0411
0412 struct bfa_bsg_fcpim_s {
0413 bfa_status_t status;
0414 u16 bfad_num;
0415 u16 param;
0416 };
0417
0418 struct bfa_bsg_fcpim_modstats_s {
0419 bfa_status_t status;
0420 u16 bfad_num;
0421 struct bfa_itnim_iostats_s modstats;
0422 };
0423
0424 struct bfa_bsg_fcpim_del_itn_stats_s {
0425 bfa_status_t status;
0426 u16 bfad_num;
0427 struct bfa_fcpim_del_itn_stats_s modstats;
0428 };
0429
0430 struct bfa_bsg_fcpim_modstatsclr_s {
0431 bfa_status_t status;
0432 u16 bfad_num;
0433 };
0434
0435 struct bfa_bsg_itnim_attr_s {
0436 bfa_status_t status;
0437 u16 bfad_num;
0438 u16 vf_id;
0439 wwn_t lpwwn;
0440 wwn_t rpwwn;
0441 struct bfa_itnim_attr_s attr;
0442 };
0443
0444 struct bfa_bsg_itnim_iostats_s {
0445 bfa_status_t status;
0446 u16 bfad_num;
0447 u16 vf_id;
0448 wwn_t lpwwn;
0449 wwn_t rpwwn;
0450 struct bfa_itnim_iostats_s iostats;
0451 };
0452
0453 struct bfa_bsg_itnim_itnstats_s {
0454 bfa_status_t status;
0455 u16 bfad_num;
0456 u16 vf_id;
0457 wwn_t lpwwn;
0458 wwn_t rpwwn;
0459 struct bfa_itnim_stats_s itnstats;
0460 };
0461
0462 struct bfa_bsg_pcifn_cfg_s {
0463 bfa_status_t status;
0464 u16 bfad_num;
0465 u16 rsvd;
0466 struct bfa_ablk_cfg_s pcifn_cfg;
0467 };
0468
0469 struct bfa_bsg_pcifn_s {
0470 bfa_status_t status;
0471 u16 bfad_num;
0472 u16 pcifn_id;
0473 u16 bw_min;
0474 u16 bw_max;
0475 u8 port;
0476 enum bfi_pcifn_class pcifn_class;
0477 u8 rsvd[1];
0478 };
0479
0480 struct bfa_bsg_adapter_cfg_mode_s {
0481 bfa_status_t status;
0482 u16 bfad_num;
0483 u16 rsvd;
0484 struct bfa_adapter_cfg_mode_s cfg;
0485 };
0486
0487 struct bfa_bsg_port_cfg_mode_s {
0488 bfa_status_t status;
0489 u16 bfad_num;
0490 u16 instance;
0491 struct bfa_port_cfg_mode_s cfg;
0492 };
0493
0494 struct bfa_bsg_bbcr_enable_s {
0495 bfa_status_t status;
0496 u16 bfad_num;
0497 u8 bb_scn;
0498 u8 rsvd;
0499 };
0500
0501 struct bfa_bsg_bbcr_attr_s {
0502 bfa_status_t status;
0503 u16 bfad_num;
0504 u16 rsvd;
0505 struct bfa_bbcr_attr_s attr;
0506 };
0507
0508 struct bfa_bsg_faa_attr_s {
0509 bfa_status_t status;
0510 u16 bfad_num;
0511 u16 rsvd;
0512 struct bfa_faa_attr_s faa_attr;
0513 };
0514
0515 struct bfa_bsg_cee_attr_s {
0516 bfa_status_t status;
0517 u16 bfad_num;
0518 u16 rsvd;
0519 u32 buf_size;
0520 u32 rsvd1;
0521 u64 buf_ptr;
0522 };
0523
0524 struct bfa_bsg_cee_stats_s {
0525 bfa_status_t status;
0526 u16 bfad_num;
0527 u16 rsvd;
0528 u32 buf_size;
0529 u32 rsvd1;
0530 u64 buf_ptr;
0531 };
0532
0533 struct bfa_bsg_sfp_media_s {
0534 bfa_status_t status;
0535 u16 bfad_num;
0536 u16 rsvd;
0537 enum bfa_defs_sfp_media_e media;
0538 };
0539
0540 struct bfa_bsg_sfp_speed_s {
0541 bfa_status_t status;
0542 u16 bfad_num;
0543 u16 rsvd;
0544 enum bfa_port_speed speed;
0545 };
0546
0547 struct bfa_bsg_flash_attr_s {
0548 bfa_status_t status;
0549 u16 bfad_num;
0550 u16 rsvd;
0551 struct bfa_flash_attr_s attr;
0552 };
0553
0554 struct bfa_bsg_flash_s {
0555 bfa_status_t status;
0556 u16 bfad_num;
0557 u8 instance;
0558 u8 rsvd;
0559 enum bfa_flash_part_type type;
0560 int bufsz;
0561 u64 buf_ptr;
0562 };
0563
0564 struct bfa_bsg_diag_get_temp_s {
0565 bfa_status_t status;
0566 u16 bfad_num;
0567 u16 rsvd;
0568 struct bfa_diag_results_tempsensor_s result;
0569 };
0570
0571 struct bfa_bsg_diag_memtest_s {
0572 bfa_status_t status;
0573 u16 bfad_num;
0574 u16 rsvd[3];
0575 u32 pat;
0576 struct bfa_diag_memtest_result result;
0577 struct bfa_diag_memtest_s memtest;
0578 };
0579
0580 struct bfa_bsg_diag_loopback_s {
0581 bfa_status_t status;
0582 u16 bfad_num;
0583 u16 rsvd;
0584 enum bfa_port_opmode opmode;
0585 enum bfa_port_speed speed;
0586 u32 lpcnt;
0587 u32 pat;
0588 struct bfa_diag_loopback_result_s result;
0589 };
0590
0591 struct bfa_bsg_diag_dport_show_s {
0592 bfa_status_t status;
0593 u16 bfad_num;
0594 u16 rsvd;
0595 struct bfa_diag_dport_result_s result;
0596 };
0597
0598 struct bfa_bsg_dport_enable_s {
0599 bfa_status_t status;
0600 u16 bfad_num;
0601 u16 rsvd;
0602 u16 lpcnt;
0603 u16 pat;
0604 };
0605
0606 struct bfa_bsg_diag_fwping_s {
0607 bfa_status_t status;
0608 u16 bfad_num;
0609 u16 rsvd;
0610 u32 cnt;
0611 u32 pattern;
0612 struct bfa_diag_results_fwping result;
0613 };
0614
0615 struct bfa_bsg_diag_qtest_s {
0616 bfa_status_t status;
0617 u16 bfad_num;
0618 u16 rsvd;
0619 u32 force;
0620 u32 queue;
0621 struct bfa_diag_qtest_result_s result;
0622 };
0623
0624 struct bfa_bsg_sfp_show_s {
0625 bfa_status_t status;
0626 u16 bfad_num;
0627 u16 rsvd;
0628 struct sfp_mem_s sfp;
0629 };
0630
0631 struct bfa_bsg_diag_led_s {
0632 bfa_status_t status;
0633 u16 bfad_num;
0634 u16 rsvd;
0635 struct bfa_diag_ledtest_s ledtest;
0636 };
0637
0638 struct bfa_bsg_diag_beacon_s {
0639 bfa_status_t status;
0640 u16 bfad_num;
0641 u16 rsvd;
0642 bfa_boolean_t beacon;
0643 bfa_boolean_t link_e2e_beacon;
0644 u32 second;
0645 };
0646
0647 struct bfa_bsg_diag_lb_stat_s {
0648 bfa_status_t status;
0649 u16 bfad_num;
0650 u16 rsvd;
0651 };
0652
0653 struct bfa_bsg_phy_attr_s {
0654 bfa_status_t status;
0655 u16 bfad_num;
0656 u16 instance;
0657 struct bfa_phy_attr_s attr;
0658 };
0659
0660 struct bfa_bsg_phy_s {
0661 bfa_status_t status;
0662 u16 bfad_num;
0663 u16 instance;
0664 u64 bufsz;
0665 u64 buf_ptr;
0666 };
0667
0668 struct bfa_bsg_debug_s {
0669 bfa_status_t status;
0670 u16 bfad_num;
0671 u16 rsvd;
0672 u32 bufsz;
0673 int inst_no;
0674 u64 buf_ptr;
0675 u64 offset;
0676 };
0677
0678 struct bfa_bsg_phy_stats_s {
0679 bfa_status_t status;
0680 u16 bfad_num;
0681 u16 instance;
0682 struct bfa_phy_stats_s stats;
0683 };
0684
0685 struct bfa_bsg_vhba_attr_s {
0686 bfa_status_t status;
0687 u16 bfad_num;
0688 u16 pcifn_id;
0689 struct bfa_vhba_attr_s attr;
0690 };
0691
0692 struct bfa_bsg_boot_s {
0693 bfa_status_t status;
0694 u16 bfad_num;
0695 u16 rsvd;
0696 struct bfa_boot_cfg_s cfg;
0697 };
0698
0699 struct bfa_bsg_preboot_s {
0700 bfa_status_t status;
0701 u16 bfad_num;
0702 u16 rsvd;
0703 struct bfa_boot_pbc_s cfg;
0704 };
0705
0706 struct bfa_bsg_ethboot_s {
0707 bfa_status_t status;
0708 u16 bfad_num;
0709 u16 rsvd;
0710 struct bfa_ethboot_cfg_s cfg;
0711 };
0712
0713 struct bfa_bsg_trunk_attr_s {
0714 bfa_status_t status;
0715 u16 bfad_num;
0716 u16 rsvd;
0717 struct bfa_trunk_attr_s attr;
0718 };
0719
0720 struct bfa_bsg_qos_attr_s {
0721 bfa_status_t status;
0722 u16 bfad_num;
0723 u16 rsvd;
0724 struct bfa_qos_attr_s attr;
0725 };
0726
0727 struct bfa_bsg_qos_vc_attr_s {
0728 bfa_status_t status;
0729 u16 bfad_num;
0730 u16 rsvd;
0731 struct bfa_qos_vc_attr_s attr;
0732 };
0733
0734 struct bfa_bsg_qos_bw_s {
0735 bfa_status_t status;
0736 u16 bfad_num;
0737 u16 rsvd;
0738 struct bfa_qos_bw_s qos_bw;
0739 };
0740
0741 struct bfa_bsg_vf_stats_s {
0742 bfa_status_t status;
0743 u16 bfad_num;
0744 u16 vf_id;
0745 struct bfa_vf_stats_s stats;
0746 };
0747
0748 struct bfa_bsg_vf_reset_stats_s {
0749 bfa_status_t status;
0750 u16 bfad_num;
0751 u16 vf_id;
0752 };
0753
0754 struct bfa_bsg_fcpim_lunmask_query_s {
0755 bfa_status_t status;
0756 u16 bfad_num;
0757 struct bfa_lunmask_cfg_s lun_mask;
0758 };
0759
0760 struct bfa_bsg_fcpim_lunmask_s {
0761 bfa_status_t status;
0762 u16 bfad_num;
0763 u16 vf_id;
0764 wwn_t pwwn;
0765 wwn_t rpwwn;
0766 struct scsi_lun lun;
0767 };
0768
0769 struct bfa_bsg_fcpim_throttle_s {
0770 bfa_status_t status;
0771 u16 bfad_num;
0772 u16 vf_id;
0773 struct bfa_defs_fcpim_throttle_s throttle;
0774 };
0775
0776 #define BFA_TFRU_DATA_SIZE 64
0777 #define BFA_MAX_FRUVPD_TRANSFER_SIZE 0x1000
0778
0779 struct bfa_bsg_tfru_s {
0780 bfa_status_t status;
0781 u16 bfad_num;
0782 u16 rsvd;
0783 u32 offset;
0784 u32 len;
0785 u8 data[BFA_TFRU_DATA_SIZE];
0786 };
0787
0788 struct bfa_bsg_fruvpd_s {
0789 bfa_status_t status;
0790 u16 bfad_num;
0791 u16 rsvd1;
0792 u32 offset;
0793 u32 len;
0794 u8 data[BFA_MAX_FRUVPD_TRANSFER_SIZE];
0795 u8 trfr_cmpl;
0796 u8 rsvd2[3];
0797 };
0798
0799 struct bfa_bsg_fruvpd_max_size_s {
0800 bfa_status_t status;
0801 u16 bfad_num;
0802 u16 rsvd;
0803 u32 max_size;
0804 };
0805
0806 struct bfa_bsg_fcpt_s {
0807 bfa_status_t status;
0808 u16 vf_id;
0809 wwn_t lpwwn;
0810 wwn_t dpwwn;
0811 u32 tsecs;
0812 int cts;
0813 enum fc_cos cos;
0814 struct fchs_s fchs;
0815 };
0816 #define bfa_bsg_fcpt_t struct bfa_bsg_fcpt_s
0817
0818 #pragma pack(1)
0819 struct bfa_bsg_data {
0820 int payload_len;
0821 u64 payload;
0822 };
0823 #pragma pack()
0824
0825 #define bfad_chk_iocmd_sz(__payload_len, __hdrsz, __bufsz) \
0826 (((__payload_len) != ((__hdrsz) + (__bufsz))) ? \
0827 BFA_STATUS_FAILED : BFA_STATUS_OK)
0828
0829 #endif