Spdk/lib
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
..
bdev bdev: Increase the size of small and large buffers to store DIF 2019-03-13 01:40:02 +00:00
blob lvol: add option to change clear method for lvol store creation 2019-02-28 20:50:27 +00:00
blobfs blobfs: fix the length value of file. 2019-01-17 05:04:13 +00:00
conf string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
copy lib/copy: unregister copy engine on finish 2018-10-15 17:42:20 +00:00
env_dpdk env/memory: use spdk_iommu_is_enabled internally 2019-03-05 06:45:11 +00:00
event event: Eliminate extra event in spdk_subsystem_init 2019-03-08 03:21:45 +00:00
ftl lib/ftl: Fix band picking for write pointer 2019-02-25 22:37:44 +00:00
ioat ioat: reduce completion writebacks 2019-02-18 07:44:17 +00:00
iscsi iscsi: Skip metadata space in read or write data from network socket 2019-03-13 01:40:02 +00:00
json json_util: add debug logs to spdk_json_decode_object function 2019-01-10 14:31:37 +00:00
jsonrpc jsonrpc: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
log app: rename traceflag cmdline option to logflag 2018-12-03 19:50:15 +00:00
lvol lvol: add option to change clear method for lvol store creation 2019-02-28 20:50:27 +00:00
nbd nbd: avoid impact to device setup by other task 2019-02-15 22:02:48 +00:00
net net: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
nvme nvme: remove spdk_nvme_ctrlr_connect_opts data structure 2019-03-08 04:42:21 +00:00
nvmf rdma: allocate protection domains for devices up front. 2019-03-12 21:37:51 +00:00
reduce reduce: fix ordering bug 2019-02-04 19:23:35 +00:00
rocksdb event: Remove arg2 from spdk_app_start() 2019-03-05 08:43:12 +00:00
rpc rpc: add spdk_rpc_is_method_allowed 2018-12-05 00:35:35 +00:00
scsi scsi: Add an API to return DIF context of bdev and CDB 2019-03-08 01:21:26 +00:00
sock sock/vpp: do not continue if buf writed is less than provided 2019-03-12 22:19:42 +00:00
thread thread: add spdk_thread_is_idle() 2019-03-01 21:38:02 +00:00
trace lib/trace: add trace_record tool 2019-01-30 06:36:25 +00:00
ut_mock thread: Eliminate use of pthread_self and thread_ids 2019-01-15 16:53:12 +00:00
util util: fix crc16 build 2019-03-11 01:41:35 +00:00
vhost vhost-scsi: use spdk_vhost_scsi_dev_get_tgt while dumping JSON config 2019-03-07 15:53:26 +00:00
virtio virtio: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
Makefile ftl: Initial implementation 2019-01-11 09:15:39 +00:00