SCSI contingent allegiance condition
Encyclopedia
On a computer SCSI
connection, a contingent allegiance condition occurs while a SCSI device reports an error.
SCSI communication takes place between an initiator
and a target. The initiator sends a command
to the target which then responds. At the end of the command the target returns a Status Code
byte which is usually 0 for success, 2 for a Check Condition (error), or 8 for busy.
When the target returns a Check Condition in response to a command, the initiator usually then issues a SCSI Request Sense command
in order to obtain more information. During the time between the reporting of a Check Condition and the issuing of the Request Sense command, the target is in the special state called the contingent allegiance condition.
The events that can cause a target to enter the contingent allegiance condition are
The events that can cause a target to exit the contingent allegiance condition are
When a target enters the extended contingent allegiance condition it will send an Initiate Recovery message to the initiator.
The SCSI events that can cause a target to exit the extended contingent allegiance condition are
SCSI
Small Computer System Interface is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standards define commands, protocols, and electrical and optical interfaces. SCSI is most commonly used for hard disks and tape drives, but it...
connection, a contingent allegiance condition occurs while a SCSI device reports an error.
SCSI communication takes place between an initiator
SCSI initiator
In computer data storage, a SCSI initiator is the endpoint that initiates a SCSI session, that is, sends a SCSI command. The initiator usually does not provide any Logical Unit Numbers ....
and a target. The initiator sends a command
SCSI command
In SCSI computer storage, a command is the basic unit of communication. The SCSI command architecture was originally defined for parallel SCSI buses but has been carried forward with minimal change for use with Fibre Channel, iSCSI and Serial Attached SCSI....
to the target which then responds. At the end of the command the target returns a Status Code
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:...
byte which is usually 0 for success, 2 for a Check Condition (error), or 8 for busy.
When the target returns a Check Condition in response to a command, the initiator usually then issues a SCSI Request Sense command
SCSI Request Sense Command
The SCSI Request Sense command is used to obtain sense data from a target device.The CDB structure is:The response is a set of SCSI sense data which is structured as follows:...
in order to obtain more information. During the time between the reporting of a Check Condition and the issuing of the Request Sense command, the target is in the special state called the contingent allegiance condition.
Details
While a target is in a contingent allegiance condition it must retain the sense information that relates to the error that caused it to enter that condition. This can be a complex issue in configurations which contain more than one initiator. A well-designed target may be able to maintain sense data for one initiator while servicing commands from another initiator. If a check condition then needs to be reported to a second or third initiator then this may become prohibitively difficult. The SCSI definition of the contingent allegiance condition allows the target to use the busy response to incoming commands and to suspend servicing of any recent commands that are still in its execution queue.The events that can cause a target to enter the contingent allegiance condition are
- Target responds to a SCSI command with a check condition 02h
- Target responds to a SCSI command with command terminated 22h
- An unexpected disconnect
The events that can cause a target to exit the contingent allegiance condition are
- Target receives a hard reset
- Target receives an abort message
- Target receives a bus device reset message
- Target receives any command from the relevant initiator
Extended contingent allegiance condition
When the target needs to perform a long error-recovery procedure (typically one that lasts more than one second) it can enter the extended contingent allegiance condition. This may be necessary in high performance systems or in cases where there is a danger that initiator may reset the target after a short timeout interval, thereby aborting the error-recovery procedure. As in the contingent allegiance condition, the target is allowed to use the busy response to incoming commands and to suspend servicing of any recent commands that are still in its execution queue.When a target enters the extended contingent allegiance condition it will send an Initiate Recovery message to the initiator.
The SCSI events that can cause a target to exit the extended contingent allegiance condition are
- Target receives a Bus Device Reset
- Target receives a hard reset
- Target receives a Release Recovery message from the relevant initiator