Date:01/17/89 X3T9.2/89-21 To: X3T9 committee From: George Penokie/Jason Clegg, IBM Corporation Subject: SCSI-2 Architecture change, tape read underlength Proposed change to the READ and READ REVERSE commands for Sequential Access Devices (ref section 9.2.5 & 9.2.8, SCSI-2, draft rev 6a). Problem Description: -------------------- For many applications, underlengths (i.e. actual block length less than the transfer length) can occur frequently. Since this operation can be 'typical', it should proceed with good performance. This can be accomplished by eliminating the Check Condition after the READ (the actual number of bytes transfered can be determined from the initiators transfer counter). The SILI bit, however, can not be used to accomplish this, because the SILI bit suppresses overlengths (actual block length greater than the transfer length). Overlengths must be detected and reported to the application. (SILI bit effectively 'ignores' overlengths - they are NOT detected). In addition, the initiator may not have space for a buffer of the largest possible block size on the target, and the initiator may not want to consume more SCSI bus time if the data block on the target is longer than expected. Hence, the need to cap transfer length, allow good performance on underlength situations (by eliminating the Check Condition AND detect overlengths. Proposed Solution: ----------------- Define a new bit in the READ command in CBD byte 1, bit 2. This bit shall be called 'SULI' - Suppress UnderLength Indication. The SULI bit is mutually exclusive with the SILI bit (i.e., only one bit shall be on). If the SULI bit is one, the target shall not return CHECK CONDITION status if the only error is that the actual block length is less than the transfer length. (If the actual block length is greater than the transfer length, with no other errors, the target shall return CHECK CONDITION status and the ILI and valid bits shall be set to one in the sense data). The SULI bit option is only valid when the FIXED bit is zero.