> Illegal multicast address can be handed for IPoIB from userspace. For example
 > the command ip maddr add 33:33:00:00:00:01 dev ib0 injects an illegal 
 > muticast
 > address to IPoIB that will start a join task for this address. However, 
 > whenever
 > an illegal multicast address is passed to IPoIB it stops all subsequent
 > requests from join attempts. That happens because IPoIB joins to multicast
 > addresses in the order they arrived and doesn't handle the next address 
 > until the 
 > current address join finishes with success. 
 > 
 > This patch moves the multicast address to the end of the list after a join 
 > attempt.
 > Even if the join fails the next attempt will be with a different address.
 > 
 > Signed-off-by: Moni Shoua <mo...@voltaire.com>

Was a consensus ever reached on this patch?

 > -    if (test_bit(IPOIB_MCAST_RUN, &priv->flags))
 > -            queue_delayed_work(ipoib_workqueue, &priv->mcast_task,
 > -                               mcast->backoff * HZ);
 > +    if (test_bit(IPOIB_MCAST_RUN, &priv->flags)) {
 > +            list_for_each_entry(next_mcast, &priv->multicast_list, list) {
 > +                    if (!test_bit(IPOIB_MCAST_FLAG_SENDONLY, 
 > &next_mcast->flags)
 > +                        && !test_bit(IPOIB_MCAST_FLAG_BUSY, 
 > &next_mcast->flags)
 > +                        && !test_bit(IPOIB_MCAST_FLAG_ATTACHED, 
 > &next_mcast->flags))
 > +                            break;
 > +            }
 > +            if (&next_mcast->list != &priv->multicast_list)
 > +                    queue_delayed_work(ipoib_workqueue, &priv->mcast_task,
 > +                            next_mcast->backoff * HZ);
 > +    }

I have to admit this duplicated loop doesn't look that attractive to
me... maybe factor it out into a helper or something?

 - R.
_______________________________________________
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to