/** Notify app that session is closing */
void (*session_disconnect_callback) (session_t * s);
+ /** Notify app that transport is closed */
+ void (*session_transport_closed_callback) (session_t * s);
+
+ /** Notify app that session or transport are about to be removed */
+ void (*session_cleanup_callback) (session_t * s, session_cleanup_ntf_t ntf);
+
/** Notify app that session was reset */
void (*session_reset_callback) (session_t * s);
+ /** Notify app that session pool migration happened */
+ void (*session_migrate_callback) (session_t * s, session_handle_t new_sh);
+
/** Direct RX callback for built-in application */
int (*builtin_app_rx_callback) (session_t * session);
svm_msg_q_lock_and_alloc_msg_w_ring (mq,
SESSION_MQ_CTRL_EVT_RING,
SVM_Q_WAIT, &app_evt->msg);
- svm_msg_q_unlock (mq);
app_evt->evt = svm_msg_q_msg_data (mq, &app_evt->msg);
clib_memset (app_evt->evt, 0, sizeof (*app_evt->evt));
app_evt->evt->event_type = evt_type;
static inline void
app_send_ctrl_evt_to_vpp (svm_msg_q_t * mq, app_session_evt_t * app_evt)
{
- svm_msg_q_add (mq, &app_evt->msg, SVM_Q_WAIT);
+ svm_msg_q_add_and_unlock (mq, &app_evt->msg);
}
/**