+ app_worker_add_event (app_wrk, s, SESSION_CTRL_EVT_TRANSPORT_CLOSED);
+ return 0;
+}
+
+int
+app_worker_reset_notify (app_worker_t * app_wrk, session_t * s)
+{
+ app_worker_add_event (app_wrk, s, SESSION_CTRL_EVT_RESET);
+ return 0;
+}
+
+int
+app_worker_cleanup_notify (app_worker_t * app_wrk, session_t * s,
+ session_cleanup_ntf_t ntf)
+{
+ session_event_t evt = { .event_type = SESSION_CTRL_EVT_CLEANUP,
+ .as_u64[0] = (u64) ntf << 32 | s->session_index,
+ .as_u64[1] = pointer_to_uword (session_cleanup) };
+
+ app_worker_add_event_custom (app_wrk, s->thread_index, &evt);
+
+ return 0;
+}
+
+int
+app_worker_cleanup_notify_custom (app_worker_t *app_wrk, session_t *s,
+ session_cleanup_ntf_t ntf,
+ void (*cleanup_cb) (session_t *s))
+{
+ session_event_t evt = { .event_type = SESSION_CTRL_EVT_CLEANUP,
+ .as_u64[0] = (u64) ntf << 32 | s->session_index,
+ .as_u64[1] = pointer_to_uword (cleanup_cb) };
+
+ app_worker_add_event_custom (app_wrk, s->thread_index, &evt);
+
+ return 0;
+}
+
+int
+app_worker_rx_notify (app_worker_t *app_wrk, session_t *s)
+{
+ app_worker_add_event (app_wrk, s, SESSION_IO_EVT_RX);
+ return 0;
+}
+
+int
+app_worker_migrate_notify (app_worker_t * app_wrk, session_t * s,
+ session_handle_t new_sh)
+{
+ session_event_t evt = { .event_type = SESSION_CTRL_EVT_MIGRATED,
+ .as_u64[0] = s->session_index,
+ .as_u64[1] = new_sh };
+
+ app_worker_add_event_custom (app_wrk, s->thread_index, &evt);