bgpd: Fix holdtime not working properly when busy

Commit:  cc9f21da22

Modified the bgp_fsm code to dissallow the extension
of the hold time when the system is under extremely
heavy load.  This was a attempt to remove the return
code but it was too aggressive and messed up this bit
of code.

Put the behavior back that was introduced in:
d0874d195d

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 9a26a56c51)
This commit is contained in:
Donald Sharp 2025-03-24 14:28:38 -04:00 committed by Mergify
parent b02ecbff27
commit dc7ab1dfc6

View file

@ -528,9 +528,11 @@ static void bgp_holdtime_timer(struct event *thread)
frr_with_mutex (&connection->io_mtx) {
inq_count = atomic_load_explicit(&connection->ibuf->count, memory_order_relaxed);
}
if (inq_count)
if (inq_count) {
BGP_TIMER_ON(connection->t_holdtime, bgp_holdtime_timer,
peer->v_holdtime);
return;
}
EVENT_VAL(thread) = Hold_Timer_expired;
bgp_event(thread); /* bgp_event unlocks peer */