[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