diff --git a/zebra/interface.c b/zebra/interface.c index d3ea185338b2..81118635583d 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 70ace35a86f0..11c13303987b 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. */