mbox series

[PATCHv2,net,0/2] multicast: init as INCLUDE when join SSM INCLUDE group

Message ID 1531233687-28744-1-git-send-email-liuhangbin@gmail.com
Headers show
Series multicast: init as INCLUDE when join SSM INCLUDE group | expand

Message

Hangbin Liu July 10, 2018, 2:41 p.m. UTC
Based on RFC3376 5.1 and RFC3810 6.1, we should init as INCLUDE when join SSM
INCLUDE group. In my first version I only clear the group change record. But
this is not enough as when a new group join, it will init as EXCLUDE and
trigger an filter mode change in ip/ip6_mc_add_src(), which will clear all
source addresses' sf_crcount. This will prevent early joined address sending
state change records if multi source addresses joined at the same time.

In this v2 patchset, I fixed it by directly initializing the mode to INCLUDE
for SSM JOIN_SOURCE_GROUP. I also split the original patch into two separated
patches for IPv4 and IPv6.

Test: test by myself and customer.

Hangbin Liu (2):
  ipv4/igmp: init group mode as INCLUDE when join source group
  ipv6/mcast: init as INCLUDE when join SSM INCLUDE group

 include/linux/igmp.h     |  2 ++
 include/net/ipv6.h       |  2 ++
 net/ipv4/igmp.c          | 58 +++++++++++++++++++++++++++++++------------
 net/ipv4/ip_sockglue.c   |  4 +--
 net/ipv6/ipv6_sockglue.c |  5 ++--
 net/ipv6/mcast.c         | 64 ++++++++++++++++++++++++++++++++++--------------
 6 files changed, 96 insertions(+), 39 deletions(-)

Comments

David Miller July 16, 2018, 6:20 p.m. UTC | #1
From: Hangbin Liu <liuhangbin@gmail.com>
Date: Tue, 10 Jul 2018 22:41:25 +0800

> Based on RFC3376 5.1 and RFC3810 6.1, we should init as INCLUDE when join SSM
> INCLUDE group. In my first version I only clear the group change record. But
> this is not enough as when a new group join, it will init as EXCLUDE and
> trigger an filter mode change in ip/ip6_mc_add_src(), which will clear all
> source addresses' sf_crcount. This will prevent early joined address sending
> state change records if multi source addresses joined at the same time.
> 
> In this v2 patchset, I fixed it by directly initializing the mode to INCLUDE
> for SSM JOIN_SOURCE_GROUP. I also split the original patch into two separated
> patches for IPv4 and IPv6.
> 
> Test: test by myself and customer.

Series applied, thanks!