Spdk/lib/iscsi
Shuhei Matsumoto daf2206ec4 iscsi: Skip metadata space in read or write data from network socket
This patch leaves metadata space in data buffer for read or write I/O
to generate and verify DIF.

For write I/O,
- in spdk_iscsi_read_pdu(), leave metadata space for every block
  by calling spdk_dif_set_md_interleave_iovs() and then
  spdk_iscsi_conn_readv_data(), and remember this in PDU.
- in spdk_iscsi_op_scsi() and spdk_iscsi_op_data(), set not data
  length but buffer length to length of an iovec. The reason is
  that the actual data length sent to SCSI layer will be larger
  than the data length set in PDU. SCSI task holds data length
  as an independent member and this change doesn't loose any
  information.

For read I/O, in spdk_iscsi_build_iovs(), leave metadata space for
every block by calling spdk_dif_set_md_interleave_iovs().

The reason why DIF context is saved in PDU is that DIF verification
will be done in spdk_iscsi_conn_write_pdu() and DIF context will be
used there first.

Change-Id: Iac5739211f26a91b00a4ecf2f306bbecec3d78dd
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/446382
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-03-13 01:40:02 +00:00
..
acceptor.c thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
acceptor.h iscsi: login poller per portal and portal cache 2017-10-06 17:00:45 -04:00
conn.c iscsi: Skip metadata space in read or write data from network socket 2019-03-13 01:40:02 +00:00
conn.h iscsi: Add a function to read PDU data from socket by spdk_sock_readv 2019-03-08 01:21:26 +00:00
init_grp.c iscsi: check the length of initiator/target name 2018-11-21 00:55:55 +00:00
init_grp.h iscsi: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
iscsi_rpc.c iscsi: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
iscsi_subsystem.c iscsi: Increase the size of write buffers to store DIF 2019-03-13 01:40:02 +00:00
iscsi.c iscsi: Skip metadata space in read or write data from network socket 2019-03-13 01:40:02 +00:00
iscsi.h iscsi: Skip metadata space in read or write data from network socket 2019-03-13 01:40:02 +00:00
Makefile mk: add framework for defining inter-lib dependencies 2018-11-01 21:25:55 +00:00
md5.c astyle: enforce braces around single-line statements 2017-12-11 11:19:32 -05:00
md5.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
param.c iscsi: Remove SPDK_ISCSI_MAX_SEND_DATA_SEGMENT_LENGTH 2019-02-21 18:38:07 +00:00
param.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
portal_grp.c iscsi: Fix two bugs of JSON config dump 2018-05-17 23:06:11 +00:00
portal_grp.h iscsi: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
task.c scsi, iscsi: move task->parent to iSCSI task 2018-01-05 00:01:37 -05:00
task.h iscsi: Propagate SCSI error status to split SCSI read/write commands 2018-12-11 16:37:55 +00:00
tgt_node.c iscsi: Fix uncorrect LUN reset called when exiting connection. 2018-12-11 16:37:55 +00:00
tgt_node.h iscsi: Add set_iscsi_target_node_auth RPC to configure CHAP dynamically 2018-08-22 22:39:26 +00:00