1/* From iscsi_iser.h */ 2 3struct iser_hdr { 4 u8 flags; 5 u8 rsvd[3]; 6 __be32 write_stag; /* write rkey */ 7 __be64 write_va; 8 __be32 read_stag; /* read rkey */ 9 __be64 read_va; 10} __packed; 11 12/*Constant PDU lengths calculations */ 13#define ISER_HEADERS_LEN (sizeof(struct iser_hdr) + sizeof(struct iscsi_hdr)) 14 15#define ISER_RECV_DATA_SEG_LEN 8192 16#define ISER_RX_PAYLOAD_SIZE (ISER_HEADERS_LEN + ISER_RECV_DATA_SEG_LEN) 17#define ISER_RX_LOGIN_SIZE (ISER_HEADERS_LEN + ISCSI_DEF_MAX_RECV_SEG_LEN) 18 19/* QP settings */ 20/* Maximal bounds on received asynchronous PDUs */ 21#define ISERT_MAX_TX_MISC_PDUS 4 /* NOOP_IN(2) , ASYNC_EVENT(2) */ 22 23#define ISERT_MAX_RX_MISC_PDUS 6 /* NOOP_OUT(2), TEXT(1), * 24 * SCSI_TMFUNC(2), LOGOUT(1) */ 25 26#define ISCSI_DEF_XMIT_CMDS_MAX 128 /* from libiscsi.h, must be power of 2 */ 27 28#define ISERT_QP_MAX_RECV_DTOS (ISCSI_DEF_XMIT_CMDS_MAX) 29 30#define ISERT_MIN_POSTED_RX (ISCSI_DEF_XMIT_CMDS_MAX >> 2) 31 32#define ISERT_INFLIGHT_DATAOUTS 8 33 34#define ISERT_QP_MAX_REQ_DTOS (ISCSI_DEF_XMIT_CMDS_MAX * \ 35 (1 + ISERT_INFLIGHT_DATAOUTS) + \ 36 ISERT_MAX_TX_MISC_PDUS + \ 37 ISERT_MAX_RX_MISC_PDUS) 38 39#define ISER_RX_PAD_SIZE (ISER_RECV_DATA_SEG_LEN + 4096 - \ 40 (ISER_RX_PAYLOAD_SIZE + sizeof(u64) + sizeof(struct ib_sge))) 41 42#define ISER_VER 0x10 43#define ISER_WSV 0x08 44#define ISER_RSV 0x04 45#define ISCSI_CTRL 0x10 46#define ISER_HELLO 0x20 47#define ISER_HELLORPLY 0x30 48