[openib-general] MAD handling
Roland Dreier
roland at topspin.com
Sun Nov 14 21:25:05 PST 2004
A few questions about MAD handling:
- What is supposed to happen to MADs that are received and are
considered "solicited" because they have a method like GetResp, but
which don't match any outstanding sends? Right now it looks as if
they will be silently dropped in find_mad_agent(). Unfortunately
this doesn't work very well with the current user_mad.c stuff -- I
post all sends with a timeout of 0 and expect userspace to register
an agent to get responses.
I could have user_mad.c use timeouts, but then we need to come up
with a way for the timeouts to be passed up to userspace. I'd sort
of prefer to let userspace handle its own timeouts, although I could
be persuaded otherwise.
- It looks as if the case of response DR SMPs going to the SM is not
handled in smi.c. smi_check_forward_dr_smp() doesn't handle the
case of hop_ptr == 0, and smi_handle_dr_smp_send() just says
/* C14-13:4 -- hop_ptr = 0 -> should have gone to SM. */
and returns 0, which will lead to the packet being dropped. How
should this be fixed?
- Also, if I'm reading the code correctly, it seems that in
handle_outgoing_smp, mad_priv->mad will be dispatched even if no
response was generated by the call to process_mad (ie we might pass
garbage to the receive handler).
Thanks,
Roland
More information about the general
mailing list