session: add app ns index to ns create api

Change-Id: I86bfe4e8b0a899cc54c9b37eeb5eec701d0baf3d
Signed-off-by: Florin Coras <fcoras@cisco.com>
This commit is contained in:
Florin Coras
2017-11-10 09:03:54 -08:00
committed by Dave Wallace
parent af8dfbf6d8
commit 6e8c667988
3 changed files with 66 additions and 4 deletions

@ -5304,7 +5304,6 @@ _(p2p_ethernet_del_reply) \
_(lldp_config_reply) \
_(sw_interface_set_lldp_reply) \
_(tcp_configure_src_addresses_reply) \
_(app_namespace_add_del_reply) \
_(dns_enable_disable_reply) \
_(dns_name_server_add_del_reply) \
_(session_rule_add_del_reply) \
@ -21463,6 +21462,41 @@ api_tcp_configure_src_addresses (vat_main_t * vam)
return ret;
}
static void vl_api_app_namespace_add_del_reply_t_handler
(vl_api_app_namespace_add_del_reply_t * mp)
{
vat_main_t *vam = &vat_main;
i32 retval = ntohl (mp->retval);
if (vam->async_mode)
{
vam->async_errors += (retval < 0);
}
else
{
vam->retval = retval;
if (retval == 0)
errmsg ("app ns index %d\n", ntohl (mp->appns_index));
vam->result_ready = 1;
}
}
static void vl_api_app_namespace_add_del_reply_t_handler_json
(vl_api_app_namespace_add_del_reply_t * mp)
{
vat_main_t *vam = &vat_main;
vat_json_node_t node;
vat_json_init_object (&node);
vat_json_object_add_int (&node, "retval", ntohl (mp->retval));
vat_json_object_add_uint (&node, "appns_index", ntohl (mp->appns_index));
vat_json_print (vam->ofp, &node);
vat_json_free (&node);
vam->retval = ntohl (mp->retval);
vam->result_ready = 1;
}
static int
api_app_namespace_add_del (vat_main_t * vam)
{

@ -348,7 +348,7 @@ autoreply define session_enable_disable {
@param namespace_id_len - length of namespace id lower
@param namespace_id - namespace id
*/
autoreply define app_namespace_add_del {
define app_namespace_add_del {
u32 client_index;
u32 context;
u64 secret;
@ -359,6 +359,18 @@ autoreply define app_namespace_add_del {
u8 namespace_id[64];
};
/** \brief Reply for app namespace add/del
@param context - returned sender context, to match reply w/ request
@param retval - return code
@param appns_index - app namespace index
*/
define app_namespace_add_del_reply
{
u32 context;
i32 retval;
u32 appns_index;
};
/** \brief add/del session rule
@param client_index - opaque cookie to identify the sender
client to vpp direction only

@ -748,8 +748,9 @@ static void
vl_api_app_namespace_add_del_t_handler (vl_api_app_namespace_add_del_t * mp)
{
vl_api_app_namespace_add_del_reply_t *rmp;
u8 *ns_id = 0;
clib_error_t *error = 0;
u32 appns_index = 0;
u8 *ns_id = 0;
int rv = 0;
if (!session_manager_is_enabled ())
{
@ -779,9 +780,24 @@ vl_api_app_namespace_add_del_t_handler (vl_api_app_namespace_add_del_t * mp)
rv = clib_error_get_code (error);
clib_error_report (error);
}
else
{
appns_index = app_namespace_index_from_id (ns_id);
if (appns_index == APP_NAMESPACE_INVALID_INDEX)
{
clib_warning ("app ns lookup failed");
rv = VNET_API_ERROR_UNSPECIFIED;
}
}
vec_free (ns_id);
/* *INDENT-OFF* */
done:
REPLY_MACRO (VL_API_APP_NAMESPACE_ADD_DEL_REPLY);
REPLY_MACRO2 (VL_API_APP_NAMESPACE_ADD_DEL_REPLY, ({
if (!rv)
rmp->appns_index = clib_host_to_net_u32 (appns_index);
}));
/* *INDENT-ON* */
}
static void