X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=dpdk%2FMakefile;h=778a9823d29264e0ba9a7a4a6446732fe902ddb4;hb=10a0989a30f00e4705078ccfc0c03e8a7652eb2d;hp=ed54840881a420699ebc9035b4824c6b59cab8b7;hpb=66e0ce8dab72fed3793dc2a4b1cb43a91f17c9b2;p=vpp.git diff --git a/dpdk/Makefile b/dpdk/Makefile index ed54840881a..778a9823d29 100644 --- a/dpdk/Makefile +++ b/dpdk/Makefile @@ -17,33 +17,42 @@ SHELL := /bin/bash DPDK_BUILD_DIR ?= $(CURDIR)/_build DPDK_INSTALL_DIR ?= $(CURDIR)/_install DPDK_PKTMBUF_HEADROOM ?= 128 +DPDK_CACHE_LINE_SIZE ?= 64 DPDK_DOWNLOAD_DIR ?= $(HOME)/Downloads DPDK_DEBUG ?= n DPDK_MLX4_PMD ?= n DPDK_MLX5_PMD ?= n +DPDK_TAP_PMD ?= n +DPDK_FAILSAFE_PMD ?= n B := $(DPDK_BUILD_DIR) I := $(DPDK_INSTALL_DIR) -DPDK_VERSION ?= 18.02 +DPDK_VERSION ?= 18.02.2 PKG_SUFFIX ?= vpp1 DPDK_BASE_URL ?= http://fast.dpdk.org/rel DPDK_TARBALL := dpdk-$(DPDK_VERSION).tar.xz DPDK_TAR_URL := $(DPDK_BASE_URL)/$(DPDK_TARBALL) -DPDK_17.11_TARBALL_MD5_CKSUM := 53ee9e054a8797c9e67ffa0eb5d0c701 -DPDK_18.02_TARBALL_MD5_CKSUM := ca13077a014a2102c6e10153dfa3b920 -DPDK_SOURCE := $(B)/dpdk-$(DPDK_VERSION) +DPDK_18.02.2_TARBALL_MD5_CKSUM := 75ad6d39b513649744e49c9fcbbb9ca5 +DPDK_18.05_TARBALL_MD5_CKSUM := 9fc86367cd9407ff6a8dfea56c4eddc4 MACHINE=$(shell uname -m) +# replace dot with space, and if 3rd word exists we deal with stable dpdk rel +ifeq ($(word 3,$(subst ., ,$(DPDK_VERSION))),) +DPDK_SOURCE := $(B)/dpdk-$(DPDK_VERSION) +else +DPDK_SOURCE := $(B)/dpdk-stable-$(DPDK_VERSION) +endif + NASM_BASE_URL := http://www.nasm.us/pub/nasm/releasebuilds NASM_VER := 2.13.01 NASM_TARBALL := nasm-$(NASM_VER).tar.xz NASM_TAR_URL := $(NASM_BASE_URL)/$(NASM_VER)/$(NASM_TARBALL) NASM_SOURCE := $(B)/nasm-$(NASM_VER) -ifeq ($(DPDK_VERSION),17.11) -IPSEC_MB_VER ?= 0.47 -else +ifneq (,$(findstring 18.02,$(DPDK_VERSION))) IPSEC_MB_VER ?= 0.48 +else +IPSEC_MB_VER ?= 0.49 endif ifeq ($(MACHINE),$(filter $(MACHINE),x86_64)) @@ -77,7 +86,8 @@ DPDK_TUNE ?= core-avx2 # ARM64 ############################################################################## else ifeq ($(MACHINE),aarch64) -export CROSS="" +CROSS := +export CROSS DPDK_TARGET ?= arm64-armv8a-linuxapp-$(DPDK_CC) DPDK_MACHINE ?= armv8a DPDK_TUNE ?= generic @@ -120,6 +130,7 @@ ifneq (,$(findstring $(MIDR_PARTNUM),$(CPU_PART_CAVIUM_THUNDERX) \ $(CPU_PART_CAVIUM_THUNDERX_81XX) $(CPU_PART_CAVIUM_THUNDERX_83XX))) DPDK_TARGET = arm64-thunderx-linuxapp-$(DPDK_CC) DPDK_MACHINE = thunderx +DPDK_CACHE_LINE_SIZE := 128 else $(warning Unknown Cavium CPU) endif @@ -141,7 +152,11 @@ JOBS := $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo),\ $(shell grep -c ^processor /proc/cpuinfo), 2) # compiler/linker custom arguments +ifeq ($(DPDK_CC),clang) +DPDK_CPU_CFLAGS := -fPIE -fPIC +else DPDK_CPU_CFLAGS := -pie -fPIC +endif ifeq ($(DPDK_DEBUG),n) DPDK_EXTRA_CFLAGS := -g -mtune=$(DPDK_TUNE) @@ -149,6 +164,11 @@ else DPDK_EXTRA_CFLAGS := -g -O0 endif +ifeq ($(AESNI),y) +IPSEC_MB_BUILD_PATH := $(B)/intel-ipsec-mb-$(IPSEC_MB_VER) +DPDK_EXTRA_CFLAGS += -L$(IPSEC_MB_BUILD_PATH) -I$(IPSEC_MB_BUILD_PATH) +endif + DPDK_MAKE_EXTRA_ARGS += AESNI_MULTI_BUFFER_LIB_PATH=$(AESNIMB_LIB_SOURCE) # assemble DPDK make arguments @@ -177,6 +197,7 @@ $(B)/custom-config: $(B)/.patch.ok Makefile @# modify options $(call set,RTE_MAX_LCORE,256) $(call set,RTE_PKTMBUF_HEADROOM,$(DPDK_PKTMBUF_HEADROOM)) + $(call set,RTE_CACHE_LINE_SIZE,$(DPDK_CACHE_LINE_SIZE)) $(call set,RTE_LIBEAL_USE_HPET,y) $(call set,RTE_BUILD_COMBINE_LIBS,y) $(call set,RTE_PCI_CONFIG,y) @@ -195,9 +216,11 @@ $(B)/custom-config: $(B)/.patch.ok Makefile $(call set,RTE_LIBRTE_PMD_AESNI_GCM,$(AESNI)) $(call set,RTE_LIBRTE_MLX4_PMD,$(DPDK_MLX4_PMD)) $(call set,RTE_LIBRTE_MLX5_PMD,$(DPDK_MLX5_PMD)) + $(call set,RTE_LIBRTE_MLX4_DLOPEN_DEPS,$(DPDK_MLX4_PMD)) + $(call set,RTE_LIBRTE_MLX5_DLOPEN_DEPS,$(DPDK_MLX5_PMD)) + $(call set,RTE_LIBRTE_PMD_TAP,$(DPDK_TAP_PMD)) + $(call set,RTE_LIBRTE_PMD_FAILSAFE,$(DPDK_FAILSAFE_PMD)) @# not needed - $(call set,RTE_LIBRTE_PMD_TAP,n) - $(call set,RTE_LIBRTE_TIMER,n) $(call set,RTE_LIBRTE_CFGFILE,n) $(call set,RTE_LIBRTE_LPM,n) $(call set,RTE_LIBRTE_ACL,n) @@ -209,6 +232,12 @@ $(B)/custom-config: $(B)/.patch.ok Makefile $(call set,RTE_LIBRTE_FLOW_CLASSIFY,n) $(call set,RTE_KNI_KMOD,n) $(call set,RTE_EAL_IGB_UIO,n) + @# currently broken in 18.02 + $(call set,RTE_LIBRTE_DPAA_BUS,n) + $(call set,RTE_LIBRTE_DPAA_MEMPOOL,n) + $(call set,RTE_LIBRTE_DPAA_PMD,n) + $(call set,RTE_LIBRTE_PMD_DPAA_SEC,n) + $(call set,RTE_LIBRTE_PMD_DPAA_EVENTDEV,n) @rm -f .config.ok $(CURDIR)/$(DPDK_TARBALL): @@ -289,7 +318,7 @@ build-nasm: build-ipsec-mb: mkdir -p $(I)/lib/ # Do not build GCM stuff if we are building ISA_L - make -C $(AESNIMB_LIB_SOURCE) -j \ + make -C $(AESNIMB_LIB_SOURCE) -j SHARED=n \ EXTRA_CFLAGS=-fPIC NASM=$(NASM_SOURCE)/nasm cp $(AESNIMB_LIB_SOURCE)/libIPSec_MB.a $(I)/lib/