tcp: add establish timer pops to stats 15/41315/3
authorAritra Basu <[email protected]>
Tue, 30 Jul 2024 21:34:59 +0000 (14:34 -0700)
committerAritra Basu <[email protected]>
Thu, 1 Aug 2024 18:46:59 +0000 (11:46 -0700)
Type: improvement

Change-Id: Ibc1e391356cef415b992b65c00f3d365fc97386d
Signed-off-by: Aritra Basu <[email protected]>
src/vnet/tcp/tcp.h
src/vnet/tcp/tcp_output.c

index d032a3d..8676db4 100644 (file)
@@ -45,19 +45,21 @@ typedef struct _tcp_lookup_dispatch
   u8 next, error;
 } tcp_lookup_dispatch_t;
 
-#define foreach_tcp_wrk_stat                                   \
-  _(timer_expirations, u64, "timer expirations")               \
-  _(rxt_segs, u64, "segments retransmitted")                   \
-  _(tr_events, u32, "timer retransmit events")                 \
-  _(to_closewait, u32, "timeout close-wait")                   \
-  _(to_closewait2, u32, "timeout close-wait w/data")           \
-  _(to_finwait1, u32, "timeout fin-wait-1")                    \
-  _(to_finwait2, u32, "timeout fin-wait-2")                    \
-  _(to_lastack, u32, "timeout last-ack")                       \
-  _(to_closing, u32, "timeout closing")                                \
-  _(tr_abort, u32, "timer retransmit abort")                   \
-  _(rst_unread, u32, "reset on close due to unread data")      \
-  _(no_buffer, u32, "out of buffers")                          \
+#define foreach_tcp_wrk_stat                                                  \
+  _ (timer_expirations, u64, "timer expirations")                             \
+  _ (rxt_segs, u64, "segments retransmitted")                                 \
+  _ (tr_events, u32, "timer retransmit events")                               \
+  _ (to_establish, u32, "timeout establish")                                  \
+  _ (to_persist, u32, "timeout persist")                                      \
+  _ (to_closewait, u32, "timeout close-wait")                                 \
+  _ (to_closewait2, u32, "timeout close-wait w/data")                         \
+  _ (to_finwait1, u32, "timeout fin-wait-1")                                  \
+  _ (to_finwait2, u32, "timeout fin-wait-2")                                  \
+  _ (to_lastack, u32, "timeout last-ack")                                     \
+  _ (to_closing, u32, "timeout closing")                                      \
+  _ (tr_abort, u32, "timer retransmit abort")                                 \
+  _ (rst_unread, u32, "reset on close due to unread data")                    \
+  _ (no_buffer, u32, "out of buffers")
 
 typedef struct tcp_wrk_stats_
 {
index 373bb2a..dd1ec55 100644 (file)
@@ -1458,6 +1458,8 @@ tcp_timer_retransmit_syn_handler (tcp_connection_t * tc)
   TCP_EVT (TCP_EVT_CC_EVT, tc, 2);
   tc->rtt_ts = 0;
 
+  tcp_worker_stats_inc (wrk, to_establish, 1);
+
   /* Active open establish timeout */
   if (tc->rto >= TCP_ESTABLISH_TIME >> 1)
     {
@@ -1507,6 +1509,8 @@ tcp_timer_persist_handler (tcp_connection_t * tc)
   int n_bytes = 0;
   u8 *data;
 
+  tcp_worker_stats_inc (wrk, to_persist, 1);
+
   /* Problem already solved or worse */
   if (tc->state == TCP_STATE_CLOSED || tc->snd_wnd > tc->snd_mss
       || (tc->flags & TCP_CONN_FINSNT))