Subject: RE: SMC-3 Read Element Status - Incomplete descriptors Date: Tue, 26 Sep 2006 15:11:52 -0500 From: "Elliott, Robert (Server Storage)" <Elliott@hp.com> To: <t10@t10.org> X-Message-Number: 7261 Formatted message: HTML-formatted message Attachment #1: smime.p7s It would be more in line with other SCSI standards for the device server to return partial descriptors. The parameter data is supposed to be the same (for a specific CDB) regardless of how many bytes are retrieved. SPC-4's general convention for ALLOCATION LENGTH fields (spc4r06 4.3.4.6) states that "If the information being transferred to the Data-In Buffer includes fields containing counts of the number of bytes in some or all of the data, then the contents of these fields shall not be altered to reflect the truncation, if any, that results from an insufficient ALLOCATION LENGTH value, unless the standard that describes the Data-In Buffer format states otherwise." The ALLOCATION LENGTH field could be anything from zero to FF...FFh (based on the size of the field). The STARTING ELEMENT ADDRESS and NUMBER OF ELEMENTS fields in the READ ELEMENT STATUS CDB instruct the device server how many descriptors and which descriptors to create. The parameter data FIRST ELEMENT ADDRESS REPORTED, NUMBER OF ELEMENTS AVAILABLE, and BYTE COUNT OF REPORT AVAILABLE fields are all set by the device server without any regard to the allocation length - those qualify as the "fields containing counts of the number of bytes". Note 6 points out how the application client can figure out the best ALLOCATION LENGTH to use - try 8 first to read just the header to examine those fields. Then, pick an allocation length big enough to retrieve the data. -- Rob Elliott, elliott@hp.com Hewlett-Packard Industry Standard Server Storage Advanced Technology https://ecardfile.com/id/RobElliott _____ From: owner-t10@t10.org [mailto:owner-t10@t10.org] On Behalf Of Kevin D Butt Sent: Tuesday, September 26, 2006 1:59 PM To: t10@t10.org Subject: SMC-3 Read Element Status - Incomplete descriptors SMC-3r02, 6.10.1 READ ELEMENT STATUS introduction, 2nd paragraph on page 321, reads: << The NUMBER OF ELEMENTS field specifies the maximum number of element descriptors to be created by the device server for this command. The value specified by this field is not the range of element addresses to be considered for reporting but rather the number of defined elements to report. If the ALLOCATION LENGTH field is not sufficient to transfer all the element descriptors, the device server shall transfer all those descriptors whose complete contents fit within the allocation field and this shall not be considered an error. >> There has been confusion by at least one vendor about the meaning of << If the ALLOCATION LENGTH field is not sufficient to transfer all the element descriptors, the device server shall transfer all those descriptors whose complete contents fit within the allocation field and this shall not be considered an error. >> It seems obvious that the intent is that only complete descriptors shall be returned. If the data is truncated due to an incomplete descriptor this shall not be considered an error. I propose that this text be modified to: If the ALLOCATION LENGTH field is not sufficient to transfer all the element descriptors, the device server shall transfer all those descriptors that completely fit within the allocation field and shall not transfer any partial descriptors. This shall not be considered an error. Thanks, Kevin D. Butt SCSI & Fibre Channel Architect, Tape Firmware MS 6TYA, 9000 S. Rita Rd., Tucson, AZ 85744 Tel: 520-799-2869 / 520-799-5280 Fax: 520-799-2723 (T/L:321) Email address: kdbutt@us.ibm.com http://www-03.ibm.com/servers/storage/