1
2
3
4
5
6
7
8
9
10
11 #ifndef __BFI_MS_H__
12 #define __BFI_MS_H__
13
14 #include "bfi.h"
15 #include "bfa_fc.h"
16 #include "bfa_defs_svc.h"
17
18 #pragma pack(1)
19
20 enum bfi_iocfc_h2i_msgs {
21 BFI_IOCFC_H2I_CFG_REQ = 1,
22 BFI_IOCFC_H2I_SET_INTR_REQ = 2,
23 BFI_IOCFC_H2I_UPDATEQ_REQ = 3,
24 BFI_IOCFC_H2I_FAA_QUERY_REQ = 4,
25 BFI_IOCFC_H2I_ADDR_REQ = 5,
26 };
27
28 enum bfi_iocfc_i2h_msgs {
29 BFI_IOCFC_I2H_CFG_REPLY = BFA_I2HM(1),
30 BFI_IOCFC_I2H_UPDATEQ_RSP = BFA_I2HM(3),
31 BFI_IOCFC_I2H_FAA_QUERY_RSP = BFA_I2HM(4),
32 BFI_IOCFC_I2H_ADDR_MSG = BFA_I2HM(5),
33 };
34
35 struct bfi_iocfc_cfg_s {
36 u8 num_cqs;
37 u8 sense_buf_len;
38 u16 rsvd_1;
39 u32 endian_sig;
40 u8 rsvd_2;
41 u8 single_msix_vec;
42 u8 rsvd[2];
43 __be16 num_ioim_reqs;
44 __be16 num_fwtio_reqs;
45
46
47
48
49
50
51 union bfi_addr_u req_cq_ba[BFI_IOC_MAX_CQS];
52 union bfi_addr_u req_shadow_ci[BFI_IOC_MAX_CQS];
53 __be16 req_cq_elems[BFI_IOC_MAX_CQS];
54 union bfi_addr_u rsp_cq_ba[BFI_IOC_MAX_CQS];
55 union bfi_addr_u rsp_shadow_pi[BFI_IOC_MAX_CQS];
56 __be16 rsp_cq_elems[BFI_IOC_MAX_CQS];
57
58 union bfi_addr_u stats_addr;
59 union bfi_addr_u cfgrsp_addr;
60 union bfi_addr_u ioim_snsbase[BFI_IOIM_SNSBUF_SEGS];
61
62 struct bfa_iocfc_intr_attr_s intr_attr;
63 };
64
65
66
67
68
69 struct bfi_iocfc_bootwwns {
70 wwn_t wwn[BFA_BOOT_BOOTLUN_MAX];
71 u8 nwwns;
72 u8 rsvd[7];
73 };
74
75
76
77
78 struct bfi_iocfc_qreg_s {
79 u32 cpe_q_ci_off[BFI_IOC_MAX_CQS];
80 u32 cpe_q_pi_off[BFI_IOC_MAX_CQS];
81 u32 cpe_qctl_off[BFI_IOC_MAX_CQS];
82 u32 rme_q_ci_off[BFI_IOC_MAX_CQS];
83 u32 rme_q_pi_off[BFI_IOC_MAX_CQS];
84 u32 rme_qctl_off[BFI_IOC_MAX_CQS];
85 u8 hw_qid[BFI_IOC_MAX_CQS];
86 };
87
88 struct bfi_iocfc_cfgrsp_s {
89 struct bfa_iocfc_fwcfg_s fwcfg;
90 struct bfa_iocfc_intr_attr_s intr_attr;
91 struct bfi_iocfc_bootwwns bootwwns;
92 struct bfi_pbc_s pbc_cfg;
93 struct bfi_iocfc_qreg_s qreg;
94 };
95
96
97
98
99 struct bfi_iocfc_cfg_req_s {
100 struct bfi_mhdr_s mh;
101 union bfi_addr_u ioc_cfg_dma_addr;
102 };
103
104
105
106
107
108 struct bfi_iocfc_cfg_reply_s {
109 struct bfi_mhdr_s mh;
110 u8 cfg_success;
111 u8 lpu_bm;
112 u8 rsvd[2];
113 };
114
115
116
117
118
119 struct bfi_iocfc_set_intr_req_s {
120 struct bfi_mhdr_s mh;
121 u8 coalesce;
122 u8 rsvd[3];
123 __be16 delay;
124 __be16 latency;
125 };
126
127
128
129
130
131 struct bfi_iocfc_updateq_req_s {
132 struct bfi_mhdr_s mh;
133 u32 reqq_ba;
134 u32 rspq_ba;
135 u32 reqq_sci;
136 u32 rspq_spi;
137 };
138
139
140
141
142
143 struct bfi_iocfc_updateq_rsp_s {
144 struct bfi_mhdr_s mh;
145 u8 status;
146 u8 rsvd[3];
147 };
148
149
150
151
152
153 union bfi_iocfc_h2i_msg_u {
154 struct bfi_mhdr_s mh;
155 struct bfi_iocfc_cfg_req_s cfg_req;
156 struct bfi_iocfc_updateq_req_s updateq_req;
157 u32 mboxmsg[BFI_IOC_MSGSZ];
158 };
159
160
161
162
163
164 union bfi_iocfc_i2h_msg_u {
165 struct bfi_mhdr_s mh;
166 struct bfi_iocfc_cfg_reply_s cfg_reply;
167 struct bfi_iocfc_updateq_rsp_s updateq_rsp;
168 u32 mboxmsg[BFI_IOC_MSGSZ];
169 };
170
171
172
173
174 struct bfi_faa_en_dis_s {
175 struct bfi_mhdr_s mh;
176 };
177
178 struct bfi_faa_addr_msg_s {
179 struct bfi_mhdr_s mh;
180 u8 rsvd[4];
181 wwn_t pwwn;
182 wwn_t nwwn;
183 };
184
185
186
187
188 struct bfi_faa_query_s {
189 struct bfi_mhdr_s mh;
190 u8 faa_status;
191 u8 addr_source;
192 u8 rsvd[2];
193 wwn_t faa;
194 };
195
196
197
198
199 struct bfi_faa_en_dis_rsp_s {
200 struct bfi_mhdr_s mh;
201 u8 status;
202 u8 rsvd[3];
203 };
204
205
206
207
208 #define bfi_faa_query_rsp_t struct bfi_faa_query_s
209
210 enum bfi_fcport_h2i {
211 BFI_FCPORT_H2I_ENABLE_REQ = (1),
212 BFI_FCPORT_H2I_DISABLE_REQ = (2),
213 BFI_FCPORT_H2I_SET_SVC_PARAMS_REQ = (3),
214 BFI_FCPORT_H2I_STATS_GET_REQ = (4),
215 BFI_FCPORT_H2I_STATS_CLEAR_REQ = (5),
216 };
217
218
219 enum bfi_fcport_i2h {
220 BFI_FCPORT_I2H_ENABLE_RSP = BFA_I2HM(1),
221 BFI_FCPORT_I2H_DISABLE_RSP = BFA_I2HM(2),
222 BFI_FCPORT_I2H_SET_SVC_PARAMS_RSP = BFA_I2HM(3),
223 BFI_FCPORT_I2H_STATS_GET_RSP = BFA_I2HM(4),
224 BFI_FCPORT_I2H_STATS_CLEAR_RSP = BFA_I2HM(5),
225 BFI_FCPORT_I2H_EVENT = BFA_I2HM(6),
226 BFI_FCPORT_I2H_TRUNK_SCN = BFA_I2HM(7),
227 BFI_FCPORT_I2H_ENABLE_AEN = BFA_I2HM(8),
228 BFI_FCPORT_I2H_DISABLE_AEN = BFA_I2HM(9),
229 };
230
231
232
233
234
235 struct bfi_fcport_req_s {
236 struct bfi_mhdr_s mh;
237 u32 msgtag;
238 };
239
240
241
242
243 struct bfi_fcport_rsp_s {
244 struct bfi_mhdr_s mh;
245 u8 status;
246 u8 rsvd[3];
247 struct bfa_port_cfg_s port_cfg;
248 u32 msgtag;
249 };
250
251
252
253
254 struct bfi_fcport_enable_req_s {
255 struct bfi_mhdr_s mh;
256 u32 rsvd1;
257 wwn_t nwwn;
258 wwn_t pwwn;
259 struct bfa_port_cfg_s port_cfg;
260 union bfi_addr_u stats_dma_addr;
261 u32 msgtag;
262 u8 use_flash_cfg;
263 u8 rsvd2[3];
264 };
265
266
267
268
269 struct bfi_fcport_set_svc_params_req_s {
270 struct bfi_mhdr_s mh;
271 __be16 tx_bbcredit;
272 u8 rsvd[2];
273 };
274
275
276
277
278 struct bfi_fcport_event_s {
279 struct bfi_mhdr_s mh;
280 struct bfa_port_link_s link_state;
281 };
282
283
284
285
286 struct bfi_fcport_trunk_link_s {
287 wwn_t trunk_wwn;
288 u8 fctl;
289 u8 state;
290 u8 speed;
291 u8 rsvd;
292 __be32 deskew;
293 };
294
295 #define BFI_FCPORT_MAX_LINKS 2
296 struct bfi_fcport_trunk_scn_s {
297 struct bfi_mhdr_s mh;
298 u8 trunk_state;
299 u8 trunk_speed;
300 u8 rsvd_a[2];
301 struct bfi_fcport_trunk_link_s tlink[BFI_FCPORT_MAX_LINKS];
302 };
303
304
305
306
307 union bfi_fcport_h2i_msg_u {
308 struct bfi_mhdr_s *mhdr;
309 struct bfi_fcport_enable_req_s *penable;
310 struct bfi_fcport_req_s *pdisable;
311 struct bfi_fcport_set_svc_params_req_s *psetsvcparams;
312 struct bfi_fcport_req_s *pstatsget;
313 struct bfi_fcport_req_s *pstatsclear;
314 };
315
316
317
318
319 union bfi_fcport_i2h_msg_u {
320 struct bfi_msg_s *msg;
321 struct bfi_fcport_rsp_s *penable_rsp;
322 struct bfi_fcport_rsp_s *pdisable_rsp;
323 struct bfi_fcport_rsp_s *psetsvcparams_rsp;
324 struct bfi_fcport_rsp_s *pstatsget_rsp;
325 struct bfi_fcport_rsp_s *pstatsclear_rsp;
326 struct bfi_fcport_event_s *event;
327 struct bfi_fcport_trunk_scn_s *trunk_scn;
328 };
329
330 enum bfi_fcxp_h2i {
331 BFI_FCXP_H2I_SEND_REQ = 1,
332 };
333
334 enum bfi_fcxp_i2h {
335 BFI_FCXP_I2H_SEND_RSP = BFA_I2HM(1),
336 };
337
338 #define BFA_FCXP_MAX_SGES 2
339
340
341
342
343 struct bfi_fcxp_send_req_s {
344 struct bfi_mhdr_s mh;
345 __be16 fcxp_tag;
346 __be16 max_frmsz;
347 __be16 vf_id;
348 u16 rport_fw_hndl;
349 u8 class;
350 u8 rsp_timeout;
351 u8 cts;
352 u8 lp_fwtag;
353 struct fchs_s fchs;
354 __be32 req_len;
355 __be32 rsp_maxlen;
356 struct bfi_alen_s req_alen;
357 struct bfi_alen_s rsp_alen;
358 };
359
360
361
362
363 struct bfi_fcxp_send_rsp_s {
364 struct bfi_mhdr_s mh;
365 __be16 fcxp_tag;
366 u8 req_status;
367 u8 rsvd;
368 __be32 rsp_len;
369 __be32 residue_len;
370 struct fchs_s fchs;
371 };
372
373 enum bfi_uf_h2i {
374 BFI_UF_H2I_BUF_POST = 1,
375 };
376
377 enum bfi_uf_i2h {
378 BFI_UF_I2H_FRM_RCVD = BFA_I2HM(1),
379 };
380
381 #define BFA_UF_MAX_SGES 2
382
383 struct bfi_uf_buf_post_s {
384 struct bfi_mhdr_s mh;
385 u16 buf_tag;
386 __be16 buf_len;
387 struct bfi_alen_s alen;
388 };
389
390 struct bfi_uf_frm_rcvd_s {
391 struct bfi_mhdr_s mh;
392 u16 buf_tag;
393 u16 rsvd;
394 u16 frm_len;
395 u16 xfr_len;
396 };
397
398 enum bfi_lps_h2i_msgs {
399 BFI_LPS_H2I_LOGIN_REQ = 1,
400 BFI_LPS_H2I_LOGOUT_REQ = 2,
401 BFI_LPS_H2I_N2N_PID_REQ = 3,
402 };
403
404 enum bfi_lps_i2h_msgs {
405 BFI_LPS_I2H_LOGIN_RSP = BFA_I2HM(1),
406 BFI_LPS_I2H_LOGOUT_RSP = BFA_I2HM(2),
407 BFI_LPS_I2H_CVL_EVENT = BFA_I2HM(3),
408 };
409
410 struct bfi_lps_login_req_s {
411 struct bfi_mhdr_s mh;
412 u8 bfa_tag;
413 u8 alpa;
414 __be16 pdu_size;
415 wwn_t pwwn;
416 wwn_t nwwn;
417 u8 fdisc;
418 u8 auth_en;
419 u8 lps_role;
420 u8 bb_scn;
421 u32 vvl_flag;
422 };
423
424 struct bfi_lps_login_rsp_s {
425 struct bfi_mhdr_s mh;
426 u8 fw_tag;
427 u8 status;
428 u8 lsrjt_rsn;
429 u8 lsrjt_expl;
430 wwn_t port_name;
431 wwn_t node_name;
432 __be16 bb_credit;
433 u8 f_port;
434 u8 npiv_en;
435 u32 lp_pid:24;
436 u32 auth_req:8;
437 mac_t lp_mac;
438 mac_t fcf_mac;
439 u8 ext_status;
440 u8 brcd_switch;
441 u8 bfa_tag;
442 u8 rsvd;
443 };
444
445 struct bfi_lps_logout_req_s {
446 struct bfi_mhdr_s mh;
447 u8 fw_tag;
448 u8 rsvd[3];
449 wwn_t port_name;
450 };
451
452 struct bfi_lps_logout_rsp_s {
453 struct bfi_mhdr_s mh;
454 u8 bfa_tag;
455 u8 status;
456 u8 rsvd[2];
457 };
458
459 struct bfi_lps_cvl_event_s {
460 struct bfi_mhdr_s mh;
461 u8 bfa_tag;
462 u8 rsvd[3];
463 };
464
465 struct bfi_lps_n2n_pid_req_s {
466 struct bfi_mhdr_s mh;
467 u8 fw_tag;
468 u32 lp_pid:24;
469 };
470
471 union bfi_lps_h2i_msg_u {
472 struct bfi_mhdr_s *msg;
473 struct bfi_lps_login_req_s *login_req;
474 struct bfi_lps_logout_req_s *logout_req;
475 struct bfi_lps_n2n_pid_req_s *n2n_pid_req;
476 };
477
478 union bfi_lps_i2h_msg_u {
479 struct bfi_msg_s *msg;
480 struct bfi_lps_login_rsp_s *login_rsp;
481 struct bfi_lps_logout_rsp_s *logout_rsp;
482 struct bfi_lps_cvl_event_s *cvl_event;
483 };
484
485 enum bfi_rport_h2i_msgs {
486 BFI_RPORT_H2I_CREATE_REQ = 1,
487 BFI_RPORT_H2I_DELETE_REQ = 2,
488 BFI_RPORT_H2I_SET_SPEED_REQ = 3,
489 };
490
491 enum bfi_rport_i2h_msgs {
492 BFI_RPORT_I2H_CREATE_RSP = BFA_I2HM(1),
493 BFI_RPORT_I2H_DELETE_RSP = BFA_I2HM(2),
494 BFI_RPORT_I2H_QOS_SCN = BFA_I2HM(3),
495 BFI_RPORT_I2H_LIP_SCN_ONLINE = BFA_I2HM(4),
496 BFI_RPORT_I2H_LIP_SCN_OFFLINE = BFA_I2HM(5),
497 BFI_RPORT_I2H_NO_DEV = BFA_I2HM(6),
498 };
499
500 struct bfi_rport_create_req_s {
501 struct bfi_mhdr_s mh;
502 u16 bfa_handle;
503 __be16 max_frmsz;
504 u32 pid:24,
505 lp_fwtag:8;
506 u32 local_pid:24,
507 cisc:8;
508 u8 fc_class;
509 u8 vf_en;
510 u16 vf_id;
511 };
512
513 struct bfi_rport_create_rsp_s {
514 struct bfi_mhdr_s mh;
515 u8 status;
516 u8 rsvd[3];
517 u16 bfa_handle;
518 u16 fw_handle;
519 struct bfa_rport_qos_attr_s qos_attr;
520 };
521
522 struct bfa_rport_speed_req_s {
523 struct bfi_mhdr_s mh;
524 u16 fw_handle;
525 u8 speed;
526 u8 rsvd;
527 };
528
529 struct bfi_rport_delete_req_s {
530 struct bfi_mhdr_s mh;
531 u16 fw_handle;
532 u16 rsvd;
533 };
534
535 struct bfi_rport_delete_rsp_s {
536 struct bfi_mhdr_s mh;
537 u16 bfa_handle;
538 u8 status;
539 u8 rsvd;
540 };
541
542 struct bfi_rport_qos_scn_s {
543 struct bfi_mhdr_s mh;
544 u16 bfa_handle;
545 u16 rsvd;
546 struct bfa_rport_qos_attr_s old_qos_attr;
547 struct bfa_rport_qos_attr_s new_qos_attr;
548 };
549
550 struct bfi_rport_lip_scn_s {
551 struct bfi_mhdr_s mh;
552 u16 bfa_handle;
553 u8 status;
554 u8 rsvd;
555 struct bfa_fcport_loop_info_s loop_info;
556 };
557
558 union bfi_rport_h2i_msg_u {
559 struct bfi_msg_s *msg;
560 struct bfi_rport_create_req_s *create_req;
561 struct bfi_rport_delete_req_s *delete_req;
562 struct bfi_rport_speed_req_s *speed_req;
563 };
564
565 union bfi_rport_i2h_msg_u {
566 struct bfi_msg_s *msg;
567 struct bfi_rport_create_rsp_s *create_rsp;
568 struct bfi_rport_delete_rsp_s *delete_rsp;
569 struct bfi_rport_qos_scn_s *qos_scn_evt;
570 struct bfi_rport_lip_scn_s *lip_scn;
571 };
572
573
574
575
576
577 enum bfi_itn_h2i {
578 BFI_ITN_H2I_CREATE_REQ = 1,
579 BFI_ITN_H2I_DELETE_REQ = 2,
580 };
581
582 enum bfi_itn_i2h {
583 BFI_ITN_I2H_CREATE_RSP = BFA_I2HM(1),
584 BFI_ITN_I2H_DELETE_RSP = BFA_I2HM(2),
585 BFI_ITN_I2H_SLER_EVENT = BFA_I2HM(3),
586 };
587
588 struct bfi_itn_create_req_s {
589 struct bfi_mhdr_s mh;
590 u16 fw_handle;
591 u8 class;
592 u8 seq_rec;
593 u8 msg_no;
594 u8 role;
595 };
596
597 struct bfi_itn_create_rsp_s {
598 struct bfi_mhdr_s mh;
599 u16 bfa_handle;
600 u8 status;
601 u8 seq_id;
602 };
603
604 struct bfi_itn_delete_req_s {
605 struct bfi_mhdr_s mh;
606 u16 fw_handle;
607 u8 seq_id;
608 u8 rsvd;
609 };
610
611 struct bfi_itn_delete_rsp_s {
612 struct bfi_mhdr_s mh;
613 u16 bfa_handle;
614 u8 status;
615 u8 seq_id;
616 };
617
618 struct bfi_itn_sler_event_s {
619 struct bfi_mhdr_s mh;
620 u16 bfa_handle;
621 u16 rsvd;
622 };
623
624 union bfi_itn_h2i_msg_u {
625 struct bfi_itn_create_req_s *create_req;
626 struct bfi_itn_delete_req_s *delete_req;
627 struct bfi_msg_s *msg;
628 };
629
630 union bfi_itn_i2h_msg_u {
631 struct bfi_itn_create_rsp_s *create_rsp;
632 struct bfi_itn_delete_rsp_s *delete_rsp;
633 struct bfi_itn_sler_event_s *sler_event;
634 struct bfi_msg_s *msg;
635 };
636
637
638
639
640
641 enum bfi_ioim_h2i {
642 BFI_IOIM_H2I_IOABORT_REQ = 1,
643 BFI_IOIM_H2I_IOCLEANUP_REQ = 2,
644 };
645
646 enum bfi_ioim_i2h {
647 BFI_IOIM_I2H_IO_RSP = BFA_I2HM(1),
648 BFI_IOIM_I2H_IOABORT_RSP = BFA_I2HM(2),
649 };
650
651
652
653
654 struct bfi_ioim_dif_s {
655 u32 dif_info[4];
656 };
657
658
659
660
661
662
663
664
665
666
667 struct bfi_ioim_req_s {
668 struct bfi_mhdr_s mh;
669 __be16 io_tag;
670 u16 rport_hdl;
671 struct fcp_cmnd_s cmnd;
672
673
674
675
676
677 struct bfi_sge_s sges[BFI_SGE_INLINE_MAX];
678 u8 io_timeout;
679 u8 dif_en;
680 u8 rsvd_a[2];
681 struct bfi_ioim_dif_s dif;
682 };
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757 enum bfi_ioim_status {
758 BFI_IOIM_STS_OK = 0,
759 BFI_IOIM_STS_HOST_ABORTED = 1,
760 BFI_IOIM_STS_ABORTED = 2,
761 BFI_IOIM_STS_TIMEDOUT = 3,
762 BFI_IOIM_STS_RES_FREE = 4,
763 BFI_IOIM_STS_SQER_NEEDED = 5,
764 BFI_IOIM_STS_PROTO_ERR = 6,
765 BFI_IOIM_STS_UTAG = 7,
766 BFI_IOIM_STS_PATHTOV = 8,
767 };
768
769
770
771
772 struct bfi_ioim_rsp_s {
773 struct bfi_mhdr_s mh;
774 __be16 io_tag;
775 u16 bfa_rport_hndl;
776 u8 io_status;
777 u8 reuse_io_tag;
778 u16 abort_tag;
779 u8 scsi_status;
780 u8 sns_len;
781 u8 resid_flags;
782 u8 rsvd_a;
783 __be32 residue;
784 u32 rsvd_b[3];
785 };
786
787 struct bfi_ioim_abort_req_s {
788 struct bfi_mhdr_s mh;
789 __be16 io_tag;
790 u16 abort_tag;
791 };
792
793
794
795
796
797 enum bfi_tskim_h2i {
798 BFI_TSKIM_H2I_TM_REQ = 1,
799 BFI_TSKIM_H2I_ABORT_REQ = 2,
800 };
801
802 enum bfi_tskim_i2h {
803 BFI_TSKIM_I2H_TM_RSP = BFA_I2HM(1),
804 };
805
806 struct bfi_tskim_req_s {
807 struct bfi_mhdr_s mh;
808 __be16 tsk_tag;
809 u16 itn_fhdl;
810 struct scsi_lun lun;
811 u8 tm_flags;
812 u8 t_secs;
813 u8 rsvd[2];
814 };
815
816 struct bfi_tskim_abortreq_s {
817 struct bfi_mhdr_s mh;
818 __be16 tsk_tag;
819 u16 rsvd;
820 };
821
822 enum bfi_tskim_status {
823
824
825
826
827 BFI_TSKIM_STS_OK = 0,
828 BFI_TSKIM_STS_NOT_SUPP = 4,
829 BFI_TSKIM_STS_FAILED = 5,
830
831
832
833
834 BFI_TSKIM_STS_TIMEOUT = 10,
835 BFI_TSKIM_STS_ABORTED = 11,
836 BFI_TSKIM_STS_UTAG = 12,
837 };
838
839 struct bfi_tskim_rsp_s {
840 struct bfi_mhdr_s mh;
841 __be16 tsk_tag;
842 u8 tsk_status;
843 u8 rsvd;
844 };
845
846 #pragma pack()
847
848
849
850
851 enum {
852 BFI_MSIX_CPE_QMIN_CB = 0,
853 BFI_MSIX_CPE_QMAX_CB = 7,
854 BFI_MSIX_RME_QMIN_CB = 8,
855 BFI_MSIX_RME_QMAX_CB = 15,
856 BFI_MSIX_CB_MAX = 22,
857 };
858
859
860
861
862 enum {
863 BFI_MSIX_LPU_ERR_CT = 0,
864 BFI_MSIX_CPE_QMIN_CT = 1,
865 BFI_MSIX_CPE_QMAX_CT = 4,
866 BFI_MSIX_RME_QMIN_CT = 5,
867 BFI_MSIX_RME_QMAX_CT = 8,
868 BFI_MSIX_CT_MAX = 9,
869 };
870
871 #endif