netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Bridge IGMP snooping question
@ 2014-10-02  8:13 Thomas Martitz
  2014-10-04  4:05 ` Herbert Xu
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Martitz @ 2014-10-02  8:13 UTC (permalink / raw)
  To: herbert, netdev

Hello Linux folks,

I have one question regarding IGMP snooping on bridges, specifically 
about leaving multicast groups.

br_multicast_leave_group() has this check early on:

if (!netif_running(br->dev) ||
         (port && port->state == BR_STATE_DISABLED) ||
         timer_pending(&querier->timer)) /* <- THIS */
                goto out;

I'm wondering why the bridge code prevents group leaves if if the 
querier timer is pending. From my understanding the timer acts as an 
indication whether the local system is the network's querier or not (if 
pending then another router is querier). Therefore this check prevents 
to leave groups if there is another querier.

I'm wondering what's the rationale for this, if any. It seems to be that 
the decision whether an attached client gets mc forwarded is independent 
on whether the local system is querier or not. Git log does not reveal 
the answer as this check is there from the beginning.

PS: This behavior conflicts with something I'm working.

Thank you very much in advance.

Best regards.

^ permalink raw reply	[flat|nested] 3+ messages in thread
* Bridge IGMP snooping question
@ 2014-09-19 18:55 Thomas Martitz
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Martitz @ 2014-09-19 18:55 UTC (permalink / raw)
  To: herbert, netdev

Hello Linux folks,

I have one question regarding IGMP snooping on bridges, specifically 
about leaving multicast groups.

br_multicast_leave_group() has this check early on:

if (!netif_running(br->dev) ||
         (port && port->state == BR_STATE_DISABLED) ||
         timer_pending(&querier->timer)) /* <- THIS */
                goto out;

I'm wondering why the bridge code prevents group leaves if if the 
querier timer is pending. From my understanding the timer acts as an 
indication whether the local system is the network's querier or not (if 
pending then another router is querier). Therefore this check prevents 
to leave groups if there is another querier.

I'm wondering what's the rationale for this, if any. It seems to be that 
the decision whether an attached client gets mc forwarded is independent 
on whether the local system is querier or not. Git log does not reveal 
the answer as this check is there from the beginning.

PS: This behavior conflicts with something I'm working.

Thank you very much in advance.

Best regards.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-10-04  4:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-02  8:13 Bridge IGMP snooping question Thomas Martitz
2014-10-04  4:05 ` Herbert Xu
  -- strict thread matches above, loose matches on Subject: below --
2014-09-19 18:55 Thomas Martitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).