DPDK build: fix l3fwd build and update Meson opts 67/33567/3
authorJuraj Linkeš <juraj.linkes@pantheon.tech>
Mon, 23 Aug 2021 08:22:37 +0000 (10:22 +0200)
committerPeter Mikus <pmikus@cisco.com>
Mon, 23 Aug 2021 08:48:55 +0000 (08:48 +0000)
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š <juraj.linkes@pantheon.tech>
resources/libraries/bash/entry/patch_l3fwd_flip_routes
resources/libraries/bash/function/dpdk.sh

index 3b35e1f..23a6675 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #!/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},
 ---
 <       {RTE_IPV4(198, 18, 0, 0), 24, 0},
 <       {RTE_IPV4(198, 18, 1, 0), 24, 1},
 ---
index 3c16372..ea7871b 100644 (file)
@@ -86,13 +86,14 @@ function dpdk_compile () {
 
     pushd "${DPDK_DIR}" || die "Pushd failed"
 
 
     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"
 
     # 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.
     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!"
         die "Failed to compile DPDK!"
     }
     ninja -C build || die "Failed to compile DPDK!"