tcp: postpone cleanup on connect failures 97/39797/3
authorFlorin Coras <fcoras@cisco.com>
Thu, 26 Oct 2023 15:46:46 +0000 (08:46 -0700)
committerDave Barach <vpp@barachs.net>
Wed, 1 Nov 2023 20:33:44 +0000 (20:33 +0000)
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I231b319d4d7aa3e17cc8cfe8aaa4762995a5b2c4

src/vnet/tcp/tcp_input.c

index 1494fd8..932a7ec 100644 (file)
@@ -1909,7 +1909,9 @@ tcp46_syn_sent_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
                                             SESSION_E_NONE))
            {
              tcp_send_reset_w_pkt (new_tc, b[0], thread_index, is_ip4);
-             tcp_connection_cleanup (new_tc);
+             tcp_program_cleanup (wrk, new_tc);
+             new_tc->state = TCP_STATE_CLOSED;
+             new_tc->c_s_index = ~0;
              error = TCP_ERROR_CREATE_SESSION_FAIL;
              goto cleanup_ho;
            }
@@ -1930,8 +1932,10 @@ tcp46_syn_sent_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
          if (session_stream_connect_notify (&new_tc->connection,
                                             SESSION_E_NONE))
            {
-             tcp_connection_cleanup (new_tc);
              tcp_send_reset_w_pkt (tc, b[0], thread_index, is_ip4);
+             tcp_program_cleanup (wrk, new_tc);
+             new_tc->state = TCP_STATE_CLOSED;
+             new_tc->c_s_index = ~0;
              TCP_EVT (TCP_EVT_RST_SENT, tc);
              error = TCP_ERROR_CREATE_SESSION_FAIL;
              goto cleanup_ho;