vat: unload unused vat plugins 64/20564/2
authorDave Barach <dave@barachs.net>
Tue, 9 Jul 2019 14:04:18 +0000 (10:04 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 9 Jul 2019 15:24:41 +0000 (15:24 +0000)
commit21a438465ca0dee88d13d9dd9621929116c95614
tree863a47f5c77e24b7fdee96db22080ff0db52e397
parent3f5ebed6ea3a024b7396afe81f895719a8286681
vat: unload unused vat plugins

If the corresponding vpp plugin is absent, return a non-zero
clib_error_t * from vat_plugin_register ("xxx plugin not loaded"). The
vat plugin calls dlclose on the vat plugin, and it disappears.

Depending on the plugin configuration, this can reduce the vpp virtual
size by several gigabytes.

Added a VAT_PLUGIN(<plugin-name>) macro to vat_helper_macros, clean up
boilerplate vat_plugin_register() implementations. Fixed a number of
non-standard vat_plugin_register methods.

Type: refactor

Change-Id: Iac908e5af7d5497c78d6aa9c3c51cdae08374045
Signed-off-by: Dave Barach <dave@barachs.net>
22 files changed:
src/examples/sample-plugin/sample/sample_test.c
src/plugins/acl/acl_test.c
src/plugins/avf/avf_test.c
src/plugins/cdp/cdp_test.c
src/plugins/ct6/ct6_test.c
src/plugins/dpdk/api/dpdk_test.c
src/plugins/flowprobe/flowprobe_test.c
src/plugins/gtpu/gtpu_test.c
src/plugins/http_static/http_static_test.c
src/plugins/ikev2/ikev2_test.c
src/plugins/ioam/lib-pot/pot_test.c
src/plugins/lacp/lacp_test.c
src/plugins/lb/lb_test.c
src/plugins/mactime/mactime_test.c
src/plugins/memif/memif_test.c
src/plugins/nat/nat_test.c
src/plugins/nsh/nsh_test.c
src/plugins/nsim/nsim_test.c
src/plugins/pppoe/pppoe_test.c
src/plugins/stn/stn_test.c
src/plugins/vmxnet3/vmxnet3_test.c
src/vlibapi/vat_helper_macros.h