Hangbin Liu a052517a8f net/multicast: should not send source list records when have filter mode change
Based on RFC3376 5.1 and RFC3810 6.1

   If the per-interface listening change that triggers the new report is
   a filter mode change, then the next [Robustness Variable] State
   Change Reports will include a Filter Mode Change Record.  This
   applies even if any number of source list changes occur in that
   period.

   Old State         New State         State Change Record Sent
   ---------         ---------         ------------------------
   INCLUDE (A)       EXCLUDE (B)       TO_EX (B)
   EXCLUDE (A)       INCLUDE (B)       TO_IN (B)

So we should not send source-list change if there is a filter-mode change.

Here are two scenarios:
1. Group deleted and filter mode is EXCLUDE, which means we need send a
   TO_IN { }.
2. Not group deleted, but has pcm->crcount, which means we need send a
   normal filter-mode-change.

At the same time, if the type is ALLOW or BLOCK, and have psf->sf_crcount,
we stop add records and decrease sf_crcount directly

Reference: https://www.ietf.org/mail-archive/web/magma/current/msg01274.html

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-08-08 16:04:39 -07:00
..
2016-06-15 21:40:00 -07:00
2015-08-25 13:37:31 -07:00
2016-06-27 15:06:17 -04:00
2015-05-28 11:23:20 +08:00
2016-06-08 11:36:02 -07:00
2016-07-05 14:09:23 -07:00
2016-06-15 22:15:21 -07:00
2016-05-20 18:03:17 -04:00
2016-05-31 14:07:49 -07:00
2016-06-15 20:41:23 -07:00
2016-04-27 22:48:24 -04:00
2016-07-09 17:45:56 -04:00
2016-06-27 15:06:17 -04:00
2015-02-28 16:56:51 -05:00
2015-11-03 10:52:13 -05:00
2014-05-23 16:28:53 -04:00