15 #ifndef __included_tcp_timer_h__ 16 #define __included_tcp_timer_h__ 26 tc->timers[timer_id] = tw_timer_start_tcp_twsl (tw, tc->c_c_index,
34 tc->pending_timers &= ~(1 << timer_id);
38 tw_timer_stop_tcp_twsl (tw, tc->timers[timer_id]);
48 tw_timer_update_tcp_twsl (tw, tc->timers[timer_id], interval);
50 tc->timers[timer_id] = tw_timer_start_tcp_twsl (tw, tc->c_c_index,
57 ASSERT (tc->snd_una != tc->snd_nxt);
81 if (
seq_leq (tc->snd_una, tc->snd_congestion + tc->burst_acked))
98 if (tc->snd_una == tc->snd_nxt)
101 if (tc->snd_wnd < tc->snd_mss)
113 || (tc->pending_timers & (1 << timer));
119 tw_timer_expire_timers_tcp_twsl (tw, now);
123 void (*expired_timer_cb) (
u32 *),
f64 now);
enum _tcp_timers tcp_timers_e
#define TCP_TIMER_HANDLE_INVALID
static void tcp_persist_timer_set(tcp_timer_wheel_t *tw, tcp_connection_t *tc)
struct _tcp_connection tcp_connection_t
void tcp_timer_initialize_wheel(tcp_timer_wheel_t *tw, void(*expired_timer_cb)(u32 *), f64 now)
static void tcp_persist_timer_reset(tcp_timer_wheel_t *tw, tcp_connection_t *tc)
#define seq_leq(_s1, _s2)
static void tcp_timer_reset(tcp_timer_wheel_t *tw, tcp_connection_t *tc, u8 timer_id)
static void tcp_retransmit_timer_update(tcp_timer_wheel_t *tw, tcp_connection_t *tc)
static void tcp_timer_set(tcp_timer_wheel_t *tw, tcp_connection_t *tc, u8 timer_id, u32 interval)
static void tcp_retransmit_timer_reset(tcp_timer_wheel_t *tw, tcp_connection_t *tc)
static void tcp_retransmit_timer_set(tcp_timer_wheel_t *tw, tcp_connection_t *tc)
static void tcp_timer_expire_timers(tcp_timer_wheel_t *tw, f64 now)
static_always_inline uword vlib_get_thread_index(void)
#define TCP_TO_TIMER_TICK
Factor for converting ticks to timer ticks.
static void tcp_timer_update(tcp_timer_wheel_t *tw, tcp_connection_t *tc, u8 timer_id, u32 interval)
tw_timer_wheel_tcp_twsl_t tcp_timer_wheel_t
static u8 tcp_timer_is_active(tcp_connection_t *tc, tcp_timers_e timer)
static void tcp_persist_timer_update(tcp_timer_wheel_t *tw, tcp_connection_t *tc)