Michael S. Tsirkin wrote:
Quoting r. Or Gerlitz <[EMAIL PROTECTED]>:
The design of the CMA say that if the ULP wants the CMA to do the QP
states transitions it should call rdma_create_qp and later the CMA will
not deliver up event of REP but instead modify the QP state to RTR, RTS
and send an RTU. And vise versa, if the ULP want to get a callback on
REP it should ***not*** call rdma_create_qp and rather do the state
changes by itself.
I think you are mistaken. Here's code from cma.c
case IB_CM_REP_RECEIVED:
if (id_priv->id.qp) {
status = cma_rep_recv(id_priv);
event = status ? RDMA_CM_EVENT_CONNECT_ERROR :
RDMA_CM_EVENT_ESTABLISHED;
} else
event = RDMA_CM_EVENT_CONNECT_RESPONSE;
So CMA passes the REP to the ULP as inside RDMA_CM_EVENT_ESTABLISHED event.
no no, see the code or my parsing of it for you below.
If the ULP has created a QP via the CMA then the CMA will send RTU and
deliver up ESTABLISHED event, else the CMA will deliver up
CONNECT_RESPONSE event and only later when the ULP calls rdma_accept the
CMA will send the RTU.
Or.
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general