From 9bd71be3eef15fa7a037debf9713f7d8db62935f Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Sun, 9 Jan 2022 18:18:10 -0800 Subject: session: deschedule sessions with no data to send This ensures the scheduler always tracks sessions that are descheduled, i.e., do not have events in the old io events list. When app retries to send, clear descheduled flag and potentially the pacer. Consequently, transports no longer need to reset the pacer when sessions are rescheduled after a long app tx pause. This also fixes a tcp bug whereby the pacer was reset too often when snd_una was equal to snd_nxt as there was no way to distinguish betwen app tx breaks and congestion. Type: improvement Signed-off-by: Florin Coras Change-Id: Id3cc6c98cd76299e15030e504380dcf3c04c5189 --- src/vnet/tcp/tcp_output.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src/vnet/tcp/tcp_output.c') diff --git a/src/vnet/tcp/tcp_output.c b/src/vnet/tcp/tcp_output.c index 5647b8f6737..55fa6d1b5d8 100644 --- a/src/vnet/tcp/tcp_output.c +++ b/src/vnet/tcp/tcp_output.c @@ -321,7 +321,6 @@ tcp_update_burst_snd_vars (tcp_connection_t * tc) if (tc->snd_una == tc->snd_nxt) { tcp_cc_event (tc, TCP_CC_EVT_START_TX); - tcp_connection_tx_pacer_reset (tc, tc->cwnd, TRANSPORT_PACER_MIN_BURST); } if (tc->flags & TCP_CONN_PSH_PENDING) -- cgit 1.2.3-korg