Spdk/test/unit/lib/nvme
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
..
nvme_ctrlr_cmd.c nvme: add Get/Set Feature wrappers with NSID 2018-06-12 17:59:33 +00:00
nvme_ctrlr_ocssd_cmd.c ocssd: nvme driver public API extension for Open-Channel 2018-06-12 17:59:33 +00:00
nvme_ctrlr.c unit/nvme: add ctrlr init delay unit test 2019-05-30 06:13:26 +00:00
nvme_ns_cmd.c nvme: assign qpair when req is allocated 2019-06-04 00:01:35 +00:00
nvme_ns_ocssd_cmd.c nvme: assign qpair when req is allocated 2019-06-04 00:01:35 +00:00
nvme_ns.c nvme: add helper to wait for internal commands 2018-05-28 01:43:55 +00:00
nvme_pcie.c nvme: add transport_qpair_abort_reqs 2019-05-08 01:44:20 +00:00
nvme_qpair.c nvme: remove qpair_disable 2019-05-08 01:44:20 +00:00
nvme_quirks.c nvme: add debug logs for matched quirks 2018-02-23 10:07:39 -05:00
nvme_rdma.c test/unit: remove unnecessary mock definitions 2019-01-13 00:48:20 +00:00
nvme_tcp.c nvme/tcp: Support unaligned extended LBA payload in nvme_tcp_pdu_set_data_buf 2019-07-08 03:33:07 +00:00
nvme.c unit/nvme: add wait for completion unit test 2019-06-07 18:31:47 +00:00
Makefile nvme/tcp: add unit test to verify the bug in nvmf_tcp_pdu_set_data_buf 2019-07-01 08:28:20 +00:00