Subject: Re: [PATCH] bonding: send IPv6 neighbor advertisement on failover

From: Brian Haley <[email-masked]>
Date: Wed, 08 Oct 2008 15:05:44 -0400

Jay Vosburgh wrote:
> Vlad Yasevich <[email-masked]> wrote:
> 
>>> +
>>> +	list_for_each_entry(bond, &bond_dev_list, bond_list) {
>>> +		if (bond->dev == event_dev) {
>>> +			switch (event) {
>>> +			case NETDEV_UP:
>>> +				ipv6_addr_copy(&bond->master_ipv6, &ifa->addr);
>>> +				return NOTIFY_OK;
>> I think you want to store the first address configured on the device (most
>> likely link-local), and not overwrite it every time  a new address is
>> configured.  Since new addresses can be configured rather often (think
>> temporary, new RAs, etc) we really want the most stable address we can have.
>> Also, since ND is a link protocol, link-local is sufficient.
> 
> 	That depends upon how the IPv6 unsolicited NAs are handled by
> the switch.  For IPv4, we issue a gratuitous ARP for one of the IP
> addresses on the interface to update the switch's MAC table; for this
> case, it doesn't matter which IP address is used.
> 
> 	If IPv6-smart switches snoop the same way, then it again doesn't
> matter which IPv6 address is used; this is just to update the MAC table.
> I'll agree that it's logically sensible to use a link-local, though.
> If, on the other hand, IPv6 needs an update for each configured address,
> then storing just one IPv6 address is insufficient (as we'd need an NA
> for each address).

My testing has shown that it doesn't matter which address I send the NA 
for, I can ping both the link-local and global without dropping a packet 
simultaneously.  I'm using a Procurve 5400 series switch for what it's 
worth that has IPv6 support, not sure if something not as recent would 
behave any different.

-Brian