SAS-1.1 Task Frame

Elliott, Robert (Server Storage) Elliott at hp.com
Mon Mar 26 16:30:32 PDT 2007


Formatted message: <A HREF="r0703262_f.htm">HTML-formatted message</A>
Attachment #1: <A HREF="r0703262_smime-3.p7s">smime-3.p7s</A>

So far, in SCSI architecture, only commands (i.e., tasks) have tags (called
"task tags"), not task management functions.  The "Nexus" argument to a task
management function refers to the affected nexus (I_T, I_T_L, or I_T_L_Q)
and is not a representation of the task management function itself.
Every modern SCSI protocol does provide tags for its task management
functions:
a) SAS: all task management functions, first sent by the initiator port in
the TASK frame TAG field
b) FCP: task management functions except for ABORT TASK, first sent by the
initiator port in the FCP_CMND frame OX_ID field
c) iSCSI: all task management functions, first sent by the initiator port in
the Task Management Function Request PDU Initiator Task Tag field
d) SRP: all task management functions, first sent by the initiator port in
the SRP_TSK_MGMT request TAG field
e) ADT: first sent by the initiator port in the Task Management IU frame
header's X_ORIGIN bit and EXCHANGE ID field
(Note that Fibre Channel ABORT TASK is the one case where the task
management function does not have a tag of its own.  It latches on to the
tag of the task that is being aborted. QUERY TASK is also being mapped as an
exception)
These protocols all pull the TMF tag values from the same number space as
the SCSI task tag values.  However, these values are not recognized anywhere
in the SCSI architecture.  Maybe SAM-4 or SAM-5 will formally recognize this
in the SCSI architecture, but it hasn't happened yet.
SAS state machines do need this tag to be communicated between layers, so in
SAS-1.0 letter ballot (Feb 2003) we chose to call the tag used for TMFs an
"association" based on this vague standardese in SAM-3:
"Each SCSI transport protocol shall allow a Received Task Management
Function Executed confirming completion of the requested task to be
associated with the corresponding Send Task Management Request."
In SAS TASK frames, the TAG field maps to the the Association argument for
all the TMFs.  For ABORT TASK and QUERY TASK, the TAG OF TASK TO BE MANAGED
field corresponds to the I_T_L_Q Nexus argument; it is unused for other
TMFs.
-- 
Rob Elliott, elliott at hp.com 
Hewlett-Packard Industry Standard Server Storage Advanced Technology 
https://ecardfile.com/id/RobElliott 
  _____  
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Larry Chen
Sent: Monday, March 26, 2007 5:11 PM
To: T10 (t10 at t10.org)
Subject: SAS-1.1 Task Frame
See my comments inline in RED.
SAS-1.1 Rev 10
---------------------------------
Taken from page 348:
The TAG field contains a value that allows the SSP initiator port to
establish a context for commands and task
management functions.
For COMMAND frames and TASK frames, the SSP initiator port shall set the TAG
field to a value that is unique
for the I_T nexus established by the connection (see 7.12). An SSP initiator
port shall not reuse the same tag
when transmitting COMMAND frames or TASK frames to different LUNs in the
same SSP target port. An SSP
initiator port may reuse a tag when transmitting frames to different SSP
target ports. The TAG field in a
COMMAND frame contains the task tag defined in SAM-3. The TAG field in a
TASK frame does not
correspond to a SAM-3 task tag, but corresponds to an SAM-3 association (see
10.2.1). The tag space used
in the TAG fields is shared across COMMAND frames and TASK frames (e.g., if
a tag is used for a COMMAND
frame, it is not also used for a concurrent TASK frame).
[comment #1: The TAG field in the TASK frame does not correspond to a SAM-3
task tag, but corresponds to
an SAM-3 association (see 10.2.1).
This seems odd and contradicts everything I know about Q Tags. Also, SAM-3
does not mention about association
i.e., SAS-1.1 association instead.
]
---------------------------------
Taken from page 415:
Task Management Request Received (IN (Nexus, Function Identifier,
[Association]))
[comment #2: Association is optional.
If Association == TAG OF TASK TO BE MANAGED field then this would make sense
since
TAG FO TASK TO BE MANAGED is only meaningful for ABORT_TASK and QUERY_TASK.
]
Taken from Table 161 on page 416:
Nexus
I_T_L nexus or I_T_L_Q nexus (depending on the Function Identifier), where:
a) I indicates the initiator port that sent the TASK frame;
b) T indicates the target port that received the TASK frame;
c) L indicated by the LOGICAL UNIT NUMBER field in the TASK frame header;
and
d) Q (for an I_T_L_Q nexus) indicated by the TAG OF TASK TO BE MANAGED field
in
the TASK frame header.
[Association] Indicates the TAG field in the TASK frame header.
[Comment #3: d) Q (for an I_T_l_Q nexus indicated by the TAG OF TASK TO BE
MANAGED field
In the TASK frame header.
Should this be revised to . ?
indicated by the TAG field in the TASK frame header.
].
[Comment #4: [Association] Indicates the TAG field in the TASK frame header.
Should this be revised to .?
[Association] Indicates the TAG OF TASK OT BE MANAGED field in the TASK
frame.
]



More information about the T10 mailing list