Spdk/include/spdk_internal
Shuhei Matsumoto a7a32ea052 nvme/tcp: Support unaligned extended LBA payload in nvme_tcp_pdu_set_data_buf
When DIF is inserted or stripped, nvme_tcp_pdu_set_data_buf must
shift the range of the buffer from LBA based to extended LBA based
because the extended LBA based range must be passed to create a special
temporary iovec array to leave a space of metadata for each block then.

This patch do the following:
- Add a pointer to the current DIF context to struct nvme_tcp_pdu.
  This pointer is set when DIF is inserted or stripped to the current
  NVMf request.
- When the pointer to the current DIF context in the PDU is set, get
  the extended LBA based offset and length by calling
  spdk_dif_get_range_with_md() and use them in nvme_tcp_pdu_set_data_buf().
- Original data length is set in the PDU and original data offset is
  set in the current DIF context in nvme_tcp_pdu_set_data_buf().
- Add UT code.

Change-Id: Ic1f4fd326b5b3e3d4c74677592bda34d6949a11e
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/458920
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-07-08 03:33:07 +00:00
..
assert.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
copy_engine.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
event.h event: spdk_subsystem_config_json is no longer asynchronous 2019-03-19 15:54:34 +00:00
log.h iscsi: Dump PDU contents to know what PDU was sent in illegal state 2019-06-07 05:11:00 +00:00
lvolstore.h lvol: add option to change default data erase method 2019-01-23 22:25:37 +00:00
memory.h env: move VALUE_2MB defines into a new internal header 2019-01-13 00:47:26 +00:00
mock.h mock: remove trailing semicolon from MOCK_ definitions 2019-03-22 05:03:42 +00:00
nvme_tcp.h nvme/tcp: Support unaligned extended LBA payload in nvme_tcp_pdu_set_data_buf 2019-07-08 03:33:07 +00:00
sock.h sock: update spdk_sock_group_add_sock 2019-07-04 08:21:05 +00:00
thread.h thread: Use TLS to accelerate thread look up 2018-12-14 18:54:03 +00:00
utf.h utf.h: remove #include "spdk/json.h" 2018-01-31 14:37:16 -05:00
vhost_user.h virtio: export spec-defined structures into a separate header 2019-03-13 14:26:20 +00:00
virtio.h virtio: allow config read/write to fail 2018-07-05 20:47:38 +00:00