This is an RFC patch to add better IPv6 failover support for bonding devices, especially when in active-backup mode, as reported by Alex Sidorenko. What this patch does: - Creates a new Kconfig option in the IPv6 Networking section to compile-in the support in the bonding driver. This also forces IPV6=y since that's required to link everything. - Creates a new file, net/drivers/bonding/bond_ipv6.c, for the IPv6-specific routines. - Adds a new master_ipv6 address member to the bonding struct to hold a copy of the primary IPv6 address on the bond. - Adds a new tunable, num_grat_ns, to limit the number of gratuitous Neighbor Solicitations that are sent on a failover event. Default is 1. On failover, this new code will generate two packets: - An MLD report for the bond, on the current active slave. - An IPv6 "gratuitous" Neighbor Solicitation, which helps the switch learn that the address has moved to the new slave. Testing has shown that sending just the NS results in pretty good behavior when in active-back mode, I saw no lost ping packets for example. Sending just the MLD packet didn't seem to have the same effect. Sending both seems like the right thing to do. Comments welcome. -Brian Signed-off-by: Brian Haley ---