diff options
author | Florin Coras <fcoras@cisco.com> | 2024-02-25 17:35:21 -0800 |
---|---|---|
committer | Dave Barach <vpp@barachs.net> | 2024-02-26 18:43:48 +0000 |
commit | 4e32bc6b6d4dcbaaca67f4e90d9e0cdfea73e344 (patch) | |
tree | 7524098de91ff565f5f7af386d208605b383da49 | |
parent | 5bce60353cb227fd9c39d3b8fefa2414c1c1c50f (diff) |
tcp: fix fin retransmit when out of buffers
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I787825dea7f82748537cc4372104cc6647cf2132
-rw-r--r-- | src/vnet/tcp/tcp_output.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/vnet/tcp/tcp_output.c b/src/vnet/tcp/tcp_output.c index e6c87b6a3d0..f157b78ff75 100644 --- a/src/vnet/tcp/tcp_output.c +++ b/src/vnet/tcp/tcp_output.c @@ -838,10 +838,9 @@ tcp_send_fin (tcp_connection_t * tc) /* Out of buffers so program fin retransmit ASAP */ tcp_timer_update (&wrk->timer_wheel, tc, TCP_TIMER_RETRANSMIT, tcp_cfg.alloc_err_timeout); - if (fin_snt) - tc->snd_nxt += 1; - else - /* Make sure retransmit retries a fin not data */ + tc->snd_nxt += 1; + /* Make sure retransmit retries a fin not data with right snd_nxt */ + if (!fin_snt) tc->flags |= TCP_CONN_FINSNT; tcp_worker_stats_inc (wrk, no_buffer, 1); return; |