Subject: Re: [PATCH net-next 6/6] bonding: add an option to fail when any of arp_ip_target is inaccessible

From: Nikolay Aleksandrov <[email-masked]>
Date: Thu, 20 Jun 2013 00:29:38 +0200

On 20/06/13 00:24, Veaceslav Falico wrote:
> On Wed, Jun 19, 2013 at 11:58:52PM +0200, Nikolay Aleksandrov wrote:
>> On 19/06/13 19:34, Veaceslav Falico wrote:
<snip>
> Great catch! It gets even more interesting when we try to delete an IP
> target - cause we don't shift the slave's target_last_arp_rx. Will try to
> address that nicely.
> 
> And wrt the case of no arp IP targets - we shouldn't get there in the first
> place, actually, cause the whole slave_last_rx() depends on arp_validate,
> which depends on arp_interval and at least one arp_ip_target. However, I
> see that we can do that by removing them one by one via sysfs.
> 
> And, btw, we set the target_last_arp_rx in bond_enslave(), the same way as
> last_arp_rx :).
> 
Yes, but it is set only if there're targets already present that's why I
said after enslaving. In the case of later target addition
target_last_arp_rx[0] will be 0 and last_arp_rx will be set.

Cheers,
 Nik
> Awesome ideas, thank you!
> 
>>> +    }
>>>
>>>      return slave->dev->last_rx;
>>>  }
>>> @@ -486,6 +511,7 @@ extern const struct bond_parm_tbl bond_lacp_tbl[];
>>>  extern const struct bond_parm_tbl bond_mode_tbl[];
>>>  extern const struct bond_parm_tbl xmit_hashtype_tbl[];
>>>  extern const struct bond_parm_tbl arp_validate_tbl[];
>>> +extern const struct bond_parm_tbl arp_all_targets_tbl[];
>>>  extern const struct bond_parm_tbl fail_over_mac_tbl[];
>>>  extern const struct bond_parm_tbl pri_reselect_tbl[];
>>>  extern struct bond_parm_tbl ad_select_tbl[];
>>