aboutsummaryrefslogtreecommitdiffstats
path: root/src/vlibapi/api_helper_macros.h
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-06-04 18:41:24 -0700
committerNeale Ranns <nranns@cisco.com>2018-06-10 19:27:56 -0400
commit98ee17424bb9483cbf21d8f218f970001ba68adf (patch)
tree0f38b3ab408254823562c3a4212b02bac32007a5 /src/vlibapi/api_helper_macros.h
parentd9aa9ff03c85cda61e5df72190807ba11a417c8b (diff)
Add reaper functions to want events APIs (VPP-1304)
Change-Id: Iaeb52d94cb6da63ee93af7c1cf2dade6046cba1d Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vlibapi/api_helper_macros.h')
-rw-r--r--src/vlibapi/api_helper_macros.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/vlibapi/api_helper_macros.h b/src/vlibapi/api_helper_macros.h
index de3c09bdb89..f0c0f84f9d7 100644
--- a/src/vlibapi/api_helper_macros.h
+++ b/src/vlibapi/api_helper_macros.h
@@ -207,7 +207,25 @@ static void vl_api_want_##lca##_t_handler ( \
\
reply: \
REPLY_MACRO (VL_API_WANT_##UCA##_REPLY); \
-}
+} \
+ \
+static clib_error_t * vl_api_want_##lca##_t_reaper (u32 client_index) \
+{ \
+ vpe_api_main_t *vam = &vpe_api_main; \
+ vpe_client_registration_t *rp; \
+ uword *p; \
+ \
+ p = hash_get (vam->lca##_registrations, client_index); \
+ if (p) \
+ { \
+ rp = pool_elt_at_index (vam->lca##_registrations, p[0]); \
+ pool_put (vam->lca##_registrations, rp); \
+ hash_unset (vam->lca##_registration_hash, client_index); \
+ } \
+ return (NULL); \
+} \
+ \
+VL_MSG_API_REAPER_FUNCTION (vl_api_want_##lca##_t_reaper); \
#define foreach_registration_hash \
_(interface_events) \