sock/vpp: remove VPP implementation

This patch removes implementation of VPP socket abstraction
along with ways to compile it.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I089f7703cfc4fb517f8f80f4368e544bced549b6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3734
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Tomasz Zawadzki 2020-08-11 05:46:18 -04:00
parent 050df88c37
commit 30a31a16eb
14 changed files with 8 additions and 1746 deletions

4
CONFIG
View File

@ -125,10 +125,6 @@ CONFIG_PMDK_DIR=
# Enable the dependencies for building the compress vbdev # Enable the dependencies for building the compress vbdev
CONFIG_REDUCE=n CONFIG_REDUCE=n
# Build with VPP
CONFIG_VPP=n
CONFIG_VPP_DIR=
# Requires libiscsi development libraries. # Requires libiscsi development libraries.
CONFIG_ISCSI_INITIATOR=n CONFIG_ISCSI_INITIATOR=n

25
configure vendored
View File

@ -68,8 +68,6 @@ function usage()
echo " example: /usr/share/pmdk" echo " example: /usr/share/pmdk"
echo " reduce Build vbdev compression module." echo " reduce Build vbdev compression module."
echo " No path required." echo " No path required."
echo " vpp Build VPP net module."
echo " example: /vpp_repo/build-root/rpmbuild/vpp-18.01.1.0/build-root/install-vpp-native/vpp"
echo " rbd Build Ceph RBD bdev module." echo " rbd Build Ceph RBD bdev module."
echo " No path required." echo " No path required."
echo " rdma Build RDMA transport for NVMf target and initiator." echo " rdma Build RDMA transport for NVMf target and initiator."
@ -363,17 +361,6 @@ for i in "$@"; do
--without-reduce) --without-reduce)
CONFIG[REDUCE]=n CONFIG[REDUCE]=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) ;& --with-fio) ;&
--with-fio=*) --with-fio=*)
if [[ ${i#*=} != "$i" ]]; then if [[ ${i#*=} != "$i" ]]; then
@ -706,18 +693,6 @@ if [[ "${CONFIG[REDUCE]}" = "y" ]]; then
fi fi
fi fi
if [[ "${CONFIG[VPP]}" = "y" ]]; then
if [ ! -z "${CONFIG[VPP_DIR]}" ]; then
VPP_CFLAGS="-L${CONFIG[VPP_DIR]}/lib -I${CONFIG[VPP_DIR]}/include"
fi
if ! echo -e '#include <vnet/session/application_interface.h>\nint main(void) { return 0; }\n' \
| ${BUILD_CMD[@]} ${VPP_CFLAGS} -lvppinfra -lsvm -lvlibmemoryclient - 2>/dev/null; then
echo --with-vpp requires installed vpp.
echo Please install then re-run this script.
exit 1
fi
fi
if [[ "${CONFIG[NVME_CUSE]}" = "y" ]]; then if [[ "${CONFIG[NVME_CUSE]}" = "y" ]]; then
if ! echo -e '#define FUSE_USE_VERSION 31\n#include <fuse3/cuse_lowlevel.h>\n#include <fuse3/fuse_lowlevel.h>\n#include <fuse3/fuse_opt.h>\nint main(void) { return 0; }\n' \ if ! echo -e '#define FUSE_USE_VERSION 31\n#include <fuse3/cuse_lowlevel.h>\n#include <fuse3/fuse_lowlevel.h>\n#include <fuse3/fuse_opt.h>\nint main(void) { return 0; }\n' \
| ${BUILD_CMD[@]} -lfuse3 -D_FILE_OFFSET_BITS=64 - 2>/dev/null; then | ${BUILD_CMD[@]} -lfuse3 -D_FILE_OFFSET_BITS=64 - 2>/dev/null; then

View File

@ -40,8 +40,7 @@ FIO_PLUGIN := spdk_bdev
C_SRCS = fio_plugin.c C_SRCS = fio_plugin.c
# Unable to combine the FIO plugin and the VPP socket abstraction (license incompatibility) SPDK_LIB_LIST = $(ALL_MODULES_LIST)
SPDK_LIB_LIST = $(filter-out sock_vpp,$(ALL_MODULES_LIST))
SPDK_LIB_LIST += thread util bdev bdev_rpc conf accel rpc jsonrpc json log sock trace notify SPDK_LIB_LIST += thread util bdev bdev_rpc conf accel rpc jsonrpc json log sock trace notify
SPDK_LIB_LIST += event $(EVENT_BDEV_SUBSYSTEM) SPDK_LIB_LIST += event $(EVENT_BDEV_SUBSYSTEM)

View File

@ -40,8 +40,7 @@ FIO_PLUGIN := spdk_nvme
C_SRCS = fio_plugin.c C_SRCS = fio_plugin.c
# Unable to combine the FIO plugin and the VPP socket abstraction (license incompatibility) SPDK_LIB_LIST = $(SOCK_MODULES_LIST)
SPDK_LIB_LIST = $(filter-out sock_vpp,$(SOCK_MODULES_LIST))
SPDK_LIB_LIST += nvme thread util log sock vmd jsonrpc json rpc SPDK_LIB_LIST += nvme thread util log sock vmd jsonrpc json rpc
ifeq ($(CONFIG_RDMA),y) ifeq ($(CONFIG_RDMA),y)

View File

@ -86,7 +86,7 @@ hello_sock_usage(void)
{ {
printf(" -H host_addr host address\n"); printf(" -H host_addr host address\n");
printf(" -P port port number\n"); printf(" -P port port number\n");
printf(" -N sock_impl socket implementation, e.g., -N posix or -N vpp\n"); printf(" -N sock_impl socket implementation, e.g., -N posix or -N uring\n");
printf(" -S start in server mode\n"); printf(" -S start in server mode\n");
printf(" -V print out additional informations"); printf(" -V print out additional informations");
} }

View File

@ -171,7 +171,7 @@ int spdk_sock_getaddr(struct spdk_sock *sock, char *saddr, int slen, uint16_t *s
* \param impl_name The sock_implementation to use, such as "posix". If impl_name is * \param impl_name The sock_implementation to use, such as "posix". If impl_name is
* specified, it will *only* try to connect on that impl. If it is NULL, it will try * specified, it will *only* try to connect on that impl. If it is NULL, it will try
* all the sock implementations in order and uses the first sock implementation which * all the sock implementations in order and uses the first sock implementation which
* can connect. For example, it may try vpp first, then fall back to posix. * can connect.
* *
* \return a pointer to the connected socket on success, or NULL on failure. * \return a pointer to the connected socket on success, or NULL on failure.
*/ */
@ -187,7 +187,7 @@ struct spdk_sock *spdk_sock_connect(const char *ip, int port, char *impl_name);
* \param impl_name The sock_implementation to use, such as "posix". If impl_name is * \param impl_name The sock_implementation to use, such as "posix". If impl_name is
* specified, it will *only* try to connect on that impl. If it is NULL, it will try * specified, it will *only* try to connect on that impl. If it is NULL, it will try
* all the sock implementations in order and uses the first sock implementation which * all the sock implementations in order and uses the first sock implementation which
* can connect. For example, it may try vpp first, then fall back to posix. * can connect.
* \param opts The sock option pointer provided by the user which should not be NULL pointer. * \param opts The sock option pointer provided by the user which should not be NULL pointer.
* *
* \return a pointer to the connected socket on success, or NULL on failure. * \return a pointer to the connected socket on success, or NULL on failure.
@ -205,7 +205,7 @@ struct spdk_sock *spdk_sock_connect_ext(const char *ip, int port, char *impl_nam
* \param impl_name The sock_implementation to use, such as "posix". If impl_name is * \param impl_name The sock_implementation to use, such as "posix". If impl_name is
* specified, it will *only* try to listen on that impl. If it is NULL, it will try * specified, it will *only* try to listen on that impl. If it is NULL, it will try
* all the sock implementations in order and uses the first sock implementation which * all the sock implementations in order and uses the first sock implementation which
* can listen. For example, it may try vpp first, then fall back to posix. * can listen.
* *
* \return a pointer to the listened socket on success, or NULL on failure. * \return a pointer to the listened socket on success, or NULL on failure.
*/ */
@ -221,7 +221,7 @@ struct spdk_sock *spdk_sock_listen(const char *ip, int port, char *impl_name);
* \param impl_name The sock_implementation to use, such as "posix". If impl_name is * \param impl_name The sock_implementation to use, such as "posix". If impl_name is
* specified, it will *only* try to listen on that impl. If it is NULL, it will try * specified, it will *only* try to listen on that impl. If it is NULL, it will try
* all the sock implementations in order and uses the first sock implementation which * all the sock implementations in order and uses the first sock implementation which
* can listen. For example, it may try vpp first, then fall back to posix. * can listen.
* \param opts The sock option pointer provided by the user, which should not be NULL pointer. * \param opts The sock option pointer provided by the user, which should not be NULL pointer.
* *
* \return a pointer to the listened socket on success, or NULL on failure. * \return a pointer to the listened socket on success, or NULL on failure.

View File

@ -38,8 +38,7 @@ include $(SPDK_ROOT_DIR)/mk/spdk.modules.mk
C_SRCS := $(APP:%=%.c) C_SRCS := $(APP:%=%.c)
# Unable to combine the FIO plugin and the VPP socket abstraction (license incompatibility) SPDK_LIB_LIST = $(SOCK_MODULES_LIST)
SPDK_LIB_LIST = $(filter-out sock_vpp,$(SOCK_MODULES_LIST))
SPDK_LIB_LIST += nvme thread util log sock vmd jsonrpc json rpc SPDK_LIB_LIST += nvme thread util log sock vmd jsonrpc json rpc
ifeq ($(CONFIG_RDMA),y) ifeq ($(CONFIG_RDMA),y)

View File

@ -144,11 +144,6 @@ LIBS += -L$(CONFIG_PMDK_DIR)/src/nondebug
COMMON_CFLAGS += -I$(CONFIG_PMDK_DIR)/src/include COMMON_CFLAGS += -I$(CONFIG_PMDK_DIR)/src/include
endif endif
ifneq ($(CONFIG_VPP_DIR),)
LIBS += -L$(CONFIG_VPP_DIR)/lib64
COMMON_CFLAGS += -I$(CONFIG_VPP_DIR)/include
endif
ifeq ($(CONFIG_RDMA),y) ifeq ($(CONFIG_RDMA),y)
SYS_LIBS += -libverbs -lrdmacm SYS_LIBS += -libverbs -lrdmacm
endif endif

View File

@ -119,7 +119,6 @@ DEPDIRS-env_dpdk_rpc := log $(JSON_LIBS)
# module/sock # module/sock
DEPDIRS-sock_posix := log sock util DEPDIRS-sock_posix := log sock util
DEPDIRS-sock_uring := log sock util DEPDIRS-sock_uring := log sock util
DEPDIRS-sock_vpp := log sock util thread
# module/bdev # module/bdev
DEPDIRS-bdev_gpt := bdev conf json log thread util DEPDIRS-bdev_gpt := bdev conf json log thread util

View File

@ -99,16 +99,6 @@ SOCK_MODULES_LIST += sock_uring
endif endif
endif endif
ifeq ($(CONFIG_VPP),y)
SYS_LIBS += -Wl,--whole-archive
ifneq ($(CONFIG_VPP_DIR),)
SYS_LIBS += -L$(CONFIG_VPP_DIR)/lib
endif
SYS_LIBS += -lvppinfra -lsvm -lvlibmemoryclient
SYS_LIBS += -Wl,--no-whole-archive
SOCK_MODULES_LIST += sock_vpp
endif
ACCEL_MODULES_LIST = accel_ioat ioat ACCEL_MODULES_LIST = accel_ioat ioat
ifeq ($(CONFIG_IDXD),y) ifeq ($(CONFIG_IDXD),y)
ACCEL_MODULES_LIST += accel_idxd idxd ACCEL_MODULES_LIST += accel_idxd idxd

View File

@ -38,7 +38,6 @@ DIRS-y = posix
ifeq ($(OS), Linux) ifeq ($(OS), Linux)
DIRS-$(CONFIG_URING) += uring DIRS-$(CONFIG_URING) += uring
endif endif
DIRS-$(CONFIG_VPP) += vpp
.PHONY: all clean $(DIRS-y) .PHONY: all clean $(DIRS-y)

View File

@ -1,55 +0,0 @@
#
# BSD LICENSE
#
# Copyright (c) Intel Corporation.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Intel Corporation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
SO_VER := 2
SO_MINOR := 0
C_SRCS += vpp.c
CFLAGS += -Wno-sign-compare -Wno-error=old-style-definition
CFLAGS += -Wno-error=strict-prototypes -Wno-error=ignored-qualifiers
GCC_VERSION=$(shell $(CC) -dumpversion | cut -d. -f1)
# disable packed member unalign warnings
ifeq ($(shell test $(GCC_VERSION) -ge 9 && echo 1), 1)
CFLAGS += -Wno-error=address-of-packed-member
endif
LIBNAME = sock_vpp
SPDK_MAP_FILE = $(SPDK_ROOT_DIR)/mk/spdk_blank.map
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

File diff suppressed because it is too large Load Diff

View File

@ -86,7 +86,6 @@ BuildArch: noarch
--without-fio \ --without-fio \
--with-vhost \ --with-vhost \
--without-pmdk \ --without-pmdk \
--without-vpp \
--without-rbd \ --without-rbd \
--with-rdma \ --with-rdma \
--with-shared \ --with-shared \