session: add api to program rx io evts 49/41249/2
authorFlorin Coras <fcoras@cisco.com>
Mon, 8 Jul 2024 22:15:07 +0000 (15:15 -0700)
committerFlorin Coras <florin.coras@gmail.com>
Mon, 8 Jul 2024 21:49:32 +0000 (21:49 +0000)
Type: improvement

Change-Id: I5a4a33604ecb8a29ef6932cc5826835d3bec7f23
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/vnet/session/session.c
src/vnet/session/session.h

index f159851..c1becf2 100644 (file)
@@ -103,6 +103,22 @@ session_program_tx_io_evt (session_handle_tu_t sh, session_evt_type_t evt_type)
                                     (u32) sh.thread_index, evt_type);
 }
 
+int
+session_program_rx_io_evt (session_handle_tu_t sh)
+{
+  if (sh.thread_index == vlib_get_thread_index ())
+    {
+      session_t *s = session_get_from_handle (sh);
+      return session_enqueue_notify (s);
+    }
+  else
+    {
+      return session_send_evt_to_thread ((void *) &sh.session_index, 0,
+                                        (u32) sh.thread_index,
+                                        SESSION_IO_EVT_BUILTIN_RX);
+    }
+}
+
 int
 session_send_ctrl_evt_to_thread (session_t * s, session_evt_type_t evt_type)
 {
index a5604bf..67a1825 100644 (file)
@@ -461,6 +461,7 @@ int session_send_io_evt_to_thread_custom (void *data, u32 thread_index,
                                          session_evt_type_t evt_type);
 int session_program_tx_io_evt (session_handle_tu_t sh,
                               session_evt_type_t evt_type);
+int session_program_rx_io_evt (session_handle_tu_t sh);
 void session_send_rpc_evt_to_thread (u32 thread_index, void *fp,
                                     void *rpc_args);
 void session_send_rpc_evt_to_thread_force (u32 thread_index, void *fp,