SAM-2: Clarification of Protocol Services

JoeBre at Exabyte.COM JoeBre at Exabyte.COM
Wed May 26 10:02:07 PDT 1999


* From the T10 Reflector (t10 at symbios.com), posted by:
* JoeBre at Exabyte.COM
*
I would like to request that the definition of the Protocol Services be made
more concrete.

4.12) 
"SCSI application layer: Contains the clients and servers that originate and
execute SCSI I/O operations by means of an SCSI application protocol."
    By using the terms "clients and servers", the implication seems to be
that the the Application Client and the Device Server are members of this
layer, however this is not made explicit.

"The subsystems that make up the protocol and interconnect layers are
collectively referred to as the service delivery subsystem. The service
delivery port is the device-resident portion of the subsystem."
    Assuming the first implication is correct, we now have defined _two_
meaniningful layers: one consisting of the protocol and interconnect layers
(manifested within the device as the Service Delivery Port object); and the
other consisting of the application layer (manifested in the device as the
Application Client objects and the Device Server objects).

The remainder of 4.12 then expounds on the abstract concept of ULP and LLP
interactions, and the definition of the Request, Indication, Response, and
Confirmation interactions. This does provide a useful Pattern for the
understanding of the operation of multi-layered protocol stacks. However, it
appears that SAM only defines objects that exist at two of the layers. This
serves to obscure the definition of the Protocol Services as follows:

5.3)
     This section describes the various Protocol Services that implement the
Execute Command remote procedure call. As outlined above, the terms Protocol
Service Request, Protocol Service Indication, Protocol Service Response,
Protocol Service Confirmation are defined only with respect to the abstract
ULP and LLP concepts. I believe we should make explicit which layers (and
even objects) are involved here, as follows:

Protocol Service Request:
    My belief is that the Send SCSI Command service is an operation in the
interface of the Service Delivery Port object, and that it is invoked by the
Application Client object.

Protocol Service Indication:
    My belief is that the SCSI Command Received service is an operation in
the interface of the Device Server object, and that it is invoked by the
Service Delivery Port object.

Protocol Service Response:
    The text _implies_ that the Send Command Complete service is an
operation in the interface of the Service Delivery Port object, and states
that it is invoked by the Device Server object. 

Protocol Service Confirmation:
    My belief is that the Command Complete Received service is an operation
in the interface of the Application Client object, and that it is invoked by
the Service Delivery Port object. 

I believe making these explicit would eliminate significant ambiguities in
the model.

Additionally...

5)
"An application client invokes the following remote procedure to execute an
SCSI command:
Service response = Execute Command(Task Address, CDB, [Task Attribute],
Data-Out Buffer], [Command Byte Count], [Autosense Request] || [Data-In
Buffer], [Sense Data], Status)"
    Is Execute Command an abstract operation that has no concrete
representation? In other words, is there no object in the system that has
this operation in its interface? If so, I think we need an additional
definition 3.1.x for remote procedure call.

I welcome any discussion...

Joe Breher
Exabyte Corp
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at symbios.com





More information about the T10 mailing list