aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/core/hicn_binary_api.c
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2019-11-25 08:53:19 +0000
committerGerrit Code Review <gerrit@fd.io>2019-11-25 08:53:19 +0000
commit4bdc720d1a7d13f19eae6ba7e14b00cbfbd37ce0 (patch)
treee4ee6c80a9478b9e984747f4fa041a225afd557d /libtransport/src/hicn/transport/core/hicn_binary_api.c
parent93b0b7a95922defa19951dde01b1dce4047bb0e7 (diff)
parentcdcfbfcf608035797b5ceaf6f7fefa77ce5cb27a (diff)
Merge "[HICN-406] Adding face deletion on the hicn-plugin when the corresponding socket is destroyed"
Diffstat (limited to 'libtransport/src/hicn/transport/core/hicn_binary_api.c')
-rw-r--r--libtransport/src/hicn/transport/core/hicn_binary_api.c56
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) {