From: Florin Coras Date: Fri, 10 Oct 2025 03:12:30 +0000 (-0400) Subject: session: add close reason to app eventing X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F71%2F43871%2F12;p=vpp.git session: add close reason to app eventing Type: improvement Change-Id: Ic03839cb3ed6751d6b1ef1bc27497ff9bcd0464e Signed-off-by: Florin Coras --- diff --git a/src/vnet/session/application_eventing.c b/src/vnet/session/application_eventing.c index 9ce8f4d0596..fe1fa4bdcc9 100644 --- a/src/vnet/session/application_eventing.c +++ b/src/vnet/session/application_eventing.c @@ -146,6 +146,9 @@ app_evt_collector_log_session (app_evt_collector_t *c, session_t *s) clib_memcpy_fast (tcp_stats->conn_id, tc->opaque_conn_id, sizeof (tc->opaque_conn_id)); tcp_stats->end_ts = transport_time_now (s->thread_index); + tcp_stats->close_reason = s->flags & SESSION_F_TPT_INIT_CLOSE ? + APP_EVT_SESSION_STAT_TRANSPORT_CLOSED : + APP_EVT_SESSION_STAT_APP_CLOSED; #define _(type, name) tcp_stats->name = tcp_conn->name; foreach_tcp_transport_stat @@ -179,6 +182,9 @@ app_evt_collector_log_session (app_evt_collector_t *c, session_t *s) sizeof (tc->opaque_conn_id)); ct_stats->actual_proto = ct_conn->actual_tp; ct_stats->end_ts = transport_time_now (s->thread_index); + ct_stats->close_reason = s->flags & SESSION_F_TPT_INIT_CLOSE ? + APP_EVT_SESSION_STAT_TRANSPORT_CLOSED : + APP_EVT_SESSION_STAT_APP_CLOSED; } break; default: diff --git a/src/vnet/session/application_eventing.h b/src/vnet/session/application_eventing.h index e156ba09263..dcd28b5fe43 100644 --- a/src/vnet/session/application_eventing.h +++ b/src/vnet/session/application_eventing.h @@ -54,6 +54,12 @@ typedef struct app_evt_msg_ u8 data[0]; } __clib_packed app_evt_msg_t; +typedef enum app_evt_session_stats_close_reason_ +{ + APP_EVT_SESSION_STAT_APP_CLOSED, + APP_EVT_SESSION_STAT_TRANSPORT_CLOSED, +} app_evt_session_stats_close_reason_t; + #define foreach_tcp_transport_stat \ _ (u64, segs_in) \ _ (u64, bytes_in) \ @@ -81,6 +87,7 @@ typedef struct tcp_transport_stats_ foreach_tcp_transport_stat #undef _ f64 end_ts; + app_evt_session_stats_close_reason_t close_reason; } __clib_packed tcp_session_stats_t; #define foreach_udp_transport_stat \ @@ -99,6 +106,7 @@ typedef struct udp_transport_stats_ foreach_udp_transport_stat #undef _ f64 end_ts; + app_evt_session_stats_close_reason_t close_reason; } __clib_packed udp_session_stats_t; typedef struct ct_transport_stats_ @@ -106,6 +114,7 @@ typedef struct ct_transport_stats_ u8 conn_id[TRANSPORT_CONN_ID_LEN]; transport_proto_t actual_proto; f64 end_ts; + app_evt_session_stats_close_reason_t close_reason; } __clib_packed ct_session_stats_t; typedef struct app_evt_collector_cfg_