aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bfa/bfa_defs_svc.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/bfa/bfa_defs_svc.h')
-rw-r--r--drivers/scsi/bfa/bfa_defs_svc.h563
1 files changed, 243 insertions, 320 deletions
diff --git a/drivers/scsi/bfa/bfa_defs_svc.h b/drivers/scsi/bfa/bfa_defs_svc.h
index ec03c8cd8da..863c6ba7d5e 100644
--- a/drivers/scsi/bfa/bfa_defs_svc.h
+++ b/drivers/scsi/bfa/bfa_defs_svc.h
@@ -34,42 +34,42 @@
34struct bfa_iocfc_intr_attr_s { 34struct bfa_iocfc_intr_attr_s {
35 u8 coalesce; /* enable/disable coalescing */ 35 u8 coalesce; /* enable/disable coalescing */
36 u8 rsvd[3]; 36 u8 rsvd[3];
37 __be16 latency; /* latency in microseconds */ 37 __be16 latency; /* latency in microseconds */
38 __be16 delay; /* delay in microseconds */ 38 __be16 delay; /* delay in microseconds */
39}; 39};
40 40
41/* 41/*
42 * IOC firmware configuraton 42 * IOC firmware configuraton
43 */ 43 */
44struct bfa_iocfc_fwcfg_s { 44struct bfa_iocfc_fwcfg_s {
45 u16 num_fabrics; /* number of fabrics */ 45 u16 num_fabrics; /* number of fabrics */
46 u16 num_lports; /* number of local lports */ 46 u16 num_lports; /* number of local lports */
47 u16 num_rports; /* number of remote ports */ 47 u16 num_rports; /* number of remote ports */
48 u16 num_ioim_reqs; /* number of IO reqs */ 48 u16 num_ioim_reqs; /* number of IO reqs */
49 u16 num_tskim_reqs; /* task management requests */ 49 u16 num_tskim_reqs; /* task management requests */
50 u16 num_fwtio_reqs; /* number of TM IO reqs in FW */ 50 u16 num_fwtio_reqs; /* number of TM IO reqs in FW */
51 u16 num_fcxp_reqs; /* unassisted FC exchanges */ 51 u16 num_fcxp_reqs; /* unassisted FC exchanges */
52 u16 num_uf_bufs; /* unsolicited recv buffers */ 52 u16 num_uf_bufs; /* unsolicited recv buffers */
53 u8 num_cqs; 53 u8 num_cqs;
54 u8 fw_tick_res; /* FW clock resolution in ms */ 54 u8 fw_tick_res; /* FW clock resolution in ms */
55 u8 rsvd[6]; 55 u8 rsvd[2];
56}; 56};
57#pragma pack() 57#pragma pack()
58 58
59struct bfa_iocfc_drvcfg_s { 59struct bfa_iocfc_drvcfg_s {
60 u16 num_reqq_elems; /* number of req queue elements */ 60 u16 num_reqq_elems; /* number of req queue elements */
61 u16 num_rspq_elems; /* number of rsp queue elements */ 61 u16 num_rspq_elems; /* number of rsp queue elements */
62 u16 num_sgpgs; /* number of total SG pages */ 62 u16 num_sgpgs; /* number of total SG pages */
63 u16 num_sboot_tgts; /* number of SAN boot targets */ 63 u16 num_sboot_tgts; /* number of SAN boot targets */
64 u16 num_sboot_luns; /* number of SAN boot luns */ 64 u16 num_sboot_luns; /* number of SAN boot luns */
65 u16 ioc_recover; /* IOC recovery mode */ 65 u16 ioc_recover; /* IOC recovery mode */
66 u16 min_cfg; /* minimum configuration */ 66 u16 min_cfg; /* minimum configuration */
67 u16 path_tov; /* device path timeout */ 67 u16 path_tov; /* device path timeout */
68 u16 num_tio_reqs; /* number of TM IO reqs */ 68 u16 num_tio_reqs; /*!< number of TM IO reqs */
69 u8 port_mode; 69 u8 port_mode;
70 u8 rsvd_a; 70 u8 rsvd_a;
71 bfa_boolean_t delay_comp; /* delay completion of failed 71 bfa_boolean_t delay_comp; /* delay completion of
72 * inflight IOs */ 72 failed inflight IOs */
73 u16 num_ttsk_reqs; /* TM task management requests */ 73 u16 num_ttsk_reqs; /* TM task management requests */
74 u32 rsvd; 74 u32 rsvd;
75}; 75};
@@ -101,8 +101,8 @@ struct bfa_fw_ioim_stats_s {
101 u32 fw_frm_drop; /* f/w drop the frame */ 101 u32 fw_frm_drop; /* f/w drop the frame */
102 102
103 u32 rec_timeout; /* FW rec timed out */ 103 u32 rec_timeout; /* FW rec timed out */
104 u32 error_rec; /* FW sending rec on 104 u32 error_rec; /* FW sending rec on
105 * an error condition*/ 105 * an error condition*/
106 u32 wait_for_si; /* FW wait for SI */ 106 u32 wait_for_si; /* FW wait for SI */
107 u32 rec_rsp_inval; /* REC rsp invalid */ 107 u32 rec_rsp_inval; /* REC rsp invalid */
108 u32 seqr_io_abort; /* target does not know cmd so abort */ 108 u32 seqr_io_abort; /* target does not know cmd so abort */
@@ -124,9 +124,9 @@ struct bfa_fw_ioim_stats_s {
124 u32 unexp_fcp_rsp; /* fcp response in wrong state */ 124 u32 unexp_fcp_rsp; /* fcp response in wrong state */
125 125
126 u32 fcp_rsp_under_run; /* fcp rsp IO underrun */ 126 u32 fcp_rsp_under_run; /* fcp rsp IO underrun */
127 u32 fcp_rsp_under_run_wr; /* fcp rsp IO underrun for write */ 127 u32 fcp_rsp_under_run_wr; /* fcp rsp IO underrun for write */
128 u32 fcp_rsp_under_run_err; /* fcp rsp IO underrun error */ 128 u32 fcp_rsp_under_run_err; /* fcp rsp IO underrun error */
129 u32 fcp_rsp_resid_inval; /* invalid residue */ 129 u32 fcp_rsp_resid_inval; /* invalid residue */
130 u32 fcp_rsp_over_run; /* fcp rsp IO overrun */ 130 u32 fcp_rsp_over_run; /* fcp rsp IO overrun */
131 u32 fcp_rsp_over_run_err; /* fcp rsp IO overrun error */ 131 u32 fcp_rsp_over_run_err; /* fcp rsp IO overrun error */
132 u32 fcp_rsp_proto_err; /* protocol error in fcp rsp */ 132 u32 fcp_rsp_proto_err; /* protocol error in fcp rsp */
@@ -142,20 +142,21 @@ struct bfa_fw_ioim_stats_s {
142 u32 ioh_hit_class2_event; /* IOH hit class2 */ 142 u32 ioh_hit_class2_event; /* IOH hit class2 */
143 u32 ioh_miss_other_event; /* IOH miss other */ 143 u32 ioh_miss_other_event; /* IOH miss other */
144 u32 ioh_seq_cnt_err_event; /* IOH seq cnt error */ 144 u32 ioh_seq_cnt_err_event; /* IOH seq cnt error */
145 u32 ioh_len_err_event; /* IOH len error - fcp_dl != 145 u32 ioh_len_err_event; /* IOH len error - fcp_dl !=
146 * bytes xfered */ 146 * bytes xfered */
147 u32 ioh_seq_len_err_event; /* IOH seq len error */ 147 u32 ioh_seq_len_err_event; /* IOH seq len error */
148 u32 ioh_data_oor_event; /* Data out of range */ 148 u32 ioh_data_oor_event; /* Data out of range */
149 u32 ioh_ro_ooo_event; /* Relative offset out of range */ 149 u32 ioh_ro_ooo_event; /* Relative offset out of range */
150 u32 ioh_cpu_owned_event; /* IOH hit -iost owned by f/w */ 150 u32 ioh_cpu_owned_event; /* IOH hit -iost owned by f/w */
151 u32 ioh_unexp_frame_event; /* unexpected frame received 151 u32 ioh_unexp_frame_event; /* unexpected frame received
152 * count */ 152 * count */
153 u32 ioh_err_int; /* IOH error int during data-phase 153 u32 ioh_err_int; /* IOH error int during data-phase
154 * for scsi write */ 154 * for scsi write
155 */
155}; 156};
156 157
157struct bfa_fw_tio_stats_s { 158struct bfa_fw_tio_stats_s {
158 u32 tio_conf_proc; /* TIO CONF processed */ 159 u32 tio_conf_proc; /* TIO CONF processed */
159 u32 tio_conf_drop; /* TIO CONF dropped */ 160 u32 tio_conf_drop; /* TIO CONF dropped */
160 u32 tio_cleanup_req; /* TIO cleanup requested */ 161 u32 tio_cleanup_req; /* TIO cleanup requested */
161 u32 tio_cleanup_comp; /* TIO cleanup completed */ 162 u32 tio_cleanup_comp; /* TIO cleanup completed */
@@ -163,36 +164,34 @@ struct bfa_fw_tio_stats_s {
163 u32 tio_abort_rsp_comp; /* TIO abort rsp completed */ 164 u32 tio_abort_rsp_comp; /* TIO abort rsp completed */
164 u32 tio_abts_req; /* TIO ABTS requested */ 165 u32 tio_abts_req; /* TIO ABTS requested */
165 u32 tio_abts_ack; /* TIO ABTS ack-ed */ 166 u32 tio_abts_ack; /* TIO ABTS ack-ed */
166 u32 tio_abts_ack_nocomp;/* TIO ABTS ack-ed but not completed */ 167 u32 tio_abts_ack_nocomp; /* TIO ABTS ack-ed but not completed */
167 u32 tio_abts_tmo; /* TIO ABTS timeout */ 168 u32 tio_abts_tmo; /* TIO ABTS timeout */
168 u32 tio_snsdata_dma; /* TIO sense data DMA */ 169 u32 tio_snsdata_dma; /* TIO sense data DMA */
169 u32 tio_rxwchan_wait; /* TIO waiting for RX wait channel */ 170 u32 tio_rxwchan_wait; /* TIO waiting for RX wait channel */
170 u32 tio_rxwchan_avail; /* TIO RX wait channel available */ 171 u32 tio_rxwchan_avail; /* TIO RX wait channel available */
171 u32 tio_hit_bls; /* TIO IOH BLS event */ 172 u32 tio_hit_bls; /* TIO IOH BLS event */
172 u32 tio_uf_recv; /* TIO received UF */ 173 u32 tio_uf_recv; /* TIO received UF */
173 u32 tio_rd_invalid_sm; /* TIO read reqst in wrong state machine */ 174 u32 tio_rd_invalid_sm; /* TIO read reqst in wrong state machine */
174 u32 tio_wr_invalid_sm; /* TIO write reqst in wrong state machine */ 175 u32 tio_wr_invalid_sm;/* TIO write reqst in wrong state machine */
175 176
176 u32 ds_rxwchan_wait; /* DS waiting for RX wait channel */ 177 u32 ds_rxwchan_wait; /* DS waiting for RX wait channel */
177 u32 ds_rxwchan_avail; /* DS RX wait channel available */ 178 u32 ds_rxwchan_avail; /* DS RX wait channel available */
178 u32 ds_unaligned_rd; /* DS unaligned read */ 179 u32 ds_unaligned_rd; /* DS unaligned read */
179 u32 ds_rdcomp_invalid_sm; /* DS read completed in wrong state 180 u32 ds_rdcomp_invalid_sm; /* DS read completed in wrong state machine */
180 * machine */ 181 u32 ds_wrcomp_invalid_sm; /* DS write completed in wrong state machine */
181 u32 ds_wrcomp_invalid_sm; /* DS write completed in wrong state
182 * machine */
183 u32 ds_flush_req; /* DS flush requested */ 182 u32 ds_flush_req; /* DS flush requested */
184 u32 ds_flush_comp; /* DS flush completed */ 183 u32 ds_flush_comp; /* DS flush completed */
185 u32 ds_xfrdy_exp; /* DS XFER_RDY expired */ 184 u32 ds_xfrdy_exp; /* DS XFER_RDY expired */
186 u32 ds_seq_cnt_err; /* DS seq cnt error */ 185 u32 ds_seq_cnt_err; /* DS seq cnt error */
187 u32 ds_seq_len_err; /* DS seq len error */ 186 u32 ds_seq_len_err; /* DS seq len error */
188 u32 ds_data_oor; /* DS data out of order */ 187 u32 ds_data_oor; /* DS data out of order */
189 u32 ds_hit_bls; /* DS hit BLS */ 188 u32 ds_hit_bls; /* DS hit BLS */
190 u32 ds_edtov_timer_exp; /* DS edtov expired */ 189 u32 ds_edtov_timer_exp; /* DS edtov expired */
191 u32 ds_cpu_owned; /* DS cpu owned */ 190 u32 ds_cpu_owned; /* DS cpu owned */
192 u32 ds_hit_class2; /* DS hit class2 */ 191 u32 ds_hit_class2; /* DS hit class2 */
193 u32 ds_length_err; /* DS length error */ 192 u32 ds_length_err; /* DS length error */
194 u32 ds_ro_ooo_err; /* DS relative offset out-of-order error */ 193 u32 ds_ro_ooo_err; /* DS relative offset out-of-order error */
195 u32 ds_rectov_timer_exp;/* DS rectov expired */ 194 u32 ds_rectov_timer_exp; /* DS rectov expired */
196 u32 ds_unexp_fr_err; /* DS unexp frame error */ 195 u32 ds_unexp_fr_err; /* DS unexp frame error */
197}; 196};
198 197
@@ -209,156 +208,119 @@ struct bfa_fw_io_stats_s {
209 */ 208 */
210 209
211struct bfa_fw_port_fpg_stats_s { 210struct bfa_fw_port_fpg_stats_s {
212 u32 intr_evt; 211 u32 intr_evt;
213 u32 intr; 212 u32 intr;
214 u32 intr_excess; 213 u32 intr_excess;
215 u32 intr_cause0; 214 u32 intr_cause0;
216 u32 intr_other; 215 u32 intr_other;
217 u32 intr_other_ign; 216 u32 intr_other_ign;
218 u32 sig_lost; 217 u32 sig_lost;
219 u32 sig_regained; 218 u32 sig_regained;
220 u32 sync_lost; 219 u32 sync_lost;
221 u32 sync_to; 220 u32 sync_to;
222 u32 sync_regained; 221 u32 sync_regained;
223 u32 div2_overflow; 222 u32 div2_overflow;
224 u32 div2_underflow; 223 u32 div2_underflow;
225 u32 efifo_overflow; 224 u32 efifo_overflow;
226 u32 efifo_underflow; 225 u32 efifo_underflow;
227 u32 idle_rx; 226 u32 idle_rx;
228 u32 lrr_rx; 227 u32 lrr_rx;
229 u32 lr_rx; 228 u32 lr_rx;
230 u32 ols_rx; 229 u32 ols_rx;
231 u32 nos_rx; 230 u32 nos_rx;
232 u32 lip_rx; 231 u32 lip_rx;
233 u32 arbf0_rx; 232 u32 arbf0_rx;
234 u32 arb_rx; 233 u32 arb_rx;
235 u32 mrk_rx; 234 u32 mrk_rx;
236 u32 const_mrk_rx; 235 u32 const_mrk_rx;
237 u32 prim_unknown; 236 u32 prim_unknown;
238}; 237};
239 238
240 239
241struct bfa_fw_port_lksm_stats_s { 240struct bfa_fw_port_lksm_stats_s {
242 u32 hwsm_success; /* hwsm state machine success */ 241 u32 hwsm_success; /* hwsm state machine success */
243 u32 hwsm_fails; /* hwsm fails */ 242 u32 hwsm_fails; /* hwsm fails */
244 u32 hwsm_wdtov; /* hwsm timed out */ 243 u32 hwsm_wdtov; /* hwsm timed out */
245 u32 swsm_success; /* swsm success */ 244 u32 swsm_success; /* swsm success */
246 u32 swsm_fails; /* swsm fails */ 245 u32 swsm_fails; /* swsm fails */
247 u32 swsm_wdtov; /* swsm timed out */ 246 u32 swsm_wdtov; /* swsm timed out */
248 u32 busybufs; /* link init failed due to busybuf */ 247 u32 busybufs; /* link init failed due to busybuf */
249 u32 buf_waits; /* bufwait state entries */ 248 u32 buf_waits; /* bufwait state entries */
250 u32 link_fails; /* link failures */ 249 u32 link_fails; /* link failures */
251 u32 psp_errors; /* primitive sequence protocol errors */ 250 u32 psp_errors; /* primitive sequence protocol errors */
252 u32 lr_unexp; /* No. of times LR rx-ed unexpectedly */ 251 u32 lr_unexp; /* No. of times LR rx-ed unexpectedly */
253 u32 lrr_unexp; /* No. of times LRR rx-ed unexpectedly */ 252 u32 lrr_unexp; /* No. of times LRR rx-ed unexpectedly */
254 u32 lr_tx; /* No. of times LR tx started */ 253 u32 lr_tx; /* No. of times LR tx started */
255 u32 lrr_tx; /* No. of times LRR tx started */ 254 u32 lrr_tx; /* No. of times LRR tx started */
256 u32 ols_tx; /* No. of times OLS tx started */ 255 u32 ols_tx; /* No. of times OLS tx started */
257 u32 nos_tx; /* No. of times NOS tx started */ 256 u32 nos_tx; /* No. of times NOS tx started */
258 u32 hwsm_lrr_rx; /* No. of times LRR rx-ed by HWSM */ 257 u32 hwsm_lrr_rx; /* No. of times LRR rx-ed by HWSM */
259 u32 hwsm_lr_rx; /* No. of times LR rx-ed by HWSM */ 258 u32 hwsm_lr_rx; /* No. of times LR rx-ed by HWSM */
260 u32 bbsc_lr; /* LKSM LR tx for credit recovery */ 259 u32 bbsc_lr; /* LKSM LR tx for credit recovery */
261 u32 rsvd;
262}; 260};
263 261
264struct bfa_fw_port_snsm_stats_s { 262struct bfa_fw_port_snsm_stats_s {
265 u32 hwsm_success; /* Successful hwsm terminations */ 263 u32 hwsm_success; /* Successful hwsm terminations */
266 u32 hwsm_fails; /* hwsm fail count */ 264 u32 hwsm_fails; /* hwsm fail count */
267 u32 hwsm_wdtov; /* hwsm timed out */ 265 u32 hwsm_wdtov; /* hwsm timed out */
268 u32 swsm_success; /* swsm success */ 266 u32 swsm_success; /* swsm success */
269 u32 swsm_wdtov; /* swsm timed out */ 267 u32 swsm_wdtov; /* swsm timed out */
270 u32 error_resets; /* error resets initiated by upsm */ 268 u32 error_resets; /* error resets initiated by upsm */
271 u32 sync_lost; /* Sync loss count */ 269 u32 sync_lost; /* Sync loss count */
272 u32 sig_lost; /* Signal loss count */ 270 u32 sig_lost; /* Signal loss count */
273 u32 asn8g_attempts; /* SNSM HWSM at 8Gbps attempts */ 271 u32 asn8g_attempts; /* SNSM HWSM at 8Gbps attempts */
274 u32 adapt_success; /* SNSM adaptation success */
275 u32 adapt_fails; /* SNSM adaptation failures */
276 u32 adapt_ign_fails; /* SNSM adaptation failures ignored */
277}; 272};
278 273
279struct bfa_fw_port_physm_stats_s { 274struct bfa_fw_port_physm_stats_s {
280 u32 module_inserts; /* Module insert count */ 275 u32 module_inserts; /* Module insert count */
281 u32 module_xtracts; /* Module extracts count */ 276 u32 module_xtracts; /* Module extracts count */
282 u32 module_invalids; /* Invalid module inserted count */ 277 u32 module_invalids; /* Invalid module inserted count */
283 u32 module_read_ign; /* Module validation status ignored */ 278 u32 module_read_ign; /* Module validation status ignored */
284 u32 laser_faults; /* Laser fault count */ 279 u32 laser_faults; /* Laser fault count */
285 u32 rsvd; 280 u32 rsvd;
286}; 281};
287 282
288struct bfa_fw_fip_stats_s { 283struct bfa_fw_fip_stats_s {
289 u32 vlan_req; /* vlan discovery requests */ 284 u32 vlan_req; /* vlan discovery requests */
290 u32 vlan_notify; /* vlan notifications */ 285 u32 vlan_notify; /* vlan notifications */
291 u32 vlan_err; /* vlan response error */ 286 u32 vlan_err; /* vlan response error */
292 u32 vlan_timeouts; /* vlan disvoery timeouts */ 287 u32 vlan_timeouts; /* vlan disvoery timeouts */
293 u32 vlan_invalids; /* invalid vlan in discovery advert. */ 288 u32 vlan_invalids; /* invalid vlan in discovery advert. */
294 u32 disc_req; /* Discovery solicit requests */ 289 u32 disc_req; /* Discovery solicit requests */
295 u32 disc_rsp; /* Discovery solicit response */ 290 u32 disc_rsp; /* Discovery solicit response */
296 u32 disc_err; /* Discovery advt. parse errors */ 291 u32 disc_err; /* Discovery advt. parse errors */
297 u32 disc_unsol; /* Discovery unsolicited */ 292 u32 disc_unsol; /* Discovery unsolicited */
298 u32 disc_timeouts; /* Discovery timeouts */ 293 u32 disc_timeouts; /* Discovery timeouts */
299 u32 disc_fcf_unavail; /* Discovery FCF Not Avail. */ 294 u32 disc_fcf_unavail; /* Discovery FCF Not Avail. */
300 u32 linksvc_unsupp; /* Unsupported link service req */ 295 u32 linksvc_unsupp; /* Unsupported link service req */
301 u32 linksvc_err; /* Parse error in link service req */ 296 u32 linksvc_err; /* Parse error in link service req */
302 u32 logo_req; /* FIP logos received */ 297 u32 logo_req; /* FIP logos received */
303 u32 clrvlink_req; /* Clear virtual link req */ 298 u32 clrvlink_req; /* Clear virtual link req */
304 u32 op_unsupp; /* Unsupported FIP operation */ 299 u32 op_unsupp; /* Unsupported FIP operation */
305 u32 untagged; /* Untagged frames (ignored) */ 300 u32 untagged; /* Untagged frames (ignored) */
306 u32 invalid_version; /* Invalid FIP version */ 301 u32 invalid_version; /* Invalid FIP version */
307}; 302};
308 303
309struct bfa_fw_lps_stats_s { 304struct bfa_fw_lps_stats_s {
310 u32 mac_invalids; /* Invalid mac assigned */ 305 u32 mac_invalids; /* Invalid mac assigned */
311 u32 rsvd; 306 u32 rsvd;
312}; 307};
313 308
314struct bfa_fw_fcoe_stats_s { 309struct bfa_fw_fcoe_stats_s {
315 u32 cee_linkups; /* CEE link up count */ 310 u32 cee_linkups; /* CEE link up count */
316 u32 cee_linkdns; /* CEE link down count */ 311 u32 cee_linkdns; /* CEE link down count */
317 u32 fip_linkups; /* FIP link up count */ 312 u32 fip_linkups; /* FIP link up count */
318 u32 fip_linkdns; /* FIP link up count */ 313 u32 fip_linkdns; /* FIP link up count */
319 u32 fip_fails; /* FIP fail count */ 314 u32 fip_fails; /* FIP fail count */
320 u32 mac_invalids; /* Invalid mac assigned */ 315 u32 mac_invalids; /* Invalid mac assigned */
321}; 316};
322 317
323/* 318/*
324 * IOC firmware FCoE port stats 319 * IOC firmware FCoE port stats
325 */ 320 */
326struct bfa_fw_fcoe_port_stats_s { 321struct bfa_fw_fcoe_port_stats_s {
327 struct bfa_fw_fcoe_stats_s fcoe_stats; 322 struct bfa_fw_fcoe_stats_s fcoe_stats;
328 struct bfa_fw_fip_stats_s fip_stats; 323 struct bfa_fw_fip_stats_s fip_stats;
329};
330
331/**
332 * @brief LPSM statistics
333 */
334struct bfa_fw_lpsm_stats_s {
335 u32 cls_rx; /* LPSM cls_rx */
336 u32 cls_tx; /* LPSM cls_tx */
337 u32 arbf0_rx; /* LPSM abrf0 rcvd */
338 u32 arbf0_tx; /* LPSM abrf0 xmit */
339 u32 init_rx; /* LPSM loop init start */
340 u32 unexp_hwst; /* LPSM unknown hw state */
341 u32 unexp_frame; /* LPSM unknown_frame */
342 u32 unexp_prim; /* LPSM unexpected primitive */
343 u32 prev_alpa_unavail; /* LPSM prev alpa unavailable */
344 u32 alpa_unavail; /* LPSM alpa not available */
345 u32 lip_rx; /* LPSM lip rcvd */
346 u32 lip_f7f7_rx; /* LPSM lip f7f7 rcvd */
347 u32 lip_f8_rx; /* LPSM lip f8 rcvd */
348 u32 lip_f8f7_rx; /* LPSM lip f8f7 rcvd */
349 u32 lip_other_rx; /* LPSM lip other rcvd */
350 u32 lip_tx; /* LPSM lip xmit */
351 u32 retry_tov; /* LPSM retry TOV */
352 u32 lip_tov; /* LPSM LIP wait TOV */
353 u32 idle_tov; /* LPSM idle wait TOV */
354 u32 arbf0_tov; /* LPSM arbfo wait TOV */
355 u32 stop_loop_tov; /* LPSM stop loop wait TOV */
356 u32 lixa_tov; /* LPSM lisa wait TOV */
357 u32 lixx_tov; /* LPSM lilp/lirp wait TOV */
358 u32 cls_tov; /* LPSM cls wait TOV */
359 u32 sler; /* LPSM SLER recvd */
360 u32 failed; /* LPSM failed */
361 u32 success; /* LPSM online */
362}; 324};
363 325
364/* 326/*
@@ -367,15 +329,14 @@ struct bfa_fw_lpsm_stats_s {
367struct bfa_fw_fc_uport_stats_s { 329struct bfa_fw_fc_uport_stats_s {
368 struct bfa_fw_port_snsm_stats_s snsm_stats; 330 struct bfa_fw_port_snsm_stats_s snsm_stats;
369 struct bfa_fw_port_lksm_stats_s lksm_stats; 331 struct bfa_fw_port_lksm_stats_s lksm_stats;
370 struct bfa_fw_lpsm_stats_s lpsm_stats;
371}; 332};
372 333
373/* 334/*
374 * IOC firmware FC port stats 335 * IOC firmware FC port stats
375 */ 336 */
376union bfa_fw_fc_port_stats_s { 337union bfa_fw_fc_port_stats_s {
377 struct bfa_fw_fc_uport_stats_s fc_stats; 338 struct bfa_fw_fc_uport_stats_s fc_stats;
378 struct bfa_fw_fcoe_port_stats_s fcoe_stats; 339 struct bfa_fw_fcoe_port_stats_s fcoe_stats;
379}; 340};
380 341
381/* 342/*
@@ -395,30 +356,35 @@ struct bfa_fw_fcxchg_stats_s {
395 u32 ua_state_inv; 356 u32 ua_state_inv;
396}; 357};
397 358
359struct bfa_fw_lpsm_stats_s {
360 u32 cls_rx;
361 u32 cls_tx;
362};
363
398/* 364/*
399 * Trunk statistics 365 * Trunk statistics
400 */ 366 */
401struct bfa_fw_trunk_stats_s { 367struct bfa_fw_trunk_stats_s {
402 u32 emt_recvd; /* Trunk EMT received */ 368 u32 emt_recvd; /* Trunk EMT received */
403 u32 emt_accepted; /* Trunk EMT Accepted */ 369 u32 emt_accepted; /* Trunk EMT Accepted */
404 u32 emt_rejected; /* Trunk EMT rejected */ 370 u32 emt_rejected; /* Trunk EMT rejected */
405 u32 etp_recvd; /* Trunk ETP received */ 371 u32 etp_recvd; /* Trunk ETP received */
406 u32 etp_accepted; /* Trunk ETP Accepted */ 372 u32 etp_accepted; /* Trunk ETP Accepted */
407 u32 etp_rejected; /* Trunk ETP rejected */ 373 u32 etp_rejected; /* Trunk ETP rejected */
408 u32 lr_recvd; /* Trunk LR received */ 374 u32 lr_recvd; /* Trunk LR received */
409 u32 rsvd; /* padding for 64 bit alignment */ 375 u32 rsvd; /* padding for 64 bit alignment */
410}; 376};
411 377
412struct bfa_fw_advsm_stats_s { 378struct bfa_fw_advsm_stats_s {
413 u32 flogi_sent; /* Flogi sent */ 379 u32 flogi_sent; /* Flogi sent */
414 u32 flogi_acc_recvd; /* Flogi Acc received */ 380 u32 flogi_acc_recvd; /* Flogi Acc received */
415 u32 flogi_rjt_recvd; /* Flogi rejects received */ 381 u32 flogi_rjt_recvd; /* Flogi rejects received */
416 u32 flogi_retries; /* Flogi retries */ 382 u32 flogi_retries; /* Flogi retries */
417 383
418 u32 elp_recvd; /* ELP received */ 384 u32 elp_recvd; /* ELP received */
419 u32 elp_accepted; /* ELP Accepted */ 385 u32 elp_accepted; /* ELP Accepted */
420 u32 elp_rejected; /* ELP rejected */ 386 u32 elp_rejected; /* ELP rejected */
421 u32 elp_dropped; /* ELP dropped */ 387 u32 elp_dropped; /* ELP dropped */
422}; 388};
423 389
424/* 390/*
@@ -487,6 +453,7 @@ struct bfa_fw_stats_s {
487 struct bfa_fw_io_stats_s io_stats; 453 struct bfa_fw_io_stats_s io_stats;
488 struct bfa_fw_port_stats_s port_stats; 454 struct bfa_fw_port_stats_s port_stats;
489 struct bfa_fw_fcxchg_stats_s fcxchg_stats; 455 struct bfa_fw_fcxchg_stats_s fcxchg_stats;
456 struct bfa_fw_lpsm_stats_s lpsm_stats;
490 struct bfa_fw_lps_stats_s lps_stats; 457 struct bfa_fw_lps_stats_s lps_stats;
491 struct bfa_fw_trunk_stats_s trunk_stats; 458 struct bfa_fw_trunk_stats_s trunk_stats;
492 struct bfa_fw_advsm_stats_s advsm_stats; 459 struct bfa_fw_advsm_stats_s advsm_stats;
@@ -526,23 +493,13 @@ enum bfa_qos_bw_alloc {
526 BFA_QOS_BW_LOW = 10, /* bandwidth allocation for Low */ 493 BFA_QOS_BW_LOW = 10, /* bandwidth allocation for Low */
527}; 494};
528#pragma pack(1) 495#pragma pack(1)
529
530struct bfa_qos_bw_s {
531 u8 qos_bw_set;
532 u8 high;
533 u8 med;
534 u8 low;
535};
536
537/* 496/*
538 * QoS attribute returned in QoS Query 497 * QoS attribute returned in QoS Query
539 */ 498 */
540struct bfa_qos_attr_s { 499struct bfa_qos_attr_s {
541 u8 state; /* QoS current state */ 500 u8 state; /* QoS current state */
542 u8 rsvd1[3]; 501 u8 rsvd[3];
543 u32 total_bb_cr; /* Total BB Credits */ 502 u32 total_bb_cr; /* Total BB Credits */
544 struct bfa_qos_bw_s qos_bw; /* QOS bw cfg */
545 struct bfa_qos_bw_s qos_bw_op; /* QOS bw operational */
546}; 503};
547 504
548/* 505/*
@@ -564,7 +521,7 @@ struct bfa_qos_vc_attr_s {
564 u16 total_vc_count; /* Total VC Count */ 521 u16 total_vc_count; /* Total VC Count */
565 u16 shared_credit; 522 u16 shared_credit;
566 u32 elp_opmode_flags; 523 u32 elp_opmode_flags;
567 struct bfa_qos_vc_info_s vc_info[BFA_QOS_MAX_VC]; /* as many as 524 struct bfa_qos_vc_info_s vc_info[BFA_QOS_MAX_VC]; /* as many as
568 * total_vc_count */ 525 * total_vc_count */
569}; 526};
570 527
@@ -574,16 +531,16 @@ struct bfa_qos_vc_attr_s {
574struct bfa_qos_stats_s { 531struct bfa_qos_stats_s {
575 u32 flogi_sent; /* QoS Flogi sent */ 532 u32 flogi_sent; /* QoS Flogi sent */
576 u32 flogi_acc_recvd; /* QoS Flogi Acc received */ 533 u32 flogi_acc_recvd; /* QoS Flogi Acc received */
577 u32 flogi_rjt_recvd; /* QoS Flogi rejects received */ 534 u32 flogi_rjt_recvd; /* QoS Flogi rejects received */
578 u32 flogi_retries; /* QoS Flogi retries */ 535 u32 flogi_retries; /* QoS Flogi retries */
579 536
580 u32 elp_recvd; /* QoS ELP received */ 537 u32 elp_recvd; /* QoS ELP received */
581 u32 elp_accepted; /* QoS ELP Accepted */ 538 u32 elp_accepted; /* QoS ELP Accepted */
582 u32 elp_rejected; /* QoS ELP rejected */ 539 u32 elp_rejected; /* QoS ELP rejected */
583 u32 elp_dropped; /* QoS ELP dropped */ 540 u32 elp_dropped; /* QoS ELP dropped */
584 541
585 u32 qos_rscn_recvd; /* QoS RSCN received */ 542 u32 qos_rscn_recvd; /* QoS RSCN received */
586 u32 rsvd; /* padding for 64 bit alignment */ 543 u32 rsvd; /* padding for 64 bit alignment */
587}; 544};
588 545
589/* 546/*
@@ -591,9 +548,9 @@ struct bfa_qos_stats_s {
591 */ 548 */
592struct bfa_fcoe_stats_s { 549struct bfa_fcoe_stats_s {
593 u64 secs_reset; /* Seconds since stats reset */ 550 u64 secs_reset; /* Seconds since stats reset */
594 u64 cee_linkups; /* CEE link up */ 551 u64 cee_linkups; /* CEE link up */
595 u64 cee_linkdns; /* CEE link down */ 552 u64 cee_linkdns; /* CEE link down */
596 u64 fip_linkups; /* FIP link up */ 553 u64 fip_linkups; /* FIP link up */
597 u64 fip_linkdns; /* FIP link down */ 554 u64 fip_linkdns; /* FIP link down */
598 u64 fip_fails; /* FIP failures */ 555 u64 fip_fails; /* FIP failures */
599 u64 mac_invalids; /* Invalid mac assignments */ 556 u64 mac_invalids; /* Invalid mac assignments */
@@ -603,38 +560,38 @@ struct bfa_fcoe_stats_s {
603 u64 vlan_timeouts; /* Vlan request timeouts */ 560 u64 vlan_timeouts; /* Vlan request timeouts */
604 u64 vlan_invalids; /* Vlan invalids */ 561 u64 vlan_invalids; /* Vlan invalids */
605 u64 disc_req; /* Discovery requests */ 562 u64 disc_req; /* Discovery requests */
606 u64 disc_rsp; /* Discovery responses */ 563 u64 disc_rsp; /* Discovery responses */
607 u64 disc_err; /* Discovery error frames */ 564 u64 disc_err; /* Discovery error frames */
608 u64 disc_unsol; /* Discovery unsolicited */ 565 u64 disc_unsol; /* Discovery unsolicited */
609 u64 disc_timeouts; /* Discovery timeouts */ 566 u64 disc_timeouts; /* Discovery timeouts */
610 u64 disc_fcf_unavail; /* Discovery FCF not avail */ 567 u64 disc_fcf_unavail; /* Discovery FCF not avail */
611 u64 linksvc_unsupp; /* FIP link service req unsupp */ 568 u64 linksvc_unsupp; /* FIP link service req unsupp. */
612 u64 linksvc_err; /* FIP link service req errors */ 569 u64 linksvc_err; /* FIP link service req errors */
613 u64 logo_req; /* FIP logos received */ 570 u64 logo_req; /* FIP logos received */
614 u64 clrvlink_req; /* Clear virtual link requests */ 571 u64 clrvlink_req; /* Clear virtual link requests */
615 u64 op_unsupp; /* FIP operation unsupp. */ 572 u64 op_unsupp; /* FIP operation unsupp. */
616 u64 untagged; /* FIP untagged frames */ 573 u64 untagged; /* FIP untagged frames */
617 u64 txf_ucast; /* Tx FCoE unicast frames */ 574 u64 txf_ucast; /* Tx FCoE unicast frames */
618 u64 txf_ucast_vlan; /* Tx FCoE unicast vlan frames */ 575 u64 txf_ucast_vlan; /* Tx FCoE unicast vlan frames */
619 u64 txf_ucast_octets; /* Tx FCoE unicast octets */ 576 u64 txf_ucast_octets; /* Tx FCoE unicast octets */
620 u64 txf_mcast; /* Tx FCoE multicast frames */ 577 u64 txf_mcast; /* Tx FCoE multicast frames */
621 u64 txf_mcast_vlan; /* Tx FCoE multicast vlan frames */ 578 u64 txf_mcast_vlan; /* Tx FCoE multicast vlan frames */
622 u64 txf_mcast_octets; /* Tx FCoE multicast octets */ 579 u64 txf_mcast_octets; /* Tx FCoE multicast octets */
623 u64 txf_bcast; /* Tx FCoE broadcast frames */ 580 u64 txf_bcast; /* Tx FCoE broadcast frames */
624 u64 txf_bcast_vlan; /* Tx FCoE broadcast vlan frames */ 581 u64 txf_bcast_vlan; /* Tx FCoE broadcast vlan frames */
625 u64 txf_bcast_octets; /* Tx FCoE broadcast octets */ 582 u64 txf_bcast_octets; /* Tx FCoE broadcast octets */
626 u64 txf_timeout; /* Tx timeouts */ 583 u64 txf_timeout; /* Tx timeouts */
627 u64 txf_parity_errors; /* Transmit parity err */ 584 u64 txf_parity_errors; /* Transmit parity err */
628 u64 txf_fid_parity_errors; /* Transmit FID parity err */ 585 u64 txf_fid_parity_errors; /* Transmit FID parity err */
629 u64 rxf_ucast_octets; /* Rx FCoE unicast octets */ 586 u64 rxf_ucast_octets; /* Rx FCoE unicast octets */
630 u64 rxf_ucast; /* Rx FCoE unicast frames */ 587 u64 rxf_ucast; /* Rx FCoE unicast frames */
631 u64 rxf_ucast_vlan; /* Rx FCoE unicast vlan frames */ 588 u64 rxf_ucast_vlan; /* Rx FCoE unicast vlan frames */
632 u64 rxf_mcast_octets; /* Rx FCoE multicast octets */ 589 u64 rxf_mcast_octets; /* Rx FCoE multicast octets */
633 u64 rxf_mcast; /* Rx FCoE multicast frames */ 590 u64 rxf_mcast; /* Rx FCoE multicast frames */
634 u64 rxf_mcast_vlan; /* Rx FCoE multicast vlan frames */ 591 u64 rxf_mcast_vlan; /* Rx FCoE multicast vlan frames */
635 u64 rxf_bcast_octets; /* Rx FCoE broadcast octets */ 592 u64 rxf_bcast_octets; /* Rx FCoE broadcast octets */
636 u64 rxf_bcast; /* Rx FCoE broadcast frames */ 593 u64 rxf_bcast; /* Rx FCoE broadcast frames */
637 u64 rxf_bcast_vlan; /* Rx FCoE broadcast vlan frames */ 594 u64 rxf_bcast_vlan; /* Rx FCoE broadcast vlan frames */
638}; 595};
639 596
640/* 597/*
@@ -715,7 +672,12 @@ struct bfa_itnim_iostats_s {
715 u32 tm_iocdowns; /* TM cleaned-up due to IOC down */ 672 u32 tm_iocdowns; /* TM cleaned-up due to IOC down */
716 u32 tm_cleanups; /* TM cleanup requests */ 673 u32 tm_cleanups; /* TM cleanup requests */
717 u32 tm_cleanup_comps; /* TM cleanup completions */ 674 u32 tm_cleanup_comps; /* TM cleanup completions */
718 u32 rsvd[6]; 675 u32 lm_lun_across_sg; /* LM lun is across sg data buf */
676 u32 lm_lun_not_sup; /* LM lun not supported */
677 u32 lm_rpl_data_changed; /* LM report-lun data changed */
678 u32 lm_wire_residue_changed; /* LM report-lun rsp residue changed */
679 u32 lm_small_buf_addresidue; /* LM buf smaller than reported cnt */
680 u32 lm_lun_not_rdy; /* LM lun not ready */
719}; 681};
720 682
721/* Modify char* port_stt[] in bfal_port.c if a new state was added */ 683/* Modify char* port_stt[] in bfal_port.c if a new state was added */
@@ -734,8 +696,7 @@ enum bfa_port_states {
734 BFA_PORT_ST_FWMISMATCH = 12, 696 BFA_PORT_ST_FWMISMATCH = 12,
735 BFA_PORT_ST_PREBOOT_DISABLED = 13, 697 BFA_PORT_ST_PREBOOT_DISABLED = 13,
736 BFA_PORT_ST_TOGGLING_QWAIT = 14, 698 BFA_PORT_ST_TOGGLING_QWAIT = 14,
737 BFA_PORT_ST_FAA_MISCONFIG = 15, 699 BFA_PORT_ST_ACQ_ADDR = 15,
738 BFA_PORT_ST_DPORT = 16,
739 BFA_PORT_ST_MAX_STATE, 700 BFA_PORT_ST_MAX_STATE,
740}; 701};
741 702
@@ -757,11 +718,9 @@ enum bfa_port_type {
757 */ 718 */
758enum bfa_port_topology { 719enum bfa_port_topology {
759 BFA_PORT_TOPOLOGY_NONE = 0, /* No valid topology */ 720 BFA_PORT_TOPOLOGY_NONE = 0, /* No valid topology */
760 BFA_PORT_TOPOLOGY_P2P_OLD_VER = 1, /* P2P def for older ver */ 721 BFA_PORT_TOPOLOGY_P2P = 1, /* P2P only */
761 BFA_PORT_TOPOLOGY_LOOP = 2, /* LOOP topology */ 722 BFA_PORT_TOPOLOGY_LOOP = 2, /* LOOP topology */
762 BFA_PORT_TOPOLOGY_AUTO_OLD_VER = 3, /* auto def for older ver */ 723 BFA_PORT_TOPOLOGY_AUTO = 3, /* auto topology selection */
763 BFA_PORT_TOPOLOGY_AUTO = 4, /* auto topology selection */
764 BFA_PORT_TOPOLOGY_P2P = 5, /* P2P only */
765}; 724};
766 725
767/* 726/*
@@ -805,7 +764,6 @@ enum bfa_port_linkstate_rsn {
805 BFA_PORT_LINKSTATE_RSN_LOCAL_FAULT = 9, 764 BFA_PORT_LINKSTATE_RSN_LOCAL_FAULT = 9,
806 BFA_PORT_LINKSTATE_RSN_REMOTE_FAULT = 10, 765 BFA_PORT_LINKSTATE_RSN_REMOTE_FAULT = 10,
807 BFA_PORT_LINKSTATE_RSN_TIMEOUT = 11, 766 BFA_PORT_LINKSTATE_RSN_TIMEOUT = 11,
808 BFA_PORT_LINKSTATE_RSN_FAA_MISCONFIG = 12,
809 767
810 768
811 769
@@ -879,19 +837,6 @@ struct bfa_lunmask_cfg_s {
879 struct bfa_lun_mask_s lun_list[MAX_LUN_MASK_CFG]; 837 struct bfa_lun_mask_s lun_list[MAX_LUN_MASK_CFG];
880}; 838};
881 839
882struct bfa_throttle_cfg_s {
883 u16 is_valid;
884 u16 value;
885 u32 rsvd;
886};
887
888struct bfa_defs_fcpim_throttle_s {
889 u16 max_value;
890 u16 cur_value;
891 u16 cfg_value;
892 u16 rsvd;
893};
894
895/* 840/*
896 * Physical port configuration 841 * Physical port configuration
897 */ 842 */
@@ -907,13 +852,12 @@ struct bfa_port_cfg_s {
907 u8 tx_bbcredit; /* transmit buffer credits */ 852 u8 tx_bbcredit; /* transmit buffer credits */
908 u8 ratelimit; /* ratelimit enabled or not */ 853 u8 ratelimit; /* ratelimit enabled or not */
909 u8 trl_def_speed; /* ratelimit default speed */ 854 u8 trl_def_speed; /* ratelimit default speed */
910 u8 bb_scn; /* BB_SCN value from FLOGI Exchg */ 855 u8 bb_scn; /* BB_SCN value from FLOGI Exchg */
911 u8 bb_scn_state; /* Config state of BB_SCN */ 856 u8 bb_scn_state; /* Config state of BB_SCN */
912 u8 faa_state; /* FAA enabled/disabled */ 857 u8 faa_state; /* FAA enabled/disabled */
913 u8 rsvd1; 858 u8 rsvd[1];
914 u16 path_tov; /* device path timeout */ 859 u16 path_tov; /* device path timeout */
915 u16 q_depth; /* SCSI Queue depth */ 860 u16 q_depth; /* SCSI Queue depth */
916 struct bfa_qos_bw_s qos_bw; /* QOS bandwidth */
917}; 861};
918#pragma pack() 862#pragma pack()
919 863
@@ -924,21 +868,20 @@ struct bfa_port_attr_s {
924 /* 868 /*
925 * Static fields 869 * Static fields
926 */ 870 */
927 wwn_t nwwn; /* node wwn */ 871 wwn_t nwwn; /* node wwn */
928 wwn_t pwwn; /* port wwn */ 872 wwn_t pwwn; /* port wwn */
929 wwn_t factorynwwn; /* factory node wwn */ 873 wwn_t factorynwwn; /* factory node wwn */
930 wwn_t factorypwwn; /* factory port wwn */ 874 wwn_t factorypwwn; /* factory port wwn */
931 enum fc_cos cos_supported; /* supported class of 875 enum fc_cos cos_supported; /* supported class of services */
932 * services */ 876 u32 rsvd;
933 u32 rsvd;
934 struct fc_symname_s port_symname; /* port symbolic name */ 877 struct fc_symname_s port_symname; /* port symbolic name */
935 enum bfa_port_speed speed_supported; /* supported speeds */ 878 enum bfa_port_speed speed_supported; /* supported speeds */
936 bfa_boolean_t pbind_enabled; 879 bfa_boolean_t pbind_enabled;
937 880
938 /* 881 /*
939 * Configured values 882 * Configured values
940 */ 883 */
941 struct bfa_port_cfg_s pport_cfg; /* pport cfg */ 884 struct bfa_port_cfg_s pport_cfg; /* pport cfg */
942 885
943 /* 886 /*
944 * Dynamic field - info from BFA 887 * Dynamic field - info from BFA
@@ -947,69 +890,68 @@ struct bfa_port_attr_s {
947 enum bfa_port_speed speed; /* current speed */ 890 enum bfa_port_speed speed; /* current speed */
948 enum bfa_port_topology topology; /* current topology */ 891 enum bfa_port_topology topology; /* current topology */
949 bfa_boolean_t beacon; /* current beacon status */ 892 bfa_boolean_t beacon; /* current beacon status */
950 bfa_boolean_t link_e2e_beacon; /* link beacon is on */ 893 bfa_boolean_t link_e2e_beacon; /* link beacon is on */
951 bfa_boolean_t bbsc_op_status; /* fc credit recovery oper 894 bfa_boolean_t bbsc_op_status; /* fc credit recovery oper state */
952 * state */
953 895
954 /* 896 /*
955 * Dynamic field - info from FCS 897 * Dynamic field - info from FCS
956 */ 898 */
957 u32 pid; /* port ID */ 899 u32 pid; /* port ID */
958 enum bfa_port_type port_type; /* current topology */ 900 enum bfa_port_type port_type; /* current topology */
959 u32 loopback; /* external loopback */ 901 u32 loopback; /* external loopback */
960 u32 authfail; /* auth fail state */ 902 u32 authfail; /* auth fail state */
961 903
962 /* FCoE specific */ 904 /* FCoE specific */
963 u16 fcoe_vlan; 905 u16 fcoe_vlan;
964 u8 rsvd1[6]; 906 u8 rsvd1[2];
965}; 907};
966 908
967/* 909/*
968 * Port FCP mappings. 910 * Port FCP mappings.
969 */ 911 */
970struct bfa_port_fcpmap_s { 912struct bfa_port_fcpmap_s {
971 char osdevname[256]; 913 char osdevname[256];
972 u32 bus; 914 u32 bus;
973 u32 target; 915 u32 target;
974 u32 oslun; 916 u32 oslun;
975 u32 fcid; 917 u32 fcid;
976 wwn_t nwwn; 918 wwn_t nwwn;
977 wwn_t pwwn; 919 wwn_t pwwn;
978 u64 fcplun; 920 u64 fcplun;
979 char luid[256]; 921 char luid[256];
980}; 922};
981 923
982/* 924/*
983 * Port RNID info. 925 * Port RNID info.
984 */ 926 */
985struct bfa_port_rnid_s { 927struct bfa_port_rnid_s {
986 wwn_t wwn; 928 wwn_t wwn;
987 u32 unittype; 929 u32 unittype;
988 u32 portid; 930 u32 portid;
989 u32 attached_nodes_num; 931 u32 attached_nodes_num;
990 u16 ip_version; 932 u16 ip_version;
991 u16 udp_port; 933 u16 udp_port;
992 u8 ipaddr[16]; 934 u8 ipaddr[16];
993 u16 rsvd; 935 u16 rsvd;
994 u16 topologydiscoveryflags; 936 u16 topologydiscoveryflags;
995}; 937};
996 938
997#pragma pack(1) 939#pragma pack(1)
998struct bfa_fcport_fcf_s { 940struct bfa_fcport_fcf_s {
999 wwn_t name; /* FCF name */ 941 wwn_t name; /* FCF name */
1000 wwn_t fabric_name; /* Fabric Name */ 942 wwn_t fabric_name; /* Fabric Name */
1001 u8 fipenabled; /* FIP enabled or not */ 943 u8 fipenabled; /* FIP enabled or not */
1002 u8 fipfailed; /* FIP failed or not */ 944 u8 fipfailed; /* FIP failed or not */
1003 u8 resv[2]; 945 u8 resv[2];
1004 u8 pri; /* FCF priority */ 946 u8 pri; /* FCF priority */
1005 u8 version; /* FIP version used */ 947 u8 version; /* FIP version used */
1006 u8 available; /* Available for login */ 948 u8 available; /* Available for login */
1007 u8 fka_disabled; /* FKA is disabled */ 949 u8 fka_disabled; /* FKA is disabled */
1008 u8 maxsz_verified; /* FCoE max size verified */ 950 u8 maxsz_verified; /* FCoE max size verified */
1009 u8 fc_map[3]; /* FC map */ 951 u8 fc_map[3]; /* FC map */
1010 __be16 vlan; /* FCoE vlan tag/priority */ 952 __be16 vlan; /* FCoE vlan tag/priority */
1011 u32 fka_adv_per; /* FIP ka advert. period */ 953 u32 fka_adv_per; /* FIP ka advert. period */
1012 mac_t mac; /* FCF mac */ 954 mac_t mac; /* FCF mac */
1013}; 955};
1014 956
1015/* 957/*
@@ -1031,13 +973,6 @@ struct bfa_trunk_vc_attr_s {
1031 u16 vc_credits[8]; 973 u16 vc_credits[8];
1032}; 974};
1033 975
1034struct bfa_fcport_loop_info_s {
1035 u8 myalpa; /* alpa claimed */
1036 u8 alpabm_val; /* alpa bitmap valid or not (1 or 0) */
1037 u8 resvd[6];
1038 struct fc_alpabm_s alpabm; /* alpa bitmap */
1039};
1040
1041/* 976/*
1042 * Link state information 977 * Link state information
1043 */ 978 */
@@ -1046,20 +981,15 @@ struct bfa_port_link_s {
1046 u8 linkstate_rsn; /* bfa_port_linkstate_rsn_t */ 981 u8 linkstate_rsn; /* bfa_port_linkstate_rsn_t */
1047 u8 topology; /* P2P/LOOP bfa_port_topology */ 982 u8 topology; /* P2P/LOOP bfa_port_topology */
1048 u8 speed; /* Link speed (1/2/4/8 G) */ 983 u8 speed; /* Link speed (1/2/4/8 G) */
1049 u32 linkstate_opt; /* Linkstate optional data (debug) */ 984 u32 linkstate_opt; /* Linkstate optional data (debug) */
1050 u8 trunked; /* Trunked or not (1 or 0) */ 985 u8 trunked; /* Trunked or not (1 or 0) */
1051 u8 resvd[7]; 986 u8 resvd[3];
1052 struct bfa_qos_attr_s qos_attr; /* QoS Attributes */ 987 struct bfa_qos_attr_s qos_attr; /* QoS Attributes */
1053 union { 988 union {
1054 struct bfa_fcport_loop_info_s loop_info; 989 struct bfa_qos_vc_attr_s qos_vc_attr; /* VC info from ELP */
1055 union { 990 struct bfa_trunk_vc_attr_s trunk_vc_attr;
1056 struct bfa_qos_vc_attr_s qos_vc_attr; 991 struct bfa_fcport_fcf_s fcf; /* FCF information (for FCoE) */
1057 /* VC info from ELP */ 992 } vc_fcf;
1058 struct bfa_trunk_vc_attr_s trunk_vc_attr;
1059 struct bfa_fcport_fcf_s fcf;
1060 /* FCF information (for FCoE) */
1061 } vc_fcf;
1062 } attr;
1063}; 993};
1064#pragma pack() 994#pragma pack()
1065 995
@@ -1105,7 +1035,7 @@ struct bfa_rport_hal_stats_s {
1105 u32 sm_fwc_del; /* fw create: delete events */ 1035 u32 sm_fwc_del; /* fw create: delete events */
1106 u32 sm_fwc_off; /* fw create: offline events */ 1036 u32 sm_fwc_off; /* fw create: offline events */
1107 u32 sm_fwc_hwf; /* fw create: IOC down */ 1037 u32 sm_fwc_hwf; /* fw create: IOC down */
1108 u32 sm_fwc_unexp; /* fw create: exception events*/ 1038 u32 sm_fwc_unexp; /* fw create: exception events*/
1109 u32 sm_on_off; /* online: offline events */ 1039 u32 sm_on_off; /* online: offline events */
1110 u32 sm_on_del; /* online: delete events */ 1040 u32 sm_on_del; /* online: delete events */
1111 u32 sm_on_hwf; /* online: IOC down events */ 1041 u32 sm_on_hwf; /* online: IOC down events */
@@ -1113,25 +1043,25 @@ struct bfa_rport_hal_stats_s {
1113 u32 sm_fwd_rsp; /* fw delete: fw responses */ 1043 u32 sm_fwd_rsp; /* fw delete: fw responses */
1114 u32 sm_fwd_del; /* fw delete: delete events */ 1044 u32 sm_fwd_del; /* fw delete: delete events */
1115 u32 sm_fwd_hwf; /* fw delete: IOC down events */ 1045 u32 sm_fwd_hwf; /* fw delete: IOC down events */
1116 u32 sm_fwd_unexp; /* fw delete: exception events*/ 1046 u32 sm_fwd_unexp; /* fw delete: exception events*/
1117 u32 sm_off_del; /* offline: delete events */ 1047 u32 sm_off_del; /* offline: delete events */
1118 u32 sm_off_on; /* offline: online events */ 1048 u32 sm_off_on; /* offline: online events */
1119 u32 sm_off_hwf; /* offline: IOC down events */ 1049 u32 sm_off_hwf; /* offline: IOC down events */
1120 u32 sm_off_unexp; /* offline: exception events */ 1050 u32 sm_off_unexp; /* offline: exception events */
1121 u32 sm_del_fwrsp; /* delete: fw responses */ 1051 u32 sm_del_fwrsp; /* delete: fw responses */
1122 u32 sm_del_hwf; /* delete: IOC down events */ 1052 u32 sm_del_hwf; /* delete: IOC down events */
1123 u32 sm_del_unexp; /* delete: exception events */ 1053 u32 sm_del_unexp; /* delete: exception events */
1124 u32 sm_delp_fwrsp; /* delete pend: fw responses */ 1054 u32 sm_delp_fwrsp; /* delete pend: fw responses */
1125 u32 sm_delp_hwf; /* delete pend: IOC downs */ 1055 u32 sm_delp_hwf; /* delete pend: IOC downs */
1126 u32 sm_delp_unexp; /* delete pend: exceptions */ 1056 u32 sm_delp_unexp; /* delete pend: exceptions */
1127 u32 sm_offp_fwrsp; /* off-pending: fw responses */ 1057 u32 sm_offp_fwrsp; /* off-pending: fw responses */
1128 u32 sm_offp_del; /* off-pending: deletes */ 1058 u32 sm_offp_del; /* off-pending: deletes */
1129 u32 sm_offp_hwf; /* off-pending: IOC downs */ 1059 u32 sm_offp_hwf; /* off-pending: IOC downs */
1130 u32 sm_offp_unexp; /* off-pending: exceptions */ 1060 u32 sm_offp_unexp; /* off-pending: exceptions */
1131 u32 sm_iocd_off; /* IOC down: offline events */ 1061 u32 sm_iocd_off; /* IOC down: offline events */
1132 u32 sm_iocd_del; /* IOC down: delete events */ 1062 u32 sm_iocd_del; /* IOC down: delete events */
1133 u32 sm_iocd_on; /* IOC down: online events */ 1063 u32 sm_iocd_on; /* IOC down: online events */
1134 u32 sm_iocd_unexp; /* IOC down: exceptions */ 1064 u32 sm_iocd_unexp; /* IOC down: exceptions */
1135 u32 rsvd; 1065 u32 rsvd;
1136}; 1066};
1137#pragma pack(1) 1067#pragma pack(1)
@@ -1139,9 +1069,9 @@ struct bfa_rport_hal_stats_s {
1139 * Rport's QoS attributes 1069 * Rport's QoS attributes
1140 */ 1070 */
1141struct bfa_rport_qos_attr_s { 1071struct bfa_rport_qos_attr_s {
1142 u8 qos_priority; /* rport's QoS priority */ 1072 u8 qos_priority; /* rport's QoS priority */
1143 u8 rsvd[3]; 1073 u8 rsvd[3];
1144 u32 qos_flow_id; /* QoS flow Id */ 1074 u32 qos_flow_id; /* QoS flow Id */
1145}; 1075};
1146#pragma pack() 1076#pragma pack()
1147 1077
@@ -1184,9 +1114,6 @@ struct bfa_port_fc_stats_s {
1184 u64 tx_frames; /* Tx frames */ 1114 u64 tx_frames; /* Tx frames */
1185 u64 tx_words; /* Tx words */ 1115 u64 tx_words; /* Tx words */
1186 u64 tx_lip; /* Tx LIP */ 1116 u64 tx_lip; /* Tx LIP */
1187 u64 tx_lip_f7f7; /* Tx LIP_F7F7 */
1188 u64 tx_lip_f8f7; /* Tx LIP_F8F7 */
1189 u64 tx_arbf0; /* Tx ARB F0 */
1190 u64 tx_nos; /* Tx NOS */ 1117 u64 tx_nos; /* Tx NOS */
1191 u64 tx_ols; /* Tx OLS */ 1118 u64 tx_ols; /* Tx OLS */
1192 u64 tx_lr; /* Tx LR */ 1119 u64 tx_lr; /* Tx LR */
@@ -1194,9 +1121,6 @@ struct bfa_port_fc_stats_s {
1194 u64 rx_frames; /* Rx frames */ 1121 u64 rx_frames; /* Rx frames */
1195 u64 rx_words; /* Rx words */ 1122 u64 rx_words; /* Rx words */
1196 u64 lip_count; /* Rx LIP */ 1123 u64 lip_count; /* Rx LIP */
1197 u64 rx_lip_f7f7; /* Rx LIP_F7F7 */
1198 u64 rx_lip_f8f7; /* Rx LIP_F8F7 */
1199 u64 rx_arbf0; /* Rx ARB F0 */
1200 u64 nos_count; /* Rx NOS */ 1124 u64 nos_count; /* Rx NOS */
1201 u64 ols_count; /* Rx OLS */ 1125 u64 ols_count; /* Rx OLS */
1202 u64 lr_count; /* Rx LR */ 1126 u64 lr_count; /* Rx LR */
@@ -1218,7 +1142,6 @@ struct bfa_port_fc_stats_s {
1218 u64 bbsc_frames_lost; /* Credit Recovery-Frames Lost */ 1142 u64 bbsc_frames_lost; /* Credit Recovery-Frames Lost */
1219 u64 bbsc_credits_lost; /* Credit Recovery-Credits Lost */ 1143 u64 bbsc_credits_lost; /* Credit Recovery-Credits Lost */
1220 u64 bbsc_link_resets; /* Credit Recovery-Link Resets */ 1144 u64 bbsc_link_resets; /* Credit Recovery-Link Resets */
1221 u64 loop_timeouts; /* Loop timeouts */
1222}; 1145};
1223 1146
1224/* 1147/*