diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2025-03-24 14:28:38 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2025-03-24 15:55:01 -0400 | 
| commit | 9a26a56c5188fd1c95e244932bc17f97b9051935 (patch) | |
| tree | 13ada1dd81baacc92865c64b430f295f818dc575 | |
| parent | d736350986e4318e47bb97e731fd13a4a627acec (diff) | |
bgpd: Fix holdtime not working properly when busy
Commit:  cc9f21da2218d95567eff1501482ce58e6600f54
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:
d0874d195d0127009a7d9c06920c52c95319eff9
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| -rw-r--r-- | bgpd/bgp_fsm.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c index 607e34e8d3..6fdb121837 100644 --- a/bgpd/bgp_fsm.c +++ b/bgpd/bgp_fsm.c @@ -529,9 +529,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 */  | 
