Subject: Re: IGMP on IPv6

From: Murali Karicheri <[email-masked]>
Date: Thu, 13 Apr 2017 12:36:35 -0400

On 03/22/2017 11:04 AM, Murali Karicheri wrote:
> Hi Liu,
> 
> I saw that you have sent patches to the list for IGMP and have a question on IGMP on IPv6.
> Hope you can clarify. I have posted the question already to the list and is reproduced
> below. Let me know if you have an answer.
> 
> ========= See email with subject "IPv6 IGMP issue in v4.4.44 ?? ========================
> Cut-n-paste from that email....
> 
> I see an issue with IGMP for IPv6 when I test HSR redundancy network
> interface. As soon as I set up an HSR interface, I see some IGMP messages
> (destination mac address: 33 33 00 00 00 02 going over HSR interface to
> slave interfaces, at the egress where as for IPv6, I see similar messages
> going directly over the Ethernet interfaces that are attached to
> HSR master. It appears that the NETDEV_CHANGEUPPER is not handled properly
> and the mcast snoop sends the packets over the old interfaces at timer
> expiry. 
> 
> A dump of the message at the slave Ethernet interface looks like below.
> 
> IPv4
> 
> [   64.643842] 33 33 00 00 00 02 70 ff 76 1c 0f 8d 89 2f 10 3e fc 
> [   64.649910] 18 86 dd 60 00 00 00 00 10 3a ff fe 80 00 00 00 
> [   64.655705] 00 00 00 72 ff 76 ff fe 1c 0f 8d ff 02 00 00 00 
> [   64.661503] 00 00 00 00 00 00 00 00 00 00 02 85 00 8d dc 
> 
> 
> You can see this is tagged with HSR.
> 
> IPv6
> 
> [   65.559130] 33 33 00 00 00 02 70 ff 76 1c 0f 8d 86 dd 60 00 00 
> [   65.565205] 00 00 10 3a ff fe 80 00 00 00 00 00 00 72 ff 76 
> [   65.571011] ff fe 1c 0f 8d ff 02 00 00 00 00 00 00 00 00 00 
> [   65.576806] 00 00 00 00 02 85 00 8d dc 00 00 00 00 01 01 
> 
> This is going directly to the slave Ethernet interface.
> 
> When I put a WARN_ONCE, I found this is coming directly from 
> mld_ifc_timer_expire() -> mld_sendpack() -> ip6_output()
> 
> Do you think this is fixed in latest kernel at master? If so, could
> you point me to some commits.
> 
> 
Ping... I see this behavior is also seen on v4.9.x Kernel. Any clue if 
this is fixed by some commit or I need to debug? I see IGMPv6 has some 
fixes on the list to make it similar to IGMPv4. So can someone clarify this is
is a bug at IGMPv6 code or I need to look into the HSR driver code?
Since IGMPv4 is going over the HSR interface I am assuming this is a
bug in the IGMPv6 code. But since I have not experience with this code
can some expert comment please?

Murali

-- 
Murali Karicheri
Linux Kernel, Keystone