diff options
author | Alberto Compagno <acompagn+fdio@cisco.com> | 2019-11-21 12:06:33 +0000 |
---|---|---|
committer | Alberto Compagno <acompagn+fdio@cisco.com> | 2019-11-22 13:38:29 +0000 |
commit | cdcfbfcf608035797b5ceaf6f7fefa77ce5cb27a (patch) | |
tree | 2a5298d0b08fa80668f8d52257559ac3ae9096c5 /libtransport/src/hicn/transport/core/hicn_binary_api.c | |
parent | 843fba473ff35d026a7c4d39aa269b06c55e1f91 (diff) |
[HICN-406] Adding face deletion on the hicn-plugin when the corresponding socket is destroyed
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Change-Id: I09268dc5ae2ad465b4a4f68607732c0d3f48e62e
Diffstat (limited to 'libtransport/src/hicn/transport/core/hicn_binary_api.c')
-rw-r--r-- | libtransport/src/hicn/transport/core/hicn_binary_api.c | 56 |
1 files changed, 56 insertions, 0 deletions
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) { |