Spdk/lib/util
Shuhei Matsumoto 8b24fc4a31 dif: Process unaligned end of data segment in spdk_dif_set_md_interleave_iovs()
For NVMe/TCP target, data segments which correspond to H2C or C2H PDU
will have any alignment. spdk_dif_set_md_interleave_iovs() have allowed
reading data to have any alignment but had required data segment to
be a multiple of block size.

In other words, spdk_dif_set_md_interleave_iovs() had required that both
ctx->data_offset and (data_offset + data_len) must be a multiple of the
data block size.

This patch refines the algorithm to remove the latter requirement.

The update implies that spdk_dif_set_md_interleave_iovs support any
data buffer whose size is less than a single data block.

The update doesn't change parameters of spdk_dif_set_md_interleave_iovs
and existing UT should be passed.

This patch adds additional UT code to test these updates.

Change-Id: I88c7d2a80a8d92b54863b6ad1c3a9d2761a6195d
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457542
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
2019-06-24 07:02:07 +00:00
..
base64.c util/base64: add base64 lib and unit tests 2018-07-19 00:50:54 +00:00
bit_array.c util/bit_array: switch to spdk_*malloc(). 2019-04-09 06:30:42 +00:00
cpuset.c util/cpuset: use dst & src parameter names 2019-05-23 07:00:34 +00:00
crc16.c util: fix crc16 build 2019-03-11 01:41:35 +00:00
crc32_ieee.c util: add CRC32 utility functions 2017-08-02 19:47:35 -04:00
crc32.c Update spdk crc32.c with ARM CRC32 intrinsics 2019-01-29 18:23:01 +00:00
crc32c.c util: Move architecture detection to crc32c.c 2019-02-04 19:14:22 +00:00
dif.c dif: Process unaligned end of data segment in spdk_dif_set_md_interleave_iovs() 2019-06-24 07:02:07 +00:00
fd.c util/fd: drop fallback from spdk_fd_get_blocklen() 2017-08-11 19:36:30 -04:00
file.c util: add a new file operation API 2019-05-15 18:54:27 +00:00
Makefile util: add a new file operation API 2019-05-15 18:54:27 +00:00
strerror_tls.c util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
string.c util/string: additional errno check after strtol() 2019-01-29 14:57:16 +00:00
uuid.c util/uuid: add a new uuid copy API. 2018-12-06 22:25:09 +00:00