X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=build%2Fexternal%2Fpackages%2Fdpdk.mk;h=bf27d8aa73168e2a7b5c87d9c4f7f4e0ae7845b8;hb=4e939ced65143fcfe9342dcccf3418a1018c8b0f;hp=a4460ca8862c4e7fe84b0c936d5b9486c9cb0265;hpb=9235d43d231b103285be539ebe64d37620fe9930;p=vpp.git diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk index a4460ca8862..bf27d8aa731 100644 --- a/build/external/packages/dpdk.mk +++ b/build/external/packages/dpdk.mk @@ -14,21 +14,28 @@ DPDK_PKTMBUF_HEADROOM ?= 128 DPDK_USE_LIBBSD ?= n DPDK_DEBUG ?= n -DPDK_MLX4_PMD ?= n -DPDK_MLX5_PMD ?= n -DPDK_MLX5_COMMON_PMD ?= n DPDK_TAP_PMD ?= n DPDK_FAILSAFE_PMD ?= n DPDK_MACHINE ?= default +DPDK_MLX_IBV_LINK ?= static -dpdk_version ?= 20.08 +dpdk_version ?= 22.07 dpdk_base_url ?= http://fast.dpdk.org/rel dpdk_tarball := dpdk-$(dpdk_version).tar.xz -dpdk_tarball_md5sum_20.08 := 64badd32cd6bc0761befc8f2402c2148 +dpdk_tarball_md5sum_22.07 := fb73b58b80b1349cd05fe9cf6984afd4 +dpdk_tarball_md5sum_22.03 := a07ca8839f98062f46e1cc359735cce8 +dpdk_tarball_md5sum_21.11 := 58660bbbe9e95abce86e47692b196555 +dpdk_tarball_md5sum_21.08 := de33433a1806280996a0ecbe66e3642f +dpdk_tarball_md5sum_21.05 := a78bba290b11d9717d1272cc6bfaf7c3 dpdk_tarball_md5sum := $(dpdk_tarball_md5sum_$(dpdk_version)) dpdk_url := $(dpdk_base_url)/$(dpdk_tarball) dpdk_tarball_strip_dirs := 1 +dpdk_depends := rdma-core $(if $(ARCH_X86_64), ipsec-mb) +DPDK_MLX_DEFAULT := $(shell if grep -q "rdma=$(rdma-core_version) dpdk=$(dpdk_version)" mlx_rdma_dpdk_matrix.txt; then echo 'y'; else echo 'n'; fi) +DPDK_MLX4_PMD ?= $(DPDK_MLX_DEFAULT) +DPDK_MLX5_PMD ?= $(DPDK_MLX_DEFAULT) +DPDK_MLX5_COMMON_PMD ?= $(DPDK_MLX_DEFAULT) # Debug or release DPDK_BUILD_TYPE:=release @@ -39,10 +46,12 @@ endif DPDK_DRIVERS_DISABLED := baseband/\*, \ bus/dpaa, \ bus/ifpga, \ + common/cnxk, \ compress/isal, \ compress/octeontx, \ compress/zlib, \ crypto/ccp, \ + crypto/cnxk, \ crypto/dpaa_sec, \ crypto/openssl, \ crypto/aesni_mb, \ @@ -52,9 +61,11 @@ DPDK_DRIVERS_DISABLED := baseband/\*, \ crypto/zuc, \ event/\*, \ mempool/dpaa, \ + mempool/cnxk, \ net/af_packet, \ net/bnx2x, \ net/bonding, \ + net/cnxk, \ net/ipn3ke, \ net/liquidio, \ net/pcap, \ @@ -63,13 +74,14 @@ DPDK_DRIVERS_DISABLED := baseband/\*, \ net/softnic, \ net/thunderx, \ raw/ifpga, \ - net/af_xdp + net/af_xdp DPDK_LIBS_DISABLED := acl, \ bbdev, \ bitratestats, \ bpf, \ cfgfile, \ + cnxk, \ distributor, \ efd, \ fib, \ @@ -90,15 +102,23 @@ DPDK_LIBS_DISABLED := acl, \ rib, \ table +DPDK_MLX_CONFIG_FLAG := + # Adjust disabled pmd and libs depending on user provided variables ifeq ($(DPDK_MLX4_PMD), n) DPDK_DRIVERS_DISABLED += ,net/mlx4 +else + DPDK_MLX_CONFIG_FLAG := -Dibverbs_link=${DPDK_MLX_IBV_LINK} endif ifeq ($(DPDK_MLX5_PMD), n) DPDK_DRIVERS_DISABLED += ,net/mlx5 +else + DPDK_MLX_CONFIG_FLAG := -Dibverbs_link=${DPDK_MLX_IBV_LINK} endif ifeq ($(DPDK_MLX5_COMMON_PMD), n) DPDK_DRIVERS_DISABLED += ,common/mlx5 +else + DPDK_MLX_CONFIG_FLAG := -Dibverbs_link=${DPDK_MLX_IBV_LINK} endif ifeq ($(DPDK_TAP_PMD), n) DPDK_DRIVERS_DISABLED += ,net/tap @@ -148,16 +168,21 @@ DPDK_MESON_ARGS = \ "-Ddisable_libs=$(DPDK_LIBS_DISABLED)" \ -Db_pie=true \ -Dmachine=$(DPDK_MACHINE) \ - --buildtype=$(DPDK_BUILD_TYPE) + --buildtype=$(DPDK_BUILD_TYPE) \ + ${DPDK_MLX_CONFIG_FLAG} + +PIP_DOWNLOAD_DIR = $(CURDIR)/downloads/ define dpdk_config_cmds cd $(dpdk_build_dir) && \ + echo "DPDK_MLX_DEFAULT=$(DPDK_MLX_DEFAULT)" > dpdk_mlx_default.sh && \ rm -rf ../dpdk-meson-venv && \ mkdir -p ../dpdk-meson-venv && \ python3 -m venv ../dpdk-meson-venv && \ source ../dpdk-meson-venv/bin/activate && \ - pip3 install meson==0.54 && \ - meson setup $(dpdk_src_dir) \ + (if ! ls $(PIP_DOWNLOAD_DIR)meson* ; then pip3 download -d $(PIP_DOWNLOAD_DIR) -f $(DL_CACHE_DIR) meson==0.55 setuptools wheel pyelftools; fi) && \ + pip3 install --no-index --find-links=$(PIP_DOWNLOAD_DIR) meson==0.55 pyelftools && \ + PKG_CONFIG_PATH=$(dpdk_install_dir)/lib/pkgconfig meson setup $(dpdk_src_dir) \ $(dpdk_build_dir) \ $(DPDK_MESON_ARGS) \ | tee $(dpdk_config_log) && \ @@ -168,10 +193,14 @@ define dpdk_config_cmds $(call dpdk_config_def,USE_LIBBSD) endef +ifeq ("$(DPDK_VERBOSE)","1") +DPDK_VERBOSE_BUILD = --verbose +endif + define dpdk_build_cmds cd $(dpdk_build_dir) && \ source ../dpdk-meson-venv/bin/activate && \ - meson compile -C . | tee $(dpdk_build_log) && \ + meson compile $(DPDK_VERBOSE_BUILD) -C . | tee $(dpdk_build_log) && \ deactivate endef @@ -182,8 +211,7 @@ define dpdk_install_cmds cd $(dpdk_install_dir)/lib && \ echo "GROUP ( $$(ls librte*.a ) )" > libdpdk.a && \ rm -rf librte*.so librte*.so.* dpdk/*/librte*.so dpdk/*/librte*.so.* && \ - deactivate && \ - rm -rf $(dpdk_build_dir)/../dpdk-meson-venv + deactivate endef $(eval $(call package,dpdk))