Subject: Re: multicast group memberships purge on interface delete

From: jamal <[email-masked]>
Date: Wed, 23 Aug 2006 08:32:11 -0400

On Wed, 2006-23-08 at 13:08 +0200, Michal Ruzicka wrote:

> My question/suggestion:
> Would it feasible to drop the relevant entries from sockets' multicast 
> membership lists on the interface
> delete? Yes, I do realize it would require to walk through a number of 
> sockets to see if there is any
> multicast entry for the interface in question to delete. But this could be 
> optimized by maintaining a list
> of sockets that have a multicast group joined on the interface (and keep a 
> pointer to this list in the
> device structure). This would ease the job of the function handling leaving 
> multicast groups, made
> its beahaviour more "deterministic" and possible errors reported by it more 
> meaningful/reliable.
> 

You should be able to "fix it" in the kernel by listening to events of
the interface/device disappearing. By "disappearing" i think you meant
the netdevice was totally rmmod-ed? The challenge is to make the app
also aware of you taking away the group from underneath them (thats why
i said "fix it")

These events are also available in user space via netlink. so an alter
your app could listen to them and make the group leaves instead of the
kernel.

cheers,
jamal