From: Donatas Abraitis Date: Fri, 30 Jul 2021 13:50:05 +0000 (+0300) Subject: Revert "bgpd: fix missing delete from the list in dampening" X-Git-Tag: base_8.1~251^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=253b4c5fd4da9337cd9b09fc7225fb6a97f6c023;p=mirror%2Ffrr.git Revert "bgpd: fix missing delete from the list in dampening" This reverts commit 755a977b8aef231bae28994159eef2ffcfd5b599. --- diff --git a/bgpd/bgp_damp.c b/bgpd/bgp_damp.c index 513cfffda9..6d2dc1a65a 100644 --- a/bgpd/bgp_damp.c +++ b/bgpd/bgp_damp.c @@ -227,6 +227,7 @@ static int bgp_reuse_timer(struct thread *t) } if (bdi->penalty <= bdc->reuse_limit / 2.0) { + bgp_reuselist_del(&plist, bdi); bgp_damp_info_free(bdi, 1); } else { bdi->index = BGP_DAMP_NO_REUSE_LIST_INDEX; @@ -375,8 +376,10 @@ int bgp_damp_update(struct bgp_path_info *path, struct bgp_dest *dest, if (bdi->penalty > bdc->reuse_limit / 2.0) bdi->t_updated = t_now; - else + else { + bgp_damp_info_unclaim(bdi); bgp_damp_info_free(bdi, 0); + } return status; } @@ -385,8 +388,6 @@ void bgp_damp_info_free(struct bgp_damp_info *bdi, int withdraw) { assert(bdi); - bgp_damp_info_unclaim(bdi); - bdi->path->extra->damp_info = NULL; bgp_path_info_unset_flag(bdi->dest, bdi->path, BGP_PATH_HISTORY | BGP_PATH_DAMPED); @@ -504,12 +505,15 @@ void bgp_damp_info_clean(struct bgp *bgp, struct bgp_damp_config *bdc, bgp_process(bgp, bdi->dest, bdi->afi, bdi->safi); } + bgp_reuselist_del(list, bdi); bgp_damp_info_free(bdi, 1); } } - while ((bdi = SLIST_FIRST(&bdc->no_reuse_list)) != NULL) + while ((bdi = SLIST_FIRST(&bdc->no_reuse_list)) != NULL) { + bgp_reuselist_del(&bdc->no_reuse_list, bdi); bgp_damp_info_free(bdi, 1); + } /* Free decay array */ XFREE(MTYPE_BGP_DAMP_ARRAY, bdc->decay_array);