interface: add api test file

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Ib07029204ecf12bf2adb5a39afa54bc98fb81f34
This commit is contained in:
Filip Tehlar
2021-07-23 22:03:05 +00:00
committed by Ole Tr�an
parent 2e55823af6
commit f0e67d78ae
21 changed files with 1484 additions and 164 deletions

View File

@ -1,4 +1,6 @@
#include "vat.h"
#include <dlfcn.h>
#include <vat/plugin.h>
vat_main_t vat_main;
@ -93,6 +95,30 @@ vat_plugin_hash_create (void)
vam->help_by_name = hash_create_string (0, sizeof (uword));
}
static void
vat_register_interface_dump (vat_main_t *vam)
{
void *handle;
plugin_info_t *pi;
vec_foreach (pi, vat_plugin_main.plugin_info)
{
handle = dlsym (pi->handle, "api_sw_interface_dump");
if (handle)
{
vam->api_sw_interface_dump = handle;
break;
}
}
if (!vam->api_sw_interface_dump)
{
fformat (stderr,
"sw_interface_dump not found in interface_test plugin!\n");
exit (1);
}
}
static void
maybe_register_api_client (vat_main_t * vam)
{
@ -130,7 +156,8 @@ maybe_register_api_client (vat_main_t * vam)
am->shmem_hdr->application_restarts);
vam->vl_input_queue = am->shmem_hdr->vl_input_queue;
api_sw_interface_dump (vam);
vat_register_interface_dump (vam);
vam->api_sw_interface_dump (vam);
}
static clib_error_t *
@ -234,7 +261,7 @@ api_command_fn (vlib_main_t * vm,
if (vam->regenerate_interface_table)
{
vam->regenerate_interface_table = 0;
api_sw_interface_dump (vam);
vam->api_sw_interface_dump (vam);
}
unformat_free (vam->input);
return 0;