tcp: avoid fr segments less than mss if possible
[vpp.git] / src / vnet / tcp / tcp_debug.h
old mode 100755 (executable)
new mode 100644 (file)
index f4e7c39..04e921c
 #define SRC_VNET_TCP_TCP_DEBUG_H_
 
 #include <vlib/vlib.h>
+#include <vpp/vnet/config.h>
 
 /**
  * Build debugging infra unconditionally. Debug components controlled via
  * debug configuration. Comes with some overhead so it's not recommended for
  * production/performance scenarios. Takes priority over TCP_DEBUG_ENABLE.
  */
+#ifdef VPP_TCP_DEBUG_ALWAYS
+#define TCP_DEBUG_ALWAYS (1)
+#else
 #define TCP_DEBUG_ALWAYS (0)
+#endif
 /**
  * Build debugging infra only if enabled. Debug components controlled via
  * macros that follow.
@@ -345,14 +350,13 @@ ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, _e,                    \
 {                                                                      \
   ELOG_TYPE_DECLARE (_e) =                                             \
   {                                                                    \
-    .format = "syn-tx: iss %u snd_una %u snd_una_max %u snd_nxt %u",   \
-    .format_args = "i4i4i4i4",                                         \
+    .format = "syn-tx: iss %u snd_una %u snd_nxt %u",                  \
+    .format_args = "i4i4i4",                                           \
   };                                                                   \
-  TCP_DECLARE_ETD(_tc, _e, 4);                                         \
+  TCP_DECLARE_ETD(_tc, _e, 3);                                         \
   ed->data[0] = _tc->iss;                                              \
   ed->data[1] = _tc->snd_una - _tc->iss;                               \
-  ed->data[2] = _tc->snd_una_max - _tc->iss;                           \
-  ed->data[3] = _tc->snd_nxt - _tc->iss;                               \
+  ed->data[2] = _tc->snd_nxt - _tc->iss;                               \
   TCP_EVT_STATE_CHANGE_HANDLER(_tc);                                   \
 }
 
@@ -548,8 +552,8 @@ if (_tc)                                                            \
 {                                                                      \
   ELOG_TYPE_DECLARE (_e) =                                             \
   {                                                                    \
-    .format = "ack-err: %s ack %u snd_una %u snd_nxt %u una_max %u",   \
-    .format_args = "t4i4i4i4i4",                                       \
+    .format = "ack-err: %s ack %u snd_una %u snd_nxt %u",              \
+    .format_args = "t4i4i4i4",                                         \
     .n_enum_strings = 3,                                               \
     .enum_strings = {                                                  \
       "invalid",                                                       \
@@ -557,12 +561,11 @@ if (_tc)                                                          \
       "future",                                                                \
     },                                                                         \
   };                                                                   \
-  TCP_DECLARE_ETD(_tc, _e, 5);                                         \
+  TCP_DECLARE_ETD(_tc, _e, 4);                                         \
   ed->data[0] = _type;                                                 \
   ed->data[1] = _ack - _tc->iss;                                       \
   ed->data[2] = _tc->snd_una - _tc->iss;                               \
   ed->data[3] = _tc->snd_nxt - _tc->iss;                               \
-  ed->data[4] = _tc->snd_una_max - _tc->iss;                           \
 }
 
 #define TCP_EVT_RCV_WND_SHRUNK_HANDLER(_tc, _obs, _av, ...)            \
@@ -787,12 +790,12 @@ if (_av > 0)                                                              \
 {                                                                      \
   ELOG_TYPE_DECLARE (_e) =                                             \
   {                                                                    \
-    .format = "pack: snd_una %u snd_una_max %u",                       \
+    .format = "pack: snd_una %u snd_nxt %u",                           \
     .format_args = "i4i4",                                             \
   };                                                                   \
   TCP_DECLARE_ETD(_tc, _e, 2);                                         \
   ed->data[0] = _tc->snd_una - _tc->iss;                               \
-  ed->data[1] = _tc->snd_una_max - _tc->iss;                           \
+  ed->data[1] = _tc->snd_nxt - _tc->iss;                               \
 }
 #define TCP_EVT_CC_SCOREBOARD_HANDLER(_tc, ...)                                \
 {                                                                      \
@@ -869,11 +872,12 @@ if (TCP_DEBUG_CC > 1)                                                     \
  */
 #if TCP_DEBUG_CS || TCP_DEBUG_ALWAYS
 
-#define STATS_INTERVAL 1
+#define STATS_INTERVAL 0.001
 
-#define tcp_cc_time_to_print_stats(_tc)                                        \
-  _tc->c_cc_stat_tstamp + STATS_INTERVAL < tcp_time_now()              \
-  || tcp_in_fastrecovery (_tc)                                         \
+#define tcp_cc_time_to_print_stats(_tc)                                       \
+  _tc->c_cc_stat_tstamp + STATS_INTERVAL <                                    \
+      tcp_time_now_us (_tc->c_thread_index) ||                                \
+    tcp_in_fastrecovery (_tc)
 
 #define TCP_EVT_CC_RTO_STAT_PRINT(_tc)                                 \
 {                                                                      \
@@ -889,14 +893,14 @@ if (TCP_DEBUG_CC > 1)                                                     \
   ed->data[3] = _tc->rttvar;                                           \
 }
 
-#define TCP_EVT_CC_RTO_STAT_HANDLER(_tc, ...)                          \
-{                                                                      \
-if (tcp_cc_time_to_print_stats (_tc))                                  \
-{                                                                      \
-  TCP_EVT_CC_RTO_STAT_PRINT (_tc);                                     \
-  _tc->c_cc_stat_tstamp = tcp_time_now ();                             \
-}                                                                      \
-}
+#define TCP_EVT_CC_RTO_STAT_HANDLER(_tc, ...)                                 \
+  {                                                                           \
+    if (tcp_cc_time_to_print_stats (_tc))                                     \
+      {                                                                       \
+       TCP_EVT_CC_RTO_STAT_PRINT (_tc);                                      \
+       _tc->c_cc_stat_tstamp = tcp_time_now_us (_tc->c_thread_index);        \
+      }                                                                       \
+  }
 
 #define TCP_EVT_CC_SND_STAT_PRINT(_tc)                                 \
 {                                                                      \
@@ -913,14 +917,14 @@ if (tcp_cc_time_to_print_stats (_tc))                                     \
   ed->data[3] = _tc->snd_rxt_bytes;                                    \
 }
 
-#define TCP_EVT_CC_SND_STAT_HANDLER(_tc, ...)                          \
-{                                                                      \
-if (tcp_cc_time_to_print_stats (_tc))                                  \
-{                                                                      \
-    TCP_EVT_CC_SND_STAT_PRINT(_tc);                                    \
-    _tc->c_cc_stat_tstamp = tcp_time_now ();                           \
-}                                                                      \
-}
+#define TCP_EVT_CC_SND_STAT_HANDLER(_tc, ...)                                 \
+  {                                                                           \
+    if (tcp_cc_time_to_print_stats (_tc))                                     \
+      {                                                                       \
+       TCP_EVT_CC_SND_STAT_PRINT (_tc);                                      \
+       _tc->c_cc_stat_tstamp = tcp_time_now_us (_tc->c_thread_index);        \
+      }                                                                       \
+  }
 
 #define TCP_EVT_CC_STAT_PRINT(_tc)                                     \
 {                                                                      \
@@ -939,14 +943,14 @@ if (tcp_cc_time_to_print_stats (_tc))                                     \
   TCP_EVT_CC_SND_STAT_PRINT (_tc);                                     \
 }
 
-#define TCP_EVT_CC_STAT_HANDLER(_tc, ...)                              \
-{                                                                      \
-if (tcp_cc_time_to_print_stats (_tc))                                  \
-{                                                                      \
-  TCP_EVT_CC_STAT_PRINT (_tc);                                         \
-  _tc->c_cc_stat_tstamp = tcp_time_now();                              \
-}                                                                      \
-}
+#define TCP_EVT_CC_STAT_HANDLER(_tc, ...)                                     \
+  {                                                                           \
+    if (tcp_cc_time_to_print_stats (_tc))                                     \
+      {                                                                       \
+       TCP_EVT_CC_STAT_PRINT (_tc);                                          \
+       _tc->c_cc_stat_tstamp = tcp_time_now_us (_tc->c_thread_index);        \
+      }                                                                       \
+  }
 #else
 #define TCP_EVT_CC_STAT_HANDLER(_tc, ...)
 #define TCP_EVT_CC_STAT_PRINT(_tc)