Thread (22 messages) 22 messages, 6 authors, 2021-10-16

Re: [PATCH net-next v4 10/15] net: bridge: mcast: support for IGMPv3/MLDv2 ALLOW_NEW_SOURCES report

From: Nikolay Aleksandrov <hidden>
Date: 2021-10-15 08:57:20
Also in: bridge

On 15/10/2021 09:36, Hangbin Liu wrote:
On Fri, Oct 15, 2021 at 10:52:00AM +0800, Hangbin Liu wrote:
quoted
quoted
-	mod_timer(&p->timer, now + br->multicast_membership_interval);
+	if (igmpv2_mldv1)
+		mod_timer(&p->timer, now + br->multicast_membership_interval);
Hi Nikolay,

Our engineer found that the multicast_membership_interval will not work with
IGMPv3. Is it intend as you said "IGMPv3/MLDv2 handling is not yet
implemented" ?
Ah, I saw in br_multicast_group_expired() it wait for mp->ports be freed
before delete the mdb entry.

And in br_multicast_port_group_expired() it wait for src entry freed first.

But when mod group src timer, we use
__grp_src_mod_timer(ent, now + br_multicast_gmi(brmctx));

instead of user configured multicast_membership_interval. I think we should
fix it. WDYT?

Thanks
Hangbin
Hi,
I did that intentionally because of how RFC 3376 defines the GMI:
" 8.4. Group Membership Interval

   The Group Membership Interval is the amount of time that must pass
   before a multicast router decides there are no more members of a
   group or a particular source on a network.

   This value MUST be ((the Robustness Variable) times (the Query
   Interval)) plus (one Query Response Interval)."

So it is computed properly and the RFC says "MUST" be. The only thing that is not
configurable is the QRV currently, if that is added then the GMI will be automatically
correctly computed as per the RFC. I get the inconsistency though as we don't compute all
timers as the RFC mandates, I'm inclined to revert the GMI computation as it was before
and possibly fix how all timers are computed in the future as that may require more work.
In addition this could've changed user-expected behaviour when switching to v3 queries which
were supported before IGMPv3 was added, so yeah going forward looks like it'd be better to
switch to the old GMI behaviour. I'll send the patch in a minute.

Thanks,
 Nik



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