diff options
Diffstat (limited to 'drivers/scsi/bfa/bfa_defs_svc.h')
-rw-r--r-- | drivers/scsi/bfa/bfa_defs_svc.h | 563 |
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 @@ | |||
34 | struct bfa_iocfc_intr_attr_s { | 34 | struct 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 | */ |
44 | struct bfa_iocfc_fwcfg_s { | 44 | struct 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 | ||
59 | struct bfa_iocfc_drvcfg_s { | 59 | struct 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 | ||
157 | struct bfa_fw_tio_stats_s { | 158 | struct 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 | ||
211 | struct bfa_fw_port_fpg_stats_s { | 210 | struct 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 | ||
241 | struct bfa_fw_port_lksm_stats_s { | 240 | struct 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 | ||
264 | struct bfa_fw_port_snsm_stats_s { | 262 | struct 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 | ||
279 | struct bfa_fw_port_physm_stats_s { | 274 | struct 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 | ||
288 | struct bfa_fw_fip_stats_s { | 283 | struct 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 | ||
309 | struct bfa_fw_lps_stats_s { | 304 | struct 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 | ||
314 | struct bfa_fw_fcoe_stats_s { | 309 | struct 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 | */ |
326 | struct bfa_fw_fcoe_port_stats_s { | 321 | struct 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 | */ | ||
334 | struct 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 { | |||
367 | struct bfa_fw_fc_uport_stats_s { | 329 | struct 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 | */ |
376 | union bfa_fw_fc_port_stats_s { | 337 | union 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 | ||
359 | struct 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 | */ |
401 | struct bfa_fw_trunk_stats_s { | 367 | struct 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 | ||
412 | struct bfa_fw_advsm_stats_s { | 378 | struct 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 | |||
530 | struct 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 | */ |
540 | struct bfa_qos_attr_s { | 499 | struct 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 { | |||
574 | struct bfa_qos_stats_s { | 531 | struct 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 | */ |
592 | struct bfa_fcoe_stats_s { | 549 | struct 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 | */ |
758 | enum bfa_port_topology { | 719 | enum 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 | ||
882 | struct bfa_throttle_cfg_s { | ||
883 | u16 is_valid; | ||
884 | u16 value; | ||
885 | u32 rsvd; | ||
886 | }; | ||
887 | |||
888 | struct 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 | */ |
970 | struct bfa_port_fcpmap_s { | 912 | struct 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 | */ |
985 | struct bfa_port_rnid_s { | 927 | struct 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) |
998 | struct bfa_fcport_fcf_s { | 940 | struct 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 | ||
1034 | struct 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 | */ |
1141 | struct bfa_rport_qos_attr_s { | 1071 | struct 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 | /* |