tcp: treat pending timers as active

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic63af51fab8dbefe79439554ea563f20e3788afa
This commit is contained in:
Florin Coras
2020-10-08 13:33:20 -07:00
committed by Dave Barach
parent 49036a5e82
commit aa04395573
3 changed files with 4 additions and 3 deletions

View File

@@ -1101,7 +1101,7 @@ tcp_dispatch_pending_timers (tcp_worker_ctx_t * wrk)
continue;
/* Skip if the timer is not pending. Probably it was reset while
* wating for dispatch */
* waiting for dispatch */
if (PREDICT_FALSE (!(tc->pending_timers & (1 << timer_id))))
continue;

View File

@@ -117,7 +117,8 @@ tcp_retransmit_timer_update (tcp_timer_wheel_t * tw, tcp_connection_t * tc)
always_inline u8
tcp_timer_is_active (tcp_connection_t * tc, tcp_timers_e timer)
{
return tc->timers[timer] != TCP_TIMER_HANDLE_INVALID;
return tc->timers[timer] != TCP_TIMER_HANDLE_INVALID
|| (tc->pending_timers & (1 << timer));
}
always_inline void

View File

@@ -75,7 +75,7 @@ typedef enum _tcp_timers
foreach_tcp_timer
#undef _
TCP_N_TIMERS
} tcp_timers_e;
} __clib_packed tcp_timers_e;
#define TCP_TIMER_HANDLE_INVALID ((u32) ~0)