b8a51ff5b8
Ths patch adds an API spdk_iscsi_get_dif_ctx(). When opcode of BHS is SCSI command, spdk_iscsi_get_dif_ctx() extracts CDB and LUN ID from BHS. When opcode of BHS is Data Out or Data In, spdk_iscsi_get_dif_ctx() extracts TTT and get R2T task corresponding to TTT, and gets CDB and LUN ID from the task. Then spdk_iscsi_get_dif_ctx() gets LUN by using LUN ID and calls spdk_scsi_lun_get_dif_ctx(). Additionally spdk_iscsi_get_dif_ctx() checks the state of the connection and the type of the session is valid before starting decode operation because contents of PDU is not reliable when the state of the connection is invalid. The necessity of the check was found by the Calsoft test tool. Checks and test cases are not matched yet but copying existing checks from spdk_iscsi_conn_execute, spdk_iscsi_op_scsi, and spdk_iscsi_op_data will be enough. The check added for Data Out is not necessary for Data In but it will not be harmful for Data In. Change-Id: Iba09e0ac3e760aa1c5b582a120596c49b9e9d51e Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/446231 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ziye Yang <ziye.yang@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> |
||
---|---|---|
.. | ||
acceptor.c | ||
acceptor.h | ||
conn.c | ||
conn.h | ||
init_grp.c | ||
init_grp.h | ||
iscsi_rpc.c | ||
iscsi_subsystem.c | ||
iscsi.c | ||
iscsi.h | ||
Makefile | ||
md5.c | ||
md5.h | ||
param.c | ||
param.h | ||
portal_grp.c | ||
portal_grp.h | ||
task.c | ||
task.h | ||
tgt_node.c | ||
tgt_node.h |