On Mon, 7 Sep 2020 12:56:04 +0300 Nikolay Aleksandrov wrote: > Hi all, > This patch-set implements the control plane for initial IGMPv3/MLDv2 > support which takes care of include/exclude sets and state transitions > based on the different report types. > Patch 01 arranges the structure better by moving the frequently used > fields together, patch 02 factors out the port group deletion code which is > used in a few places. Patches 03 and 04 add support for source lists and > group modes per port group which are dumped. Patch 05 adds support for > group-and-source specific queries required for IGMPv3/MLDv2. Then patch 06 > adds support for group and group-and-source query retransmissions via a new > rexmit timer. Patches 07 and 08 make use of the already present mdb fill > functions when sending notifications so we can have the full mdb entries' > state filled in (with sources, mode etc). Patch 09 takes care of port group > expiration, it switches the group mode to include and deletes it if there > are no sources with active timers. Patches 10-13 are the core changes which > add support for IGMPv3/MLDv2 reports and handle the source list set > operations as per RFCs 3376 and 3810, all IGMPv3/MLDv2 report types with > their transitions should be supported after these patches. I've used RFCs > 3376, 3810 and FRR as a reference implementation. The source lists are > capped at 32 entries, we can remove that limitation at a later point which > would require a better data structure to hold them. IGMPv3 processing is > hidden behind the bridge's multicast_igmp_version option which must be set > to 3 in order to enable it. MLDv2 processing is hidden behind the bridge's > multicast_mld_version which must be set to 2 in order to enable it. > Patch 14 improves other querier processing a bit (more about this below). > And finally patch 15 transforms the src gc so it can be used with all mcast > objects since now we have multiple timers that can be running and we > need to make sure they have all finished before freeing the objects. > This is part 1, it only adds control plane support and doesn't change > the fast path. A following patch-set will take care of that. Applied thank you.