-vcl_cut_through_registration_t *vcl_ct_registration_lock_and_alloc (void);
-void vcl_ct_registration_del (vcl_cut_through_registration_t * ctr);
-u32 vcl_ct_registration_index (vcl_cut_through_registration_t * ctr);
-void vcl_ct_registration_unlock (void);
-vcl_cut_through_registration_t *vcl_ct_registration_get (u32 ctr_index);
-vcl_cut_through_registration_t *vcl_ct_registration_lock_and_lookup (uword);
-void vcl_ct_registration_lookup_add (uword mq_addr, u32 ctr_index);
-void vcl_ct_registration_lookup_del (uword mq_addr);
-vcl_mq_evt_conn_t *vcl_mq_evt_conn_alloc (void);
-u32 vcl_mq_evt_conn_index (vcl_mq_evt_conn_t * mqc);
-vcl_mq_evt_conn_t *vcl_mq_evt_conn_get (u32 mq_conn_idx);
-int vcl_mq_epoll_add_evfd (svm_msg_q_t * mq);
-int vcl_mq_epoll_del_evfd (u32 mqc_index);
+int vcl_wait_for_app_state_change (app_state_t app_state);
+vcl_mq_evt_conn_t *vcl_mq_evt_conn_alloc (vcl_worker_t * wrk);
+u32 vcl_mq_evt_conn_index (vcl_worker_t * wrk, vcl_mq_evt_conn_t * mqc);
+vcl_mq_evt_conn_t *vcl_mq_evt_conn_get (vcl_worker_t * wrk, u32 mq_conn_idx);
+int vcl_mq_epoll_add_evfd (vcl_worker_t * wrk, svm_msg_q_t * mq);
+int vcl_mq_epoll_del_evfd (vcl_worker_t * wrk, u32 mqc_index);
+
+vcl_worker_t *vcl_worker_alloc_and_init (void);
+void vcl_worker_cleanup (vcl_worker_t * wrk, u8 notify_vpp);
+int vcl_worker_register_with_vpp (void);
+int vcl_worker_set_bapi (void);
+svm_msg_q_t *vcl_worker_ctrl_mq (vcl_worker_t * wrk);
+
+void vcl_flush_mq_events (void);
+void vcl_cleanup_bapi (void);
+int vcl_session_cleanup (vcl_worker_t * wrk, vcl_session_t * session,
+ vcl_session_handle_t sh, u8 do_disconnect);
+
+void vcl_segment_table_add (u64 segment_handle, u32 svm_segment_index);
+u32 vcl_segment_table_lookup (u64 segment_handle);
+void vcl_segment_table_del (u64 segment_handle);
+
+int vcl_session_read_ready (vcl_session_t * session);
+int vcl_session_write_ready (vcl_session_t * session);
+
+static inline vcl_worker_t *
+vcl_worker_get (u32 wrk_index)
+{
+ return pool_elt_at_index (vcm->workers, wrk_index);
+}