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
