dhcp: vat support for the dhcp_client_dump API

Also: permanently solve ordering issues with the vpp builtin vat
plugin loader, by explicitly loading vat plugins once we're sure that
all data plane plugins have registered their APIs / API message
handlers.

Fix compilation / link errors when the vpp builtin vat plugin loader
is disbled by cmake configuration.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id553c63ae860ebfc196c5ad4b55c19e08fec2c9e
Signed-off-by: Ole Troan <ot@cisco.com>
diff --git a/src/vlibmemory/vlib_api.c b/src/vlibmemory/vlib_api.c
index 5820168..51378a5 100644
--- a/src/vlibmemory/vlib_api.c
+++ b/src/vlibmemory/vlib_api.c
@@ -248,6 +248,13 @@
   vec_free (serialized_message_table);
 }
 
+clib_error_t *vat_builtin_main_init (vlib_main_t * vm) __attribute__ ((weak));
+clib_error_t *
+vat_builtin_main_init (vlib_main_t * vm)
+{
+  return 0;
+}
+
 static uword
 vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node,
 		     vlib_frame_t * f)
@@ -287,6 +294,10 @@
   if (e)
     clib_error_report (e);
 
+  e = vat_builtin_main_init (vm);
+  if (e)
+    clib_error_report (e);
+
   sleep_time = 10.0;
   dead_client_scan_time = vlib_time_now (vm) + 10.0;