summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2024-02-08 12:22:09 -0500
committerDonald Sharp <sharpd@nvidia.com>2024-02-08 12:22:09 -0500
commite28162b215395a05e49eb083c89b4dc65dbf9808 (patch)
tree8a49a59ef4295428e72e13b575dbab93d656db64
parentfbce9231d1f70f922ee854205f8c696c4658f56f (diff)
zebra: Move nhg reinstallation into if_up proper
The function call in to zebra_interface_nhg_reinstall is an action that takes place on interface up events *not* when the connected addresses are added to a system. this will prevent this function being called when new connected interfaces come alive that is an independent operation of the interface coming up. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
-rw-r--r--zebra/interface.c8
-rw-r--r--zebra/redistribute.c4
2 files changed, 8 insertions, 4 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index d3ea185338..8111863558 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -970,6 +970,14 @@ void if_up(struct interface *ifp, bool install_connected)
if (install_connected)
if_install_connected(ifp);
+ /*
+ * Interface associated NHG's have been deleted on
+ * interface down events, now that this interface
+ * is coming back up, let's resync the zebra -> dplane
+ * nhg's so that they can be continued to be used.
+ */
+ zebra_interface_nhg_reinstall(ifp);
+
/* Handle interface up for specific types for EVPN. Non-VxLAN interfaces
* are checked to see if (remote) neighbor entries need to be installed
* on them for ARP suppression.
diff --git a/zebra/redistribute.c b/zebra/redistribute.c
index 70ace35a86..11c1330398 100644
--- a/zebra/redistribute.c
+++ b/zebra/redistribute.c
@@ -605,10 +605,6 @@ void zebra_interface_address_add_update(struct interface *ifp,
client, ifp, ifc);
}
}
- /* interface associated NHGs may have been deleted,
- * re-sync zebra -> dplane NHGs
- */
- zebra_interface_nhg_reinstall(ifp);
}
/* Interface address deletion. */