From: Florin Coras Date: Wed, 7 May 2025 05:56:15 +0000 (-0700) Subject: session: avoid clearing fifos while closing X-Git-Tag: v25.10-rc0~28 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=af2b9d4c071a16e721d398e5ceaed2d8c5f7824d;p=vpp.git session: avoid clearing fifos while closing Allow apps to scrape amount of undelivered data before cleanup. Type: improvement Change-Id: Ia925bfdd9ee168f5b9da0ddd3048cf4ed2fd440e Signed-off-by: Florin Coras --- diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c index 35da9efca70..27a4177b4c5 100644 --- a/src/vnet/session/session.c +++ b/src/vnet/session/session.c @@ -966,7 +966,6 @@ session_transport_delete_notify (transport_connection_t * tc) session_lookup_del_session (s); session_set_state (s, SESSION_STATE_TRANSPORT_DELETED); session_cleanup_notify (s, SESSION_CLEANUP_TRANSPORT); - svm_fifo_dequeue_drop_all (s->tx_fifo); break; case SESSION_STATE_APP_CLOSED: /* Cleanup lookup table as transport needs to still be valid. @@ -977,7 +976,6 @@ session_transport_delete_notify (transport_connection_t * tc) session_lookup_del_session (s); session_set_state (s, SESSION_STATE_TRANSPORT_DELETED); session_cleanup_notify (s, SESSION_CLEANUP_TRANSPORT); - svm_fifo_dequeue_drop_all (s->tx_fifo); session_program_transport_ctrl_evt (s, SESSION_CTRL_EVT_CLOSE); break; case SESSION_STATE_TRANSPORT_DELETED: @@ -1039,7 +1037,6 @@ session_transport_delete_request (transport_connection_t *tc, session_lookup_del_session (s); session_set_state (s, SESSION_STATE_TRANSPORT_DELETED); session_cleanup_notify_custom (s, SESSION_CLEANUP_TRANSPORT, cb_fn); - svm_fifo_dequeue_drop_all (s->tx_fifo); break; case SESSION_STATE_APP_CLOSED: /* Cleanup lookup table as transport needs to still be valid. @@ -1050,7 +1047,6 @@ session_transport_delete_request (transport_connection_t *tc, session_lookup_del_session (s); session_set_state (s, SESSION_STATE_TRANSPORT_DELETED); session_cleanup_notify_custom (s, SESSION_CLEANUP_TRANSPORT, cb_fn); - svm_fifo_dequeue_drop_all (s->tx_fifo); session_program_transport_ctrl_evt (s, SESSION_CTRL_EVT_CLOSE); break; case SESSION_STATE_TRANSPORT_DELETED: @@ -1097,7 +1093,6 @@ session_transport_closed_notify (transport_connection_t * tc) if (s->session_state == SESSION_STATE_READY) { session_transport_closing_notify (tc); - svm_fifo_dequeue_drop_all (s->tx_fifo); session_set_state (s, SESSION_STATE_TRANSPORT_CLOSED); } /* If app close has not been received or has not yet resulted in @@ -1123,7 +1118,6 @@ session_transport_reset_notify (transport_connection_t * tc) session_t *s; s = session_get (tc->s_index, tc->thread_index); - svm_fifo_dequeue_drop_all (s->tx_fifo); if (s->session_state >= SESSION_STATE_TRANSPORT_CLOSING) return; if (s->session_state == SESSION_STATE_ACCEPTING)