Spdk/lib/nvmf
Shuhei Matsumoto 8448adaefa nvmf/tcp: Verify DIF before sending C2H data in spdk_nvmf_tcp_send_c2h_data
If DIF mode is local and C2H data is extended LBA payload, DIF should
be verified just before sending the payload.

Add a helper function nvmf_tcp_pdu_verify_dif and call it in
spdk_nvmf_tcp_send_c2h_data after completing nvme_tcp_pdu_set_data_buf.

When nvmf_tcp_pdu_verify_dif returns error, treat the error as fatal
transport error because the error is caused by the target itself.

Handle the fatal NVMe/TCP transport error by terminating the connection
as described in the NVMe specification.

On the other hand, data digest error is treated as a non-fatal transport
error because the error is caused outside the target. This is reasonable.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I9680af2556c08f5888aeaf0a772097e4744182be
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/458921
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2019-07-08 03:33:07 +00:00
..
ctrlr_bdev.c nvmf: add ptpl activated flag to Namespace 2019-06-26 01:54:10 +00:00
ctrlr_discovery.c nvmf: Only present subsystem if it is ready 2019-01-07 06:02:26 +00:00
ctrlr.c nvmf: add ptpl activated flag to Namespace 2019-06-26 01:54:10 +00:00
Makefile nvmf: Collapse request.c into ctrlr.c 2019-02-04 18:11:33 +00:00
nvmf_fc.h lib/nvmf: fix a typo error 2018-10-12 17:40:16 +00:00
nvmf_internal.h nvmf: Use not malloc'ed but fixed size string for host NQN 2019-07-04 00:30:22 +00:00
nvmf.c nvmf: complete all I/Os before changing sgroup to PAUSED 2019-06-11 01:51:56 +00:00
rdma.c rdma: assert ibv_send_wr is not NULL 2019-06-25 13:37:15 +00:00
subsystem.c nvmf: Use not malloc'ed but fixed size string for host NQN 2019-07-04 00:30:22 +00:00
tcp.c nvmf/tcp: Verify DIF before sending C2H data in spdk_nvmf_tcp_send_c2h_data 2019-07-08 03:33:07 +00:00
transport.c nvmf: remove unnecessary size checks when creating transport 2019-05-02 14:44:57 +00:00
transport.h nvmf: Remove qpair_is_idle 2019-03-15 19:19:17 +00:00