summaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2019-10-22 19:01:39 -0700
committerDave Barach <openvpp@barachs.net>2019-11-05 15:50:37 +0000
commita8e71c8981f039588a7ca94e6ab66b4ebac784a5 (patch)
treee1cb1e3ff299d16276c0060901705d446645a445 /src/vnet/tcp
parent0b6a857d85df97e887de7aaf00fd6bd2dae39bf8 (diff)
session tcp: refactor pacer time
Type: refactor Change-Id: Ic1c3e1f7987702cd88972acc34849dc1f585d5fe Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/tcp')
-rw-r--r--src/vnet/tcp/tcp.c6
-rwxr-xr-xsrc/vnet/tcp/tcp_input.c4
-rw-r--r--src/vnet/tcp/tcp_output.c14
3 files changed, 6 insertions, 18 deletions
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c
index 1d030c9ce71..d8ba65871d9 100644
--- a/src/vnet/tcp/tcp.c
+++ b/src/vnet/tcp/tcp.c
@@ -1399,11 +1399,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 b2dc2f7b1a8..69db57ced95 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 45282168bd7..71e9d7bbdb0 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_fastrecovery (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)
{