session vcl: refactor builtin tx event for main tx
[vpp.git] / src / vnet / session / session_debug.h
index 588d58c..45dd77c 100644 (file)
@@ -28,6 +28,7 @@
   _ (DISPATCH_START, CLOCKS_EVT_DBG, 1, "dispatch start")                     \
   _ (DISPATCH_END, CLOCKS_EVT_DBG, 1, "dispatch end")                         \
   _ (DSP_CNTRS, CLOCKS_EVT_DBG, 1, "dispatch counters")                       \
+  _ (STATE_CHANGE, SM, 1, "session state change")                             \
   _ (FREE, SM, 1, "session free")                                             \
   _ (IO_EVT_COUNTS, COUNTS_EVT_DBG, 1, "io evt counts")                       \
   _ (COUNTS, COUNTS_EVT_DBG, 1, "ctrl evt counts")
@@ -69,28 +70,28 @@ typedef enum session_evt_to_grp_
 #undef _
 } session_evt_to_grp_e;
 
-#define foreach_session_events                                         \
-_(CLK_UPDATE_TIME, 1, 1, "Time Update Time")                   \
-_(CLK_MQ_DEQ, 1, 1, "Time MQ Dequeue")                                 \
-_(CLK_CTRL_EVTS, 1, 1, "Time Ctrl Events")                     \
-_(CLK_NEW_IO_EVTS, 1, 1, "Time New IO Events")                 \
-_(CLK_OLD_IO_EVTS, 1, 1, "Time Old IO Events")                 \
-_(CLK_TOTAL, 1, 1, "Time Total in Node")                       \
-_(CLK_START, 1, 1, "Time Since Last Reset")                    \
-                                                               \
-_(CNT_MQ_EVTS, 1, 0, "# of MQ Events Processed" )              \
-_(CNT_CTRL_EVTS, 1, 0, "# of Ctrl Events Processed" )          \
-_(CNT_NEW_EVTS, 1, 0, "# of New Events Processed" )                    \
-_(CNT_OLD_EVTS, 1, 0, "# of Old Events Processed" )                    \
-_(CNT_IO_EVTS, 1, 0, "# of Events Processed" )                 \
-_(CNT_NODE_CALL, 1, 0, "# of Node Calls")                      \
-                                                               \
-_(BASE_OFFSET_IO_EVTS, 0, 0, "NULL")                           \
-_(SESSION_IO_EVT_RX, 1, 0, "# of IO Event RX")                 \
-_(SESSION_IO_EVT_TX,  1, 0, "# of IO Event TX")                 \
-_(SESSION_IO_EVT_TX_FLUSH, 1, 0, "# of IO Event TX Flush")      \
-_(SESSION_IO_EVT_BUILTIN_RX, 1, 0, "# of IO Event BuiltIn RX") \
-_(SESSION_IO_EVT_BUILTIN_TX, 1, 0, "# of IO Event BuiltIn TX") \
+#define foreach_session_events                                                \
+  _ (CLK_UPDATE_TIME, 1, 1, "Time Update Time")                               \
+  _ (CLK_MQ_DEQ, 1, 1, "Time MQ Dequeue")                                     \
+  _ (CLK_CTRL_EVTS, 1, 1, "Time Ctrl Events")                                 \
+  _ (CLK_NEW_IO_EVTS, 1, 1, "Time New IO Events")                             \
+  _ (CLK_OLD_IO_EVTS, 1, 1, "Time Old IO Events")                             \
+  _ (CLK_TOTAL, 1, 1, "Time Total in Node")                                   \
+  _ (CLK_START, 1, 1, "Time Since Last Reset")                                \
+                                                                              \
+  _ (CNT_MQ_EVTS, 1, 0, "# of MQ Events Processed")                           \
+  _ (CNT_CTRL_EVTS, 1, 0, "# of Ctrl Events Processed")                       \
+  _ (CNT_NEW_EVTS, 1, 0, "# of New Events Processed")                         \
+  _ (CNT_OLD_EVTS, 1, 0, "# of Old Events Processed")                         \
+  _ (CNT_IO_EVTS, 1, 0, "# of Events Processed")                              \
+  _ (CNT_NODE_CALL, 1, 0, "# of Node Calls")                                  \
+                                                                              \
+  _ (BASE_OFFSET_IO_EVTS, 0, 0, "NULL")                                       \
+  _ (SESSION_IO_EVT_RX, 1, 0, "# of IO Event RX")                             \
+  _ (SESSION_IO_EVT_TX, 1, 0, "# of IO Event TX")                             \
+  _ (SESSION_IO_EVT_TX_FLUSH, 1, 0, "# of IO Event TX Flush")                 \
+  _ (SESSION_IO_EVT_BUILTIN_RX, 1, 0, "# of IO Event BuiltIn RX")             \
+  _ (SESSION_IO_EVT_TX_MAIN, 1, 0, "# of IO Event TX Main")
 
 typedef enum
 {
@@ -165,6 +166,32 @@ extern session_dbg_main_t session_dbg_main;
   ed = ELOG_DATA (&vlib_global_main.elog_main, _e)
 
 #if SESSION_SM
+#define SESSION_EVT_STATE_CHANGE_HANDLER(_s)                                  \
+  {                                                                           \
+    ELOG_TYPE_DECLARE (_e) = {                                               \
+      .format = "%s: idx %u",                                                 \
+      .format_args = "t4i4",                                                  \
+      .n_enum_strings = 12,                                                  \
+      .enum_strings = {                                                      \
+                      "created",                                             \
+                      "listening",                                           \
+                      "connecting",                                          \
+                      "accepting",                                           \
+                      "ready",                                               \
+                      "opened",                                              \
+                      "transport closing",                                   \
+                      "closing",                                             \
+                      "app closed",                                          \
+                      "transport closed",                                    \
+                      "closed",                                              \
+                      "transport deleted",                                   \
+                      },                                                     \
+    };                                   \
+    DEC_SESSION_ETD (_s, _e, 2);                                              \
+    ed->data[0] = _s->session_state;                                          \
+    ed->data[1] = _s->session_index;                                          \
+  }
+
 #define SESSION_EVT_FREE_HANDLER(_s)                                          \
   {                                                                           \
     ELOG_TYPE_DECLARE (_e) = {                                                \
@@ -175,6 +202,7 @@ extern session_dbg_main_t session_dbg_main;
     ed->data[0] = _s->session_index;                                          \
   }
 #else
+#define SESSION_EVT_STATE_CHANGE_HANDLER(_s)
 #define SESSION_EVT_FREE_HANDLER(_s)
 #endif