Re: [PATCH v2 net-next 07/12] bonding: use the new options to correctly set last_arp_rx
From: Neil Horman <nhorman@tuxdriver.com>
Date: 2014-01-17 20:32:27
On Fri, Jan 17, 2014 at 05:58:55PM +0100, Veaceslav Falico wrote:
quoted hunk ↗ jump to hunk
Now that the options are in place - arp_validate can be set to receive all the traffic or only arp packets to verify if the slave is up, when the slave isn't validated. CC: Rob Landley <redacted> CC: "David S. Miller" <davem@davemloft.net> CC: Nikolay Aleksandrov <redacted> CC: Ding Tianhong <redacted> CC: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Veaceslav Falico <redacted> --- drivers/net/bonding/bond_main.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 532a452..48491d9 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c@@ -2290,15 +2290,16 @@ int bond_arp_rcv(const struct sk_buff *skb, struct bonding *bond, struct arphdr *arp = (struct arphdr *)skb->data; unsigned char *arp_ptr; __be32 sip, tip; - int alen; + int alen, is_arp = skb->protocol == __cpu_to_be16(ETH_P_ARP); - slave->last_arp_rx = jiffies; - - if (skb->protocol != __cpu_to_be16(ETH_P_ARP)) + if (!slave_do_arp_validate(bond, slave)) { + if ((slave_do_arp_validate_only(bond, slave) && is_arp) || + !slave_do_arp_validate_only(bond, slave)) + slave->last_arp_rx = jiffies; return RX_HANDLER_ANOTHER; - - if (!slave_do_arp_validate(bond, slave)) - goto out_unlock; + } else if (!is_arp) { + return RX_HANDLER_ANOTHER; + } alen = arp_hdr_len(bond->dev);-- 1.8.4
Seems ok Acked-by: Neil Horman <nhorman@tuxdriver.com>