summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2021-08-02 12:05:22 +0200
committerIgor Ryzhov <iryzhov@nfware.com>2021-08-03 20:54:47 +0200
commit003cae8534b317500724b3c222f73125398a2af3 (patch)
treeb4a55c29bf36993c3679365946b0daf309320984
parentRevert "bgpd: Remove useless reuselist_node assignment before while loop" (diff)
downloadfrr-003cae8534b317500724b3c222f73125398a2af3.tar.xz
frr-003cae8534b317500724b3c222f73125398a2af3.zip
Revert "bgpd: clear ip bgp dampening was not triggering the route calculation for the prefix"
This reverts commit c8ddbd48040be6bf33c4f0ab3e470f290f9b165a.
-rw-r--r--bgpd/bgp_damp.c14
-rw-r--r--bgpd/bgp_damp.h4
-rw-r--r--bgpd/bgp_route.c17
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;
}