Compare commits

1 Commits
1.1 ... main

12 changed files with 612 additions and 195 deletions

View File

@@ -0,0 +1,35 @@
From a9ae58b265d580a1b7048e0686a626d7b2538d18 Mon Sep 17 00:00:00 2001
From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
Date: Tue, 1 Apr 2025 10:05:47 +0200
Subject: [PATCH] rte_trace: rte_trace_feature_is_enabled as makro
---
lib/eal/include/rte_trace.h | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/lib/eal/include/rte_trace.h b/lib/eal/include/rte_trace.h
index 90af760194..df95674277 100644
--- a/lib/eal/include/rte_trace.h
+++ b/lib/eal/include/rte_trace.h
@@ -44,16 +44,11 @@ bool rte_trace_is_enabled(void);
* @return
* true if trace feature is enabled, false otherwise.
*/
-__rte_experimental
-static __rte_always_inline bool
-rte_trace_feature_is_enabled(void)
-{
#ifdef RTE_TRACE
- return true;
+#define rte_trace_feature_is_enabled() (true)
#else
- return false;
+#define rte_trace_feature_is_enabled() (false)
#endif
-}
/**
* Enumerate trace mode operation.
--
2.43.0

View File

@@ -0,0 +1,41 @@
From a1601d25a7c05e9b572c5055ffd460f7b902258c Mon Sep 17 00:00:00 2001
From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
Date: Thu, 5 Jun 2025 16:48:27 +0200
Subject: [PATCH 1/1] dts: generate random capture_name per call
Reference: boo#1244130
Previously, `capture_name` defaulted to a "dynamic" value. This caused
non-deterministic documentation (as reported in
https://bugs.dpdk.org/show_bug.cgi?id=1718) and could lead to
overwriting capture files if the method was called
multiple times within a single Python process.
---
.../traffic_generator/capturing_traffic_generator.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py b/dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py
index 66a77da9c4..c1e4a898d4 100644
--- a/dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py
+++ b/dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py
@@ -70,7 +70,7 @@ def send_packets_and_capture(
receive_port: Port,
filter_config: PacketFilteringConfig,
duration: float,
- capture_name: str = _get_default_capture_name(),
+ capture_name: str = None,
) -> list[Packet]:
"""Send `packets` and capture received traffic.
@@ -104,6 +104,9 @@ def send_packets_and_capture(
duration,
)
+ if capture_name is None:
+ capture_name = _get_default_capture_name()
+
self._logger.debug(f"Received packets: {get_packet_summaries(received_packets)}")
self._write_capture_from_packets(capture_name, received_packets)
return received_packets
--
2.43.0

View File

@@ -0,0 +1,32 @@
From a351bb62c81223c8e4727484ae54766ca8a6926f Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <Guillaume.Gardet@arm.com>
Date: Thu, 29 Aug 2024 16:33:19 +0200
Subject: [PATCH] examples/vm_power_manager: add missing header
strtol is defined in stdlib.h
Bugzilla ID: 1530
Signed-off-by: Guillaume Gardet <guillaume.gardet@arm.com>
EDIT: drop .mailmap part for backport
---
.mailmap | 1 +
examples/vm_power_manager/guest_cli/vm_power_cli_guest.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
index 5eddb47847..c153a1f8e0 100644
--- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
+++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
@@ -6,6 +6,7 @@
#include <stdint.h>
#include <string.h>
#include <stdio.h>
+#include <stdlib.h>
#include <termios.h>
#include <cmdline_rdline.h>
--
2.46.0

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] fix cpu compatibility
Added 0001-fix-cpu-compatibility.patch to address issue with older CPUs (bsc#1125961, bsc#1099474) Added 0001-fix-cpu-compatibility.patch to address issue with older CPUs (bsc#1125961, bsc#1099474)
Updated 2023-02-26 for version 22.11 Updated 2024-08-26 for version 23.11
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index 41bc07dde7..750180cb84 100644 index 7974b27295..25eec8bf6e 100644
--- a/drivers/bus/vdev/vdev.c --- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c +++ b/drivers/bus/vdev/vdev.c
@@ -51,7 +51,11 @@ static struct vdev_custom_scans vdev_custom_scans = @@ -51,7 +51,11 @@ static struct vdev_custom_scans vdev_custom_scans =
@@ -25,7 +25,7 @@ index 41bc07dde7..750180cb84 100644
{ {
TAILQ_INSERT_TAIL(&vdev_driver_list, driver, next); 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 diff --git a/lib/eal/common/eal_common_bus.c b/lib/eal/common/eal_common_bus.c
index deb9fb8a12..cb7bec607f 100644 index acac14131a..a19f5e5431 100644
--- a/lib/eal/common/eal_common_bus.c --- a/lib/eal/common/eal_common_bus.c
+++ b/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) @@ -22,7 +22,11 @@ rte_bus_name(const struct rte_bus *bus)
@@ -42,13 +42,13 @@ index deb9fb8a12..cb7bec607f 100644
{ {
RTE_VERIFY(bus); RTE_VERIFY(bus);
diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h
index 15765b408d..4291706faa 100644 index c1ba32d00e..525a575c08 100644
--- a/lib/eal/include/rte_common.h --- a/lib/eal/include/rte_common.h
+++ b/lib/eal/include/rte_common.h +++ b/lib/eal/include/rte_common.h
@@ -179,8 +179,20 @@ typedef uint16_t unaligned_uint16_t; @@ -208,8 +208,20 @@ typedef uint16_t unaligned_uint16_t;
* Lowest number is the first to run.
*/ */
#ifndef RTE_INIT_PRIO /* Allow to override from EAL */ #ifndef RTE_INIT_PRIO /* Allow to override from EAL */
#ifndef RTE_TOOLCHAIN_MSVC
+#if defined(__x86_64__) || defined(__i386__) +#if defined(__x86_64__) || defined(__i386__)
#define RTE_INIT_PRIO(func, prio) \ #define RTE_INIT_PRIO(func, prio) \
-static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void) -static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void)
@@ -64,6 +64,6 @@ index 15765b408d..4291706faa 100644
+ __attribute__((constructor(RTE_PRIO(prio)), used)) \ + __attribute__((constructor(RTE_PRIO(prio)), used)) \
+ func(void) + func(void)
+#endif +#endif
#endif #else
/* definition from the Microsoft CRT */
/** typedef int(__cdecl *_PIFV)(void);

View File

@@ -1,55 +0,0 @@
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Fri, 14 Apr 2023 16:25:22 +0100
Subject: kni: fix build with Linux 6.3
Patch-mainline: yes
Git-commit: 5f34cc454df420b9b2da8deb949fb76cba058b87
References: kernel 6.3
KNI calls `get_user_pages_remote()` API which is using `FOLL_TOUCH`
flag, but `FOLL_TOUCH` is no more in public headers since v6.3,
causing a build error.
`FOLL_*` defines in Linux kernel first moved to another header [1],
later some of them moved to memory subsystem internal header [2] for 6.3
`get_user_pages_remote()` already sets `FOLL_TOUCH` internally,
no need to set this flag externally anyway, moving flag from the call
altogether.
[1]
Commit b5054174ac7c ("mm: move FOLL_* defs to mm_types.h")
[2]
Commit 2c2241081f7d ("mm/gup: move private gup FOLL_ flags to internal.h")
Fixes: e73831dc6c26 ("kni: support userspace VA")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
kernel/linux/kni/kni_dev.h | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h
index a2c6d9fc..21bfb689 100644
--- a/kernel/linux/kni/kni_dev.h
+++ b/kernel/linux/kni/kni_dev.h
@@ -105,11 +105,9 @@ static inline phys_addr_t iova_to_phys(struct task_struct *tsk,
/* Read one page struct info */
#ifdef HAVE_TSK_IN_GUP
- ret = get_user_pages_remote(tsk, tsk->mm, iova, 1,
- FOLL_TOUCH, &page, NULL, NULL);
+ ret = get_user_pages_remote(tsk, tsk->mm, iova, 1, 0, &page, NULL, NULL);
#else
- ret = get_user_pages_remote(tsk->mm, iova, 1,
- FOLL_TOUCH, &page, NULL, NULL);
+ ret = get_user_pages_remote(tsk->mm, iova, 1, 0, &page, NULL, NULL);
#endif
if (ret < 0)
return 0;
--
2.35.3

View File

@@ -1,36 +0,0 @@
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))

View File

@@ -1,3 +0,0 @@
<multibuild>
<package>thunderx</package>
</multibuild>

BIN
dpdk-22.11.1.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
dpdk-24.11.1.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,3 +1,405 @@
-------------------------------------------------------------------
Thu Jun 5 14:55:25 UTC 2025 - Clemens Famulla-Conrad <cfamullaconrad@suse.com>
- Fix deterministic build [bsc#1244130]
[+ 0001-dts-generate-random-capture_name-per-call.patch]
-------------------------------------------------------------------
Tue Apr 1 09:54:21 UTC 2025 - Clemens Famulla-Conrad <cfamullaconrad@suse.com>
- Change 0001-always_inline-fix.patch by replacing the function
rte_trace_feature_is_enabled with a preprocessor substitution,
this also work with older gcc7 where -mgeneral-regs-only isn't
available.
-------------------------------------------------------------------
Mon Mar 31 11:49:34 UTC 2025 - Richard Biener <rguenther@suse.com>
- Add 0001-always_inline-fix.patch to fix issue with always_inline
and rte_trace_feature_is_enabled which should use -mgeneral-regs-only
to inter-operate with other ISA flags. Remove GCC 14 build requirement
for SLE15/16 again.
-------------------------------------------------------------------
Fri Mar 14 13:37:33 UTC 2025 - Clemens Famulla-Conrad <cfamullaconrad@suse.com>
- Remove the 'thunderx' multibuild flavor; it was identical to aarch64.
It also makes 'Provides: dpdk-any' obsolete. [bsc#1237385]
-------------------------------------------------------------------
Mon Mar 10 13:21:19 UTC 2025 - Clemens Famulla-Conrad <cfamullaconrad@suse.com>
- Update to version 24.11.1
* Contains DPDK 24.11 plus the fix for CVE-2024-11614,
remove patch dpdk-CVE-2024-11614.patch
- Move docs from %{_docdir}/dpdk/dpdk to %{docdir}/dpdk
-------------------------------------------------------------------
Mon Feb 17 07:38:12 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Update to LTS version 24.11
* Changelog: https://doc.dpdk.org/guides/rel_notes/release_24_11.html
* This update fix build with glibc 2.41
- Use gcc14 on x86_64 SLE15/16 to avoid the inline error
-------------------------------------------------------------------
Wed Jan 1 13:12:20 UTC 2025 - Duraisankar P <Duraisankar.pitchumani@suse.com>
- Fix CVE-2024-11614 [bsc#1234718] - Denial Of Service from malicious guest on hypervisors using DPDK Vhost library
- Added patch,
+ dpdk-CVE-2024-11614.patch
-------------------------------------------------------------------
Sat Sep 14 12:34:14 UTC 2024 - Dan Partelly <d.partelly@yahoo.com>
- Enable (disabled by default) installation of headers needed
to build drivers.
-------------------------------------------------------------------
Fri Sep 13 05:08:15 UTC 2024 - Duraisankar P <Duraisankar.pitchumani@suse.com>
- Use python macros from build config
-------------------------------------------------------------------
Thu Sep 5 11:40:32 UTC 2024 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Fix build on aarch64 with gcc14:
* 0001-examples-vm_power_manager-add-missing-header.patch
-------------------------------------------------------------------
Mon Sep 2 06:15:32 UTC 2024 - Duraisankar P <Duraisankar.pitchumani@suse.com>
- 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
-------------------------------------------------------------------
Thu Aug 22 17:33:47 UTC 2024 - Aeneas Jaißle <aj@ajaissle.de>
- Update to LTS release version v22.11.6
* http://doc.dpdk.org/guides-22.11/rel_notes/release_22_11.html
- Drop patch (included upstream):
* kni-fix-build-with-Linux-6.8.patch (22.11.6)
-------------------------------------------------------------------
Sat Aug 17 13:47:42 UTC 2024 - Aeneas Jaißle <aj@ajaissle.de>
- Update to LTS release version v22.11.5
* http://doc.dpdk.org/guides-22.11/rel_notes/release_22_11.html
- Drop patches (included upstream):
* 0001-kni-fix-build-with-Linux-6.3.patch (22.11.3)
* 0001-kni-fix-build-with-Linux-6.5.patch (22.11.3)
-------------------------------------------------------------------
Wed Jul 24 06:25:38 UTC 2024 - Jiri Slaby <jslaby@suse.cz>
- use %autopatch even for older distros, -M *is* supported there
-------------------------------------------------------------------
Tue Jul 16 08:47:23 UTC 2024 - Jiri Slaby <jslaby@suse.cz>
- add kni-fix-build-with-Linux-6.10.patch to fix build against
kernel 6.8.
- update kni-fix-build-with-Linux-6.8.patch -- it is upstream now.
-------------------------------------------------------------------
Thu Jul 4 20:27:14 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>
- Drop leftover Sphinx doctrees to make package build reproducible
-------------------------------------------------------------------
Thu Jun 20 14:21:26 UTC 2024 - pgajdos@suse.com
- remove dependency on /usr/bin/python3 using
%python3_fix_shebang and %python3_fix_shebang_path macros
[bsc#1212476]
-------------------------------------------------------------------
Tue Mar 12 08:50:25 UTC 2024 - Jiri Slaby <jslaby@suse.cz>
- add kni-fix-build-with-Linux-6.8.patch to fix build against
kernel 6.8.
-------------------------------------------------------------------
Mon Sep 11 05:40:37 UTC 2023 - Jiri Slaby <jslaby@suse.cz>
- add 0001-kni-fix-build-with-Linux-6.5.patch to fix build against
kernel 6.5.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Apr 27 14:50:31 UTC 2023 - Dirk Müller <dmueller@suse.com> Thu Apr 27 14:50:31 UTC 2023 - Dirk Müller <dmueller@suse.com>

135
dpdk.spec
View File

@@ -1,7 +1,7 @@
# #
# spec file # spec file for package dpdk
# #
# Copyright (c) 2023 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,47 +17,45 @@
# needssslcertforbuild # needssslcertforbuild
%define flavor @BUILD_FLAVOR@%{nil}
%define aarch64_machine armv8a
%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 aarch64_machine 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 platform generic
%define machine auto %define machine auto
%ifarch aarch64
%define machine %{aarch64_machine2}
%endif
# This is in sync with <src>/ABI_VERSION # This is in sync with <src>/ABI_VERSION
# TODO: automate this sync # TODO: automate this sync
%define maj 23 %define maj 25
%define min 0 %define min 0
#%%define lname libdpdk-%%{maj}_%%{min} #%%define lname libdpdk-%%{maj}_%%{min}
%define lname libdpdk-%{maj} %define lname libdpdk-%{maj}
#
%if 0%{?sle_version} >= 150600
%global pprefix python311
%{?sle15_python_module_pythons}
%else
%global pythons python3
%global pprefix python3
%endif
# Add option to build without examples # Add option to build without examples
%bcond_without examples %bcond_without examples
# Add option to build without tools # Add option to build without tools
%bcond_without tools %bcond_without tools
# Name: dpdk
Name: dpdk%{name_tag} Version: 24.11.1
Version: 22.11.1
Release: 0 Release: 0
Summary: Set of libraries and drivers for fast packet processing Summary: Set of libraries and drivers for fast packet processing
License: BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-only License: BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-only
Group: System/Libraries Group: System/Libraries
URL: https://www.dpdk.org/ URL: https://www.dpdk.org/
Source: https://fast.dpdk.org/rel/dpdk-%{version}.tar.xz Source: https://fast.dpdk.org/rel/dpdk-%{version}.tar.xz
Source1: preamble
# PATCH-FIX-OPENSUSE PATCH-FEATURE-UPSTREAM # PATCH-FIX-OPENSUSE PATCH-FEATURE-UPSTREAM
Patch0: 0001-fix-cpu-compatibility.patch Patch0: 0001-fix-cpu-compatibility.patch
Patch1: 0002-SLE15-SP3-compatibility-patch-for-kni.patch # PATCH-FIX-UPSTREAM - https://bugs.dpdk.org/show_bug.cgi?id=1530
Patch2: 0001-kni-fix-build-with-Linux-6.3.patch Patch1: 0001-examples-vm_power_manager-add-missing-header.patch
# Fix inline error for < gcc14 (<=SLE16)
Patch2: 0001-always_inline-fix.patch
# Fix reproducable builds https://bugzilla.opensuse.org/show_bug.cgi?id=1244130
Patch3: 0001-dts-generate-random-capture_name-per-call.patch
BuildRequires: %{python_module Sphinx}
BuildRequires: %{python_module pyelftools >= 0.22}
BuildRequires: %{pythons}
BuildRequires: binutils BuildRequires: binutils
BuildRequires: doxygen BuildRequires: doxygen
BuildRequires: fdupes BuildRequires: fdupes
@@ -68,9 +66,6 @@ BuildRequires: modutils
BuildRequires: patchelf BuildRequires: patchelf
BuildRequires: pesign-obs-integration BuildRequires: pesign-obs-integration
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: python3
BuildRequires: python3-Sphinx
BuildRequires: python3-pyelftools >= 0.22
BuildRequires: rdma-core-devel BuildRequires: rdma-core-devel
BuildRequires: pkgconfig(jansson) BuildRequires: pkgconfig(jansson)
BuildRequires: pkgconfig(libcrypto) BuildRequires: pkgconfig(libcrypto)
@@ -79,10 +74,12 @@ BuildRequires: pkgconfig(libmnl)
BuildRequires: pkgconfig(libpcap) BuildRequires: pkgconfig(libpcap)
BuildRequires: pkgconfig(numa) BuildRequires: pkgconfig(numa)
BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(zlib)
Conflicts: dpdk-any
Provides: dpdk-any = %{version}
Obsoletes: dpdk-kmp-trace < %{version} Obsoletes: dpdk-kmp-trace < %{version}
ExclusiveArch: %{exclusive_arch} %ifarch aarch64
Provides: dpdk-thunderx = %{version}-%{release}
Obsoletes: dpdk-thunderx < %{version}-%{release}
%endif
ExclusiveArch: aarch64 x86_64 ppc64le
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400
# https://bugzilla.opensuse.org/show_bug.cgi?id=1196511 # https://bugzilla.opensuse.org/show_bug.cgi?id=1196511
BuildRequires: pkgconfig(libbpf) BuildRequires: pkgconfig(libbpf)
@@ -93,27 +90,33 @@ The Data Plane Development Kit is a set of libraries and drivers for
fast packet processing in the user space. fast packet processing in the user space.
%package devel %package devel
Summary: Data Plane Development Kit development files %{summary_tag} Summary: Data Plane Development Kit development files
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %{lname} = %{version} Requires: %{lname} = %{version}
Conflicts: dpdk-any-devel %ifarch aarch64
Provides: dpdk-any-devel = %{version} Provides: dpdk-thunderx-devel = %{version}-%{release}
Obsoletes: dpdk-thunderx-devel < %{version}-%{release}
%endif
%description devel %description devel
This package contains the headers and other files needed for developing This package contains the headers and other files needed for developing
applications with the Data Plane Development Kit. applications with the Data Plane Development Kit.
%package devel-static %package devel-static
Summary: Data Plane Development Kit static development files %{summary_tag} Summary: Data Plane Development Kit static development files
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %{name}-devel = %{version} Requires: %{name}-devel = %{version}
%ifarch aarch64
Provides: dpdk-thunderx-devel-static = %{version}-%{release}
Obsoletes: dpdk-thunderx-devel-static < %{version}-%{release}
%endif
%description devel-static %description devel-static
This package contains the static library files needed for developing This package contains the static library files needed for developing
applications with the Data Plane Development Kit. applications with the Data Plane Development Kit.
%package -n %{lname} %package -n %{lname}
Summary: Data Plane Development Kit runtime libraries %{summary_tag} Summary: Data Plane Development Kit runtime libraries
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Provides: %{lname}-any = %{version} Provides: %{lname}-any = %{version}
@@ -122,26 +125,30 @@ This package contains the runtime libraries needed for 3rd party application
to use the Data Plane Development Kit. to use the Data Plane Development Kit.
%package doc %package doc
Summary: Data Plane Development Kit API documentation %{summary_tag} Summary: Data Plane Development Kit API documentation
Group: System/Libraries Group: System/Libraries
Conflicts: dpdk-any-doc
Provides: dpdk-any-doc = %{version}
BuildArch: noarch BuildArch: noarch
%ifarch aarch64
Provides: dpdk-thunderx-doc = %{version}-%{release}
Obsoletes: dpdk-thunderx-doc < %{version}-%{release}
%endif
%description doc %description doc
API programming documentation for the Data Plane Development Kit. API programming documentation for the Data Plane Development Kit.
%if %{with tools} %if %{with tools}
%package tools %package tools
Summary: Tools for setting up Data Plane Development Kit environment %{summary_tag} Summary: Tools for setting up Data Plane Development Kit environment
Group: System/Libraries Group: System/Libraries
Requires: %{name} = %{version} Requires: %{name} = %{version}
Requires: findutils Requires: findutils
Requires: iproute Requires: iproute
Requires: kmod Requires: kmod
Requires: pciutils Requires: pciutils
Conflicts: dpdk-any-tools %ifarch aarch64
Provides: dpdk-any-tools = %{version} Provides: dpdk-thunderx-tools = %{version}-%{release}
Obsoletes: dpdk-thunderx-tools < %{version}-%{release}
%endif
%description tools %description tools
This package contains tools for setting up Data Plane Development Kit environment This package contains tools for setting up Data Plane Development Kit environment
@@ -149,34 +156,27 @@ This package contains tools for setting up Data Plane Development Kit environmen
%if %{with examples} %if %{with examples}
%package examples %package examples
Summary: Data Plane Development Kit example applications %{summary_tag} Summary: Data Plane Development Kit example applications
Group: System/Libraries Group: System/Libraries
BuildRequires: libvirt-devel BuildRequires: libvirt-devel
Conflicts: dpdk-any-examples %ifarch aarch64
Provides: dpdk-any-examples = %{version} Provides: dpdk-thunderx-examples = %{version}-%{release}
Obsoletes: dpdk-thunderx-examples < %{version}-%{release}
%endif
%description examples %description examples
Example applications utilizing the Data Plane Development Kit, such Example applications utilizing the Data Plane Development Kit, such
as L2 and L3 forwarding. as L2 and L3 forwarding.
%endif %endif
%package kmp
Summary: DPDK KNI kernel module %{summary_tag}
Group: System/Kernel
BuildRequires: %{kernel_module_package_buildreqs}
%suse_kernel_module_package -p %{_sourcedir}/preamble pae 64kb
%description kmp
The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
%define sdkdir %{_datadir}/dpdk %define sdkdir %{_datadir}/dpdk
%define docdir %{_docdir}/dpdk %define docdir %{_docdir}/dpdk
%define incdir %{_includedir}/dpdk %define incdir %{_includedir}/dpdk
%define pmddir %{_libdir}/dpdk-pmds-%{maj}.%{min} %define pmddir %{_libdir}/dpdk-pmds-%{maj}.%{min}
%prep %prep
# can't use %%{name} because of dpdk-thunderx %setup -q -n dpdk-stable-%{version}
%autosetup -p1 -n dpdk-stable-%{version} %autopatch -p1
# Skip not supported examples # Skip not supported examples
sed -i "/performance-thread/d" examples/meson.build sed -i "/performance-thread/d" examples/meson.build
@@ -202,6 +202,7 @@ for flavor in %{flavors_to_build}; do
-Dplatform="%{platform}" \ -Dplatform="%{platform}" \
-Dcpu_instruction_set=%{machine} \ -Dcpu_instruction_set=%{machine} \
-Denable_kmods=true \ -Denable_kmods=true \
-Denable_driver_sdk=true \
-Ddrivers_install_subdir=%{pmddir} \ -Ddrivers_install_subdir=%{pmddir} \
-Dkernel_dir="%{_prefix}/src/linux-obj/%{_target_cpu}/$flavor" -Dkernel_dir="%{_prefix}/src/linux-obj/%{_target_cpu}/$flavor"
%meson_build %meson_build
@@ -226,15 +227,17 @@ for flavor in %{flavors_to_build}; do
examples="" examples=""
done done
# Fix Kernel modules on Factory (/usr merge)
%if 0%{?suse_version} > 1550
mkdir -p %{buildroot}%{_prefix}/lib
mv %{buildroot}/lib/modules %{buildroot}%{_prefix}/lib
%endif
# Fix documentation # Fix documentation
mkdir -p %{buildroot}%docdir mkdir -p %{buildroot}%{docdir}
mv %{buildroot}%{_datadir}/doc/dpdk %{buildroot}%docdir mv %{buildroot}%{_datadir}/doc/dpdk %{buildroot}%{_docdir}
rm -rf %{buildroot}%{docdir}/html/.doctrees
rm -rf %{buildroot}%{docdir}/html/dts/.doctrees
rm %{buildroot}%{docdir}/html/.buildinfo
rm %{buildroot}%{docdir}/html/dts/.buildinfo
rm %{buildroot}%{docdir}/html/dts/.html.d
# Fix man directory
rm -r %{buildroot}%{_mandir}/man3/*
# driver .so files often depend upon the bus drivers for their connect bus, # 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 # e.g. ixgbe depends on librte_bus_pci. This means that the bus drivers need
@@ -257,8 +260,9 @@ ln -s %{_bindir}/dpdk-devbind.py %{buildroot}%{_sbindir}/dpdk_nic_bind
%endif %endif
# Fix interpreter # Fix interpreter
find %{buildroot} -name "*.py" -exec sed -i 's|python$|python3|' \{\} + %python3_fix_shebang
find %{buildroot} -name "*.py" -exec sed -i 's|env python|python|' \{\} + %python3_fix_shebang_path %{buildroot}%{_datadir}/%{name}/examples/ipsec-secgw/test/*
%python3_fix_shebang_path %{buildroot}%{_datadir}/%{name}/examples/pipeline/examples/*
# Remove duplicates # Remove duplicates
%fdupes %{buildroot}/%docdir %fdupes %{buildroot}/%docdir
@@ -277,6 +281,7 @@ rm -v "%{buildroot}%{_libdir}/librte_*.so*"
%{_bindir}/dpdk-pdump %{_bindir}/dpdk-pdump
%{_bindir}/dpdk-proc-info %{_bindir}/dpdk-proc-info
%{_bindir}/dpdk-test* %{_bindir}/dpdk-test*
%{_bindir}/dpdk-graph*
%files -n %{lname} %files -n %{lname}
%license license/gpl-2.0.txt license/lgpl-2.1.txt license/bsd-3-clause.txt %license license/gpl-2.0.txt license/lgpl-2.1.txt license/bsd-3-clause.txt

View File

@@ -1,4 +0,0 @@
Requires: kernel-%1
Enhances: kernel-%1
Supplements: packageand(kernel-%1:%{-n*})
Conflicts: dpdk-any-kmp