When executing an I/O request many things may go wrong. The reason of error can be
reported in the CCB status with great detail. Examples of use are spread throughout this
document. For completeness here is the summary of recommended responses for the typical
error conditions:
-
CAM_RESRC_UNAVAIL - some
resource is temporarily unavailable and the SIM driver cannot generate an event when it
will become available. An example of this resource would be some intra-controller
hardware resource for which the controller does not generate an interrupt when it becomes
available.
-
CAM_UNCOR_PARITY - unrecovered
parity error occurred
-
CAM_DATA_RUN_ERR - data overrun
or unexpected data phase (going in other direction than specified in CAM_DIR_MASK) or odd
transfer length for wide transfer
-
CAM_SEL_TIMEOUT - selection
timeout occurred (target does not respond)
-
CAM_CMD_TIMEOUT - command
timeout occurred (the timeout function ran)
-
CAM_SCSI_STATUS_ERROR - the
device returned error
-
CAM_AUTOSENSE_FAIL - the device
returned error and the REQUEST SENSE COMMAND failed
-
CAM_MSG_REJECT_REC - MESSAGE
REJECT message was received
-
CAM_SCSI_BUS_RESET - received
SCSI bus reset
-
CAM_REQ_CMP_ERR - ``impossible''
SCSI phase occurred or something else as weird or just a generic error if further detail
is not available
-
CAM_UNEXP_BUSFREE - unexpected
disconnect occurred
-
CAM_BDR_SENT - BUS DEVICE RESET
message was sent to the target
-
CAM_UNREC_HBA_ERROR -
unrecoverable Host Bus Adapter Error
-
CAM_REQ_TOO_BIG - the request
was too large for this controller
-
CAM_REQUEUE_REQ - this request
should be re-queued to preserve transaction ordering. This typically occurs when the SIM
recognizes an error that should freeze the queue and must place other queued requests for
the target at the sim level back into the XPT queue. Typical cases of such errors are
selection timeouts, command timeouts and other like conditions. In such cases the
troublesome command returns the status indicating the error, the and the other commands
which have not be sent to the bus yet get re-queued.
-
CAM_LUN_INVALID - the LUN ID in
the request is not supported by the SCSI controller
-
CAM_TID_INVALID - the target ID
in the request is not supported by the SCSI controller