FCP Out of Order Data Delivery

Bob Snively Bob.Snively at Eng.Sun.COM
Sun Dec 18 21:43:45 PST 1994


I believe that Fibre Channel already does everything you want,
without any modifications in FCP.  At present, all point-to-point
transfers are performed in order if continuously increasing
RO is required by the PLOGIN function.  If a fabric is present, 
the fabric can be requested to provide in-order delivery for
Class 2 and Class 3 behavior, where order might otherwise be
confused somewhat.

In the absence of these two control functions being properly
established, no bit that FCP has control over will guarantee
in order delivery.  In the presence of these two control functions,
in order delivery will usually be guaranteed regardless of the FCP.

Among separate sequences of data, a well-behaved RAID box 
performing striping will not operate efficiently if it is required
to buffer up all data until all bursts can be provided in order.
Of course, within a sequence (for the transfer of a subblock)
everything will be nicely in order if the two control functions
are properly established, requiring you to look up the starting
point only once at the beginning of each sequence.

For very extreme cases, like those you describe, I would expect that
buffering of the entire data block would take place, followed by
a subsequent distribution of the data under host adapter or 
software control.

The FCSI Profiles do not require subblocks of data to be transferred
in order, although they do require that the transfers be 
continuously increasing within a subblock.

The same EMDP bit could be used to require targets to 
send data without using the Modify Data Pointers function,
although as mentioned, the FCSI Profiles explicitly allow that
function and would prohibit the EMDP bit.  Using the bit might limit the
maximum length of a transfer to be less than the maximum burst
size specified by the Disconnect Reconnect Page of the MODE SENSE/SELECT

I hope this clarification helps you understand why I could not
recommend the change you suggest.

Robert Snively
Sun Microsystems Computer Company
Mail Stop UMPK 12-204
2550 Garcia Avenue
Mountain View
California 94043-1100

Phone:		(415) 786-6694
FAX:		(415) 786-6458
e-mail:		bob.snively at Eng.sun.com

>From owner-fibre-channel-ext at Think.COM Tue Dec 13 15:27 PST 1994
>To: "'Fibre Channel  '" <fibre-channel-ext at Think.COM>,
>        "'SCSI Reflector'" <scsi-request at wichitaks.ncr.com>
>Cc: "Dougherty, Peter          [MV]" <PDougherty at PO2.MV.unisys.com>,
>        "Elliot, Kathleen G        [RV]" <kge3 at PO6.RV.unisys.com>,
>        "Thorsbakken, Lloyd E      [RV]" <let2 at PO9.RV.unisys.com>,
>        "Steege, Richard H         [RV]" <rhs1 at PO9.RV.unisys.com>
>Subject: FCP Out of Order Data Delivery
>Date: Tue, 13 Dec 94 16:22:00 CST
>Encoding: 33 TEXT
>X-Mailer: Microsoft Mail V3.0
>Sender: owner-fibre-channel-ext at Think.COM
>Precedence: bulk
>Content-Type: text
>Content-Length: 1790
>X-Lines: 33
>Request for Change to the Fibre Channel Protocol for SCSI (FCP) 
>Specification X3T10 993D
>My current reading of the FCP specification requires all Initiators to 
>support an FCP_XFER_RDY DATA_RO field that specifies out of order data 
>delivery (SAM random buffer access).  I believe this is an unacceptable 
>burden for those Initiators that are required to support unlimited 
>scatter/gather operations.  Our host software is allowed to specify scatter 
>gather boundaries of a single main storage word.  Theoretically, we could be 
>given a single 1000 byte disk read request that could be mapped to a 200 
>entry scatter/gather list specifying 200 different main storage buffer 
>locations.  If we had to support out of order data delivery, it could take 
>an unacceptable amount of processing time to pour through the scatter/gather 
>list and figure out where the starting storage address is for this Data IU 
>as opposed to always processing the scatter/gather list sequentially.
>Given this, I would like to request a change to FCP to allow an Initiator to 
>require in order data delivery (SAM sequential buffer access) for all data 
>transfers.  SIP has effectively provided this functionality with the Enable 
>Modify Data Pointer (EMDP) bit in the Disconnect/Reconnect mode page.  The 
>definition of this bit in the SCSI 3 Primary Commands could be expanded to 
>require the FCP_XFER_RDY DATA_RO field specify in order data delivery or a 
>new bit could be added to the Process Login FCP Service parameter page to 
>require in order data delivery.
>                          Jerry Witalka  M.S. 4873
>                          Unisys Corporation
>                          P.O. Box 64942
>                          St. Paul, MN 55164-0942
>                          EMail:jjw1 at po9.rv.unisys.com

More information about the T10 mailing list