[ewg] ib/ipoib: don't drop multicast sends when it can be avoided

Olga Shern olgas at voltaire.com
Wed Apr 30 06:45:48 PDT 2008


Hi Vlad,

 

Please apply the attached patch.

It was applied already in the upstream kernel: 
http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Froland%2Finfiniband.git;
a=commitdiff_plain;h=b3e2749bf32f61e7beb259eb7cfb066d2ec6ad65

 

Patch's description:

 

When set_multicast_list() is called the multicast task is restarted

and the IPOIB_MCAST_STARTED bit is cleared.  As a result for some

window of time, multicast packets are not transmitted nor queued but

rather dropped by ipoib_mcast_send().  These dropped packets are

painful in two cases:

 

 - bonding fail-over which both calls set_multicast_list() on the new

   active slave and sends Gratuitous ARP through that slave.

 

 - IP_DROP_MEMBERSHIP code which both calls set_multicast_list() on the

   device and issues IGMP leave.

 

In both these cases, depending on the scheduling of the IPoIB

multicast task, the packets would be dropped.  As a result, in the

bonding case, the failover would not be detected by the peers until

their neighbour is renewed the neighbour (which takes a few tens of

seconds).  In the IGMP case, the IP router doesn't get an IGMP leave

and would only learn on that from further probes on the group (also a

delay of at least a few tens of seconds).

 

Fix this by allowing transmission (or queuing) depending on the

IPOIB_FLAG_OPER_UP flag instead of the IPOIB_MCAST_STARTED flag.

 

 

Thanks

Olga

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20080430/d631e636/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipoib_0350_mcast_send.patch
Type: application/octet-stream
Size: 2231 bytes
Desc: ipoib_0350_mcast_send.patch
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20080430/d631e636/attachment.obj>


More information about the ewg mailing list