[meta-intel] [PATCH 3/4 dizzy] meta-isg: Intel DPDK v1.6 recipe under recipes-extended

venkatasubramanian pattu venkatasubramanianx.pattu at intel.com
Thu May 7 21:08:50 PDT 2015


This is an initial version of Intel Data Plane Development Kits
(DPDK) recipe support. This recipe is targeting on Intel DPDK
v1.6.0r2.

Intel DPDK is needed for several IoTG maintained BSPs such as Crystal Forest & Highland Forest, Mohon Peak.
Therefore, we place DPDK recipe under meta-isg/common/recipes-extended folder.

This recipe is cherry-picked from branch dizzy and the commit ID:
c249763d3cb92bd06742b7986f08cf844ddb1d51:meta-intel/common: Initial Intel DPDK recipe under recipes-extended

This commit is removed in latest dizzy (1.7) due to build failure.
DPDK v1.7 & v1.6 are validated on Linux kernel v3.10 and not supported on Linux kernel v3.17.
Therefore, this recipe is intended to be supported only on Linux kernel v3.10 for all
CID related platforms like Crystal Forest and Highland Forest.

Signed-off-by: venkatasubramanian pattu <venkatasubramanianx.pattu at intel.com>
---
 ...ix-build-switches-to-enable-cmdline-tests.patch | 52 ++++++++++++++++++++++
 ...dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch | 34 ++++++++++++++
 ...k-1.6.0r2-examples-qos_sched-fix-makefile.patch | 34 ++++++++++++++
 .../common/recipes-extended/dpdk/dpdk_1.6.0r2.bb   | 44 ++++++++++++++++++
 4 files changed, 164 insertions(+)
 create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch
 create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch
 create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch
 create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb

diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch
new file mode 100644
index 0000000..8ca6bfe
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch
@@ -0,0 +1,52 @@
+From cf953d2bfa7df9aa67459b333db4d4d8a9e72fd6 Mon Sep 17 00:00:00 2001
+From: Thomas Monjalon <thomas.monjalon at 6wind.com>
+Date: Fri, 27 Jun 2014 11:21:11 +0200
+Subject: [PATCH] app/test: fix build switches to enable cmdline tests
+
+Upstream-Status: backport
+Imported patch from: http://dpdk.org/browse/dpdk/log/
+
+There were 2 typos since these commits (in 1.6.0 releases):
+	21a7f4e264 fix build without librte_cmdline
+	cac6d08c8b replace --use-device option by --pci-whitelist and --vdev
+In makefiles, the build options are prefixed with CONFIG_RTE_
+but in .c file, it is only RTE_.
+
+These typos were disabling cmdline unit tests and test of "--vdev eth_ring" option.
+
+Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
+Acked-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
+Signed-off-by: Chan Wei Sern <wei.sern.chan at intel.com>
+---
+ app/test/test_cmdline.c   | 2 +-
+ app/test/test_eal_flags.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/app/test/test_cmdline.c b/app/test/test_cmdline.c
+index 77475c4..10a3f77 100644
+--- a/app/test/test_cmdline.c
++++ b/app/test/test_cmdline.c
+@@ -39,7 +39,7 @@
+ int
+ test_cmdline(void)
+ {
+-#ifdef CONFIG_RTE_LIBRTE_CMDLINE
++#ifdef RTE_LIBRTE_CMDLINE
+	printf("Testind parsing ethernet addresses...\n");
+	if (test_parse_etheraddr_valid() < 0)
+		return -1;
+diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c
+index a862654..1b80b80 100644
+--- a/app/test/test_eal_flags.c
++++ b/app/test/test_eal_flags.c
+@@ -317,7 +317,7 @@ test_whitelist_flag(void)
+	const char *wlval3[] = {prgname, prefix, mp_flag, "-n", "1", "-c", "1",
+			pci_whitelist, "09:0B.3,type=test",
+			pci_whitelist, "08:00.1,type=normal",
+-#ifdef CONFIG_RTE_LIBRTE_PMD_RING
++#ifdef RTE_LIBRTE_PMD_RING
+			vdev, "eth_ring,arg=test",
+ #endif
+	};
+--
+1.9.1
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch
new file mode 100644
index 0000000..8204e5a
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch
@@ -0,0 +1,34 @@
+From be1816f59e772e427fc5815281f9458a9314973a Mon Sep 17 00:00:00 2001
+From: Pablo de Lara <pablo.de.lara.guarch at intel.com>
+Date: Thu, 19 Jun 2014 16:35:22 +0100
+Subject: [PATCH] eal: fix option --base-virtaddr
+
+Upstream-Status: backport
+Imported patch from: http://dpdk.org/browse/dpdk/log/
+
+When parsing EAL option --base-virtaddr
+errno was not being set to 0 before calling strtoull,
+therefore function might fail unnecesarily.
+
+Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
+Signed-off-by: Aaron Campbell <aaron at arbor.net>
+Acked-by: Anatoly Burakov <anatoly.burakov at intel.com>
+Signed-off-by: Chan Wei Sern <wei.sern.chan at intel.com>
+---
+ lib/librte_eal/linuxapp/eal/eal.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
+index 6994303..d204387 100644
+--- a/lib/librte_eal/linuxapp/eal/eal.c
++++ b/lib/librte_eal/linuxapp/eal/eal.c
+@@ -562,6 +562,7 @@ eal_parse_base_virtaddr(const char *arg)
+	char *end;
+	uint64_t addr;
+
++	errno = 0;
+	addr = strtoull(arg, &end, 16);
+
+	/* check for errors */
+--
+1.9.1
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch
new file mode 100644
index 0000000..d1eb8dc
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch
@@ -0,0 +1,34 @@
+From ea9a59b26c3c86b498337e968ee8f68c4e263614 Mon Sep 17 00:00:00 2001
+From: Olivier Matz <olivier.matz at 6wind.com>
+Date: Fri, 16 May 2014 10:18:59 +0200
+Subject: [PATCH] examples/qos_sched: fix makefile
+
+Upstream-Status: backport
+Imported patch from: http://dpdk.org/browse/dpdk/log/
+
+The example does not compile as the linker complains about duplicated
+symbols.
+
+Remove -lsched from LDLIBS, it is already present in rte.app.mk and
+added by the DPDK framework automatically.
+
+Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
+Acked-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
+Signed-off-by: Chan Wei Sern <wei.sern.chan at intel.com>
+---
+ examples/qos_sched/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/examples/qos_sched/Makefile b/examples/qos_sched/Makefile
+index b91fe37..9366efe 100755
+--- a/examples/qos_sched/Makefile
++++ b/examples/qos_sched/Makefile
+@@ -54,6 +54,4 @@ CFLAGS += $(WERROR_FLAGS)
+ CFLAGS_args.o := -D_GNU_SOURCE
+ CFLAGS_cfg_file.o := -D_GNU_SOURCE
+
+-LDLIBS += -lrte_sched
+-
+ include $(RTE_SDK)/mk/rte.extapp.mk
+--
+1.9.1
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb b/meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb
new file mode 100644
index 0000000..a507d4e
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb
@@ -0,0 +1,44 @@
+include dpdk.inc
+
+
+SRC_URI = "http://dpdk.org/browse/dpdk/snapshot/dpdk-${PV}.tar.gz;name=dpdk \
+	   file://dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch \
+	   file://dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch \
+	   file://dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch \
+	   "
+
+
+SRC_URI[dpdk.md5sum] = "f406d027320fc8e724bff20db5397cbb"
+SRC_URI[dpdk.sha256sum] = "e72fdebcf8a899fc58e60c9b6493b7457576eece60b08dea6aee96c9087df4b2"
+
+export EXAMPLES_BUILD_DIR = "build"
+
+do_compile_append () {
+
+	###################################################################
+	### Compilation for examples
+	### Skip dpdk_qat due to it has dependency with qat source code
+	### Skip vhost due to it has dependency to fuse libraries
+	### Skip vhost_xen due to it has dependency to xen libraries
+	###################################################################
+	for app in ${S}/examples/*
+	do
+
+		[ `basename ${app}` = "dpdk_qat" -o `basename ${app}` =  "vhost"  -o  `basename ${app}` = "vhost_xen" ] && continue;
+
+		cd ${app}
+
+		###############################################################
+		# netmap_compat is putting the binary in a directory path
+		# which is different from rest of the example apps, so this
+		# special case is handled here to avoid installation failure
+		# with dpdk-1.6.0
+		###############################################################
+		if [ `basename ${app}` == "netmap_compat" ]; then
+			oe_runmake CROSS="${TARGET_PREFIX}" O="${app}/bridge/${EXAMPLES_BUILD_DIR}/"
+		else
+			oe_runmake CROSS="${TARGET_PREFIX}"
+		fi
+	done
+
+}
-- 
1.9.1



More information about the meta-intel mailing list