Michal, > My question/suggestion: > Would it feasible to drop the relevant entries from sockets' multicast > membership lists on the interface > delete?
Yes, I think this is needed. The original BSD code didn't have this problem because it didn't support removal of a device. I wondered for a while whether an app should care whether the device was removed or not on a "leave", but I think it probably should get ENODEV in that case, just as it would for any invalid interface index, whether or not it used to be valid. So, simply removing the memberships and filters on device destroy looks right to me. I'm not sure that maintaining a per-device socket list is necessary, since removal of a device is relatively unusual, and that may make locking and reference counting more complicated (maybe not). Probably a simple search of all UDP sockets with non-null multicast lists and matching interface index is sufficient. IGMPv3 is there fully, and uses a more efficient way of tracking interface and socket filter intersections and unions than the "obvious" way as suggested by the RFC. I don't think it is affected either way by this. I'll either do or review a patch for this, depending on who gets to it first. :-) +-DLS - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html