some questions about SAM-5

Penokie, George George.Penokie at lsi.com
Mon Jan 27 07:35:46 PST 2014


Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1401271_f.htm">HTML-formatted message</a>

I see this has been replied to a few times, but here is my 2-cents worth:
1: As has been noted in other responses you question is not specific enough
for a good answer. But in general names are permanent and therefore never
change. Identifiers are not permanent and could change as a result of some
vender specific event.	Device names may be used by discovery applications
that map the topology of a system. For example: By sending INQUIRY commands
requesting VPD page 83h information to all the logical units an application
could determine what ports (using the target port names and/or target port
identifiers), and what logical units (using the logical unit name and/or LUN
(which is an identifier)) are contained within a SCSI device.
2: The CRN is rigidly defined in SAM (see below) and as a result gives
information to the task manager and device server that ensures the commands
will be processed in the order they were transmitted which may not be the
order those commands were received. As was stated in a previous note Fibre
Channel is the only protocol that has defined usage of CRN.  The reason is FC
is currently the only protocol that can result in commends being received in
a different order than they were transmitted.
CRN: When the CRN is used, all commands on an I_T_L nexus shall include a CRN
argument that is incremented by one. The CRN shall be set to one for each
I_T_L nexus involving the SCSI port after the SCSI port receives a hard reset
or detects I_T nexus loss. The CRN shall be set to one after it reaches the
maximum CRN value supported by the protocol. The CRN value zero shall be
reserved for use as defined by the SCSI transport protocol. It is not an
error for the application client to provide a CRN when CRN is not supported
by the SCSI transport protocol or logical unit. See the SCSI transport
protocol standards for rules regarding CRN checking.
On the other hand, a command identifier (i.e., the Q in an I_T_L_Q nexus) is
assigned by a SCSI initiator device to uniquely identify one command in the
context of a particular I_T nexus or I_T_L nexus, allowing more than one
command to be outstanding for that I_T_L nexus at the same time. The command
identifier cannot be used to determine the order of commands being sent.
3: I have nothing to add to what has already been stated in other notes.
4: I have nothing to add to what has already been stated in other notes.
Bye for now,
George Penokie
LSI Corporation
3033 41 St NW
Rochester , MN 55901
507-328-9017
george.penokie at lsi.com
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Wei(SOCP) Liu
Sent: Wednesday, January 22, 2014 6:25 AM
To: t10 at t10.org
Subject: some questions about SAM-5
Hi,
I have some questions about SAM-5. Could you kindly help to answer? Thanks.
1.	 In 4.6.4.2, "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
required."
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?
Regards,
Wei Liu



More information about the T10 mailing list