From 1b02c7897e3fd5ec6ef026b22a0b9043e082f706 Mon Sep 17 00:00:00 2001 From: Utkarsh Mani Tripathi Date: Mon, 18 Nov 2019 18:20:59 +0530 Subject: [PATCH] fix error handling for unsupported commands - Respond with failure for unsupported task management commands - Increase MaxRecvDataSegmentLength to 65536, to match FirstBurstLength Signed-off-by: Utkarsh Mani Tripathi --- pkg/port/iscsit/iscsid.go | 2 -- pkg/port/iscsit/session.go | 2 +- pkg/scsi/spc.go | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/port/iscsit/iscsid.go b/pkg/port/iscsit/iscsid.go index 75568a7..dc2863c 100644 --- a/pkg/port/iscsit/iscsid.go +++ b/pkg/port/iscsit/iscsid.go @@ -841,10 +841,8 @@ func (s *ISCSITargetDriver) iscsiExecTask(task *iscsiTask) error { fallthrough case ISCSI_TM_FUNC_TARGET_WARM_RESET, ISCSI_TM_FUNC_TARGET_COLD_RESET, ISCSI_TM_FUNC_TASK_REASSIGN: task.result = ISCSI_TMF_RSP_NOT_SUPPORTED - return fmt.Errorf("The task function is not supported") default: task.result = ISCSI_TMF_RSP_REJECTED - return fmt.Errorf("Unknown task function") } // return response to initiator return task.conn.buildRespPackage(OpSCSITaskResp, task) diff --git a/pkg/port/iscsit/session.go b/pkg/port/iscsit/session.go index 9d6a70a..e0d7ba1 100644 --- a/pkg/port/iscsit/session.go +++ b/pkg/port/iscsit/session.go @@ -184,7 +184,7 @@ func boolKeyInConv(value uint) string { var sessionKeys map[string]*iscsiSessionKeys = map[string]*iscsiSessionKeys{ // ISCSI_PARAM_MAX_RECV_DLENGTH - "MaxRecvDataSegmentLength": {ISCSI_PARAM_MAX_RECV_DLENGTH, true, 32768, 512, 16777215, numberKeyConv, numberKeyInConv}, + "MaxRecvDataSegmentLength": {ISCSI_PARAM_MAX_RECV_DLENGTH, true, 65536, 512, 16777215, numberKeyConv, numberKeyInConv}, // ISCSI_PARAM_HDRDGST_EN "HeaderDigest": {ISCSI_PARAM_HDRDGST_EN, false, DIGEST_NONE, DIGEST_NONE, DIGEST_ALL, digestKeyConv, digestKeyInConv}, // ISCSI_PARAM_DATADGST_EN diff --git a/pkg/scsi/spc.go b/pkg/scsi/spc.go index 872f807..5e6a69e 100644 --- a/pkg/scsi/spc.go +++ b/pkg/scsi/spc.go @@ -29,7 +29,7 @@ import ( ) func SPCIllegalOp(host int, cmd *api.SCSICommand) api.SAMStat { - BuildSenseData(cmd, ILLEGAL_REQUEST, ASC_INVALID_FIELD_IN_CDB) + BuildSenseData(cmd, ILLEGAL_REQUEST, ASC_INVALID_OP_CODE) return api.SAMStatCheckCondition }