RDMA/iwcm: iWARP connection timeouts shouldn't be reported as rejects
The iWARP CM should report timeouts as event RDMA_CM_EVENT_UNREACHABLE, not event RDMA_CM_EVENT_REJECTED. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
f0938401f2
commit
881a045fc5
|
@ -1088,11 +1088,22 @@ static int cma_iw_handler(struct iw_cm_id *iw_id, struct iw_cm_event *iw_event)
|
||||||
*sin = iw_event->local_addr;
|
*sin = iw_event->local_addr;
|
||||||
sin = (struct sockaddr_in *) &id_priv->id.route.addr.dst_addr;
|
sin = (struct sockaddr_in *) &id_priv->id.route.addr.dst_addr;
|
||||||
*sin = iw_event->remote_addr;
|
*sin = iw_event->remote_addr;
|
||||||
if (iw_event->status)
|
switch (iw_event->status) {
|
||||||
event.event = RDMA_CM_EVENT_REJECTED;
|
case 0:
|
||||||
else
|
|
||||||
event.event = RDMA_CM_EVENT_ESTABLISHED;
|
event.event = RDMA_CM_EVENT_ESTABLISHED;
|
||||||
break;
|
break;
|
||||||
|
case -ECONNRESET:
|
||||||
|
case -ECONNREFUSED:
|
||||||
|
event.event = RDMA_CM_EVENT_REJECTED;
|
||||||
|
break;
|
||||||
|
case -ETIMEDOUT:
|
||||||
|
event.event = RDMA_CM_EVENT_UNREACHABLE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
event.event = RDMA_CM_EVENT_CONNECT_ERROR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case IW_CM_EVENT_ESTABLISHED:
|
case IW_CM_EVENT_ESTABLISHED:
|
||||||
event.event = RDMA_CM_EVENT_ESTABLISHED;
|
event.event = RDMA_CM_EVENT_ESTABLISHED;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue