summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2019-03-13 13:25:57 -0700
committerDave Barach <openvpp@barachs.net>2019-03-14 20:23:49 +0000
commit37db43093c741767e89f7b1f7befa7b8ab173bac (patch)
tree0019bb7e8fef2dbe023a03619ee4dd662bde27be
parentbb2c7b580ecf56f06ccc871c4a1b0530458e47a8 (diff)
tcp: drop anything but fins in TIME_WAIT
Change-Id: I8414c2ed8bda59504330aad5f1a80dfe08dd85de Signed-off-by: Florin Coras <fcoras@cisco.com>
-rw-r--r--src/vnet/tcp/tcp_input.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c
index 0d75ba254ac..5235c20a565 100644
--- a/src/vnet/tcp/tcp_input.c
+++ b/src/vnet/tcp/tcp_input.c
@@ -2892,6 +2892,9 @@ tcp46_rcv_process_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
if (tcp_rcv_ack (wrk, tc0, b0, tcp0, &error0))
goto drop;
+ if (!is_fin0)
+ goto drop;
+
tcp_program_ack (wrk, tc0);
tcp_timer_update (tc0, TCP_TIMER_WAITCLOSE, TCP_TIMEWAIT_TIME);
goto drop;
@@ -2967,6 +2970,7 @@ tcp46_rcv_process_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
scoreboard_clear (&tc0->sack_sb);
tcp_fastrecovery_off (tc0);
tcp_recovery_off (tc0);
+ tcp_connection_timers_reset (tc0);
tc0->snd_nxt = tc0->snd_una_max = tc0->snd_una;
}
tcp_send_fin (tc0);