dpdk: bump to 22.07
[vpp.git] / build / external / packages / dpdk.mk
index ef84383..b963c36 100644 (file)
@@ -12,6 +12,7 @@
 # limitations under the License.
 
 DPDK_PKTMBUF_HEADROOM        ?= 128
+DPDK_USE_LIBBSD              ?= n
 DPDK_DEBUG                   ?= n
 DPDK_MLX4_PMD                ?= n
 DPDK_MLX5_PMD                ?= n
@@ -19,15 +20,20 @@ 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)
 # Debug or release
 
 DPDK_BUILD_TYPE:=release
@@ -38,15 +44,26 @@ endif
 DPDK_DRIVERS_DISABLED := baseband/\*,  \
        bus/dpaa,                                                       \
        bus/ifpga,                                                      \
-       compress/\*,                                            \
+       common/cnxk,                                            \
+       compress/isal,                                          \
+       compress/octeontx,                                      \
+       compress/zlib,                                          \
        crypto/ccp,                                                     \
+       crypto/cnxk,                                            \
        crypto/dpaa_sec,                                        \
        crypto/openssl,                                         \
+       crypto/aesni_mb,                                                \
+       crypto/aesni_gcm,                                               \
+       crypto/kasumi,                                          \
+       crypto/snow3g,                                          \
+       crypto/zuc,                                             \
        event/\*,                                                       \
        mempool/dpaa,                                           \
+       mempool/cnxk,                                           \
        net/af_packet,                                          \
        net/bnx2x,                                                      \
        net/bonding,                                            \
+       net/cnxk,                                                       \
        net/ipn3ke,                                                     \
        net/liquidio,                                           \
        net/pcap,                                                       \
@@ -55,13 +72,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,                                                            \
@@ -82,15 +100,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
@@ -118,6 +144,19 @@ echo '$(HASH)define RTE_$(1) $(DPDK_$(1))' \
 fi
 endef
 
+define dpdk_config_def
+if [[ "$(DPDK_$(1))" == "y" ]]; then \
+    if ! grep -q "RTE_$(1)" $(dpdk_build_dir)/rte_build_config.h \
+      $(dpdk_src_dir)/config/rte_config.h ; then \
+        echo '$(HASH)define RTE_$(1) 1' \
+          >> $(dpdk_build_dir)/rte_build_config.h ; \
+    fi; \
+elif [[ "$(DPDK_$(1))" == "n" ]]; then \
+    sed -i '/$(HASH)define RTE_$(1) .*/d' $(dpdk_build_dir)/rte_build_config.h \
+      $(dpdk_src_dir)/config/rte_config.h ; \
+fi
+endef
+
 DPDK_MESON_ARGS = \
        --default-library static \
        --libdir lib \
@@ -127,7 +166,10 @@ 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) && \
@@ -135,21 +177,27 @@ define dpdk_config_cmds
        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) && \
        deactivate && \
        echo "DPDK post meson configuration" && \
        echo "Altering rte_build_config.h" && \
-       $(call dpdk_config,PKTMBUF_HEADROOM) 
+       $(call dpdk_config,PKTMBUF_HEADROOM) && \
+       $(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
 
@@ -160,8 +208,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))