From 45e4f365086267ef2551b1dedf4e309bdd00a34a Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Tue, 7 Mar 2017 12:52:31 -0500 Subject: [PATCH] Missing plugin binary API command fns found after brief search Create hash tables before loading plugins. Previous init sequence wiped out most if not all of them. Change-Id: I5dd628895f68f740d525951511a9fef1822d39da Signed-off-by: Dave Barach --- src/vat/api_format.c | 2 +- src/vat/plugin.c | 1 - src/vpp/api/api_main.c | 10 ++++++++++ src/vpp/vnet/main.c | 6 ++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/vat/api_format.c b/src/vat/api_format.c index b5943f030a6..fb596fe69d0 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -18314,13 +18314,13 @@ vat_api_hookup (vat_main_t * vam) #if (VPP_API_TEST_BUILTIN==0) vl_msg_api_set_first_available_msg_id (VL_MSG_FIRST_AVAILABLE); -#endif vam->sw_if_index_by_interface_name = hash_create_string (0, sizeof (uword)); vam->function_by_name = hash_create_string (0, sizeof (uword)); vam->help_by_name = hash_create_string (0, sizeof (uword)); +#endif /* API messages we can send */ #define _(n,h) hash_set_mem (vam->function_by_name, #n, api_##n); diff --git a/src/vat/plugin.c b/src/vat/plugin.c index c1cc928c217..20de8c50b6f 100644 --- a/src/vat/plugin.c +++ b/src/vat/plugin.c @@ -181,7 +181,6 @@ vat_plugin_init (vat_main_t * vam) { plugin_main_t *pm = &vat_plugin_main; - pm->plugin_path = format (0, "%s%c", vat_plugin_path, 0); if (vat_plugin_name_filter) pm->plugin_name_filter = format (0, "%s%c", vat_plugin_name_filter, 0); diff --git a/src/vpp/api/api_main.c b/src/vpp/api/api_main.c index 6ae510b16b6..7913bc01e9d 100644 --- a/src/vpp/api/api_main.c +++ b/src/vpp/api/api_main.c @@ -56,6 +56,16 @@ api_main_init (vlib_main_t * vm) VLIB_INIT_FUNCTION (api_main_init); +void +vat_plugin_hash_create (void) +{ + vat_main_t *vam = &vat_main; + + vam->sw_if_index_by_interface_name = hash_create_string (0, sizeof (uword)); + vam->function_by_name = hash_create_string (0, sizeof (uword)); + vam->help_by_name = hash_create_string (0, sizeof (uword)); +} + static clib_error_t * api_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) diff --git a/src/vpp/vnet/main.c b/src/vpp/vnet/main.c index 4a96ca94321..a566d956dfe 100644 --- a/src/vpp/vnet/main.c +++ b/src/vpp/vnet/main.c @@ -25,6 +25,8 @@ static void vpe_main_init (vlib_main_t * vm) { + void vat_plugin_hash_create (void); + if (CLIB_DEBUG > 0) vlib_unix_cli_set_prompt ("DBGvpp# "); else @@ -33,6 +35,10 @@ vpe_main_init (vlib_main_t * vm) /* Turn off network stack components which we don't want */ vlib_mark_init_function_complete (vm, srp_init); + /* + * Create the binary api plugin hashes before loading plugins + */ + vat_plugin_hash_create (); } /* -- 2.16.6