tcp: treat pending timers as active
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic63af51fab8dbefe79439554ea563f20e3788afa
This commit is contained in:
committed by
Dave Barach
parent
49036a5e82
commit
aa04395573
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user