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

Reply via email to