session: add api to program rx io evts

Type: improvement

Change-Id: I5a4a33604ecb8a29ef6932cc5826835d3bec7f23
Signed-off-by: Florin Coras <fcoras@cisco.com>
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index f159851..c1becf2 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -104,6 +104,22 @@
 }
 
 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)
 {
   /* only events supported are disconnect, shutdown and reset */
diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h
index a5604bf..67a1825 100644
--- a/src/vnet/session/session.h
+++ b/src/vnet/session/session.h
@@ -461,6 +461,7 @@
 					  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,