diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c index 7f5f47e062..377a6e08a6 100644 --- a/bgpd/bgp_zebra.c +++ b/bgpd/bgp_zebra.c @@ -183,11 +183,16 @@ bgp_update_interface_nbrs (struct bgp *bgp, struct interface *ifp, if (peer->conf_if && (strcmp (peer->conf_if, ifp->name) == 0)) { - peer->ifp = upd_ifp; if (upd_ifp) - bgp_zebra_initiate_radv (bgp, peer); + { + peer->ifp = upd_ifp; + bgp_zebra_initiate_radv (bgp, peer); + } else - bgp_zebra_terminate_radv (bgp, peer); + { + bgp_zebra_terminate_radv (bgp, peer); + peer->ifp = upd_ifp; + } } } }