amt: add multicast(IGMP) report message handler
authorTaehee Yoo <ap420073@gmail.com>
Sun, 31 Oct 2021 16:00:04 +0000 (16:00 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Nov 2021 13:36:08 +0000 (13:36 +0000)
commitbc54e49c140b7bf95e7290849e26b0427779f4de
tree1d5b8929a507c7b13eda8d58164614bd64b41740
parentcbc21dc1cfe949e37b2a54c71511579f1899e8d4
amt: add multicast(IGMP) report message handler

amt 'Relay' interface manages multicast groups(igmp/mld) and sources.
In order to manage, it should have the function to parse igmp/mld
report messages. So, this adds the logic for parsing igmp report messages
and saves them on their own data structure.

   struct amt_group_node means one group(igmp/mld).
   struct amt_source_node means one source.

The same source can't exist in the same group.
The same group can exist in the same tunnel because it manages
the host address too.

The group information is used when forwarding multicast data.
If there are no groups in the specific tunnel, Relay doesn't forward it.

Although Relay manages sources, it doesn't support the source filtering
feature. Because the reason to manage sources is just that in order
to manage group more correctly.

In the next patch, MLD part will be added.

Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/amt.c
include/net/amt.h