Mon Aug 15 08:05:38 PDT 1994

Since the LUN field is reserved in SCSI-3, a minor alteration to
SIP is now necessary to avoid a data integrity problem. The
problem stems from a complex interaction between SCSI-2 and SCSI-3
under the condition of a broken -ATN signal. The solution is simple so
I'll propose it first and attempt to explain the problem afterwards.

All that is needed is to make it clear that SCSI-3 targets must
enter a Message out phase after selection or they shall not execute
the command. Actually, SIP rev. 2, section 5.0, page 17, second from
bottom paragraph implies this already:

"The first message sent by the initiator after the SELECTION phase
shall be an IDENTIFY, ABORT, or BUS DEVICE RESET message. If a target
receives any other message it shall issue a BUS FREE request."

All that is needed is to reword the last sentence as follows:

 "If -ATN IS NOT ACTIVATED OR IF the target receives any other
 message..."    (CAPS indicate the change.)

Can this clarification be added to SIP?

Initiators which wish to interoperate with both SCSI-1 and
SCSI-2 targets must be prepared to send a SCSI CDB immediately
after the selection phase in order to support SCSI-1 targets which
obtain the LUN field in the CDB or which do not respond to -ATN for
some other reason. Such SCSI-2 initiators might, therefore, build
logic which they load with LUN, SCSI ID, SCSI CDB, and other
information. After activation, this logic might set -ATN and send the
proper Identify message if the target entered the message out phase,
or immediately send the CDB if the target entered command phase. The
initiator might expect an interrupt from this logic after the command
and perhaps even some data have been transferred. (I believe many
existing chips operate in this manner.)

Now suppose the SCSI-2 initiator wishes to connect a SCSI-3 device. It
could simply zero out the LUN field and continue to use the existing
hardware. This would guarantee interoperation with SCSI-3 targets, but
it would introduce a serious liability when using SCSI-2 targets.

To see this, consider the possibility that the -ATN line is broken. In
this case, a SCSI-2 target will not receive the LUN from the identify
message but instead will get it from the SCSI CDB. Since the initiator
had zeroed out the LUN field to interoperate with SCSI-3 devices, the
LUN field will be zero. But suppose the command was really being sent
to LUN 5. In this case, the command will end up at LUN 0, which is the
wrong LUN. This situation obviously can be catastrophic.

                                Giles Frazier
                                IBM Austin
                                gfrazier at

More information about the T10 mailing list