|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI ABORT TASK RefCmdSN question(Sorry if this message is a duplicate. I sent it once before but I don't think it got through.) Suppose an iSCSI target receives an ABORT TASK Task Management Function that does not refer to a valid task (i.e. the Referenced Task Tag does not match any task at the target) but the CmdSN is inside the valid window and matches a non-immediate command that has not yet been delivered for execution. For example, Target's ExpCmdSN is 10. Target has a queued non-immediate command with CmdSN 11 and Initiator Task Tag of 55 which has not been delivered for execution because the target is waiting for a non-immediate command with CmdSN 10 first. Target receives an immediate ABORT TASK Task Management Function with Referenced Task Tag of 66 and RefCmdSN of 11. The relevent portion of the spec is in Section 9.6.1: "b) if the Referenced Task Tag does not identify an existing task but if the CmdSN indicated by the RefCmdSN field in the Task Management function request is within the valid CmdSN window (between MaxCmdSN and ExpCmdSN), targets must consider the CmdSN received and return the "Function complete" response." It seems to me that the intention of the phrase "targets must consider the CmdSN received" is to force the target to discard the command with CmdSN == RefCmdSN if the target receives it later, which would effectively abort the command before it is received. In my example, the command with CmdSN == RefCmdSN is already received, but it is not aborted since the Referenced Task Tag does not match the Initiator Task Tag. According to the above text, the target is still supposed to return the "Function complete" response. Wouldn't it be better to return "Task does not exist" instead, or maybe some other error? Anthony J. Battersby Cybernetics
Home Last updated: Fri Aug 30 13:18:55 2002 11725 messages in chronological order |