/* This value is seconds */
tcp_cfg.cleanup_time = 0.1; /* 100ms */
+
+ /* Time constants defined as tcp tick (1us) multiples */
+ tcp_cfg.syn_rcvd_time = TCP_ESTABLISH_TIME;
}
static clib_error_t *
/** Time to wait (sec) before cleaning up the connection */
f32 cleanup_time;
+ /** Time to wait (tcp ticks) for syn-rcvd connection to establish */
+ u32 syn_rcvd_time;
+
/** Number of preallocated connections */
u32 preallocated_connections;
tcp_cfg.alloc_err_timeout = tmp_time / TCP_TIMER_TICK;
else if (unformat (input, "cleanup-time %u", &tmp_time))
tcp_cfg.cleanup_time = tmp_time / 1000.0;
+ else if (unformat (input, "syn-rcvd-time %u", &tmp_time))
+ tcp_cfg.syn_rcvd_time = tmp_time * THZ;
else
return clib_error_return (0, "unknown input `%U'",
format_unformat_error, input);
tc->rtt_ts = 0;
/* Passive open establish timeout */
- if (tc->rto > TCP_ESTABLISH_TIME >> 1)
+ if (tc->rto > tcp_cfg.syn_rcvd_time >> 1)
{
tcp_connection_set_state (tc, TCP_STATE_CLOSED);
tcp_connection_timers_reset (tc);