diff options
author | 2019-10-22 19:01:39 -0700 | |
---|---|---|
committer | 2019-11-28 09:30:38 +0000 | |
commit | 67bb7ca00479e81bbc8770857d38e156a7b3824e (patch) | |
tree | 41fdf67260a395ccd2a025cc1ef8cadbbb17da78 /src/vnet/tcp | |
parent | 87e1bcdd7567f62fdd6510c26599580775871057 (diff) |
session tcp: refactor pacer time
Type: refactor
Change-Id: Ic1c3e1f7987702cd88972acc34849dc1f585d5fe
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit a8e71c8981f039588a7ca94e6ab66b4ebac784a5)
Diffstat (limited to 'src/vnet/tcp')
-rw-r--r-- | src/vnet/tcp/tcp.c | 6 | ||||
-rwxr-xr-x | src/vnet/tcp/tcp_input.c | 4 | ||||
-rw-r--r-- | src/vnet/tcp/tcp_output.c | 14 |
3 files changed, 6 insertions, 18 deletions
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c index 2de4791fde1..317ed3aa876 100644 --- a/src/vnet/tcp/tcp.c +++ b/src/vnet/tcp/tcp.c @@ -1402,11 +1402,9 @@ 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); f64 srtt = clib_min ((f64) tc->srtt * TCP_TICK, tc->mrtt_us); - u64 last_time = wrk->vm->clib_time.last_cpu_time; - transport_connection_tx_pacer_reset (&tc->connection, window / srtt, - start_bucket, last_time); + u64 rate = (u64) window / srtt; + transport_connection_tx_pacer_reset (&tc->connection, rate, start_bucket); } static void diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c index 690bdce4f86..8f88cb5f471 100755 --- a/src/vnet/tcp/tcp_input.c +++ b/src/vnet/tcp/tcp_input.c @@ -629,9 +629,7 @@ tcp_handle_postponed_dequeues (tcp_worker_ctx_t * wrk) * we're in recovery and snd space constrained */ if (tc->data_segs_out == tc->prev_dsegs_out || tcp_recovery_no_snd_space (tc)) - transport_connection_tx_pacer_reset_bucket (&tc->connection, - wrk->vm->clib_time. - last_cpu_time); + transport_connection_tx_pacer_reset_bucket (&tc->connection); tc->prev_dsegs_out = tc->data_segs_out; } _vec_len (wrk->pending_deq_acked) = 0; diff --git a/src/vnet/tcp/tcp_output.c b/src/vnet/tcp/tcp_output.c index 27154ec5b9d..094c84c5e28 100644 --- a/src/vnet/tcp/tcp_output.c +++ b/src/vnet/tcp/tcp_output.c @@ -1876,13 +1876,10 @@ tcp_retransmit_sack (tcp_worker_ctx_t * wrk, tcp_connection_t * tc, vlib_buffer_t *b = 0; sack_scoreboard_t *sb; int snd_space; - u64 time_now; ASSERT (tcp_in_cong_recovery (tc)); - time_now = wrk->vm->clib_time.last_cpu_time; - burst_bytes = transport_connection_tx_pacer_burst (&tc->connection, - time_now); + burst_bytes = transport_connection_tx_pacer_burst (&tc->connection); burst_size = clib_min (burst_size, burst_bytes / tc->snd_mss); if (!burst_size) { @@ -2017,9 +2014,7 @@ done: if (reset_pacer) { - transport_connection_tx_pacer_reset_bucket (&tc->connection, - vm->clib_time. - last_cpu_time); + transport_connection_tx_pacer_reset_bucket (&tc->connection); } else { @@ -2044,14 +2039,11 @@ tcp_retransmit_no_sack (tcp_worker_ctx_t * wrk, tcp_connection_t * tc, int snd_space, n_segs = 0; u8 cc_limited = 0; vlib_buffer_t *b; - u64 time_now; ASSERT (tcp_in_cong_recovery (tc)); TCP_EVT (TCP_EVT_CC_EVT, tc, 0); - time_now = wrk->vm->clib_time.last_cpu_time; - burst_bytes = transport_connection_tx_pacer_burst (&tc->connection, - time_now); + burst_bytes = transport_connection_tx_pacer_burst (&tc->connection); burst_size = clib_min (burst_size, burst_bytes / tc->snd_mss); if (!burst_size) { |