session: Add session_sapi_enable_disable
Type: feature This adds an API message to do the switch at runtime. Change-Id: Ice6b69c57f0bfbf5668182e25593362ff4133615 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This commit is contained in:

committed by
Florin Coras

parent
5546e43f79
commit
7b3a3df263
@ -222,10 +222,15 @@ app_namespace_get_local_table (app_namespace_t * app_ns)
|
||||
return session_table_get (app_ns->local_table_index);
|
||||
}
|
||||
|
||||
void
|
||||
appns_sapi_enable (void)
|
||||
int
|
||||
appns_sapi_enable_disable (int is_enable)
|
||||
{
|
||||
app_sapi_enabled = 1;
|
||||
/* This cannot be called with active sockets */
|
||||
if (pool_elts (app_namespace_pool))
|
||||
return -1;
|
||||
|
||||
app_sapi_enabled = is_enable;
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8
|
||||
|
@ -162,7 +162,7 @@ appns_sapi_handle_sock_index (u32 sapi_sock_handle)
|
||||
int appns_sapi_add_ns_socket (app_namespace_t * app_ns);
|
||||
void appns_sapi_del_ns_socket (app_namespace_t *app_ns);
|
||||
u8 appns_sapi_enabled (void);
|
||||
void appns_sapi_enable (void);
|
||||
int appns_sapi_enable_disable (int is_enable);
|
||||
|
||||
#endif /* SRC_VNET_SESSION_APPLICATION_NAMESPACE_H_ */
|
||||
|
||||
|
@ -203,6 +203,18 @@ autoreply define session_enable_disable {
|
||||
bool is_enable [default=true];
|
||||
};
|
||||
|
||||
/** \brief enable/disable session layer socket api
|
||||
@param client_index - opaque cookie to identify the sender
|
||||
client to vpp direction only
|
||||
@param context - sender context, to match reply w/ request
|
||||
@param is_enable - disable session layer if 0, enable otherwise
|
||||
*/
|
||||
autoreply define session_sapi_enable_disable {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
bool is_enable [default=true];
|
||||
};
|
||||
|
||||
/** \brief add/del application namespace
|
||||
@param client_index - opaque cookie to identify the sender
|
||||
client to vpp direction only
|
||||
|
@ -2069,7 +2069,7 @@ session_config_fn (vlib_main_t * vm, unformat_input_t * input)
|
||||
else if (unformat (input, "segment-baseva 0x%lx", &smm->session_baseva))
|
||||
;
|
||||
else if (unformat (input, "use-app-socket-api"))
|
||||
appns_sapi_enable ();
|
||||
(void) appns_sapi_enable_disable (1 /* is_enable */);
|
||||
else if (unformat (input, "poll-main"))
|
||||
smm->poll_main = 1;
|
||||
else if (unformat (input, "use-private-rx-mqs"))
|
||||
|
@ -601,6 +601,17 @@ vl_api_session_enable_disable_t_handler (vl_api_session_enable_disable_t * mp)
|
||||
REPLY_MACRO (VL_API_SESSION_ENABLE_DISABLE_REPLY);
|
||||
}
|
||||
|
||||
static void
|
||||
vl_api_session_sapi_enable_disable_t_handler (
|
||||
vl_api_session_sapi_enable_disable_t *mp)
|
||||
{
|
||||
vl_api_session_sapi_enable_disable_reply_t *rmp;
|
||||
int rv = 0;
|
||||
|
||||
rv = appns_sapi_enable_disable (mp->is_enable);
|
||||
REPLY_MACRO (VL_API_SESSION_SAPI_ENABLE_DISABLE_REPLY);
|
||||
}
|
||||
|
||||
static void
|
||||
vl_api_app_attach_t_handler (vl_api_app_attach_t * mp)
|
||||
{
|
||||
|
Reference in New Issue
Block a user