X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlibapi%2Fapi_helper_macros.h;h=5746f071cdb5be192a703cede044b0263b4642b4;hb=dd3b8f7;hp=ce80f0e0e20667e494146c2a2094ea78ae3ee551;hpb=81119e86bdf47f41f06218f91e52024bc4d00e7c;p=vpp.git diff --git a/src/vlibapi/api_helper_macros.h b/src/vlibapi/api_helper_macros.h index ce80f0e0e20..5746f071cdb 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##_registration_hash, 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) \ @@ -220,7 +238,8 @@ _(bfd_events) \ _(wc_ip6_nd_events) \ _(wc_ip4_arp_events) \ _(ip6_ra_events) \ -_(dhcp6_pd_reply_events) +_(dhcp6_pd_reply_events) \ +_(dhcp6_reply_events) typedef struct {