[openib-general] [RFC] [PATCH 2/7] ib_multicast 2.6.20: add ib_multicast module to track join requests from the same port

Sean Hefty mshefty at ichips.intel.com
Thu Oct 12 10:11:47 PDT 2006


Eitan Zahavi wrote:
> I disagree. If you sniff at the MAD level you can simply react to the 
> lower level messages.

First, when designing this, I did consider using the MAD snooping ability, and 
changing what could be done with snooping.  However, the multicast handling is 
not simply sniffing MADs going out on the wire and incrementing / decrementing 
some count.  It can change or prevent a MAD from being sent.  This is a 
fundamental change to the behavior of the ib_mad APIs.

MADs are sent and tracked by their respective registered ib_mad clients.  Trying 
to push this down into the MAD layer means that the send request from one client 
may now occur on some other client's registration.  If that client decides to 
unregister in the middle of their send, the operation is canceled, and now needs 
to be restarted on some other registration.  And even though the operation was 
canceled, we still need to know whether it was seen by the SA.  This requires 
sniffing all MADs, and quickly gets extremely complex.

In order to avoid issues these with which registered client is actually 
performing the operation, the solution is to filter multicast requests through a 
single registration.  The ib_mad layer is complex enough as it is.  (Have you 
tried tracing a MAD through the send path?)  We don't need to push even more 
functionality down into it.

- Sean




More information about the general mailing list