bonding: extend bond_arp_send_all to bridge devices
Subsystems (3)
PATCH 1/1 bonding: extend bond_arp_send_all to bridge devices
Hi, please accept this patch that fixes the following issues:
http://bugzilla.kernel.org/show_bug.cgi?id=31822
http://launchpad.net/bugs/736226
I've done a bit of testing with the setup identified in the bugs, and this patch fixes the issue for me and others that have tested this.
Thanks,
--chris j arges
Quoted 1 line
From
bc58ecc70aecc68497fe54228ebe8630777b53a0Mon Sep 17 00:00:00 2001
From: Chris J Arges <[email protected]>
Date: Thu, 6 Sep 2012 14:17:40 -0500
Subject: [PATCH] bonding: extend bond_arp_send_all to bridge devices
ARP monitoring does not work when we have a network in the following configuration:
eth0----+ +----bond0.100----br0-100---{+virtual machines
| |
+----bond0----+----br0---(fixed IP)->--{LAN arp_ip_target}
| |eth1----+ +----bond0.200----br0-200---{+virtual machines
This patch extends bond_arp_send_all to also check if a device is also in a bridge.
This is related to the following issues:
http://launchpad.net/bugs/736226
http://bugzilla.kernel.org/show_bug.cgi?id=31822
Thanks to help from Andy Gospodarek.
--- drivers/net/bonding/bond_main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
drivers/net/bonding/bond_main.c +12 -0
@@ -2708,6 +2708,18 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)continue ; } +/* +* Check if the target is part of a bridge. +*/ +if (rt->dst.dev->priv_flags &IFF_EBRIDGE ) { +/* Confirm addr is part of the bridge */ + addr =bond_confirm_addr (rt->dst.dev, targets[i],0 ); + +/* Send ARP request */ +bond_arp_send (slave->dev,ARPOP_REQUEST , targets[i], addr,0 ); +continue ; + } +if (net_ratelimit ()) { pr_warning("%s: no path to arp_ip_target %pI4 via rt.dev %s\n", bond->dev->name, &targets[i],
Signature · 1 line
1.7.10.4