diff options
author | Florin Coras <fcoras@cisco.com> | 2018-06-09 06:49:59 -0700 |
---|---|---|
committer | Chris Luke <chris_luke@comcast.com> | 2018-06-10 18:27:37 +0000 |
commit | 887b7ba8ad000a535ad4b7d730c6f07c0ee65165 (patch) | |
tree | b68c175a3437be3ec4070b73176dee9c608e479d /src/vnet/tcp/tcp_output.c | |
parent | 70a745d96653c2d3e72ba1704c29aaa946ed9a92 (diff) |
tcp: fix timer based recovery exit condition
Change-Id: I3f36e5760fd2935cc29d22601d4c0a1d2a22ba84
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 a036287a51c..91c0e90bb35 100644 --- a/src/vnet/tcp/tcp_output.c +++ b/src/vnet/tcp/tcp_output.c @@ -1399,7 +1399,8 @@ tcp_timer_retransmit_handler_i (u32 index, u8 is_syn) } /* Shouldn't be here */ - if (seq_geq (tc->snd_una, tc->snd_congestion)) + if ((tc->rto_boff == 0 && tc->snd_una == tc->snd_una_max) + || (tc->rto_boff > 0 && seq_geq (tc->snd_una, tc->snd_congestion))) { tcp_recovery_off (tc); return; |