[openib-general] Solicited response with no matching send request
Hal Rosenstock
halr at voltaire.com
Mon Nov 15 13:56:06 PST 2004
On Mon, 2004-11-15 at 16:36, Sean Hefty wrote:
> Hal Rosenstock wrote:
>
> > After Roland's query this AM, I am looking at this some more:
> >
> > On Wed, 2004-11-10 at 13:43, Sean Hefty wrote:
> >
> >>The second case where I can see this happening is if the client canceled
> >>the send, and I'm not sure that we'd want to give the client an
> >>unmatched response in this case.
> >
> >
> > So do we just keep the cancel around for some time period to make sure
> > this doesn't occur ? If so, should cancel also have its own timeout or
> > should some arbitrary timeout be used to handle this case ?
>
> 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 ?
> 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.
> For solicited (response) MADs, I have a hard time seeing why a client
> would ever want an unmatched MAD, unless they're trying to duplicate MAD
> layer functionality higher in the stack.
Yes, I too would view this as a duplication of MAD layer services.
> 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.
> For the sourceforge stack, we handled this by defining "raw" MAD
> services that did nothing other than send/receive MADs. Clients using a
> raw service were responsible for performing RMPP, request/response
> matching, and handling timeouts. This worked, but the MAD layer still
> needed to route received MADs to the correct client.
Yes, but there are two types of routing: TID based and
version/class/method based.
-- Hal
More information about the general
mailing list