X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ftcp%2Ftcp.c;h=bdf9c7af6083ff74ca5eda203a9604f558013ad8;hb=e55a6d7a97044c2f4fd0231242e062924d75c7b6;hp=8c0c5da07a10d56ec015317f94af4c52be2d8ffc;hpb=f6c68d74eca9038516986254846de60a4f7c02ae;p=vpp.git diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c index 8c0c5da07a1..bdf9c7af608 100644 --- a/src/vnet/tcp/tcp.c +++ b/src/vnet/tcp/tcp.c @@ -558,10 +558,11 @@ tcp_init_snd_vars (tcp_connection_t * tc) 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; } @@ -1318,6 +1319,7 @@ tcp_main_enable (vlib_main_t * vm) 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 @@ -1339,6 +1341,13 @@ tcp_main_enable (vlib_main_t * vm) 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]; } /* @@ -1358,7 +1367,6 @@ tcp_main_enable (vlib_main_t * vm) 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