Folks, We have a need to re-register API message handlers. (Think re-fork/exec scenarios for daemons.)
Today, we register handlers via a call to this function: vl_msg_api_set_handlers (int id, char *name, void *handler, void *cleanup, void *endian, void *print, int size, int traced) When we do that today, we see this warning on the second call. vl_msg_api_config (vl_msg_api_msg_config_t * c) { [...] if (am->msg_names[c->id]) clib_warning ("BUG: multiple registrations of 'vl_api_%s_t_handler'", c->name); am->msg_names[c->id] = c->name; am->msg_handlers[c->id] = c->handler; am->msg_cleanup_handlers[c->id] = c->cleanup; am->msg_endian_handlers[c->id] = c->endian; am->msg_print_handlers[c->id] = c->print; am->message_bounce[c->id] = c->message_bounce; am->is_mp_safe[c->id] = c->is_mp_safe; Sure, the handler is re-registered, but it is really annoying, and it is misleading in our case. So we are looking for a way to squelch it. Is there a way to *un*-bind a handler during a "graceful shutdown" procedure so that we can remove any binding here, and thus later when we re-bind it is all happy again? Or, can we call a (new?) API function that says "Yeah, we know, but squash that message for me." just prior to registering the handlers. Or, is there a graceful shutdown of the API handling that I have just missed or overlooked somewhere? Thanks, jdl _______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev