FreeBSD Architecture Handbook
Prev | Chapter 12 Common Access Method SCSI Controllers | Next

# 12.6 Errors Summary

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

Prev | Home | Next
Interrupts | Up | Timeout Handling