From c849edfc256df9c3de1ece6babcd4757bb2a8072 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Juraj=20Linke=C5=A1?= Date: Mon, 23 Aug 2021 10:22:37 +0200 Subject: [PATCH] DPDK build: fix l3fwd build and update Meson opts MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fix l3fwd patch which broke because the code got moved. Rework two Meson options: * RTE_LIBRTE_I40E_16BYTE_RX_DESC using Meson option c_args instead of CFLAGS. According to Meson docs, using c_args is the proper way to pass C compiler arguments and the support for CFLAGS is there for legacy reasons and not guaranteed to work. * Add platform=generic which mirrors VPP configuration. This removes the need to hack Arm CPU and NUMA values as the generic build uses high enough values. Change-Id: Ibcb17879bdf26329881819c332c1782b9c713182 Signed-off-by: Juraj Linkeš --- .../libraries/bash/entry/patch_l3fwd_flip_routes | 4 ++-- resources/libraries/bash/function/dpdk.sh | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/resources/libraries/bash/entry/patch_l3fwd_flip_routes b/resources/libraries/bash/entry/patch_l3fwd_flip_routes index 3b35e1f930..23a6675145 100755 --- a/resources/libraries/bash/entry/patch_l3fwd_flip_routes +++ b/resources/libraries/bash/entry/patch_l3fwd_flip_routes @@ -1,7 +1,7 @@ #!/bin/sh -patch --ignore-whitespace --forward l3fwd_lpm.c <<"_EOF" -44,45c44,45 +patch --ignore-whitespace --forward main.c <<"_EOF" +185,186c185,186 < {RTE_IPV4(198, 18, 0, 0), 24, 0}, < {RTE_IPV4(198, 18, 1, 0), 24, 1}, --- diff --git a/resources/libraries/bash/function/dpdk.sh b/resources/libraries/bash/function/dpdk.sh index 3c16372294..ea7871bed7 100644 --- a/resources/libraries/bash/function/dpdk.sh +++ b/resources/libraries/bash/function/dpdk.sh @@ -86,13 +86,14 @@ function dpdk_compile () { pushd "${DPDK_DIR}" || die "Pushd failed" - # Patch ARM. - sed_file="config/arm/meson.build" - sed_cmd="s/'RTE_MAX_LCORE', [0-9]*/'RTE_MAX_LCORE', $(nproc --all)/" - sed -i "${sed_cmd}" "${sed_file}" || die "RTE_MAX_LCORE Patch failed" - sed_cmd="s/'RTE_MAX_NUMA_NODES', [0-9]*/'RTE_MAX_NUMA_NODES', " - sed_cmd+="$(echo /sys/devices/system/node/node* | wc -w)/" - sed -i "${sed_cmd}" "${sed_file}" || die "RTE_MAX_NUMA_NODES Patch failed" + # enable l3fwd + meson_options="-Dexamples=l3fwd " + + # i40e specific options + meson_options="${meson_options} -Dc_args=RTE_LIBRTE_I40E_16BYTE_RX_DESC=y" + + # Configure generic build - the same used by VPP + meson_options="${meson_options} -Dplatform=generic" # Patch L3FWD. sed_rxd="s/^#define RTE_TEST_RX_DESC_DEFAULT 128" @@ -106,9 +107,7 @@ function dpdk_compile () { popd || die "Popd failed" # Compile using Meson and Ninja. - export CFLAGS="" - CFLAGS+="-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y" - meson -Dexamples=l3fwd build || { + meson ${meson_options} build || { die "Failed to compile DPDK!" } ninja -C build || die "Failed to compile DPDK!" -- 2.16.6