git: 8ac9dd794c8f - main - net/vpp: New port for layer 2-4 multi-platform network stack

From: Joseph Mingrone <jrm_at_FreeBSD.org>
Date: Fri, 09 Aug 2024 14:10:12 UTC
The branch main has been updated by jrm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8ac9dd794c8fafcd763dc541c13790bcc23699b3

commit 8ac9dd794c8fafcd763dc541c13790bcc23699b3
Author:     Tom Jones <thj@FreeBSD.org>
AuthorDate: 2024-08-07 20:42:19 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2024-08-09 14:09:18 +0000

    net/vpp: New port for layer 2-4 multi-platform network stack
    
    Sponsored by:   The FreeBSD Foundation
    
    Co-authored-by: Joseph Mingrone <jrm@FreeBSD.org>
---
 net/Makefile                                       |   1 +
 net/vpp/Makefile                                   |  55 +++++
 net/vpp/distinfo                                   |   7 +
 net/vpp/files/patch-Makefile                       |  46 ++++
 net/vpp/files/patch-build-root_Makefile            |  11 +
 .../files/patch-src_plugins_dpdk_CMakeLists.txt    |  11 +
 net/vpp/pkg-descr                                  |   9 +
 net/vpp/pkg-plist                                  | 256 +++++++++++++++++++++
 8 files changed, 396 insertions(+)

diff --git a/net/Makefile b/net/Makefile
index a02722d1240c..e79a5ab4bcf6 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1614,6 +1614,7 @@
     SUBDIR += vncreflector
     SUBDIR += vnstat
     SUBDIR += vortex
+    SUBDIR += vpp
     SUBDIR += vtun
     SUBDIR += wackamole
     SUBDIR += wakeonlan
diff --git a/net/vpp/Makefile b/net/vpp/Makefile
new file mode 100644
index 000000000000..3b06cdc1b5f4
--- /dev/null
+++ b/net/vpp/Makefile
@@ -0,0 +1,55 @@
+PORTNAME=	vpp
+DISTVERSIONPREFIX=	v
+DISTVERSION=	24.06
+CATEGORIES=	net
+
+PATCH_SITES=	https://github.com/adventureloop/${PORTNAME}/commit/
+PATCHFILES=	fba2754d78cde15f93d19f86499aa3803110bc73.patch:-p1 \
+		c15618aa59bf39197c66ec2e82c58c02d4c56c20.patch:-p1
+
+MAINTAINER=	thj@freebsd.org
+COMMENT=	VPP: A fast, scalable layer 2-4 multi-platform network stack
+WWW=		https://fd.io
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+IGNORE_FreeBSD_13=	is not supported on FreeBSD 13.x due to missing timerfd library shim
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR} \
+		bash:shells/bash \
+		cmake:devel/cmake-core
+LIB_DEPENDS=	libepoll-shim.so:devel/libepoll-shim \
+		libpcap.so:net/libpcap \
+		librte_cryptodev.so:net/dpdk
+
+USES=		gmake ninja:build python:build shebangfix ssl
+USE_GITHUB=	yes
+GH_ACCOUNT=	FDio
+USE_LDCONFIG=	yes
+SHEBANG_REGEX=	'.*\.py$$'
+
+ALL_TARGET=	build-release
+
+VPPPROGS=	vat2 vpp_json_test vpp_echo vpp_prometheus_export svmdbtool \
+		vpp_get_metrics vpp_restart svmtool vpp_get_stats vpp vppctl
+BUILD_PATH=	build-root/build-vpp-native/vpp
+
+pre-configure:
+	@${ECHO_CMD} ${DISTVERSION} > ${WRKSRC}/src/scripts/.version
+
+do-install:
+# vpp_find_plugin_path hard codes in a search based on the vpp path to
+# find vpp_plugsins and explicitly looks for 'bin' (src/vpp/vnet/main.c)
+.for vpp_prog in ${VPPPROGS}
+	${INSTALL_PROGRAM} ${WRKSRC}/${BUILD_PATH}/bin/${vpp_prog} ${STAGEDIR}${PREFIX}/bin
+.endfor
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/vpp_plugins ${STAGEDIR}${PREFIX}/lib/vat2_plugins
+	${CP} ${WRKSRC}/${BUILD_PATH}/lib/vpp_plugins/* ${STAGEDIR}${PREFIX}/lib/vpp_plugins/
+	${CP} ${WRKSRC}/${BUILD_PATH}/lib/vat2_plugins/* ${STAGEDIR}${PREFIX}/lib/vat2_plugins/
+	${INSTALL_LIB} ${WRKSRC}/${BUILD_PATH}/lib/*.so* ${STAGEDIR}${PREFIX}/lib
+
+post-install:
+	${FIND} ${STAGEDIR}${PREFIX}/lib/ -name *.so -exec ${STRIP_CMD} {} +
+
+.include <bsd.port.mk>
diff --git a/net/vpp/distinfo b/net/vpp/distinfo
new file mode 100644
index 000000000000..8da4014e8aaa
--- /dev/null
+++ b/net/vpp/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1723131459
+SHA256 (FDio-vpp-v24.06_GH0.tar.gz) = b8192821b38821b39ea435505d2d76b167f637654ebfb30d3f71cbead3bcaa07
+SIZE (FDio-vpp-v24.06_GH0.tar.gz) = 22030398
+SHA256 (fba2754d78cde15f93d19f86499aa3803110bc73.patch) = 2943947b3b07776d30bc1db652f1a5067ea63d5acf80dce9798aa88de85775df
+SIZE (fba2754d78cde15f93d19f86499aa3803110bc73.patch) = 1659
+SHA256 (c15618aa59bf39197c66ec2e82c58c02d4c56c20.patch) = a2075b41b77622368f22320645bc81e50bf1110200a2dfa547122b256023d965
+SIZE (c15618aa59bf39197c66ec2e82c58c02d4c56c20.patch) = 1633
diff --git a/net/vpp/files/patch-Makefile b/net/vpp/files/patch-Makefile
new file mode 100644
index 000000000000..585bcd48d00b
--- /dev/null
+++ b/net/vpp/files/patch-Makefile
@@ -0,0 +1,46 @@
+--- Makefile.orig	2024-05-03 16:02:54 UTC
++++ Makefile
+@@ -314,29 +314,6 @@ $(BR)/.deps.ok:
+ 	@echo " DISABLED_PLUGINS  = $(DISABLED_PLUGINS)"
+ 
+ $(BR)/.deps.ok:
+-ifeq ($(findstring y,$(UNATTENDED)),y)
+-	$(MAKE) install-dep
+-endif
+-ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
+-	@MISSING=$$(apt-get install -y -qq -s $(DEB_DEPENDS) | grep "^Inst ") ; \
+-	if [ -n "$$MISSING" ] ; then \
+-	  echo "\nPlease install missing packages: \n$$MISSING\n" ; \
+-	  echo "by executing \"make install-dep\"\n" ; \
+-	  exit 1 ; \
+-	fi ; \
+-	exit 0
+-else ifneq ("$(wildcard /etc/redhat-release)","")
+-	@for i in $(RPM_DEPENDS) ; do \
+-	    RPM=$$(basename -s .rpm "$${i##*/}" | cut -d- -f1,2,3,4)  ;	\
+-	    MISSING+=$$(rpm -q $$RPM | grep "^package")	   ;    \
+-	done							   ;	\
+-	if [ -n "$$MISSING" ] ; then \
+-	  echo "Please install missing RPMs: \n$$MISSING\n" ; \
+-	  echo "by executing \"make install-dep\"\n" ; \
+-	  exit 1 ; \
+-	fi ; \
+-	exit 0
+-endif
+ 	@touch $@
+ 
+ .PHONY: bootstrap
+@@ -696,13 +673,6 @@ pkg-srpm: dist
+ .PHONY: pkg-srpm
+ pkg-srpm: dist
+ 	$(MAKE) -C extras/rpm srpm
+-
+-.PHONY: install-ext-deps
+-install-ext-deps:
+-	$(MAKE) -C build/external install-$(PKG)
+-
+-.PHONY: install-ext-dep
+-install-ext-dep: install-ext-deps
+ 
+ .PHONY: json-api-files
+ json-api-files:
diff --git a/net/vpp/files/patch-build-root_Makefile b/net/vpp/files/patch-build-root_Makefile
new file mode 100644
index 000000000000..c9e8599bc46f
--- /dev/null
+++ b/net/vpp/files/patch-build-root_Makefile
@@ -0,0 +1,11 @@
+--- build-root/Makefile.orig	2024-05-03 16:05:23 UTC
++++ build-root/Makefile
+@@ -736,7 +736,7 @@ install_check_timestamp =					\
+ 
+ .PHONY: %-install
+ %-install: %-build
+-	$(install_check_timestamp)
++	$(call build_msg_fn, external build removed)
+ 
+ ######################################################################
+ # Source code managment
diff --git a/net/vpp/files/patch-src_plugins_dpdk_CMakeLists.txt b/net/vpp/files/patch-src_plugins_dpdk_CMakeLists.txt
new file mode 100644
index 000000000000..6d9fe7d43e2b
--- /dev/null
+++ b/net/vpp/files/patch-src_plugins_dpdk_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/plugins/dpdk/CMakeLists.txt.orig	2024-05-09 15:47:26 UTC
++++ src/plugins/dpdk/CMakeLists.txt
+@@ -14,7 +14,7 @@
+ ##############################################################################
+ # Check if we want to use the system DPDK
+ ##############################################################################
+-option(VPP_USE_SYSTEM_DPDK "Use the system installation of DPDK." OFF)
++option(VPP_USE_SYSTEM_DPDK "Use the system installation of DPDK." ON)
+ if(VPP_USE_SYSTEM_DPDK)
+     find_package(PkgConfig REQUIRED)
+     pkg_check_modules(DPDK REQUIRED libdpdk)
diff --git a/net/vpp/pkg-descr b/net/vpp/pkg-descr
new file mode 100644
index 000000000000..0b3169273b57
--- /dev/null
+++ b/net/vpp/pkg-descr
@@ -0,0 +1,9 @@
+FD.io's Vector Packet Processor (VPP) is a fast, scalable layer 2-4
+multi-platform network stack. It runs in Linux Userspace on multiple
+architectures including x86, ARM, and Power architectures.
+
+VPP's high performance network stack is quickly becoming the network stack of
+choice for applications around the world.
+
+Some VPP Use-cases include vSwitches, vRouters, Gateways, Firewalls and
+Load-Balancers, to name a few.
diff --git a/net/vpp/pkg-plist b/net/vpp/pkg-plist
new file mode 100644
index 000000000000..1c1c59fdbd17
--- /dev/null
+++ b/net/vpp/pkg-plist
@@ -0,0 +1,256 @@
+bin/svmdbtool
+bin/svmtool
+bin/vat2
+bin/vpp
+bin/vpp_echo
+bin/vpp_get_metrics
+bin/vpp_get_stats
+bin/vpp_json_test
+bin/vpp_prometheus_export
+bin/vpp_restart
+bin/vppctl
+lib/libnat.so
+lib/libnat.so.24.06.0
+lib/libsvm.so
+lib/libsvm.so.24.06.0
+lib/libsvmdb.so
+lib/libsvmdb.so.24.06.0
+lib/libvapiclient.so
+lib/libvapiclient.so.24.06.0
+lib/libvatclient.so
+lib/libvatclient.so.24.06.0
+lib/libvatplugin.so
+lib/libvatplugin.so.24.06.0
+lib/libvlib.so
+lib/libvlib.so.24.06.0
+lib/libvlibapi.so
+lib/libvlibapi.so.24.06.0
+lib/libvlibmemory.so
+lib/libvlibmemory.so.24.06.0
+lib/libvlibmemoryclient.so
+lib/libvlibmemoryclient.so.24.06.0
+lib/libvnet.so
+lib/libvnet.so.24.06.0
+lib/libvppapiclient.so
+lib/libvppapiclient.so.24.06.0
+lib/libvppcom.so
+lib/libvppcom.so.24.06.0
+lib/libvppinfra.so
+lib/libvppinfra.so.24.06.0
+lib/libvppmem_preload.so
+lib/libvppmem_preload.so.24.06.0
+@dir lib/vat2_plugins
+@dir lib/vpp_plugins
+lib/vat2_plugins/abf_test_plugin_abf_plugin.so
+lib/vat2_plugins/acl_test_plugin_acl_plugin.so
+lib/vat2_plugins/acl_test_plugin_acl_types_plugin.so
+lib/vat2_plugins/adl_test_plugin_adl_plugin.so
+lib/vat2_plugins/arping_test_plugin_arping_plugin.so
+lib/vat2_plugins/avf_test_plugin_avf_plugin.so
+lib/vat2_plugins/bpf_trace_filter_test_plugin_bpf_trace_filter_plugin.so
+lib/vat2_plugins/builtinurl_test_plugin_builtinurl_plugin.so
+lib/vat2_plugins/cdp_test_plugin_cdp_plugin.so
+lib/vat2_plugins/cnat_test_plugin_cnat_plugin.so
+lib/vat2_plugins/crypto_sw_scheduler_test_plugin_crypto_sw_scheduler_plugin.so
+lib/vat2_plugins/ct6_test_plugin_ct6_plugin.so
+lib/vat2_plugins/det44_test_plugin_det44_plugin.so
+lib/vat2_plugins/det44_test_plugin_nat_types_plugin.so
+lib/vat2_plugins/dhcp_test_plugin_dhcp6_ia_na_client_cp_plugin.so
+lib/vat2_plugins/dhcp_test_plugin_dhcp6_pd_client_cp_plugin.so
+lib/vat2_plugins/dhcp_test_plugin_dhcp_plugin.so
+lib/vat2_plugins/dns_test_plugin_dns_plugin.so
+lib/vat2_plugins/dslite_test_plugin_dslite_plugin.so
+lib/vat2_plugins/flowprobe_test_plugin_flowprobe_plugin.so
+lib/vat2_plugins/geneve_test_plugin_geneve_plugin.so
+lib/vat2_plugins/gre_test_plugin_gre_plugin.so
+lib/vat2_plugins/gtpu_test_plugin_gtpu_plugin.so
+lib/vat2_plugins/http_static_test_plugin_http_static_plugin.so
+lib/vat2_plugins/idpf_test_plugin_idpf_plugin.so
+lib/vat2_plugins/igmp_test_plugin_igmp_plugin.so
+lib/vat2_plugins/ikev2_test_plugin_ikev2_plugin.so
+lib/vat2_plugins/ikev2_test_plugin_ikev2_types_plugin.so
+lib/vat2_plugins/ioam_test_plugin_ioam_cache_plugin.so
+lib/vat2_plugins/ioam_test_plugin_ioam_export_plugin.so
+lib/vat2_plugins/ioam_test_plugin_ioam_vxlan_gpe_plugin.so
+lib/vat2_plugins/ioam_test_plugin_pot_plugin.so
+lib/vat2_plugins/ioam_test_plugin_trace_plugin.so
+lib/vat2_plugins/ioam_test_plugin_udp_ping_plugin.so
+lib/vat2_plugins/ioam_test_plugin_vxlan_gpe_ioam_export_plugin.so
+lib/vat2_plugins/ip_session_redirect_test_plugin_ip_session_redirect_plugin.so
+lib/vat2_plugins/l2tp_test_plugin_l2tp_plugin.so
+lib/vat2_plugins/l3xc_test_plugin_l3xc_plugin.so
+lib/vat2_plugins/lacp_test_plugin_lacp_plugin.so
+lib/vat2_plugins/lb_test_plugin_lb_plugin.so
+lib/vat2_plugins/lb_test_plugin_lb_types_plugin.so
+lib/vat2_plugins/lisp_test_plugin_lisp_gpe_plugin.so
+lib/vat2_plugins/lisp_test_plugin_lisp_plugin.so
+lib/vat2_plugins/lisp_test_plugin_lisp_types_plugin.so
+lib/vat2_plugins/lisp_test_plugin_one_plugin.so
+lib/vat2_plugins/lldp_test_plugin_lldp_plugin.so
+lib/vat2_plugins/mactime_test_plugin_mactime_plugin.so
+lib/vat2_plugins/map_test_plugin_map_plugin.so
+lib/vat2_plugins/mdata_test_plugin_mdata_plugin.so
+lib/vat2_plugins/memif_test_plugin_memif_plugin.so
+lib/vat2_plugins/mss_clamp_test_plugin_mss_clamp_plugin.so
+lib/vat2_plugins/nat44_ei_test_plugin_nat44_ei_plugin.so
+lib/vat2_plugins/nat44_ei_test_plugin_nat_types_plugin.so
+lib/vat2_plugins/nat64_test_plugin_nat64_plugin.so
+lib/vat2_plugins/nat64_test_plugin_nat_types_plugin.so
+lib/vat2_plugins/nat66_test_plugin_nat66_plugin.so
+lib/vat2_plugins/nat66_test_plugin_nat_types_plugin.so
+lib/vat2_plugins/nat_test_plugin_nat44_ed_plugin.so
+lib/vat2_plugins/nat_test_plugin_nat_types_plugin.so
+lib/vat2_plugins/netmap_test_plugin_netmap_plugin.so
+lib/vat2_plugins/npt66_test_plugin_npt66_plugin.so
+lib/vat2_plugins/nsh_test_plugin_nsh_plugin.so
+lib/vat2_plugins/nsim_test_plugin_nsim_plugin.so
+lib/vat2_plugins/oddbuf_test_plugin_oddbuf_plugin.so
+lib/vat2_plugins/ping_test_plugin_ping_plugin.so
+lib/vat2_plugins/pnat_test_plugin_pnat_plugin.so
+lib/vat2_plugins/pppoe_test_plugin_pppoe_plugin.so
+lib/vat2_plugins/srv6mobile_test_plugin_sr_mobile_plugin.so
+lib/vat2_plugins/srv6mobile_test_plugin_sr_mobile_types_plugin.so
+lib/vat2_plugins/srmpls_test_plugin_sr_mpls_plugin.so
+lib/vat2_plugins/stn_test_plugin_stn_plugin.so
+lib/vat2_plugins/svs_test_plugin_svs_plugin.so
+lib/vat2_plugins/tlsopenssl_test_plugin_tls_openssl_plugin.so
+lib/vat2_plugins/tracedump_test_plugin_graph_plugin.so
+lib/vat2_plugins/tracedump_test_plugin_tracedump_plugin.so
+lib/vat2_plugins/tracenode_test_plugin_tracenode_plugin.so
+lib/vat2_plugins/urpf_test_plugin_urpf_plugin.so
+lib/vat2_plugins/vlibmemory_vlib_plugin.so
+lib/vat2_plugins/vlibmemoryclient_memclnt_plugin.so
+lib/vat2_plugins/vmxnet3_test_plugin_vmxnet3_plugin.so
+lib/vat2_plugins/vnet_arp_plugin.so
+lib/vat2_plugins/vnet_bfd_plugin.so
+lib/vat2_plugins/vnet_bier_plugin.so
+lib/vat2_plugins/vnet_bond_plugin.so
+lib/vat2_plugins/vnet_classify_plugin.so
+lib/vat2_plugins/vnet_crypto_plugin.so
+lib/vat2_plugins/vnet_dev_plugin.so
+lib/vat2_plugins/vnet_ethernet_types_plugin.so
+lib/vat2_plugins/vnet_feature_plugin.so
+lib/vat2_plugins/vnet_fib_plugin.so
+lib/vat2_plugins/vnet_fib_types_plugin.so
+lib/vat2_plugins/vnet_flow_plugin.so
+lib/vat2_plugins/vnet_flow_types_plugin.so
+lib/vat2_plugins/vnet_gso_plugin.so
+lib/vat2_plugins/vnet_interface_plugin.so
+lib/vat2_plugins/vnet_interface_types_plugin.so
+lib/vat2_plugins/vnet_ip6_nd_plugin.so
+lib/vat2_plugins/vnet_ip_neighbor_plugin.so
+lib/vat2_plugins/vnet_ip_plugin.so
+lib/vat2_plugins/vnet_ip_types_plugin.so
+lib/vat2_plugins/vnet_ipfix_export_plugin.so
+lib/vat2_plugins/vnet_ipip_plugin.so
+lib/vat2_plugins/vnet_ipsec_plugin.so
+lib/vat2_plugins/vnet_ipsec_types_plugin.so
+lib/vat2_plugins/vnet_l2_plugin.so
+lib/vat2_plugins/vnet_mfib_types_plugin.so
+lib/vat2_plugins/vnet_mpls_plugin.so
+lib/vat2_plugins/vnet_p2p_ethernet_plugin.so
+lib/vat2_plugins/vnet_pg_plugin.so
+lib/vat2_plugins/vnet_pipe_plugin.so
+lib/vat2_plugins/vnet_policer_plugin.so
+lib/vat2_plugins/vnet_policer_types_plugin.so
+lib/vat2_plugins/vnet_punt_plugin.so
+lib/vat2_plugins/vnet_qos_plugin.so
+lib/vat2_plugins/vnet_rd_cp_plugin.so
+lib/vat2_plugins/vnet_session_plugin.so
+lib/vat2_plugins/vnet_span_plugin.so
+lib/vat2_plugins/vnet_sr_plugin.so
+lib/vat2_plugins/vnet_sr_pt_plugin.so
+lib/vat2_plugins/vnet_sr_types_plugin.so
+lib/vat2_plugins/vnet_syslog_plugin.so
+lib/vat2_plugins/vnet_tcp_plugin.so
+lib/vat2_plugins/vnet_teib_plugin.so
+lib/vat2_plugins/vnet_tunnel_types_plugin.so
+lib/vat2_plugins/vnet_udp_plugin.so
+lib/vat2_plugins/vnet_virtio_plugin.so
+lib/vat2_plugins/vnet_virtio_types_plugin.so
+lib/vat2_plugins/vnet_vxlan_gpe_plugin.so
+lib/vat2_plugins/vpp_vpe_plugin.so
+lib/vat2_plugins/vpp_vpe_types_plugin.so
+lib/vat2_plugins/vrrp_test_plugin_vrrp_plugin.so
+lib/vat2_plugins/vxlan_test_plugin_vxlan_plugin.so
+lib/vat2_plugins/wireguard_test_plugin_wireguard_plugin.so
+lib/vpp_plugins/abf_plugin.so
+lib/vpp_plugins/acl_plugin.so
+lib/vpp_plugins/adl_plugin.so
+lib/vpp_plugins/arping_plugin.so
+lib/vpp_plugins/avf_plugin.so
+lib/vpp_plugins/bpf_trace_filter_plugin.so
+lib/vpp_plugins/bufmon_plugin.so
+lib/vpp_plugins/builtinurl_plugin.so
+lib/vpp_plugins/cdp_plugin.so
+lib/vpp_plugins/cnat_plugin.so
+lib/vpp_plugins/crypto_native_plugin.so
+lib/vpp_plugins/crypto_openssl_plugin.so
+lib/vpp_plugins/crypto_sw_scheduler_plugin.so
+lib/vpp_plugins/ct6_plugin.so
+lib/vpp_plugins/det44_plugin.so
+lib/vpp_plugins/dev_ena_plugin.so
+lib/vpp_plugins/dev_iavf_plugin.so
+lib/vpp_plugins/dhcp_plugin.so
+lib/vpp_plugins/dispatch_trace_plugin.so
+lib/vpp_plugins/dns_plugin.so
+lib/vpp_plugins/dpdk_plugin.so
+lib/vpp_plugins/dslite_plugin.so
+lib/vpp_plugins/fateshare_plugin.so
+lib/vpp_plugins/flowprobe_plugin.so
+lib/vpp_plugins/geneve_plugin.so
+lib/vpp_plugins/gre_plugin.so
+lib/vpp_plugins/gtpu_plugin.so
+lib/vpp_plugins/hs_apps_plugin.so
+lib/vpp_plugins/hsi_plugin.so
+lib/vpp_plugins/http_plugin.so
+lib/vpp_plugins/http_static_plugin.so
+lib/vpp_plugins/idpf_plugin.so
+lib/vpp_plugins/igmp_plugin.so
+lib/vpp_plugins/ikev2_plugin.so
+lib/vpp_plugins/ila_plugin.so
+lib/vpp_plugins/ioam_plugin.so
+lib/vpp_plugins/ip_session_redirect_plugin.so
+lib/vpp_plugins/l2tp_plugin.so
+lib/vpp_plugins/l3xc_plugin.so
+lib/vpp_plugins/lacp_plugin.so
+lib/vpp_plugins/lb_plugin.so
+lib/vpp_plugins/lisp_plugin.so
+lib/vpp_plugins/lisp_unittest_plugin.so
+lib/vpp_plugins/lldp_plugin.so
+lib/vpp_plugins/mactime_plugin.so
+lib/vpp_plugins/map_plugin.so
+lib/vpp_plugins/mdata_plugin.so
+lib/vpp_plugins/memif_plugin.so
+lib/vpp_plugins/mss_clamp_plugin.so
+lib/vpp_plugins/nat44_ei_plugin.so
+lib/vpp_plugins/nat64_plugin.so
+lib/vpp_plugins/nat66_plugin.so
+lib/vpp_plugins/nat_plugin.so
+lib/vpp_plugins/netmap_plugin.so
+lib/vpp_plugins/npt66_plugin.so
+lib/vpp_plugins/nsh_plugin.so
+lib/vpp_plugins/nsim_plugin.so
+lib/vpp_plugins/oddbuf_plugin.so
+lib/vpp_plugins/ping_plugin.so
+lib/vpp_plugins/pnat_plugin.so
+lib/vpp_plugins/pppoe_plugin.so
+lib/vpp_plugins/prom_plugin.so
+lib/vpp_plugins/snort_plugin.so
+lib/vpp_plugins/srmpls_plugin.so
+lib/vpp_plugins/srv6ad_plugin.so
+lib/vpp_plugins/srv6adflow_plugin.so
+lib/vpp_plugins/srv6am_plugin.so
+lib/vpp_plugins/srv6as_plugin.so
+lib/vpp_plugins/srv6mobile_plugin.so
+lib/vpp_plugins/stn_plugin.so
+lib/vpp_plugins/svs_plugin.so
+lib/vpp_plugins/tlsopenssl_plugin.so
+lib/vpp_plugins/tracedump_plugin.so
+lib/vpp_plugins/tracenode_plugin.so
+lib/vpp_plugins/unittest_plugin.so
+lib/vpp_plugins/urpf_plugin.so
+lib/vpp_plugins/vmxnet3_plugin.so
+lib/vpp_plugins/vrrp_plugin.so
+lib/vpp_plugins/vxlan_plugin.so
+lib/vpp_plugins/wireguard_plugin.so