SAM R14, ABORT TASK for untagged tasks
Bob.Snively at eng.sun.com
Tue Aug 9 01:17:40 PDT 1994
Gary is right in saying that ABORT TASK SET is incorrectly specified as optional
(at least on page 60 of revision 13, which is the latest I have).
ABORT TASK should be optional and ABORT TASK SET should be mandatory.
Let me see if the following table helps clarify this:
doc FUNCTION (code) Condition What is reset
SCSI-1 ABORT 06 ITL Any Proc for LUN from this init
(normally only one untagged)
SCSI-2 ABORT 06 ITLx All Proc for LUN from this init
SCSI-2 ABORT 06 IT "Current" process (normally null)
SCSI-2 ABORT TAG 0D ITLQ Tagged Proc only
SIP ABORT 06 ITLx All Proc for LUN from this init
SIP ABORT 06 IT "Current" process (normally null)
SIP ABORT TAG 0D ITLQ Tagged Proc only
SAM ABORT TASK SET xx NA All Proc for LUN from this init
SAM ABORT TASK xx NA Tagged Proc only
>From this, it is clear that:
ABORT TASK SET == ABORT
ABORT TASK == ABORT TAG
Historically, in SCSI-1, SCSI-2, and SIP, the ABORT TAG was optional and
only valid if tagged queueing was implemented. By extension, ABORT TASK
should be optional in SAM and only valid if tagged queueing was implemented.
Historically, in SCSI-1, SCSI-2, and SIP, the ABORT command was mandatory
and implemented by all devices. By extension, the ABORT TASK SET should
be mandatory in SAM and implemented by all devices.
By the rules for SAM, both the ABORT TASK and the ABORT TASK SET functions
should be defined by the mapping functions, SIP, FCP, etc. However,
the implementations of those mapping functions are only required to
implement ABORT TASK if they support tagged queueing.
Just in case there is any misunderstanding, both ABORT TASK and ABORT TASK SET
are defined in FCP and make use of the Recovery Abort function, which
uses the unfortunately named FC-PH function of ABTS (Abort Sequence).
At present, the ABORT TASK function is mandatory for FCP because all
tasks, even untagged ones, can be identified explicitly. This is a
matter of FCP overkill, but probably mostly harmless. The ABORT TASK SET
function is of course mandatory, since it maps to the SCSI function of
>From 73632.1106 at compuserve.com Tue Aug 9 13:27 PDT 1994
>Date: 09 Aug 94 13:16:43 EDT
>To: SCSI Reflector ADMIN <scsi at WichitaKS.NCR.COM>
>Subject: SAM R14, ABORT TASK for untagged tasks
>Clause 5.1 of SAM says that the ABORT TASK function is optional for
>untagged tasks. This is contrary to SCSI-2.
>SCSI-2 has two mechanisms for aborting tasks: The ABORT TAG message and
>the ABORT message for a fully identified task of any type. These are BOTH
>ABORT TASK FUNCTIONS.
>SAM does not specify ABORT TAG only. It specifies that the ABORT TASK
>task management functions identifies the task to be aborted. IN SIP, that
>can always be accomplished by fully identifying a task (tagged or
>untagged) and sending the ABORT message. SCSI-2 for tagged tasks
>permitted the ABORT TAG message and allowed it to be applied, optionally,
>to untagged tasks.
>SAM has the ABORT TASK function confused with the ABORT TAG and ABORT
>messages. What SAM says in revision 14 is that it may be impossible to
>abort an untagged task if the logical unit does not support the ABORT TAG
>message in SIP. This is incorrect.
>Each protocol must identify how any task, individually, is capable of
>being aborted. For SIP, there is one guaranteed way, and one guaranteed
>only for tagged tasks. Therefore, SIP and all other protocols must
>support the ABORT TASK task management function for all tasks. SIP just
>has two ways which are an implementation choice to use.
>This must be fixed in SAM. If it is not fixed now, it will cause a second
>public review to have it fixed later.
More information about the T10