should kernel IGMP rejoin on link up ?

From: Simon Paillard <hidden>
Date: 2012-09-04 13:04:36

Hello,

Here is a scenario where IMO the kernel is not doing the job, where a host
running linux kernel is connected to a switch with igmp snooping enabled:
- nominal case: an interface is member of a multicast group, reports are
  performed 
- failure of link (like cable disconnected)
- the switch flushes the multicast membership for that port
- link is back
- kernel waits for switch query to report membership

-> The application miss packets until next General Query (default value in RFC:
125 seconds)

I cannot find in IGMPv2 RFC a specification of the behaviour to follow in such
a case, but :
- having a very little query interval would affect all the network, and polling
  is not a clean way. 
- it's imo not the application job to check for link failure and issue again
  joins

So I wonder if the kernel should rejoin when interface link flag is up
(ip_mc_rejoin_groups() is already used by bonding code when a new interface is
up).

The next question, if you agree that should be the kernel job, is where the fix
should be located.

Thanks.

PS: I know little about MLD in IPv6, I didn't see in bonding code something
related to MLD, but I guess the same question applies.

(Please CC me on replies)

-- 
Simon Paillard
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help