Re: [RFC] bonding: add better ipv6 failover support
From: Vlad Yasevich <hidden>
Date: 2008-09-26 19:55:16
Brian Haley wrote:
David Stevens wrote:quoted
1) You're calling mld_send_report() directly, which will send the MLD report synchronously. It should use the randomized timer (see igmp6_join_group). A mass failover (e.g., a power event in a cluster) would blast all of these at once, which is why the randomized timer is required for gratuitous reports. This should use a randomized timer, like mld_ifc_start_timer(), but joining the group all by itself will do that.Ok, I'll try and change this code to spin through all the multicast addresses on the master and call igmp6_join_group() instead.
I think you would need to call igmp6_leave_group before switching the active and then join group on the new active.
quoted
2) There is already a configurable and code for unsolicited neighbor advertisements when adding an address-- why not use that? In fact, wouldn't just moving the failing device's address list to the new device do everything you want, since adding an address already sends unsolicited neighbor advertisements, joins the solicited node address, etc.? Or am I missing something?In this case the address is configured on the bond master, each slave is just used for transmit/receive. While I could have sent an unsolicited NA, sending an NS is much easier, especially since it's only notifying the switch that the address has moved.
Why? NS and NA take exactly the same code paths. The only difference appears to be source address lookup, but you don't need to worry about it since you know the source address ahead of time. -vlad