vcl: fix bidirectional tests (VPP-1455)
[vpp.git] / src / vcl / vcl_private.h
index ba9094c..d1a40b9 100644 (file)
@@ -18,7 +18,6 @@
 
 #include <vnet/session/application_interface.h>
 #include <vcl/vppcom.h>
-#include <vcl/vcl_event.h>
 #include <vcl/vcl_debug.h>
 
 #if (CLIB_DEBUG > 0)
@@ -139,6 +138,7 @@ do {                                            \
 
 typedef struct
 {
+  CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
 #define _(type, name) type name;
   foreach_app_session_field
 #undef _
@@ -153,6 +153,7 @@ typedef struct
   /* Socket configuration state */
   u8 is_vep;
   u8 is_vep_session;
+  u8 has_rx_evt;
   u32 attr;
   u32 wait_cont_idx;
   vppcom_epoll_t vep;
@@ -257,6 +258,12 @@ typedef struct vcl_worker_
 
   /** Vector acting as buffer for mq messages */
   svm_msg_q_msg_t *mq_msg_vector;
+
+  /** Vector of unhandled events */
+  session_event_t *unhandled_evts_vector;
+
+  /** Used also as a thread stop key buffer */
+  pthread_t thread_id;
 } vcl_worker_t;
 
 typedef struct vppcom_main_t_
@@ -283,6 +290,9 @@ typedef struct vppcom_main_t_
   /** Workers */
   vcl_worker_t *workers;
 
+  /** Lock to protect worker registrations */
+  clib_spinlock_t workers_lock;
+
 #ifdef VCL_ELOG
   /* VPP Event-logger */
   elog_main_t elog_main;
@@ -292,13 +302,6 @@ typedef struct vppcom_main_t_
   /* VNET_API_ERROR_FOO -> "Foo" hash table */
   uword *error_string_by_error_number;
 
-  /* Obsolete */
-
-  /* Event thread */
-  vce_event_thread_t event_thread;
-
-  /* IO thread */
-  vppcom_session_io_thread_t session_io_thread;
 } vppcom_main_t;
 
 extern vppcom_main_t *vcm;