SBP-2 ORB Differentiation

PJohansson at PJohansson at
Wed Jun 18 11:57:34 PDT 1997

* From the SCSI Reflector (scsi at, posted by:
* PJohansson at
In a message dated 97-06-17 17:12:35 EDT, packer at (John Packer
x2146) writes:

<<I have a question on how to distinquish ORBS in a linked list.>>

<<I assume that when the initiator logs in it determines whether it will be
an async or isoch transfer.  It is then up to the target to keep track of
multiple logins and the type of transfer associated with each.  The SBP-2
does not explicitly state don't mix async and stream in the linked list.  Is
that a rule?>>

A LOGIN is a prerequisite to asynchronous transfers and grants the initiator
access to a target fetch engine. All of the ORB's fetched by that engine are
known, implicitly, by context, to be normal command block ORB's.

An initiator that wishes to control isochronous operations subsequently
performs a CREATE STREAM operation and gets access to DIFFERENT target fetch
engines. By context, these engines know that one of their linked lists of
ORB's contains stream command block ORB's and the other stream control ORB's.
Note that the second fetch engine is optional for a stream.

<<When it is async there is only one ORB, the cmd block ORB.  With isoch
there are two ... stream control and stream command.  I don't know how to
distinquish these three ORBS.  As long as it is illegal to mix async and
stream ORBs there is no problem to distinquish the normal from the stream.>>

Yes, it is not permitted to intermix these different ORB's in the same linked
list. As an aside, the encoding for stream_ctrl was changed at the Irvine
SBP-2 ad hoc to start at one instead of zero. This would permit stream
command block and stream control ORB's to be intermixed in the same
queue---if and when that becomes useful.

<<In a stream linked list how do you distinquish between stream control and
command?  Even if those two cannot be in the same list how do you know which
type is in that linked list?  There is no common code field to define the

At present, you distinguish between them by virtue of the linked list to
which they belong. The linked list serviced by the target's
command_block_agent (from a CREATE STREAM response) contains stream command
block ORB's while the linked list serviced by the target's
stream_control_agent contains stream control ORB's.


Peter Johansson

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

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

pjohansson at

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

More information about the T10 mailing list