[Bridge] [PATCH 3.2 01/06] "bridge should send gratuitous ARP to notify peer while a bond, which is a port of this bridge, changes."
邢庆杰
xqjcool at gmail.com
Sat Jan 6 09:25:20 UTC 2018
We create bond0 and add eth0ð1 as slaves. Eth0 is active. Then we add
bond0
into br0 as a bridge port. Br0 has ip address. When eth0 is down, after
bond0's
failover eth1 become active. At this moment, we need br0 send a gratuitous
ARP
to notify peer to update ARP table.
Signed-off-by: Xing.Qingjie <xqjcool at gmail.com>
---
net/bridge/br_notify.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/net/bridge/br_notify.c b/net/bridge/br_notify.c
index a76b621..90cf123 100644
--- a/net/bridge/br_notify.c
+++ b/net/bridge/br_notify.c
@@ -34,6 +34,7 @@ static int br_device_event(struct notifier_block *unused,
unsigned long event, v
struct net_device *dev = ptr;
struct net_bridge_port *p;
struct net_bridge *br;
+ struct in_device *in_dev;
bool changed_addr;
int err;
@@ -102,6 +103,17 @@ static int br_device_event(struct notifier_block
*unused, unsigned long event, v
case NETDEV_PRE_TYPE_CHANGE:
/* Forbid underlaying device to change its type. */
return NOTIFY_BAD;
+
+ case NETDEV_NOTIFY_PEERS:
+ /* Send gratuitous arp while bond,a port of bridge, changes
*/
+ if (dev->priv_flags & IFF_BONDING && dev->flags &
IFF_MASTER) {
+ in_dev = __in_dev_get_rtnl(br->dev);
+
+ ASSERT_RTNL();
+ if (in_dev)
+ inetdev_send_gratuitous_arp(br->dev,
in_dev);
+ }
+ break;
}
/* Events that may cause spanning tree to refresh */
--
1.7.1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bridge/attachments/20180106/537e67bb/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-bridge-should-send-gratuitous-ARP-to-notify-peer-whi.patch
Type: application/octet-stream
Size: 1677 bytes
Desc: not available
URL: <http://lists.linuxfoundation.org/pipermail/bridge/attachments/20180106/537e67bb/attachment.obj>
More information about the Bridge
mailing list