diff options
author | Florin Coras <fcoras@cisco.com> | 2019-10-16 10:07:39 -0700 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2019-10-16 19:54:10 +0000 |
commit | 8a8b05c526883fe34b83239a3c4f56087d1df9e5 (patch) | |
tree | 30ddd5cd3479bd6ac0f963c21104e39e109c4546 /src/vnet/tcp/tcp_output.c | |
parent | 71e5b4710258376873c62428cb4a81b2a650fc26 (diff) |
tcp: avoid head retransmit if scoreboard has no holes
Type: fix
Change-Id: I6164ad0d97cd91b60c85302eff691836d12a0a70
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/tcp/tcp_output.c')
-rw-r--r-- | src/vnet/tcp/tcp_output.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vnet/tcp/tcp_output.c b/src/vnet/tcp/tcp_output.c index fb806446dcc..08099fffa4e 100644 --- a/src/vnet/tcp/tcp_output.c +++ b/src/vnet/tcp/tcp_output.c @@ -1932,7 +1932,8 @@ tcp_retransmit_sack (tcp_worker_ctx_t * wrk, tcp_connection_t * tc, sb = &tc->sack_sb; /* Check if snd_una is a lost retransmit */ - if (seq_gt (sb->high_sacked, tc->snd_congestion) + if (pool_elts (sb->holes) + && seq_gt (sb->high_sacked, tc->snd_congestion) && tc->rxt_head != tc->snd_una && tcp_retransmit_should_retry_head (tc, sb)) { |