From: Balakrishnan Raman <ram...@cumulusnetworks.com>

Flush fdb entries of a vxlan device when its state
changes to oper down. vxlan_stop handles flush on
admin down.

Signed-off-by: Balakrishnan Raman <ram...@cumulusnetworks.com>
Signed-off-by: Roopa Prabhu <ro...@cumulusnetworks.com>
---
 drivers/net/vxlan.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 19b1653..15b1c23 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -3276,6 +3276,12 @@ static int vxlan_netdevice_event(struct notifier_block 
*unused,
                vxlan_handle_lowerdev_unregister(vn, dev);
        else if (event == NETDEV_UDP_TUNNEL_PUSH_INFO)
                vxlan_push_rx_ports(dev);
+       else if (event == NETDEV_CHANGE) {
+               if (dev->netdev_ops == &vxlan_netdev_ops) {
+                       if (netif_running(dev) && !netif_oper_up(dev))
+                               vxlan_flush(netdev_priv(dev));
+               }
+       }
 
        return NOTIFY_DONE;
 }
-- 
1.9.1

Reply via email to