Request Sense

Gerry Houlder Gerry_Houlder at
Thu Oct 19 08:20:04 PDT 1995

Skip is correct in his recollections about SCSI-1. The 1985 version of SCSI did 
require that 4 data bytes be returned when the allocation length is zero. The 
SCSI-2 standard changed this to return 0 bytes in this instance, and this 
difference was one of the few items called out in Change Definition command as 
something to be changed when a device is told to change from SCSI-2 mode to 
SCSI-1 mode.

Both standards always stated that, after CHECK is reported, the next command 
|from the same initiator results in the sense data being cleared. This applies 
even when the sense data isn't returned to the initiator. Some early 
implementations chose to retain the sense data until a command other than 
Request Sense was received. The idea behind this was to allow the initiator to 
read the sense data as many times as it wanted (just so it could be sure the 
target meant what it said the first time, or to allow the initiator to request 
a longer length the next time). This was always considered to be a customer 
unique "improvement" of the standard, however.

IN SUMMARY: the technically correct method is to clear the sense bytes when a 
Request Sense command with a length of 0 is received. The politically correct 
method, however, is to do it the way the buyer wants. Which question were you 
really asking?

More information about the T10 mailing list