From cdcfbfcf608035797b5ceaf6f7fefa77ce5cb27a Mon Sep 17 00:00:00 2001 From: Alberto Compagno Date: Thu, 21 Nov 2019 12:06:33 +0000 Subject: [HICN-406] Adding face deletion on the hicn-plugin when the corresponding socket is destroyed Signed-off-by: Alberto Compagno Change-Id: I09268dc5ae2ad465b4a4f68607732c0d3f48e62e --- .../src/hicn/transport/core/hicn_binary_api.c | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'libtransport/src/hicn/transport/core/hicn_binary_api.c') diff --git a/libtransport/src/hicn/transport/core/hicn_binary_api.c b/libtransport/src/hicn/transport/core/hicn_binary_api.c index 7f63c9826..1f8dfd326 100644 --- a/libtransport/src/hicn/transport/core/hicn_binary_api.c +++ b/libtransport/src/hicn/transport/core/hicn_binary_api.c @@ -102,7 +102,9 @@ static context_store_t context_store = { */ #define foreach_hicn_api_reply_msg \ _(HICN_API_REGISTER_PROD_APP_REPLY, hicn_api_register_prod_app_reply) \ + _(HICN_API_FACE_PROD_DEL_REPLY, hicn_api_face_prod_del_reply) \ _(HICN_API_REGISTER_CONS_APP_REPLY, hicn_api_register_cons_app_reply) \ + _(HICN_API_FACE_CONS_DEL_REPLY, hicn_api_face_cons_del_reply) \ _(HICN_API_ROUTE_NHOPS_ADD_REPLY, hicn_api_route_nhops_add_reply) int hicn_binary_api_register_prod_app( @@ -145,6 +147,34 @@ static void vl_api_hicn_api_register_prod_app_reply_t_handler( vpp_binary_api_unlock_waiting_thread(binary_api->vpp_api); } +int hicn_binary_api_face_prod_del( + vpp_plugin_binary_api_t *api, hicn_del_face_app_input_params *input_params) { + vl_api_hicn_api_face_prod_del_t *mp; + vpp_plugin_binary_api_t *hm = api; + + //vpp_binary_api_set_user_param(hm->vpp_api, output_params); + + /* Construct the API message */ + M(HICN_API_FACE_PROD_DEL, mp); + + mp->faceid = clib_host_to_net_u32(input_params->face_id); + + CONTEXT_SAVE(context_store, api, mp) + + return vpp_binary_api_send_request_wait_reply(api->vpp_api, mp); +} + +static void vl_api_hicn_api_face_prod_del_reply_t_handler( + vl_api_hicn_api_face_prod_del_reply_t *mp) { + vpp_plugin_binary_api_t *binary_api; + CONTEXT_GET(context_store, mp, binary_api); + + vpp_binary_api_set_ret_value(binary_api->vpp_api, + clib_net_to_host_u32(mp->retval)); + + vpp_binary_api_unlock_waiting_thread(binary_api->vpp_api); +} + int hicn_binary_api_register_cons_app( vpp_plugin_binary_api_t *api, hicn_consumer_input_params *input_params, hicn_consumer_output_params *output_params) { @@ -181,6 +211,32 @@ static void vl_api_hicn_api_register_cons_app_reply_t_handler( vpp_binary_api_unlock_waiting_thread(binary_api->vpp_api); } +int hicn_binary_api_face_cons_del( + vpp_plugin_binary_api_t *api, hicn_del_face_app_input_params *input_params) { + vl_api_hicn_api_face_cons_del_t *mp; + vpp_plugin_binary_api_t *hm = api; + + /* Construct the API message */ + M(HICN_API_FACE_CONS_DEL, mp); + + mp->faceid = clib_host_to_net_u32(input_params->face_id); + + CONTEXT_SAVE(context_store, api, mp) + + return vpp_binary_api_send_request_wait_reply(api->vpp_api, mp); +} + +static void vl_api_hicn_api_face_cons_del_reply_t_handler( + vl_api_hicn_api_face_cons_del_reply_t *mp) { + vpp_plugin_binary_api_t *binary_api; + CONTEXT_GET(context_store, mp, binary_api); + + vpp_binary_api_set_ret_value(binary_api->vpp_api, + clib_net_to_host_u32(mp->retval)); + + vpp_binary_api_unlock_waiting_thread(binary_api->vpp_api); +} + int hicn_binary_api_register_route( vpp_plugin_binary_api_t *api, hicn_producer_set_route_params *input_params) { -- cgit 1.2.3-korg