void
tcp_enable_pacing (tcp_connection_t * tc)
{
- u32 max_burst, byte_rate;
- max_burst = 16 * tc->snd_mss;
+ u32 initial_bucket, byte_rate;
+ initial_bucket = 16 * tc->snd_mss;
byte_rate = 2 << 16;
- transport_connection_tx_pacer_init (&tc->connection, byte_rate, max_burst);
+ transport_connection_tx_pacer_init (&tc->connection, byte_rate,
+ initial_bucket);
tc->mrtt_us = (u32) ~ 0;
}
}
static int
-tcp_connection_open (transport_endpoint_t * rmt)
+tcp_session_open (transport_endpoint_cfg_t * rmt)
{
tcp_main_t *tm = vnet_get_tcp_main ();
tcp_connection_t *tc;
return tc->c_c_index;
}
-static int
-tcp_session_open (transport_endpoint_t * tep)
-{
- return tcp_connection_open (tep);
-}
-
const char *tcp_dbg_evt_str[] = {
#define _(sym, str) str,
foreach_tcp_dbg_evt
num_threads = 1 /* main thread */ + vtm->n_threads;
vec_validate (tm->connections, num_threads - 1);
+ vec_validate (tm->wrk_ctx, num_threads - 1);
/*
* Preallocate connections. Assume that thread 0 won't
if (preallocated_connections_per_thread)
pool_init_fixed (tm->connections[thread],
preallocated_connections_per_thread);
+ vec_validate (tm->wrk_ctx[thread].pending_fast_rxt, 0);
+ vec_validate (tm->wrk_ctx[thread].ongoing_fast_rxt, 0);
+ vec_validate (tm->wrk_ctx[thread].postponed_fast_rxt, 0);
+ vec_reset_length (tm->wrk_ctx[thread].pending_fast_rxt);
+ vec_reset_length (tm->wrk_ctx[thread].ongoing_fast_rxt);
+ vec_reset_length (tm->wrk_ctx[thread].postponed_fast_rxt);
+ tm->wrk_ctx[thread].vm = vlib_mains[thread];
}
/*
clib_spinlock_init (&tm->half_open_lock);
}
- vec_validate (tm->wrk_ctx, num_threads - 1);
tcp_initialize_timer_wheels (tm);
tm->bytes_per_buffer = vlib_buffer_free_list_buffer_size
scoreboard_init (&dummy_tc->sack_sb);
dummy_tc->rcv_opts.flags |= TCP_OPTS_FLAG_SACK;
-#if TCP_SCOREBOARD_TRACE
+/* Since this is also accessible via decl. in tcp.h.
+ * Otherwise, it is gated earlier by cli parser.
+ */
+#if (!TCP_SCOREBOARD_TRACE)
+ s = format (0, "scoreboard tracing not enabled");
+ return s;
+#else
trace = tc->sack_sb.trace;
trace_len = vec_len (tc->sack_sb.trace);
-#else
- trace = 0;
- trace_len = 0;
#endif
for (i = 0; i < trace_len; i++)