Merge branch 'multicast-init-as-INCLUDE-when-join-SSM-INCLUDE-group'
authorDavid S. Miller <davem@davemloft.net>
Mon, 16 Jul 2018 18:20:07 +0000 (11:20 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Jul 2018 18:20:07 +0000 (11:20 -0700)
commit8e05fd839ddf15dca8500f6f581766d4982c135e
tree03f7f2ef2a2c6057038292eadf567eda876f3991
parent6bed5e260709897cf918ca262b8e68a17227ec4b
parentc7ea20c9da5b94e400c8dcc0adb99411f2e430a6
Merge branch 'multicast-init-as-INCLUDE-when-join-SSM-INCLUDE-group'

Hangbin Liu says:

====================
multicast: init as INCLUDE when join SSM INCLUDE group

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.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>