From 6e8c6679883f59542d85d1de3edabc7e811108d2 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Fri, 10 Nov 2017 09:03:54 -0800 Subject: session: add app ns index to ns create api Change-Id: I86bfe4e8b0a899cc54c9b37eeb5eec701d0baf3d Signed-off-by: Florin Coras --- src/vnet/session/session.api | 14 +++++++++++++- src/vnet/session/session_api.c | 20 ++++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) (limited to 'src/vnet/session') diff --git a/src/vnet/session/session.api b/src/vnet/session/session.api index 6ed75efb08c..358103a4f56 100644 --- a/src/vnet/session/session.api +++ b/src/vnet/session/session.api @@ -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 diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index fb74e6bbff4..7de77ddfd34 100755 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -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 -- cgit 1.2.3-korg