[openib-general] Solicited response with no matching send request

Sean Hefty mshefty at ichips.intel.com
Mon Nov 15 14:15:50 PST 2004


Hal Rosenstock wrote:

>>My personal take would be to avoid adding that complexity.  E.g. a 
>>client sends a MAD with TID 5, cancels 5, sends 5, cancels 5, sends 5. 
>>A response is now received.  What should the MAD layer do?
>>I don't see issues with silently dropping any MAD that we're not ready 
>>to receive.
> 
> What does "ready to receive" mean in this context ? Does it mean there
> is no matching send if it is a solicited response ?

Meaning that we have a client that has requested to receive a MAD, by 
either asking for an unsolicited MADs via ib_register_mad_agent, or by 
asking for a solicited MAD by sending a request via ib_post_send_mad.

>>  For unsolicited MADs, I don't see a reasonable alternative.
> 
> Not sure what you mean by alternative for unsolicited MADs. For
> unsolicited MADs, there is only the version/class/method based routing.
> If there is no client, the receive is dropped.

Correct - the receive is dropped.  There really isn't an alternative.

>>For user-mode, this may make sense, but I'm not convinced that duplicating the request-response 
>>functionality in user-mode is the best option (versus moving all of RMPP 
>>to user-mode).
> 
> 
> What functionality are you referring to being duplicated ?
> Request/response matching with timeouts ? Wouldn't moving RMPP to user
> mode be a duplication ? There are certain things in the kernel that
> might want to use RMPP.

I'm not suggesting relocating RMPP or request/response matching to 
user-mode, but I would consider duplicating those services in user-mode 
for user-mode clients if there was a strong enough reason.

> Yes, but there are two types of routing: TID based and
> version/class/method based.

Correct, and we're talking mainly about TID based routing in this case. 
  I guess my view is that I don't think that the code should trust 
anything that comes off the wire.  If we receive a MAD that results in 
TID based routing that doesn't match with an existing request, then 
dropping it seems like the safest solution.

If we want to route the MAD to the corresponding agent, however, we can 
do that.  But doing this only seems useful if a client is duplicating 
functionality, which only makes sense to me for user-mode clients.

- Sean




More information about the general mailing list