return vlib_load_new_plugins (pm, 1 /* from_early_init */ );
}
+u8 *
+vlib_get_vat_plugin_path (void)
+{
+ plugin_main_t *pm = &vlib_plugin_main;
+ return (pm->vat_plugin_path);
+}
+
+u8 *
+vlib_get_vat_plugin_name_filter (void)
+{
+ plugin_main_t *pm = &vlib_plugin_main;
+ return (pm->vat_plugin_name_filter);
+}
+
static clib_error_t *
vlib_plugins_show_cmd_fn (vlib_main_t * vm,
unformat_input_t * input, vlib_cli_command_t * cmd)
u8 *s = 0;
if (unformat (input, "path %s", &s))
pm->plugin_path = s;
+ else if (unformat (input, "name-filter %s", &s))
+ pm->plugin_name_filter = s;
+ else if (unformat (input, "vat-path %s", &s))
+ pm->vat_plugin_path = s;
+ else if (unformat (input, "vat-name-filter %s", &s))
+ pm->vat_plugin_name_filter = s;
else if (unformat (input, "plugin %s %U", &s,
unformat_vlib_cli_sub_input, &sub_input))
{
plugin_info_t *plugin_info;
uword *plugin_by_name_hash;
- /* path and name filter */
+ /* paths and name filters */
u8 *plugin_path;
u8 *plugin_name_filter;
+ u8 *vat_plugin_path;
+ u8 *vat_plugin_name_filter;
/* plugin configs and hash by name */
plugin_config_t *configs;
int vlib_plugin_early_init (vlib_main_t * vm);
int vlib_load_new_plugins (plugin_main_t * pm, int from_early_init);
void *vlib_get_plugin_symbol (char *plugin_name, char *symbol_name);
+u8 *vlib_get_vat_plugin_path (void);
#define VLIB_PLUGIN_REGISTER() \
vlib_plugin_registration_t vlib_plugin_registration \
vat_plugin_init (vat_main_t * vam)
{
plugin_main_t *pm = &vat_plugin_main;
+ u8 *vlib_get_vat_plugin_path (void);
+ u8 *vlib_get_vat_plugin_name_filter (void);
+ u8 *plugin_path;
+ u8 *plugin_name_filter;
+ plugin_path = vlib_get_vat_plugin_path ();
+ plugin_name_filter = vlib_get_vat_plugin_name_filter ();
+
+ if (plugin_path)
+ vat_plugin_path = (char *) plugin_path;
+
+ if (plugin_name_filter)
+ vat_plugin_name_filter = (char *) plugin_name_filter;
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);
/*
+ * plugin.h: plugin handling
+ *
* Copyright (c) 2015 Cisco and/or its affiliates.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/*
- * plugin.h: plugin handling
- */
#ifndef __included_plugin_h__
#define __included_plugin_h__
plugin_info_t *plugin_info;
uword *plugin_by_name_hash;
- /* path and name filter */
+ /* paths and name filters */
u8 *plugin_path;
u8 *plugin_name_filter;
+ u8 *vat_plugin_path;
+ u8 *vat_plugin_name_filter;
- /* convenience */
- vat_main_t *vat_main;
+ /* plugin configs and hash by name */
+ plugin_config_t *configs;
+ uword *config_index_by_name;
+ /* usual */
+ vlib_main_t *vlib_main;
} plugin_main_t;
extern plugin_main_t vat_plugin_main;