38 #ifndef _SLI4_BE3_ISCSI_H
39 #define _SLI4_BE3_ISCSI_H
44 typedef struct sli4_be3_wqe_ini_write_s {
45 #if BYTE_ORDER == LITTLE_ENDIAN
57 uint32_t icd_index:16,
68 uint32_t sge0_offset:22,
75 uint32_t sge0_length:17,
81 uint32_t sge1_offset:22,
85 uint32_t sge1_length:17,
88 #error big endian version not defined
96 typedef struct sli4_be3_wqe_ini_tmf_s {
97 #if BYTE_ORDER == LITTLE_ENDIAN
108 uint32_t icd_index:16,
117 #error big endian version not defined
125 typedef struct sli4_be3_wqe_ini_nop_s {
126 #if BYTE_ORDER == LITTLE_ENDIAN
136 uint32_t icd_index:16,
145 uint32_t sge0_offset:22,
148 uint32_t sge0_length:17,
152 uint32_t sge1_offset:22,
155 uint32_t sge1_length:17,
158 #error big endian version not defined
166 typedef struct sli4_be3_wqe_ini_read_s {
167 #if BYTE_ORDER == LITTLE_ENDIAN
178 uint32_t icd_index:16,
189 uint32_t sge0_offset:22,
196 uint32_t sge0_length:17,
202 uint32_t sge1_offset:22,
206 uint32_t sge1_length:17,
209 #error big endian version not defined
217 typedef struct sli4_be3_wqe_context_update_s {
218 #if BYTE_ORDER == LITTLE_ENDIAN
233 uint32_t first_burst:14,
237 header_digest_enable:1,
238 data_digest_enable:1,
239 error_recovery_level:2,
248 #error big endian version not defined
255 typedef struct sli4_be3_wqe_tgt_sts_s {
256 #if BYTE_ORDER == LITTLE_ENDIAN
267 uint32_t icd_index:16,
270 uint32_t exp_data_sn;
284 uint32_t r2t_offset:22,
291 #error big endian version not defined
298 typedef struct sli4_be3_wqe_tgt_datain_s {
299 #if BYTE_ORDER == LITTLE_ENDIAN
313 uint32_t icd_index:16,
324 uint32_t sge0_offset:22,
331 uint32_t sge0_length:17,
337 uint32_t sge1_offset:22,
341 uint32_t sge1_length:17,
345 #error big endian version not defined
352 typedef struct sli4_be3_wqe_tgt_sos_s {
353 #if BYTE_ORDER == LITTLE_ENDIAN
364 uint32_t icd_index:16,
372 uint32_t sge0_offset:22,
376 uint32_t sge0_length:17,
380 uint32_t sge1_offset:22,
383 uint32_t sge1_length:17,
386 #error big endian version not defined
394 typedef struct sli4_be3_wqe_unassisted_s {
395 #if BYTE_ORDER == LITTLE_ENDIAN
407 uint32_t icd_index:16,
418 uint32_t sge0_offset:22,
423 uint32_t sge0_length:17,
429 uint32_t sge1_offset:22,
433 uint32_t sge1_length:17,
436 #error big endian version not defined
443 typedef struct sli4_be3_iscsi_i_t_dmsg_cqe_s {
444 #if BYTE_ORDER == LITTLE_ENDIAN
456 #error big endian version not defined
463 typedef struct sli4_be3_iscsi_i_t_dpdu_cqe_s {
464 #if BYTE_ORDER == LITTLE_ENDIAN
472 uint32_t rq_index:16,
478 #error big endian version not defined
485 typedef struct sli4_be3_iscsi_i_sol_cqe_s {
486 #if BYTE_ORDER == LITTLE_ENDIAN
502 uint32_t residual:31,
505 #error big endian version not defined
512 typedef struct sli4_be3_iscsi_t_sol_cqe_s {
513 #if BYTE_ORDER == LITTLE_ENDIAN
525 uint32_t wqe_index:8,
529 #error big endian version not defined
536 typedef struct sli4_be3_iscsi_t_sol_data_digest_cqe_s {
537 #if BYTE_ORDER == LITTLE_ENDIAN
548 uint32_t data_seg_len:17,
553 #error big endian version not defined
560 typedef struct sli4_be3_iscsi_t_cnxinv_cqe_s {
561 #if BYTE_ORDER == LITTLE_ENDIAN
569 uint32_t partial_dsl:17,
573 #error big endian version not defined
580 typedef struct sli4_be3_iscsi_t_cmndinv_cqe_s {
581 #if BYTE_ORDER == LITTLE_ENDIAN
589 uint32_t sgl_icd_index:12,
593 #error big endian version not defined
#define ISCSI_CQE_CODE_MAX
Used to decode CMNDINV CQEs.
WQE used to for INITIATOR_NOP_OUT WQE (data from ini->Tgt)
uint32_t uint32_t uint32_t statsn
int32_t cqe_handler_t(sli4_t *, uint8_t *cqe, sli4_qentry_fields_t *fields)
Used to decode CNXINV CQEs.
uint32_t uint32_t sge1_addr_high
cqe_handler_t * ini_be3_cqe_handlers[ISCSI_CQE_CODE_MAX+1]
uint32_t uint32_t sge1_addr_high
WQE used to Update a connection context.
cqe_handler_t * tgt_be3_cqe_handlers[ISCSI_CQE_CODE_MAX+1]
Used to decode T_SOL CQEs.
sli_wqe_handlers_t sli_be3_iscsi_wqe_handlers
uint32_t def_buf_addr_low
uint32_t uint32_t sge1_addr_high
uint32_t def_buf_addr_high
WQE used to transmit a PDU without any modificiation.
uint32_t def_buf_addr_high
WQE used to for INITIATOR_READ WQE (data from ini->Tgt)
uint32_t uint32_t uint32_t rsvd1
uint32_t uint32_t sge1_addr_high
WQE used to for TGT_SOS WQE (Tgt Response)
uint32_t uint32_t sge1_addr_high
WQE used to for TGT_STS WQE (data from Tgt->Ini)
uint32_t uint32_t sge1_addr_high
Used to decode I_SOL CQEs.
WQE used to for TGT_STS WQE (data from ini->Tgt)
int32_t sli_be3_get_sli4_parameters(sli4_t *sli4)
Note: GET_SLI4_PARAMETERS IOCTL is not supported on BE3, so we just return constant values...
WQE used to for INITIATOR_WRITE_COMMAND WQE (data from ini->Tgt)
WQE used to for INITIATOR_TMF WQE.
Used to decode DPDU CQEs.
Used to decode DMSG CQEs.
Used to decode T_SOL_DATA_DIGEST CQEs.
uint32_t def_buf_addr_low