From 003cae8534b317500724b3c222f73125398a2af3 Mon Sep 17 00:00:00 2001 From: Igor Ryzhov Date: Mon, 2 Aug 2021 13:05:22 +0300 Subject: [PATCH] Revert "bgpd: clear ip bgp dampening was not triggering the route calculation for the prefix" This reverts commit c8ddbd48040be6bf33c4f0ab3e470f290f9b165a. --- bgpd/bgp_damp.c | 14 +++----------- bgpd/bgp_damp.h | 4 ++-- bgpd/bgp_route.c | 17 +---------------- 3 files changed, 6 insertions(+), 29 deletions(-) diff --git a/bgpd/bgp_damp.c b/bgpd/bgp_damp.c index 07c70d5aa..48807dd65 100644 --- a/bgpd/bgp_damp.c +++ b/bgpd/bgp_damp.c @@ -545,8 +545,7 @@ int bgp_damp_enable(struct bgp *bgp, afi_t afi, safi_t safi, time_t half, } /* Clean all the bgp_damp_info stored in reuse_list and no_reuse_list. */ -void bgp_damp_info_clean(struct bgp *bgp, struct bgp_damp_config *bdc, - afi_t afi, safi_t safi) +void bgp_damp_info_clean(struct bgp_damp_config *bdc, afi_t afi, safi_t safi) { struct bgp_damp_info *bdi; struct reuselist_node *rn; @@ -558,13 +557,6 @@ void bgp_damp_info_clean(struct bgp *bgp, struct bgp_damp_config *bdc, list = &bdc->reuse_list[i]; while ((rn = SLIST_FIRST(list)) != NULL) { bdi = rn->info; - if (bdi->lastrecord == BGP_RECORD_UPDATE) { - bgp_aggregate_increment(bgp, &bdi->dest->p, - bdi->path, bdi->afi, - bdi->safi); - bgp_process(bgp, bdi->dest, bdi->afi, - bdi->safi); - } bgp_reuselist_del(list, &rn); bgp_damp_info_free(&bdi, bdc, 1, afi, safi); } @@ -615,7 +607,7 @@ int bgp_damp_disable(struct bgp *bgp, afi_t afi, safi_t safi) thread_cancel(&bdc->t_reuse); /* Clean BGP dampening information. */ - bgp_damp_info_clean(bgp, bdc, afi, safi); + bgp_damp_info_clean(bdc, afi, safi); UNSET_FLAG(bgp->af_flags[afi][safi], BGP_CONFIG_DAMPENING); @@ -904,7 +896,7 @@ void bgp_peer_damp_disable(struct peer *peer, afi_t afi, safi_t safi) bdc = &peer->damp[afi][safi]; if (!bdc) return; - bgp_damp_info_clean(peer->bgp, bdc, afi, safi); + bgp_damp_info_clean(bdc, afi, safi); UNSET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_CONFIG_DAMPENING); } diff --git a/bgpd/bgp_damp.h b/bgpd/bgp_damp.h index c03a0cc5c..1e0f249a4 100644 --- a/bgpd/bgp_damp.h +++ b/bgpd/bgp_damp.h @@ -151,8 +151,8 @@ extern int bgp_damp_update(struct bgp_path_info *path, struct bgp_dest *dest, extern void bgp_damp_info_free(struct bgp_damp_info **path, struct bgp_damp_config *bdc, int withdraw, afi_t afi, safi_t safi); -extern void bgp_damp_info_clean(struct bgp *bgp, struct bgp_damp_config *bdc, - afi_t afi, safi_t safi); +extern void bgp_damp_info_clean(struct bgp_damp_config *bdc, afi_t afi, + safi_t safi); extern void bgp_damp_config_clean(struct bgp_damp_config *bdc); extern int bgp_damp_decay(time_t, int, struct bgp_damp_config *damp); extern void bgp_config_write_damp(struct vty *vty, struct bgp *bgp, afi_t afi, diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 66ff16d53..0c48d0d0b 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -14780,21 +14780,6 @@ static int bgp_clear_damp_route(struct vty *vty, const char *view_name, while (pi) { if (pi->extra && pi->extra->damp_info) { pi_temp = pi->next; - struct bgp_damp_info *bdi = - pi->extra->damp_info; - if (bdi->lastrecord - == BGP_RECORD_UPDATE) { - bgp_aggregate_increment( - bgp, - &bdi->dest->p, - bdi->path, - bdi->afi, - bdi->safi); - bgp_process(bgp, - bdi->dest, - bdi->afi, - bdi->safi); - } bgp_damp_info_free( &pi->extra->damp_info, &bgp->damp[afi][safi], @@ -14821,7 +14806,7 @@ DEFUN (clear_ip_bgp_dampening, "Clear route flap dampening information\n") { VTY_DECLVAR_CONTEXT(bgp, bgp); - bgp_damp_info_clean(bgp, &bgp->damp[AFI_IP][SAFI_UNICAST], AFI_IP, + bgp_damp_info_clean(&bgp->damp[AFI_IP][SAFI_UNICAST], AFI_IP, SAFI_UNICAST); return CMD_SUCCESS; } -- 2.39.5