[openib-general] [PATCH] [CMA] [RFC] add routine to transition a QP to INIT state
Sean Hefty
mshefty at ichips.intel.com
Wed Sep 28 10:32:07 PDT 2005
James Lentini wrote:
>>+int rdma_cma_init_qp(struct rdma_cma_id *cma_id, struct ib_qp *qp,
>>+ int qp_access_flags);
>>+
>
> How will the qp_accesss_flags be implemented in a transport neutral
> way? If iWARP doesn't support the ib_access_flags values, a transport
> nuetral consumer can't pass them here.
Bah... my bad. I assumed that iWarp had these same flags. The issue is that IB
needs these flags when transitioning the QP to the INIT state, but doesn't know
how to set them until it knows the initiator_depth and responder_resources.
These values aren't supplied until connect() or accept() is called.
One possibility is to provide a CONNECT_PENDING callback to notify the user that
a connection request is ready to complete. Users may post receives to the QP
from this callback. With this callback, the CMA would be responsible for
transitioning the QP to the INIT state. The disadvantage is that the user would
receive two callbacks trying to establish a connection, rather than one.
> Can we remove the need for a consumer to call rdma_cma_init_qp all
> together? Can we create a QP and move it to the init state when the
> consumer creates their rdma_cma_id?
This is a possibility. I was wanting to allow the user to manage their own list
of QPs, but I guess this is still possible with this change. There's still the
issue that the access flags aren't known however. I need to think about this
more. What do others think?
- Sean
More information about the general
mailing list