svm: allow mq attachments at random offsets
[vpp.git] / src / vcl / vcl_private.h
index 202c3e7..c864375 100644 (file)
@@ -154,7 +154,6 @@ typedef struct vcl_session_
   vcl_session_msg_t *accept_evts_fifo;
 
   u64 vpp_handle;
-  u32 vpp_thread_index;
   u32 listener_index;          /**< index of parent listener (if any) */
   int n_accepted_sessions;     /**< sessions accepted by this listener */
   u32 attributes;              /**< see @ref vppcom_session_attr_t */
@@ -175,7 +174,6 @@ typedef struct vppcom_cfg_t_
 {
   uword heapsize;
   u32 max_workers;
-  u32 vpp_api_q_length;
   uword segment_baseva;
   uword segment_size;
   uword add_segment_size;
@@ -264,9 +262,6 @@ typedef struct vcl_worker_
   /** Our event message queue */
   svm_msg_q_t *app_event_queue;
 
-  /** VPP workers event message queues */
-  svm_msg_q_t **vpp_event_queues;
-
   /** For deadman timers */
   clib_time_t clib_time;
 
@@ -675,12 +670,6 @@ vcl_n_workers (void)
   return pool_elts (vcm->workers);
 }
 
-static inline svm_msg_q_t *
-vcl_session_vpp_evt_q (vcl_worker_t * wrk, vcl_session_t * s)
-{
-  return wrk->vpp_event_queues[s->vpp_thread_index];
-}
-
 static inline u64
 vcl_vpp_worker_segment_handle (u32 wrk_index)
 {
@@ -696,6 +685,12 @@ int vcl_segment_attach (u64 segment_handle, char *name,
 void vcl_segment_detach (u64 segment_handle);
 void vcl_send_session_unlisten (vcl_worker_t * wrk, vcl_session_t * s);
 
+int vcl_segment_attach_session (uword segment_handle, uword rxf_offset,
+                               uword txf_offset, uword mq_offset, u8 is_ct,
+                               vcl_session_t *s);
+int vcl_segment_attach_mq (uword segment_handle, uword mq_offset, u32 mq_index,
+                          svm_msg_q_t **mq);
+
 /*
  * VCL Binary API
  */