On Wed, Jun 25, 2014 at 11:51:41PM +0300, Or Gerlitz wrote:
 
> The rdma-cm doesn't do any flipping, it just provides the relevant IB
> CM call with the params as given by the application, see

Sure, that is what I mean. The IB spec has a protocol for negotiating
responder resources. I outlined how it works in a prior email. 

IB CM and RDMA CM both push responsibility to implement the protocol
to the app.

The app needs to be aware of the flipped names when it implements it.

Otherwise the flipped names don't matter, if you dig into it enough
you can figure out what value from the IB CMA defined MAD ends up in
what structure member during the app callback, for every callback.

If you implement an app that uses responder resources, and doesn't
implement the IB defined negotation protocol then it is broken.

The most common thing that needs to be done is to limit things to HW
capability, and to use values that reflect the apps use of the QP (eg
0 if no RRs are used in a direction). The spec has all the details.

For your immediate case, I suspect the path you need to follow is to
implement the negotiation protocol, then you can have your client
stuff in 0 for initiator_depth and when the protocol is followed the
server will avoid allocating any RRs.

To that end the confusing swapping of the labels is just confusing,
you can still implement the protocol properly. 

Bonus points if you can add some kind of core code support to
implement the protocol in common code based on both sides telling the
core what their initiator depth will be.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to