X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ftcp%2Ftcp.c;h=1fb95b3ad3aea1428d86ef52832f716f9b2d9b81;hb=776f3d85ebd4edfb70b0f748890f1efd98d8474c;hp=1726355f0e3e0ee22536ec9ea1c58ad09a06e8f8;hpb=be72ae6149a432899698a887b1820cf5c9d9456f;p=vpp.git diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c index 1726355f0e3..1fb95b3ad3a 100644 --- a/src/vnet/tcp/tcp.c +++ b/src/vnet/tcp/tcp.c @@ -1153,7 +1153,7 @@ const static transport_proto_vft_t tcp_proto = { /* *INDENT-ON* */ void -tcp_update_pacer (tcp_connection_t * tc) +tcp_connection_tx_pacer_update (tcp_connection_t * tc) { f64 srtt; @@ -1165,6 +1165,17 @@ tcp_update_pacer (tcp_connection_t * tc) ((f64) tc->cwnd) / srtt); } +void +tcp_connection_tx_pacer_reset (tcp_connection_t * tc, u32 window, + u32 start_bucket) +{ + tcp_worker_ctx_t *wrk = tcp_get_worker (tc->c_thread_index); + u32 byte_rate = window / ((f64) TCP_TICK * tc->srtt); + u64 last_time = wrk->vm->clib_time.last_cpu_time; + transport_connection_tx_pacer_reset (&tc->connection, byte_rate, + start_bucket, last_time); +} + static void tcp_timer_keep_handler (u32 conn_index) { @@ -1787,6 +1798,12 @@ tcp_scoreboard_replay (u8 * s, tcp_connection_t * tc, u8 verbose) tcp_connection_t _dummy_tc, *dummy_tc = &_dummy_tc; sack_block_t *block; + if (!TCP_SCOREBOARD_TRACE) + { + s = format (s, "scoreboard tracing not enabled"); + return s; + } + if (!tc) return s; @@ -1795,13 +1812,7 @@ tcp_scoreboard_replay (u8 * s, tcp_connection_t * tc, u8 verbose) scoreboard_init (&dummy_tc->sack_sb); dummy_tc->rcv_opts.flags |= TCP_OPTS_FLAG_SACK; -/* 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 +#if TCP_SCOREBOARD_TRACE trace = tc->sack_sb.trace; trace_len = vec_len (tc->sack_sb.trace); #endif