diff options
author | Filip Tehlar <ftehlar@cisco.com> | 2021-07-23 22:03:05 +0000 |
---|---|---|
committer | Ole Tr�an <otroan@employees.org> | 2021-10-18 07:03:12 +0000 |
commit | f0e67d78ae23ff3d5751ea10e9e76cb6e81ba4a5 (patch) | |
tree | c63b1ac48809a7247bb288e01d5c9cdfb6038b7c /src/vpp | |
parent | 2e55823af6c1cc6856e4a1f2cea659170bd76fb7 (diff) |
interface: add api test file
Type: improvement
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Ib07029204ecf12bf2adb5a39afa54bc98fb81f34
Diffstat (limited to 'src/vpp')
-rw-r--r-- | src/vpp/api/api_main.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/vpp/api/api_main.c b/src/vpp/api/api_main.c index 97dec9e1542..9b915eeffcf 100644 --- a/src/vpp/api/api_main.c +++ b/src/vpp/api/api_main.c @@ -1,4 +1,6 @@ #include "vat.h" +#include <dlfcn.h> +#include <vat/plugin.h> vat_main_t vat_main; @@ -94,6 +96,30 @@ vat_plugin_hash_create (void) } 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) { vl_api_registration_t **regpp; @@ -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; |