How about: only complain if the new registration is actually different from the 
old one?

Thanks... Dave

-----Original Message-----
From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On 
Behalf Of Jon Loeliger
Sent: Friday, September 15, 2017 3:35 PM
To: vpp-dev <vpp-dev@lists.fd.io>
Subject: [vpp-dev] VPP API Message Multi-Registration Question

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
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to