session: add api cb for listen and unlisten
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I28ccebf4d2f0728dd174ab3ee77a0d7ad4b90951
This commit is contained in:
committed by
Dave Barach
parent
242fe13c62
commit
4f3da9c1f7
@@ -406,13 +406,6 @@ app_cert_key_pair_t *app_cert_key_pair_get (u32 index);
|
||||
app_cert_key_pair_t *app_cert_key_pair_get_if_valid (u32 index);
|
||||
app_cert_key_pair_t *app_cert_key_pair_get_default ();
|
||||
|
||||
/* Needed while we support both bapi and mq ctrl messages */
|
||||
int mq_send_session_bound_cb (u32 app_wrk_index, u32 api_context,
|
||||
session_handle_t handle, int rv);
|
||||
int mq_send_session_connected_cb (u32 app_wrk_index, u32 api_context,
|
||||
session_t * s, session_error_t err);
|
||||
void mq_send_unlisten_reply (app_worker_t * app_wrk, session_handle_t sh,
|
||||
u32 context, int rv);
|
||||
void sapi_socket_close_w_handle (u32 api_handle);
|
||||
|
||||
crypto_engine_type_t app_crypto_engine_type_add (void);
|
||||
|
||||
@@ -62,6 +62,13 @@ typedef struct session_cb_vft_
|
||||
/** Notify app that session pool migration happened */
|
||||
void (*session_migrate_callback) (session_t * s, session_handle_t new_sh);
|
||||
|
||||
/** Notify app (external only) that listen was processed */
|
||||
int (*session_listened_callback) (u32 app_wrk_index, u32 api_context,
|
||||
session_handle_t handle, int rv);
|
||||
/** Notify app (external only) that unlisten was processed */
|
||||
void (*session_unlistened_callback) (u32 app_wrk_index, session_handle_t sh,
|
||||
u32 context, int rv);
|
||||
|
||||
/** Direct RX callback for built-in application */
|
||||
int (*builtin_app_rx_callback) (session_t * session);
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ snd_msg:
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
mq_send_session_bound_cb (u32 app_wrk_index, u32 api_context,
|
||||
session_handle_t handle, int rv)
|
||||
{
|
||||
@@ -325,11 +325,14 @@ snd_msg:
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
mq_send_unlisten_reply (app_worker_t * app_wrk, session_handle_t sh,
|
||||
u32 context, int rv)
|
||||
static void
|
||||
mq_send_unlisten_cb (u32 app_wrk_index, session_handle_t sh, u32 context,
|
||||
int rv)
|
||||
{
|
||||
session_unlisten_reply_msg_t m = { 0 };
|
||||
app_worker_t *app_wrk;
|
||||
|
||||
app_wrk = app_worker_get (app_wrk_index);
|
||||
|
||||
m.context = context;
|
||||
m.handle = sh;
|
||||
@@ -503,6 +506,8 @@ static session_cb_vft_t session_mq_cb_vft = {
|
||||
.session_reset_callback = mq_send_session_reset_cb,
|
||||
.session_migrate_callback = mq_send_session_migrate_cb,
|
||||
.session_cleanup_callback = mq_send_session_cleanup_cb,
|
||||
.session_listened_callback = mq_send_session_bound_cb,
|
||||
.session_unlistened_callback = mq_send_unlisten_cb,
|
||||
.add_segment_callback = mq_send_add_segment_cb,
|
||||
.del_segment_callback = mq_send_del_segment_cb,
|
||||
.builtin_app_rx_callback = mq_send_io_rx_event,
|
||||
@@ -1282,6 +1287,8 @@ static session_cb_vft_t session_mq_sapi_cb_vft = {
|
||||
.session_reset_callback = mq_send_session_reset_cb,
|
||||
.session_migrate_callback = mq_send_session_migrate_cb,
|
||||
.session_cleanup_callback = mq_send_session_cleanup_cb,
|
||||
.session_listened_callback = mq_send_session_bound_cb,
|
||||
.session_unlistened_callback = mq_send_unlisten_cb,
|
||||
.add_segment_callback = mq_send_add_segment_sapi_cb,
|
||||
.del_segment_callback = mq_send_del_segment_sapi_cb,
|
||||
.builtin_app_rx_callback = mq_send_io_rx_event,
|
||||
|
||||
@@ -145,9 +145,9 @@ app_worker_flush_events_inline (app_worker_t *app_wrk, u32 thread_index,
|
||||
/* No app cb function currently */
|
||||
if (is_builtin)
|
||||
break;
|
||||
mq_send_session_bound_cb (app_wrk->wrk_index, evt->as_u64[1] >> 32,
|
||||
evt->session_handle,
|
||||
evt->as_u64[1] & 0xffffffff);
|
||||
app->cb_fns.session_listened_callback (
|
||||
app_wrk->wrk_index, evt->as_u64[1] >> 32, evt->session_handle,
|
||||
evt->as_u64[1] & 0xffffffff);
|
||||
break;
|
||||
case SESSION_CTRL_EVT_ACCEPTED:
|
||||
s = session_get (evt->session_index, thread_index);
|
||||
@@ -208,9 +208,9 @@ app_worker_flush_events_inline (app_worker_t *app_wrk, u32 thread_index,
|
||||
case SESSION_CTRL_EVT_UNLISTEN_REPLY:
|
||||
if (is_builtin)
|
||||
break;
|
||||
mq_send_unlisten_reply (app_wrk, evt->session_handle,
|
||||
evt->as_u64[1] >> 32,
|
||||
evt->as_u64[1] & 0xffffffff);
|
||||
app->cb_fns.session_unlistened_callback (
|
||||
app_wrk->wrk_index, evt->session_handle, evt->as_u64[1] >> 32,
|
||||
evt->as_u64[1] & 0xffffffff);
|
||||
break;
|
||||
case SESSION_CTRL_EVT_MIGRATED:
|
||||
s = session_get (evt->session_index, thread_index);
|
||||
|
||||
Reference in New Issue
Block a user