From b1823b69f602c4e9a10f15c92f1c3a2fcb836a30 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 12 Oct 2020 10:36:37 -0400 Subject: [PATCH] bgpd: Correctly calculate threshold being reached if (pcout > (pcount * peer->max_threshold[afi][safi] / 100 )) is always true. So the very first route received will always trigger the warning. We actually want the warning to happen when we hit the threshold. Signed-off-by: Donald Sharp --- bgpd/bgp_route.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 43ba4ceef6..229e9af91f 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -3167,7 +3167,8 @@ bool bgp_maximum_prefix_overflow(struct peer *peer, afi_t afi, safi_t safi, UNSET_FLAG(peer->af_sflags[afi][safi], PEER_STATUS_PREFIX_LIMIT); - if (pcount > (pcount * peer->pmax_threshold[afi][safi] / 100)) { + if (pcount + > (peer->pmax[afi][safi] * peer->pmax_threshold[afi][safi] / 100)) { if (CHECK_FLAG(peer->af_sflags[afi][safi], PEER_STATUS_PREFIX_THRESHOLD) && !always) -- 2.39.5