diff --git a/CONFIG b/CONFIG index 951aa2158..2edd0fee2 100644 --- a/CONFIG +++ b/CONFIG @@ -92,3 +92,6 @@ CONFIG_VIRTIO?=y # Build with NVML backends CONFIG_NVML?=n + +# Build with VPP +CONFIG_VPP?=n diff --git a/configure b/configure index 6804bfc33..5bef7c3d2 100755 --- a/configure +++ b/configure @@ -39,6 +39,8 @@ function usage() echo " No path required." echo " nvml Required to build persistent memory bdev." echo " example: /usr/share/nvml" + echo " vpp Required to build VPP net module." + echo " example: /vpp_repo/build-root/install-vpp-native/vpp" echo " rbd [disabled]" echo " No path required." echo " rdma [disabled]" @@ -153,6 +155,17 @@ for i in "$@"; do --without-nvml) CONFIG_NVML=n ;; + --with-vpp) + CONFIG_VPP=y + ;; + --with-vpp=*) + CONFIG_VPP=y + check_dir "$i" + CONFIG_VPP_DIR=$(readlink -f ${i#*=}) + ;; + --without-vpp) + CONFIG_VPP=n + ;; --with-fio=*) check_dir "$i" FIO_SOURCE_DIR="${i#*=}" @@ -267,6 +280,12 @@ fi if [ -n "$CONFIG_NVML_DIR" ]; then echo "CONFIG_NVML_DIR?=$CONFIG_NVML_DIR" >> CONFIG.local fi +if [ -n "$CONFIG_VPP" ]; then + echo "CONFIG_VPP?=$CONFIG_VPP" >> CONFIG.local +fi +if [ -n "$CONFIG_VPP_DIR" ]; then + echo "CONFIG_VPP_DIR?=$CONFIG_VPP_DIR" >> CONFIG.local +fi if [ -n "$CONFIG_FIO_PLUGIN" ]; then echo "CONFIG_FIO_PLUGIN?=$CONFIG_FIO_PLUGIN" >> CONFIG.local fi diff --git a/mk/spdk.common.mk b/mk/spdk.common.mk index 5c1ef8228..80aa0b09b 100644 --- a/mk/spdk.common.mk +++ b/mk/spdk.common.mk @@ -120,6 +120,11 @@ LIBS += -L$(CONFIG_NVML_DIR)/src/nondebug COMMON_CFLAGS += -I$(CONFIG_NVML_DIR)/src/include endif +ifneq ($(CONFIG_VPP_DIR),) +LIBS += -L$(CONFIG_VPP_DIR)/lib64 +COMMON_CFLAGS += -I$(CONFIG_VPP_DIR)/include +endif + ifeq ($(CONFIG_DEBUG), y) COMMON_CFLAGS += -DDEBUG -O0 -fno-omit-frame-pointer else diff --git a/mk/spdk.modules.mk b/mk/spdk.modules.mk index 8c6eac5f5..d0e556a98 100644 --- a/mk/spdk.modules.mk +++ b/mk/spdk.modules.mk @@ -58,6 +58,15 @@ endif NET_MODULES_LIST = net NET_MODULES_LIST += net_posix +ifeq ($(CONFIG_VPP),y) +ifneq ($(CONFIG_VPP_DIR),) +NET_MODULES_DEPS = -l:libvppinfra.a -l:libsvm.a -l:libvapiclient.a +NET_MODULES_DEPS += -l:libvppcom.a -l:libvlibmemoryclient.a +else +NET_MODULES_DEPS = -lvppcom +endif +endif + COPY_MODULES_LIST = copy_ioat ioat BLOCKDEV_MODULES_LINKER_ARGS = -Wl,--whole-archive \