SCSI Status Code

A SCSI Status Code is used to determine the success or failure of a SCSI command. At the end of any command, the target returns a Status Code byte which should be one of the following:

02h Check condition

When the target returns a Check Condition in response to a command it is indicating that it has entered a contingent allegiance condition. This means that an error occurred when it attempted to execute a SCSI command. The initiator usually then issues a SCSI Request Sense command in order to obtain a Key Code Qualifier (KCQ) from the target.

04h Condition met

This status code is returned on successful completion of a Search Data command or a Pre-fetch Command.

08h Busy

The target returns Busy if it cannot complete a command at that time, for example if it is in the contingent allegiance condition.

10h Intermediate

The target returns Intermediate when it successfully completes a linked command.

14h Intermediate - Condition met

As the name suggests, this is simply a combination of 10h Intermediate and 04h Condition met.

18h Reservation conflict

The target returns this status if an initiator attempts to access a LUN that has been previously reserved by another initiator using the Reserve or Reserve Unit command.

22h Command terminated

The target returns this status if the target has to terminate the current I/O process because it received a Terminate I/O Process message. This status also indicates that a contingent allegiance condition has occurred.

28h Queue (task set) full

Similar to 08h Busy status.

References

SAM-4 clause 5.3.1