+ s, err);
+}
+
+int
+app_worker_add_half_open (app_worker_t *app_wrk, session_handle_t sh)
+{
+ session_handle_t *shp;
+
+ ASSERT (session_vlib_thread_is_cl_thread ());
+ pool_get (app_wrk->half_open_table, shp);
+ *shp = sh;
+
+ return (shp - app_wrk->half_open_table);
+}
+
+int
+app_worker_del_half_open (app_worker_t *app_wrk, session_t *s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ ASSERT (session_vlib_thread_is_cl_thread ());
+ pool_put_index (app_wrk->half_open_table, s->ho_index);
+ if (app->cb_fns.half_open_cleanup_callback)
+ app->cb_fns.half_open_cleanup_callback (s);
+ return 0;
+}
+
+int
+app_worker_close_notify (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ app->cb_fns.session_disconnect_callback (s);
+ return 0;
+}
+
+int
+app_worker_transport_closed_notify (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ if (app->cb_fns.session_transport_closed_callback)
+ app->cb_fns.session_transport_closed_callback (s);
+ return 0;
+}
+
+int
+app_worker_reset_notify (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ app->cb_fns.session_reset_callback (s);
+ return 0;
+}
+
+int
+app_worker_cleanup_notify (app_worker_t * app_wrk, session_t * s,
+ session_cleanup_ntf_t ntf)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ if (app->cb_fns.session_cleanup_callback)
+ app->cb_fns.session_cleanup_callback (s, ntf);
+ return 0;
+}
+
+int
+app_worker_builtin_rx (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ app->cb_fns.builtin_app_rx_callback (s);
+ return 0;
+}
+
+int
+app_worker_builtin_tx (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+
+ if (!app->cb_fns.builtin_app_tx_callback)
+ return 0;
+
+ app->cb_fns.builtin_app_tx_callback (s);
+ return 0;
+}
+
+int
+app_worker_migrate_notify (app_worker_t * app_wrk, session_t * s,
+ session_handle_t new_sh)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ app->cb_fns.session_migrate_callback (s, new_sh);
+ return 0;