Sean Hefty wrote:
Steve,

I'm looking at rdma_create_qp() in librdmacm.  There's a section of code in
there:

if (id->ps == RDMA_PS_UDP)
        ret = ucma_init_ud_qp(id_priv, qp);
else
        ret = ucma_init_ib_qp(id_priv, qp);

Both of these calls transition the QP to INIT, so that the user can post
receives before trying to establish a connection.  iWarp is handled the same as
IB, which confuses me, since it is treated differently in the kernel.  I'm
assuming that the librdmacm works for you over iWarp, but I'd like to understand
this better.


The actual work for setting init-state qp attributes and moving the qp to INIT state is done in the kernel CMA modules. Thus librdmacm doesn't need to do anything specific for iwarp in user mode. It calls into the kernel and the ucma module ends up calling the kernel rdma_init_qp_attr() which does the switch on the transport type.

The design goal when Tom added iwarp into librdmacm was minimal impact to the existing code. So there is very little code in librdmacm that switches on the transport type...

Steve.
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to