in efawin/verbs.c [312:341]
static enum ibv_wc_status to_ibv_status(enum efa_io_comp_status status)
{
switch (status) {
case EFA_IO_COMP_STATUS_OK:
return IBV_WC_SUCCESS;
case EFA_IO_COMP_STATUS_FLUSHED:
return IBV_WC_WR_FLUSH_ERR;
case EFA_IO_COMP_STATUS_LOCAL_ERROR_QP_INTERNAL_ERROR:
case EFA_IO_COMP_STATUS_LOCAL_ERROR_INVALID_OP_TYPE:
case EFA_IO_COMP_STATUS_LOCAL_ERROR_INVALID_AH:
return IBV_WC_LOC_QP_OP_ERR;
case EFA_IO_COMP_STATUS_LOCAL_ERROR_INVALID_LKEY:
return IBV_WC_LOC_PROT_ERR;
case EFA_IO_COMP_STATUS_LOCAL_ERROR_BAD_LENGTH:
return IBV_WC_LOC_LEN_ERR;
case EFA_IO_COMP_STATUS_REMOTE_ERROR_ABORT:
return IBV_WC_REM_ABORT_ERR;
case EFA_IO_COMP_STATUS_REMOTE_ERROR_RNR:
return IBV_WC_RNR_RETRY_EXC_ERR;
case EFA_IO_COMP_STATUS_REMOTE_ERROR_BAD_DEST_QPN:
return IBV_WC_REM_INV_RD_REQ_ERR;
case EFA_IO_COMP_STATUS_REMOTE_ERROR_BAD_STATUS:
return IBV_WC_BAD_RESP_ERR;
case EFA_IO_COMP_STATUS_REMOTE_ERROR_BAD_LENGTH:
return IBV_WC_REM_INV_REQ_ERR;
case EFA_IO_COMP_STATUS_REMOTE_ERROR_BAD_ADDRESS:
default:
return IBV_WC_GENERAL_ERR;
}
}