diff options
author | Florin Coras <fcoras@cisco.com> | 2024-02-16 18:36:32 -0800 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2024-02-17 02:25:07 +0000 |
commit | d1e17a87389989ccc29dcd94eeef137c8b938606 (patch) | |
tree | 54dea04732baec981757622f2e371d17bb36cfe0 | |
parent | 81a6ffced1a5793e2135854501cfb68d40f9c87a (diff) |
tcp: retransmit fins in last-ack
Fix instances where timers are reset after programming fin.
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ib80e3a401d585f388a97c7f2bb62e68ee774d50d
-rw-r--r-- | src/vnet/tcp/tcp.c | 2 | ||||
-rw-r--r-- | src/vnet/tcp/tcp_input.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c index c7121b43e23..a6eb35a28b9 100644 --- a/src/vnet/tcp/tcp.c +++ b/src/vnet/tcp/tcp.c @@ -410,8 +410,8 @@ tcp_connection_close (tcp_connection_t * tc) case TCP_STATE_CLOSE_WAIT: if (!transport_max_tx_dequeue (&tc->connection)) { - tcp_send_fin (tc); tcp_connection_timers_reset (tc); + tcp_send_fin (tc); tcp_connection_set_state (tc, TCP_STATE_LAST_ACK); tcp_timer_update (&wrk->timer_wheel, tc, TCP_TIMER_WAITCLOSE, tcp_cfg.lastack_time); diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c index c069a9b08d6..914295ab064 100644 --- a/src/vnet/tcp/tcp_input.c +++ b/src/vnet/tcp/tcp_input.c @@ -2231,8 +2231,8 @@ tcp46_rcv_process_inline (vlib_main_t *vm, vlib_node_runtime_t *node, if (max_deq > tc->burst_acked) break; - tcp_send_fin (tc); tcp_connection_timers_reset (tc); + tcp_send_fin (tc); tcp_connection_set_state (tc, TCP_STATE_LAST_ACK); tcp_timer_set (&wrk->timer_wheel, tc, TCP_TIMER_WAITCLOSE, tcp_cfg.lastack_time); |