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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 07, 2020 at 12:56:14PM +0300, Nikolay Aleksandrov wrote:
> This patch adds handling for the ALLOW_NEW_SOURCES IGMPv3/MLDv2 report
> types and limits them only when multicast_igmp_version == 3 or
> multicast_mld_version == 2 respectively. Now that IGMPv3/MLDv2 handling
> functions will be managing timers we need to delay their activation, thus
> a new argument is added which controls if the timer should be updated.
> We also disable host IGMPv3/MLDv2 handling as it's not yet implemented and
> could cause inconsistent group state, the host can only join a group as
> EXCLUDE {} or leave it.
> 
> v4: rename update_timer to igmpv2_mldv1 and use the passed value from
>     br_multicast_add_group's callers
> v3: Add IPv6/MLDv2 support
> 
> Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
> ---
>  net/bridge/br_multicast.c | 152 ++++++++++++++++++++++++++++++++------
>  net/bridge/br_private.h   |   7 ++
>  2 files changed, 137 insertions(+), 22 deletions(-)
> 
> diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
> index ba2ce875a80e..98600a08114e 100644
> --- a/net/bridge/br_multicast.c
> +++ b/net/bridge/br_multicast.c
> @@ -787,7 +787,8 @@ static int br_multicast_add_group(struct net_bridge *br,
>  				  struct net_bridge_port *port,
>  				  struct br_ip *group,
>  				  const unsigned char *src,
> -				  u8 filter_mode)
> +				  u8 filter_mode,
> +				  bool igmpv2_mldv1)
>  {
>  	struct net_bridge_port_group __rcu **pp;
>  	struct net_bridge_port_group *p;
> @@ -826,7 +827,8 @@ static int br_multicast_add_group(struct net_bridge *br,
>  	br_mdb_notify(br->dev, mp, p, RTM_NEWMDB);
>  
>  found:
> -	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" ?

Thanks
Hangbin



[Index of Archives]     [Netdev]     [AoE Tools]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux