[Converted to WordStar format by J. Lohmeyer 10/19/87] To: John Lohmeyer, Chairman X3T9.2 From: Dan Davies Subj: Sequential Access Buffered Mode Two Buffered Mode Two is intended for multiple-initiator systems that require independent recovery paths for write error processing. Buffered mode one allows the target to buffer any number of blocks from any number of initiators. The first initiator to discover a deferred write error is responsible for the entire error recovery procedure, regardless of that initiator's affiliation with the unwritten data. With buffered mode two, the target is allowed to buffer any number of blocks from any single initiator. If a new initiator issues a write command while write data remains in the buffer for a different initiator, the target will synchronize the buffer before accepting any data from the new initiator. This prevents any mixing of data in the buffer and allows the target to preserve any buffered data for the "owning" initiator. 1) Buffered Mode Two MODE SELECT/MODE SENSE wording. Add the following wording to the MODE SELECT command on page 9-10 and to the MODE SENSE command on page 9-28: " 2h The target may report GOOD status on a WRITE command as soon as the data block has been successfully transferred to the target's buffer. One or more blocks may be buffered from any one initiator prior to writing the block(s) to the medium. If an initiator issues a WRITE command while the buffer contains write data from a different initiator, the target shall write any buffered data to the medium before accepting any data from the new initiator." 2) Deferred Write Error Reporting/Recovery. Add the following new section to the WRITE command on page 9-48: " 9.1.17.1 Deferred Write Errors A deferred write error condition occurs when the target detects an error has occurred on a buffered write command that previously reported GOOD status. This condition shall persist until the error is reported and error recovery (if any) is completed. A BUS DEVICE RESET message or a hard reset condition shall also clear the deferred error condition. " " If the deferred write error occurs in buffered mode one, the error shall be reported to the first initiator issuing a command (other than INQUIRY or REQUEST SENSE) or the first initiator to respond to Asynchronous Event Notification (if supported). All other initiators shall receive BUSY status until the deferred error condition is cleared. If the deferred write error occurs in buffered mode two, the error will be reported to the initiator with unwritten data in the buffer. All other initiators shall receive BUSY status until the deferred error condition is cleared. If the error is reported using Asynchronous Event Notification, the target shall send the INITIATE RECOVERY MODE message after successfully transferring the IDENTIFY message for the SEND command. If this message is successfully transferred, all other initiators shall receive BUSY status until the deferred error condition is cleared by a RELEASE RECOVERY MODE message from the initiator receiving the INITIATE RECOVERY MODE message. If Asynchronous Event Notification is not supported, the target shall send the INITIATE RECOVERY MODE message immediately after successfully transferring the CHECK CONDITION status for the command receiving the deferred error indication. If this message is successfully transferred, all other initiators shall receive BUSY status until the deferred error condition is cleared by a RELEASE RECOVERY MODE message from the initiator receiving the INITIATE RECOVERY MODE message. The deferred error condition shall also be cleared if the initiator rejects the INITIATE RECOVERY MODE message, a BUS DEVICE RESET message is received from any initiator, or a hard reset condition is detected at the target. "