Action:
Submit home:dpitchumani:branches:network/dpdk to network/dpdk Description : - Update to LTS version 23.11. Some are the fixes are below, * app/crypto-perf: add missing op resubmission * app/crypto-perf: fix copy segment size * app/crypto-perf: fix data comparison * app/crypto-perf: fix encrypt operation verification * app/crypto-perf: fix next segment mbuf * app/crypto-perf: fix out-of-place mbuf size * app/crypto-perf: verify strdup return * app/dma-perf: verify strdup return * app/dumpcap: verify strdup return * app/graph: fix build reason * app/pdump: verify strdup return * app/testpmd: fix --stats-period option check * app/testpmd: fix GRO packets flush on timeout * app/testpmd: fix async flow create failure handling * app/testpmd: fix async indirect action list creation * app/testpmd: fix auto-completion for indirect action list * app/testpmd: fix burst option parsing * app/testpmd: fix crash in multi-process forwarding * app/testpmd: fix error message for invalid option * app/testpmd: fix flow modify tag typo * app/testpmd: hide --bitrate-stats in help if disabled * app/testpmd: return if no packets in GRO heavy weight mode * app/testpmd: verify strdup return * build: fix linker warnings about undefined symbols * build: fix reasons conflict * build: link static libs with whole-archive in subproject * build: pass cflags in subproject * buildtools/cmdline: fix IP address initializer * buildtools/cmdline: fix generated code for IP addresses * bus/dpaa: verify strdup return * bus/fslmc: verify strdup return * bus/vdev: fix devargs in secondary process * bus/vdev: verify strdup return * ci: update versions of actions in GHA * common/cnxk: fix RSS RETA configuration * common/cnxk: fix Tx MTU configuration * common/cnxk: fix VLAN check for inner header * common/cnxk: fix inline device pointer check * common/cnxk: fix link config for SDP * common/cnxk: fix mbox region copy * common/cnxk: fix mbox struct attributes * common/cnxk: fix memory leak in CPT init * common/cnxk: fix possible out-of-bounds access * common/cnxk: remove CN9K inline IPsec FP opcodes * common/cnxk: remove dead code * common/mlx5: fix calloc parameters * common/mlx5: fix duplicate read of general capabilities * common/mlx5: fix query sample info capability * common/qat: fix legacy flag * common/sfc_efx/base: use C11 static assert * config: fix CPU instruction set for cross-build * crypto/cnxk: fix CN9K ECDH public key verification * crypto/qat: fix crash with CCM null AAD pointer * cryptodev: remove unused extern variable * dma/dpaa2: fix logtype register * dma/idxd: verify strdup return * dmadev: fix calloc parameters * doc: add --latencystats option in testpmd guide * doc: add link speeds configuration in features table * doc: add traffic manager in features table * doc: fix aging poll frequency option in cnxk guide * doc: fix commands in eventdev test tool guide * doc: fix configuration in baseband 5GNR driver guide * doc: fix default IP fragments maximum in programmer guide * doc: fix typo in packet framework guide * doc: fix typo in profiling guide * doc: fix typos in cryptodev overview * doc: remove cmdline polling mode deprecation notice * doc: update link to Windows DevX in mlx5 guide * drivers/net: fix buffer overflow for packet types list * dts: fix smoke tests driver regex * dts: strip whitespaces from stdout and stderr * eal/x86: add AMD vendor check for TSC calibration * eal: verify strdup return * ethdev: fix NVGRE encap flow action description * event/cnxk: fix dequeue timeout configuration * event/cnxk: verify strdup return * event/dlb2: remove superfluous memcpy * eventdev/crypto: fix enqueueing * eventdev: fix Doxygen processing of vector struct * eventdev: fix calloc parameters * eventdev: improve Doxygen comments on configure struct * examples/ipsec-secgw: fix Rx queue ID in Rx callback * examples/ipsec-secgw: fix cryptodev to SA mapping * examples/ipsec-secgw: fix typo in error message * examples/ipsec-secgw: fix width of variables * examples/l3fwd: fix Rx over not ready port * examples/l3fwd: fix Rx queue configuration * examples/packet_ordering: fix Rx with reorder mode disabled * examples/qos_sched: fix memory leak in args parsing * examples/vhost: verify strdup return * gro: fix reordering of packets * hash: remove some dead code * kernel/freebsd: fix module build on FreeBSD 14 * lib: add newline in logs * lib: remove redundant newline from logs * lib: use dedicated logtypes and macros * ml/cnxk: fix xstats calculation * net/af_xdp: fix leak on XSK configuration failure * net/af_xdp: fix memzone leak on config failure * net/bnx2x: fix calloc parameters * net/bnx2x: fix warnings about memcpy lengths * net/bnxt: fix 50G and 100G forced speed * net/bnxt: fix array overflow * net/bnxt: fix backward firmware compatibility * net/bnxt: fix deadlock in ULP timer callback * net/bnxt: fix null pointer dereference * net/bnxt: fix number of Tx queues being created * net/bnxt: fix speed change from 200G to 25G on Thor * net/bnxt: modify locking for representor Tx * net/bonding: fix flow count query * net/cnxk: add cookies check for multi-segment offload * net/cnxk: fix MTU limit * net/cnxk: fix Rx packet format check condition * net/cnxk: fix aged flow query * net/cnxk: fix buffer size configuration * net/cnxk: fix flow RSS configuration * net/cnxk: fix indirect mbuf handling in Tx * net/cnxk: fix mbuf fields in multi-segment Tx * net/cnxk: improve Tx performance for SW mbuf free * net/ena/base: fix metrics excessive memory consumption * net/ena/base: limit exponential backoff * net/ena/base: restructure interrupt handling * net/ena: fix fast mbuf free * net/ena: fix mbuf double free in fast free mode * net/failsafe: fix memory leak in args parsing * net/gve: fix DQO for chained descriptors * net/hns3: enable PFC for all user priorities * net/hns3: fix VF multiple count on one reset * net/hns3: fix disable command with firmware * net/hns3: fix reset level comparison * net/hns3: refactor PF mailbox message struct * net/hns3: refactor VF mailbox message struct * net/hns3: refactor handle mailbox function * net/hns3: refactor send mailbox function * net/hns3: remove QinQ insert support for VF * net/hns3: support new device * net/i40e: remove incorrect 16B descriptor read block * net/i40e: remove redundant judgment in flow parsing * net/iavf: fix crash on VF start * net/iavf: fix memory leak on security context error * net/iavf: fix no polling mode switching * net/iavf: remove error logs for VLAN offloading * net/iavf: remove incorrect 16B descriptor read block * net/ice: fix link update * net/ice: fix memory leaks * net/ice: fix tunnel TSO capabilities * net/ice: remove incorrect 16B descriptor read block * net/igc: fix timesync disable * net/ionic: fix RSS query * net/ionic: fix device close * net/ionic: fix missing volatile type for cqe pointers * net/ixgbe: fix memoy leak after device init failure * net/ixgbe: increase VF reset timeout * net/ixgbevf: fix RSS init for x550 NICs * net/mana: fix memory leak on MR allocation * net/mana: handle MR cache expansion failure * net/mana: prevent values overflow returned from RDMA layer * net/memif: fix crash with Tx burst larger than 255 * net/memif: fix extra mbuf refcnt update in zero copy Tx * net/mlx5/hws: check not supported fields in VXLAN * net/mlx5/hws: enable multiple integrity items * net/mlx5/hws: fix ESP flow matching validation * net/mlx5/hws: fix VLAN inner type * net/mlx5/hws: fix VLAN item in non-relaxed mode * net/mlx5/hws: fix direct index insert on depend WQE * net/mlx5/hws: fix memory access in L3 decapsulation * net/mlx5/hws: fix port ID for root table * net/mlx5/hws: fix tunnel protocol checks * net/mlx5/hws: skip item when inserting rules by index * net/mlx5: fix DR context release ordering * net/mlx5: fix GENEVE TLV option management * net/mlx5: fix GENEVE option item translation * net/mlx5: fix HWS meter actions availability * net/mlx5: fix HWS registers initialization * net/mlx5: fix IP-in-IP tunnels recognition * net/mlx5: fix VLAN ID in flow modify * net/mlx5: fix VLAN handling in meter split * net/mlx5: fix age position in hairpin split * net/mlx5: fix async flow create error handling * net/mlx5: fix condition of LACP miss flow * net/mlx5: fix connection tracking action validation * net/mlx5: fix conntrack action handle representation * net/mlx5: fix counters map in bonding mode * net/mlx5: fix drop action release timing * net/mlx5: fix error packets drop in regular Rx * net/mlx5: fix flow action template expansion * net/mlx5: fix flow configure validation * net/mlx5: fix flow counter cache starvation * net/mlx5: fix flow tag modification * net/mlx5: fix indirect action async job initialization * net/mlx5: fix jump action validation * net/mlx5: fix meter policy priority * net/mlx5: fix modify flex item * net/mlx5: fix non-masked indirect list meter translation * net/mlx5: fix parameters verification in HWS table create * net/mlx5: fix rollback on failed flow configure * net/mlx5: fix stats query crash in secondary process * net/mlx5: fix sync flow meter action * net/mlx5: fix sync meter processing in HWS * net/mlx5: fix template clean up of FDB control flow rule * net/mlx5: fix use after free when releasing Tx queues * net/mlx5: fix warning about copy length * net/mlx5: prevent ioctl failure log flooding * net/mlx5: prevent querying aged flows on uninit port * net/mlx5: remove GENEVE options length limitation * net/mlx5: remove device status check in flow creation * net/mlx5: remove duplication of L3 flow item validation * net/netvsc: fix VLAN metadata parsing * net/nfp: fix IPsec data endianness * net/nfp: fix NFD3 metadata process * net/nfp: fix NFDk metadata process * net/nfp: fix Rx descriptor * net/nfp: fix Rx memory leak * net/nfp: fix calloc parameters * net/nfp: fix device close * net/nfp: fix device resource freeing * net/nfp: fix getting firmware VNIC version * net/nfp: fix initialization failure flow * net/nfp: fix resource leak for CoreNIC firmware * net/nfp: fix resource leak for PF initialization * net/nfp: fix resource leak for VF * net/nfp: fix resource leak for device initialization * net/nfp: fix resource leak for exit of CoreNIC firmware * net/nfp: fix resource leak for exit of flower firmware * net/nfp: fix resource leak for flower firmware * net/nfp: fix switch domain free check * net/nfp: fix uninitialized variable * net/nfp: free switch domain ID on close * net/nfp: verify strdup return * net/sfc: fix calloc parameters * net/softnic: fix include of log library * net/tap: do not overwrite flow API errors * net/tap: fix traffic control handle calculation * net/thunderx: fix DMAC control register update * net/virtio: fix vDPA device init advertising control queue * net/virtio: remove duplicate queue xstats * net/vmxnet3: fix initialization on FreeBSD * net/vmxnet3: ignore Rx queue interrupt setup on FreeBSD * net: add macros for VLAN metadata parsing * net: fix TCP/UDP checksum with padding data * pipeline: fix calloc parameters * rawdev: fix calloc parameters * rcu: fix acked token in debug log * rcu: use atomic operation on acked token * regexdev: fix logtype register * telemetry: fix connected clients count * telemetry: fix empty JSON dictionaries * test/cfgfile: fix typo in error messages * test/event: fix crash in Tx adapter freeing * test/event: skip test if no driver is present * test/mbuf: fix external mbuf case with assert enabled * test/power: fix typo in error message * test: assume C source files are UTF-8 encoded * test: do not count skipped tests as executed * test: fix probing in secondary process * test: verify strdup return * vdpa/mlx5: fix queue enable drain CQ * version: 23.11.1-rc2 * vhost: fix VDUSE device destruction failure * vhost: fix deadlock during vDPA SW live migration * vhost: fix memory leak in Virtio Tx split path * vhost: fix virtqueue access check in VDUSE setup * vhost: fix virtqueue access check in datapath * vhost: fix virtqueue access check in vhost-user setup - Fix macro aarch64_machine for thunderx and aarch64 build - Drop building KMP as there are no Kernel modules available. - Drop the below patches as KNI is removed from DPDK repository * 0002-SLE15-SP3-compatibility-patch-for-kni.patch * kni-fix-build-with-Linux-6.10.patch * kni-fix-build-with-Linux-6.8.patch * preamble - Updated the below patch for DPDK v23.11 * 0001-fix-cpu-compatibility.patch OBS-URL: https://build.opensuse.org/package/show/network/dpdk?expand=0&rev=164
This commit is contained in:
commit
928144f175
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
69
0001-fix-cpu-compatibility.patch
Normal file
69
0001-fix-cpu-compatibility.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From e2950fec9cd9c235a7847ed97b6914174857bf93 Mon Sep 17 00:00:00 2001
|
||||
From: "mvarlese@suse.de" <mvarlese@suse.de>
|
||||
Date: Wed, 29 Apr 2020 12:24:16 +0200
|
||||
Subject: [PATCH] fix cpu compatibility
|
||||
|
||||
Added 0001-fix-cpu-compatibility.patch to address issue with older CPUs (bsc#1125961, bsc#1099474)
|
||||
|
||||
Updated 2024-08-26 for version 23.11
|
||||
|
||||
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
|
||||
index 7974b27295..25eec8bf6e 100644
|
||||
--- a/drivers/bus/vdev/vdev.c
|
||||
+++ b/drivers/bus/vdev/vdev.c
|
||||
@@ -51,7 +51,11 @@ static struct vdev_custom_scans vdev_custom_scans =
|
||||
static rte_spinlock_t vdev_custom_scan_lock = RTE_SPINLOCK_INITIALIZER;
|
||||
|
||||
/* register a driver */
|
||||
-void
|
||||
+#if defined(__x86_64__) || defined(__i386__)
|
||||
+void __attribute__((target ("sse2")))
|
||||
+#else
|
||||
+ void
|
||||
+#endif
|
||||
rte_vdev_register(struct rte_vdev_driver *driver)
|
||||
{
|
||||
TAILQ_INSERT_TAIL(&vdev_driver_list, driver, next);
|
||||
diff --git a/lib/eal/common/eal_common_bus.c b/lib/eal/common/eal_common_bus.c
|
||||
index acac14131a..a19f5e5431 100644
|
||||
--- a/lib/eal/common/eal_common_bus.c
|
||||
+++ b/lib/eal/common/eal_common_bus.c
|
||||
@@ -22,7 +22,11 @@ rte_bus_name(const struct rte_bus *bus)
|
||||
return bus->name;
|
||||
}
|
||||
|
||||
-void
|
||||
+#if defined(__x86_64__) || defined(__i386__)
|
||||
+void __attribute__((target ("sse2")))
|
||||
+#else
|
||||
+ void
|
||||
+#endif
|
||||
rte_bus_register(struct rte_bus *bus)
|
||||
{
|
||||
RTE_VERIFY(bus);
|
||||
diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h
|
||||
index c1ba32d00e..525a575c08 100644
|
||||
--- a/lib/eal/include/rte_common.h
|
||||
+++ b/lib/eal/include/rte_common.h
|
||||
@@ -208,8 +208,20 @@ typedef uint16_t unaligned_uint16_t;
|
||||
*/
|
||||
#ifndef RTE_INIT_PRIO /* Allow to override from EAL */
|
||||
#ifndef RTE_TOOLCHAIN_MSVC
|
||||
+#if defined(__x86_64__) || defined(__i386__)
|
||||
#define RTE_INIT_PRIO(func, prio) \
|
||||
-static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void)
|
||||
+static void \
|
||||
+ __attribute__((constructor(RTE_PRIO(prio)), used)) \
|
||||
+ __attribute__((target ("sse2"))) \
|
||||
+ __attribute__((target ("no-sse3"))) \
|
||||
+ __attribute__((target ("no-sse4"))) \
|
||||
+ func(void)
|
||||
+#else
|
||||
+#define RTE_INIT_PRIO(func, prio) \
|
||||
+static void \
|
||||
+ __attribute__((constructor(RTE_PRIO(prio)), used)) \
|
||||
+ func(void)
|
||||
+#endif
|
||||
#else
|
||||
/* definition from the Microsoft CRT */
|
||||
typedef int(__cdecl *_PIFV)(void);
|
36
0002-SLE15-SP3-compatibility-patch-for-kni.patch
Normal file
36
0002-SLE15-SP3-compatibility-patch-for-kni.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 430a4b50f2f7e5f21c7c2f81849588c575018501 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jaime=20Caama=C3=B1o=20Ruiz?= <jcaamano@suse.com>
|
||||
Date: Mon, 21 Sep 2020 14:50:13 +0200
|
||||
Subject: [PATCH] SLE15 SP3 compatibility patch for kni
|
||||
|
||||
Add patch to resolve build error reported in Staging:E project
|
||||
where a kernel backport (jsc#SLE-13536) introduced backward
|
||||
incompatible changes to the API that break kni module build
|
||||
* 0001-SLE15-SP3-compatibility-patch-for-kni.patch
|
||||
|
||||
Updated 2023-02-26 for version 22.11
|
||||
|
||||
diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h
|
||||
index 3a86d12bbc..66d1afd944 100644
|
||||
--- a/kernel/linux/kni/compat.h
|
||||
+++ b/kernel/linux/kni/compat.h
|
||||
@@ -14,7 +14,10 @@
|
||||
#define SLE_VERSION(a, b, c) KERNEL_VERSION(a, b, c)
|
||||
#endif
|
||||
#ifdef CONFIG_SUSE_KERNEL
|
||||
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 57))
|
||||
+#if (defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && \
|
||||
+ defined(CONFIG_SUSE_PATCHLEVEL) && CONFIG_SUSE_PATCHLEVEL == 3)
|
||||
+#define SLE_VERSION_CODE SLE_VERSION(15, 3, 0)
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 57))
|
||||
/* SLES12SP3 is at least 4.4.57+ based */
|
||||
#define SLE_VERSION_CODE SLE_VERSION(12, 3, 0)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 28))
|
||||
@@ -132,6 +135,7 @@
|
||||
#endif
|
||||
|
||||
#if KERNEL_VERSION(5, 6, 0) <= LINUX_VERSION_CODE || \
|
||||
+ (SLE_VERSION_CODE && SLE_VERSION_CODE == SLE_VERSION(15, 3, 0)) || \
|
||||
(defined(RHEL_RELEASE_CODE) && \
|
||||
RHEL_RELEASE_VERSION(8, 3) <= RHEL_RELEASE_CODE) || \
|
||||
(defined(CONFIG_SUSE_KERNEL) && defined(HAVE_ARG_TX_QUEUE))
|
21
_constraints
Normal file
21
_constraints
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<constraints>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<cpu>
|
||||
<flag>mmx</flag>
|
||||
<flag>sse</flag>
|
||||
<flag>sse2</flag>
|
||||
<flag>ssse3</flag>
|
||||
<flag>sse4_2</flag>
|
||||
</cpu>
|
||||
<disk>
|
||||
<size unit="G">8</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
||||
<multibuild>
|
||||
<package>thunderx</package>
|
||||
</multibuild>
|
BIN
dpdk-22.11.1.tar.xz
(Stored with Git LFS)
Normal file
BIN
dpdk-22.11.1.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
3
dpdk-22.11.5.tar.xz
Normal file
3
dpdk-22.11.5.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:916805aee46246b81f71f831221231ef3de9c1f70223d179621980ec5d1bdf73
|
||||
size 15617920
|
3
dpdk-22.11.6.tar.xz
Normal file
3
dpdk-22.11.6.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b9291448ca0e6beebbafde99d9ba8376722d5e1482e79118b6328f69e9a8e9bf
|
||||
size 15626012
|
BIN
dpdk-23.11.1.tar.xz
(Stored with Git LFS)
Normal file
BIN
dpdk-23.11.1.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
2091
dpdk.changes
Normal file
2091
dpdk.changes
Normal file
File diff suppressed because it is too large
Load Diff
310
dpdk.spec
Normal file
310
dpdk.spec
Normal file
@ -0,0 +1,310 @@
|
||||
#
|
||||
# spec file
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
# needssslcertforbuild
|
||||
|
||||
|
||||
%define flavor @BUILD_FLAVOR@%{nil}
|
||||
%define aarch64_machine armv8-a
|
||||
%define exclusive_arch aarch64 x86_64 ppc64le
|
||||
%define name_tag %{nil}
|
||||
%define summary_tag %{nil}
|
||||
%if "%{flavor}" == "thunderx"
|
||||
%define name_tag -thunderx
|
||||
%define summary_tag (thunderx)
|
||||
%define exclusive_arch aarch64
|
||||
%endif
|
||||
# http://doc.dpdk.org/guides-22.11/linux_gsg/build_dpdk.html#adjusting-build-options
|
||||
%define platform generic
|
||||
%define machine auto
|
||||
%ifarch aarch64
|
||||
%define machine %{aarch64_machine}
|
||||
%endif
|
||||
# This is in sync with <src>/ABI_VERSION
|
||||
# TODO: automate this sync
|
||||
%define maj 24
|
||||
%define min 0
|
||||
#%%define lname libdpdk-%%{maj}_%%{min}
|
||||
%define lname libdpdk-%{maj}
|
||||
# Add option to build without examples
|
||||
%bcond_without examples
|
||||
# Add option to build without tools
|
||||
%bcond_without tools
|
||||
#
|
||||
Name: dpdk%{name_tag}
|
||||
Version: 23.11.1
|
||||
Release: 0
|
||||
Summary: Set of libraries and drivers for fast packet processing
|
||||
License: BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-only
|
||||
Group: System/Libraries
|
||||
URL: https://www.dpdk.org/
|
||||
Source: https://fast.dpdk.org/rel/dpdk-%{version}.tar.xz
|
||||
# PATCH-FIX-OPENSUSE PATCH-FEATURE-UPSTREAM
|
||||
Patch0: 0001-fix-cpu-compatibility.patch
|
||||
BuildRequires: binutils
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kernel-syms
|
||||
BuildRequires: libfdt-devel
|
||||
BuildRequires: meson >= 0.53.2
|
||||
BuildRequires: modutils
|
||||
BuildRequires: patchelf
|
||||
BuildRequires: pesign-obs-integration
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3
|
||||
BuildRequires: python3-Sphinx
|
||||
BuildRequires: python3-pyelftools >= 0.22
|
||||
BuildRequires: rdma-core-devel
|
||||
BuildRequires: pkgconfig(jansson)
|
||||
BuildRequires: pkgconfig(libcrypto)
|
||||
BuildRequires: pkgconfig(libelf)
|
||||
BuildRequires: pkgconfig(libmnl)
|
||||
BuildRequires: pkgconfig(libpcap)
|
||||
BuildRequires: pkgconfig(numa)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
Conflicts: dpdk-any
|
||||
Provides: dpdk-any = %{version}
|
||||
Obsoletes: dpdk-kmp-trace < %{version}
|
||||
ExclusiveArch: %{exclusive_arch}
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400
|
||||
# https://bugzilla.opensuse.org/show_bug.cgi?id=1196511
|
||||
BuildRequires: pkgconfig(libbpf)
|
||||
%endif
|
||||
|
||||
%description
|
||||
The Data Plane Development Kit is a set of libraries and drivers for
|
||||
fast packet processing in the user space.
|
||||
|
||||
%package devel
|
||||
Summary: Data Plane Development Kit development files %{summary_tag}
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{lname} = %{version}
|
||||
Conflicts: dpdk-any-devel
|
||||
Provides: dpdk-any-devel = %{version}
|
||||
|
||||
%description devel
|
||||
This package contains the headers and other files needed for developing
|
||||
applications with the Data Plane Development Kit.
|
||||
|
||||
%package devel-static
|
||||
Summary: Data Plane Development Kit static development files %{summary_tag}
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{name}-devel = %{version}
|
||||
|
||||
%description devel-static
|
||||
This package contains the static library files needed for developing
|
||||
applications with the Data Plane Development Kit.
|
||||
|
||||
%package -n %{lname}
|
||||
Summary: Data Plane Development Kit runtime libraries %{summary_tag}
|
||||
Group: Development/Libraries/C and C++
|
||||
Provides: %{lname}-any = %{version}
|
||||
|
||||
%description -n %{lname}
|
||||
This package contains the runtime libraries needed for 3rd party application
|
||||
to use the Data Plane Development Kit.
|
||||
|
||||
%package doc
|
||||
Summary: Data Plane Development Kit API documentation %{summary_tag}
|
||||
Group: System/Libraries
|
||||
Conflicts: dpdk-any-doc
|
||||
Provides: dpdk-any-doc = %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description doc
|
||||
API programming documentation for the Data Plane Development Kit.
|
||||
|
||||
%if %{with tools}
|
||||
%package tools
|
||||
Summary: Tools for setting up Data Plane Development Kit environment %{summary_tag}
|
||||
Group: System/Libraries
|
||||
Requires: %{name} = %{version}
|
||||
Requires: findutils
|
||||
Requires: iproute
|
||||
Requires: kmod
|
||||
Requires: pciutils
|
||||
Conflicts: dpdk-any-tools
|
||||
Provides: dpdk-any-tools = %{version}
|
||||
|
||||
%description tools
|
||||
This package contains tools for setting up Data Plane Development Kit environment
|
||||
%endif
|
||||
|
||||
%if %{with examples}
|
||||
%package examples
|
||||
Summary: Data Plane Development Kit example applications %{summary_tag}
|
||||
Group: System/Libraries
|
||||
BuildRequires: libvirt-devel
|
||||
Conflicts: dpdk-any-examples
|
||||
Provides: dpdk-any-examples = %{version}
|
||||
|
||||
%description examples
|
||||
Example applications utilizing the Data Plane Development Kit, such
|
||||
as L2 and L3 forwarding.
|
||||
%endif
|
||||
|
||||
%define sdkdir %{_datadir}/dpdk
|
||||
%define docdir %{_docdir}/dpdk
|
||||
%define incdir %{_includedir}/dpdk
|
||||
%define pmddir %{_libdir}/dpdk-pmds-%{maj}.%{min}
|
||||
|
||||
%prep
|
||||
# can't use %%{name} because of dpdk-thunderx
|
||||
%setup -n dpdk-stable-%{version}
|
||||
%if 0%{?suse_version} > 1600
|
||||
%autopatch -p1
|
||||
%else
|
||||
# grr, no fs.copyfile() in the old meson in SLE (but it has old enough kernel).
|
||||
%autopatch -p1 -M 99
|
||||
%endif
|
||||
|
||||
# Skip not supported examples
|
||||
sed -i "/performance-thread/d" examples/meson.build
|
||||
|
||||
# Verify ABI
|
||||
[ "$(cat ABI_VERSION)" = "%{maj}.%{min}" ] || exit 1
|
||||
|
||||
%build
|
||||
%define _vpath_builddir "build-%{_target_cpu}-$flavor"
|
||||
|
||||
%ifarch x86_64
|
||||
export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -msse4"
|
||||
%endif
|
||||
examples="all"
|
||||
for flavor in %{flavors_to_build}; do
|
||||
%meson --includedir=%{incdir} \
|
||||
-Ddefault_library=shared \
|
||||
-Denable_docs=true \
|
||||
-Db_lto=true \
|
||||
%if %{with examples}
|
||||
-Dexamples="$examples" \
|
||||
%endif
|
||||
-Dplatform="%{platform}" \
|
||||
-Dcpu_instruction_set=%{machine} \
|
||||
-Denable_kmods=true \
|
||||
-Ddrivers_install_subdir=%{pmddir} \
|
||||
-Dkernel_dir="%{_prefix}/src/linux-obj/%{_target_cpu}/$flavor"
|
||||
%meson_build
|
||||
# Make sure examples are only built once
|
||||
examples=""
|
||||
done
|
||||
|
||||
%install
|
||||
examples="%{?with_examples:all}"
|
||||
for flavor in %{flavors_to_build}; do
|
||||
%meson_install
|
||||
# Also install the example binaries
|
||||
if [ ! -z "$examples" ]; then
|
||||
for f in %{_vpath_builddir}/examples/dpdk-*; do
|
||||
bn=$(basename "$f")
|
||||
if [ -f "$f" ] ; then
|
||||
install -Dm 0755 ${f} "%{buildroot}%{_bindir}/${bn/dpdk-/dpdk_example_}"
|
||||
patchelf --remove-rpath "%{buildroot}%{_bindir}/${bn/dpdk-/dpdk_example_}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
examples=""
|
||||
done
|
||||
|
||||
# Fix documentation
|
||||
mkdir -p %{buildroot}%docdir
|
||||
mv %{buildroot}%{_datadir}/doc/dpdk %{buildroot}%docdir
|
||||
rm -r %{buildroot}/%docdir/dpdk/html/.doctrees
|
||||
# Fix man directory
|
||||
rm -r %{buildroot}%{_mandir}/man3/*
|
||||
|
||||
# driver .so files often depend upon the bus drivers for their connect bus,
|
||||
# e.g. ixgbe depends on librte_bus_pci. This means that the bus drivers need
|
||||
# to be in the library path, so symlink the drivers from the main lib directory
|
||||
# Fix broken symlink created by buildtools/symlink-drivers-solibs.sh
|
||||
for f in %{buildroot}/%{pmddir}/*.so.*; do
|
||||
bn=$(basename ${f})
|
||||
ln -s %{pmddir}/${bn} %{buildroot}%{_libdir}/${bn}
|
||||
done
|
||||
|
||||
%if ! %{with tools}
|
||||
# Remove tools if not needed
|
||||
for tool in dpdk-devbind.py dpdk-pmdinfo.py dpdk-telemetry.py dpdk-hugepages.py; do
|
||||
rm -rf "%{buildroot}%{_bindir}/$tool"
|
||||
done
|
||||
%else
|
||||
# Add compatibility symlink
|
||||
mkdir -p %{buildroot}%{_sbindir}
|
||||
ln -s %{_bindir}/dpdk-devbind.py %{buildroot}%{_sbindir}/dpdk_nic_bind
|
||||
%endif
|
||||
|
||||
# Fix interpreter
|
||||
%python3_fix_shebang
|
||||
%python3_fix_shebang_path %{buildroot}%{_datadir}/%{name}/examples/ipsec-secgw/test/*
|
||||
%python3_fix_shebang_path %{buildroot}%{_datadir}/%{name}/examples/pipeline/examples/*
|
||||
|
||||
# Remove duplicates
|
||||
%fdupes %{buildroot}/%docdir
|
||||
%fdupes %{buildroot}/%{sdkdir}/examples
|
||||
|
||||
# Fix broken symlink (yes with * in its name)
|
||||
rm -v "%{buildroot}%{_libdir}/librte_*.so*"
|
||||
|
||||
%post devel -p /sbin/ldconfig
|
||||
%postun devel -p /sbin/ldconfig
|
||||
%post -n %{lname} -p /sbin/ldconfig
|
||||
%postun -n %{lname} -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%{_bindir}/dpdk-dumpcap
|
||||
%{_bindir}/dpdk-pdump
|
||||
%{_bindir}/dpdk-proc-info
|
||||
%{_bindir}/dpdk-test*
|
||||
%{_bindir}/dpdk-graph*
|
||||
|
||||
%files -n %{lname}
|
||||
%license license/gpl-2.0.txt license/lgpl-2.1.txt license/bsd-3-clause.txt
|
||||
%{_libdir}/*.so.*
|
||||
%dir %{pmddir}
|
||||
%{pmddir}/*.so.*
|
||||
|
||||
%files devel
|
||||
#BSD
|
||||
%{incdir}/
|
||||
%{sdkdir}/
|
||||
%{pmddir}/*.so
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/pkgconfig/libdpdk*.pc
|
||||
%if %{with examples}
|
||||
%exclude %{sdkdir}/examples/
|
||||
%endif
|
||||
|
||||
%files devel-static
|
||||
#BSD
|
||||
%{_libdir}/*.a
|
||||
|
||||
%files doc
|
||||
#BSD
|
||||
%doc %docdir
|
||||
|
||||
%if %{with tools}
|
||||
%files tools
|
||||
%{_sbindir}/dpdk_nic_bind
|
||||
%{_bindir}/dpdk-*.py
|
||||
%endif
|
||||
|
||||
%if %{with examples}
|
||||
%files examples
|
||||
%{_bindir}/dpdk_example_*
|
||||
%doc %{sdkdir}/examples
|
||||
%endif
|
||||
|
||||
%changelog
|
68
kni-fix-build-with-Linux-6.10.patch
Normal file
68
kni-fix-build-with-Linux-6.10.patch
Normal file
@ -0,0 +1,68 @@
|
||||
From: Jiri Slaby <jslaby@suse.cz>
|
||||
Date: Tue, 16 Jul 2024 10:40:26 +0200
|
||||
Subject: kni: fix build with Linux 6.10
|
||||
Patch-mainline: submitted to dev@dpdk.org, <20240716084414.115852-1-jslaby@suse.cz>
|
||||
References: kernel 6.10
|
||||
|
||||
6.10 removed the "support" (it was never supported [1]) of separate
|
||||
source and build dirs for out of tree modules.
|
||||
|
||||
KNI uses "src=" hack for that purpose.
|
||||
|
||||
Instead, copy sources to the build dir and don't rely upon the
|
||||
unsupported...
|
||||
|
||||
Intended esp. for stable/22.11. It should go wherever kni is still in
|
||||
the tree.
|
||||
|
||||
[1] https://lore.kernel.org/all/CAK7LNAQ47bZpE6c6Yoz-jQS78uU611oZwU8bH+7e=p5zSyADJw@mail.gmail.com/
|
||||
|
||||
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
||||
---
|
||||
kernel/linux/kni/meson.build | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build
|
||||
index 4c90069e..39ca2ade 100644
|
||||
--- a/kernel/linux/kni/meson.build
|
||||
+++ b/kernel/linux/kni/meson.build
|
||||
@@ -11,8 +11,8 @@ if run_cmd.stdout().contains('txqueue') == true
|
||||
kmod_cflags = '-DHAVE_ARG_TX_QUEUE'
|
||||
endif
|
||||
|
||||
-
|
||||
-kni_mkfile = custom_target('rte_kni_makefile',
|
||||
+kni_deps = []
|
||||
+kni_deps += custom_target('rte_kni_makefile',
|
||||
output: 'Makefile',
|
||||
command: ['touch', '@OUTPUT@'])
|
||||
|
||||
@@ -22,12 +22,15 @@ kni_sources = files(
|
||||
'Kbuild',
|
||||
)
|
||||
|
||||
+foreach file : kni_sources
|
||||
+ kni_deps += fs.copyfile(file)
|
||||
+endforeach
|
||||
+
|
||||
custom_target('rte_kni',
|
||||
input: kni_sources,
|
||||
output: 'rte_kni.ko',
|
||||
command: ['make', '-j4', '-C', kernel_build_dir,
|
||||
'M=' + meson.current_build_dir(),
|
||||
- 'src=' + meson.current_source_dir(),
|
||||
' '.join(['MODULE_CFLAGS=', kmod_cflags,'-include '])
|
||||
+ dpdk_source_root + '/config/rte_config.h' +
|
||||
' -I' + dpdk_source_root + '/lib/eal/include' +
|
||||
@@ -35,7 +38,7 @@ custom_target('rte_kni',
|
||||
' -I' + dpdk_build_root +
|
||||
' -I' + meson.current_source_dir(),
|
||||
'modules'] + cross_args,
|
||||
- depends: kni_mkfile,
|
||||
+ depends: kni_deps,
|
||||
install: install,
|
||||
install_dir: kernel_install_dir,
|
||||
build_by_default: get_option('enable_kmods'))
|
||||
--
|
||||
2.45.2
|
||||
|
45
kni-fix-build-with-Linux-6.8.patch
Normal file
45
kni-fix-build-with-Linux-6.8.patch
Normal file
@ -0,0 +1,45 @@
|
||||
From: Jiri Slaby <jslaby@suse.cz>
|
||||
Date: Tue, 12 Mar 2024 09:49:14 +0100
|
||||
Subject: kni: fix build with Linux 6.8
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Git-repo: git://dpdk.org/dpdk-stable
|
||||
Git-commit: 15658afda05f50e69805b891ebb4d2d5c1966d44
|
||||
Patch-mainline: yes
|
||||
References: kernel 6.8
|
||||
|
||||
strlcpy() was removed in commit d26270061ae6 (string: Remove strlcpy()), use
|
||||
strscpy() instead.
|
||||
|
||||
The patches fixes this:
|
||||
kernel/linux/kni/kni_net.c: In function ‘kni_get_drvinfo’:
|
||||
kernel/linux/kni/kni_net.c:835:9: error: implicit declaration of function ‘strlcpy’; did you mean ‘strscpy’?
|
||||
|
||||
Intended esp. for stable/22.11. It should go wherever kni is still in
|
||||
the tree.
|
||||
|
||||
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
||||
Acked-by: Luca Boccassi <bluca@debian.org>
|
||||
---
|
||||
kernel/linux/kni/kni_net.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
|
||||
index 779ee345..c115a728 100644
|
||||
--- a/kernel/linux/kni/kni_net.c
|
||||
+++ b/kernel/linux/kni/kni_net.c
|
||||
@@ -832,8 +832,8 @@ static const struct net_device_ops kni_net_netdev_ops = {
|
||||
static void kni_get_drvinfo(struct net_device *dev,
|
||||
struct ethtool_drvinfo *info)
|
||||
{
|
||||
- strlcpy(info->version, KNI_VERSION, sizeof(info->version));
|
||||
- strlcpy(info->driver, "kni", sizeof(info->driver));
|
||||
+ strscpy(info->version, KNI_VERSION, sizeof(info->version));
|
||||
+ strscpy(info->driver, "kni", sizeof(info->driver));
|
||||
}
|
||||
|
||||
static const struct ethtool_ops kni_net_ethtool_ops = {
|
||||
--
|
||||
2.45.2
|
||||
|
Loading…
Reference in New Issue
Block a user