A rose by any other name....

PJohansson at aol.com PJohansson at aol.com
Wed Nov 27 10:07:08 PST 1996


* From the SCSI Reflector (scsi at symbios.com), posted by:
* PJohansson at aol.com
*
With respect to the recent arguments about dummy ORB's and their completion
status, a little history recap first:

Finch>  In section 10.4.1, (page 79) the second bullet item 
Finch>  (indicated by "-") states that the aborted ORB shall be 
Finch>  completed with a status of REQUEST ABORTED.  Yet section 
Finch>  5.1.1 (Dummy ORB) states that the request shall be 
Finch>  completed without error.  This is a conflict!  I suggest 
Finch>  that section 5.1.1 be changed to require a REQUEST ABORTED 
Finch>  status be returned for Dummy ORBs.

Johansson>I agree. The last paragraph of 5.1.1 now reads as follows:

"Barring catastrophic target failure, dummy requests shall complete with a
status of REQUEST ABORTED. This is the normal completion status for an ORB
whose rq_fmt field is equal to three; it is not an error."

The name REQUEST ABORTED is generating more heat than light; let's return to
the name itself a bit later in this message. If we can set aside the label
REQUEST ABORTED for the moment and call this status QQQQ, there are still
some misunderstandings about its usage.

For example, Curtis Stevens has said (with the new label for the status code
in question):

Stevens>QQQQ is one of the few conditions that defines when an error 
Stevens>has occurred.  You can achieve this same end by sending any number of

Stevens>unknown commands

Not so. QQQQ can be returned in two circumstances only:

   1) An ORB is fetched whose rq_fmt field is equal to three.

   2) For those targets that support the request, a task management ORB with
a
     function code of ABORT TASK is received that identifies a particular
ORB. If
     the identified ORB is in the target's local, working set and the target
is able
     to idnetify it as such before some other ending status is returned, the
return
     status is supposed to be QQQQ.

These are the only two circumstances under which QQQQ can be returned.

Next, is it worthwhile to differentiate 1) and 2) above? From a host point of
view, it makes no difference. I'll defer to the implementors of targets but
offer the suggestion that having to distinguish between the two cases
complicates instead of simplifies the target.

Assume for the moment that you agree with the preceding paragraph. What
should we call QQQQ? If we call it REQUEST ABORTED the name is prejudicial to
those who like to think of it as the normal completion of a "dummy" ORB. If
we call it DUMMY ORB COMPLETED (or some similar name) it is prejudicial to
those who think of it as the response, different from RESPONSE COMPLETE, that
distinguishes an aborted ORB (i.e., one whose rq_fmt field was other than
three but was later changed to three by the initiator.).

What's in a name? There is no ambiguity in either case, regardless of the
name chosen. Plausible arguments are available for either name with the one
provision that if you chose a name different from REQUEST ABORTED I think it
would be wise to differentiate between conditions 1) and 2) above.

Since this is not a substantive matter, since target implementations remain
the same regardless of the name of the response code, since it is not a very
difficult adjustment to your frame of reference to consider REQUEST ABORTED
the "normal" response to an ORB whose rq_fmt field is three, I think the
document we recommend to X3T10 should contain the language in the early part
of this message.

Sincerely,

Peter Johansson

Congruent Software, Inc.
3998 Whittle Avenue
Oakland, CA  94602

(510) 531-5472
(510) 531-2942 FAX

pjohansson at aol.com

*
* For SCSI Reflector information, send a message with
* 'info scsi' (no quotes) in the message body to majordomo at symbios.com




More information about the T10 mailing list