]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: Fix IPv6 packet loss in scenarios involving roaming + snooping switches
authorLinus Lüssing <linus.luessing@c0d3.blue>
Fri, 3 Feb 2017 07:11:03 +0000 (08:11 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Feb 2017 16:43:01 +0000 (11:43 -0500)
commit49f4863c877c96ab6b636c1dab1753e22797f048
tree7d9d500b93d6ec98ac8f59c9031d01d92df23bac
parent1c84a1188132082cd836898b4b46aa9adfd03a21
ipv6: Fix IPv6 packet loss in scenarios involving roaming + snooping switches

When for instance a mobile Linux device roams from one access point to
another with both APs sharing the same broadcast domain and a
multicast snooping switch in between:

1)    (c) <~~~> (AP1) <--[SSW]--> (AP2)

2)              (AP1) <--[SSW]--> (AP2) <~~~> (c)

Then currently IPv6 multicast packets will get lost for (c) until an
MLD Querier sends its next query message. The packet loss occurs
because upon roaming the Linux host so far stayed silent regarding
MLD and the snooping switch will therefore be unaware of the
multicast topology change for a while.

This patch fixes this by always resending MLD reports when an interface
change happens, for instance from NO-CARRIER to CARRIER state.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrconf.c