some questions about SAM-5

Neil Wanamaker Neil.Wanamaker at
Thu Jan 23 09:33:29 PST 2014

Formatted message: <a href="">HTML-formatted message</a>

The CRN was an FCP-specific mechanism independent of the exchange-id (task
tag) to operate with stateful devices (e.g., tapes) and a feature called
"precise delivery" to ensure proper serialization of the commands.
>From FCP-4:
This standard defines a second optional mechanism called precise delivery to
assure ordering of commands. This may be used by any FCP device, but may be
useful for devices performing ordered command queuing where device state is
preserved from one command to the next. An application client may determine
if a device server supports the precise delivery function by using the MODE
SENSE command and MODE SELECT command to examine and set the EPDC bit in the
Fibre Channel Logical Unit Control mode page to one (see 10.3).
Neil Wanamaker
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of Knight,
Sent: Thursday, January 23, 2014 8:54 AM
To: Wei(SOCP) Liu; t10 at
Cc: 'Elliott, Robert (Server Storage)' (Elliott at; 'Penokie, George'
(George.Penokie at
Subject: RE: some questions about SAM-5
1.	 Who is the "user" of the data in this case?  The device server or
the application client?  What is the particular use case you are wondering
about?	In every case I can think of, the standard is clear when each should
be used, for example:
a.	 PR-OUT command parameter data has a TRANSPORTID field for the
initiator port which is then described in 7.6.4 (SPC-4r36o) which, to use one
example, is described for FCP as the N_Port_Name value.
b.	VPD page 83h contains several of these values - so it depends on what
you want to know as to which you would use.  If you want to know which port
received/processed the command you would look at the port name or identifier
(association field 01b, if it is returned).  If you want to know the logical
unit persistent name (to detect the same logical unit on multiple paths), you
would look at the device name (association field 00b).
2.	 I tend to think of them as the same (even though they don't seem to
be).  The CRN is the thing that is exposed at the interface level; the
command identifier is not exposed.  So they could be the same, or they could
be different as long as the device server knows how to map from one to the
other.	I can see why there might be some confusion in SAM, since the command
related procedure calls have the CRN (and the command object has a CRN
attribute), but the task management functions don't (they have an "argument
identifying the command").  Maybe someone else (Rob? George?) has an opinion
on this.
3.	 That sub-clause (5.14.1) talks about the unit attention queue.  When
that text says "while a unit attention condition exists", it means if there
is anything in the unit attention queue; if there is, you may either:
a.	 Report any pending sense data you have (maybe a deferred error, or
maybe some other sense data); AND retain/preserve all the items in the UA
queue for later reporting; OR
b.	Report the highest priority UA condition (as per the SAM precedence
Whether you select option a) or b) is up to the device server; and other
rules described in SPC-4 (for example; sub-clauses 5.10.2 and 6.3 ( see the
1) to 7) list on page 479) in SPC-4r36o).
4.	 CLEAR TASK SET is the same as ABORT TASK SET if the TST field ==
001b (which means you have different task sets for EACH I_T NEXUS).  Look at
sub-clause 5.6 and table 47 (scope column, item c) ) on page 110 (sam5r15)
for the difference.  If TST == 000b, then CLEAR TASK SET will impact other
I_T NEXUSes, but ABORT TASK SET will not.
Fred Knight
From: owner-t10 at<mailto:owner-t10 at>
[mailto:owner-t10 at]<mailto:[mailto:owner-t10 at]> On Behalf Of
Wei(SOCP) Liu
Sent: Wednesday, January 22, 2014 7:25 AM
To: t10 at<mailto:t10 at>
Subject: some questions about SAM-5
I have some questions about SAM-5. Could you kindly help to answer? Thanks.
1.	 In, "SCSI Device Name attribute", "A SCSI device name shall
never change and may be used for persistent identification of a SCSI device
in contexts where specific references to initiator port names, target port
names, initiator port identifiers, or target port identifiers are not
My question is when to use Device Name, port name and port identifier?
2.	 With Command identifier defined, why CRN(Command Reference Number)
is also defined? How is it used by device sever?
3.	 In 5.14.1, "Unit attention conditions that are not coalesced",
"c) if a REQUEST SENSE command enters the enabled command state while a unit
attention condition exists for the SCSI initiator port associated with the
I_T nexus on which the REQUEST SENSE command was received, then the device
serv er shall process the command and either:
A) report any pending sense data as parameter data and preserve all unit
attention conditions on the logical unit; or
B) report a unit attention condition as parameter data for the REQUEST SENSE
command to the SCSI initiator port associated with the I_T nexus on which the
REQUEST SENSE command was received."
When sense data is returned and when unit attention condition is returned? Is
there a function with parameter to designate which to return?
4.	 What's the difference between CLEAR TASK SET and ABORT TASK SET?
Wei Liu

More information about the T10 mailing list