Compare commits

...

4 Commits

7 changed files with 177 additions and 50 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

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

BIN
dpdk-23.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,54 @@
-------------------------------------------------------------------
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>

View File

@@ -1,7 +1,7 @@
#
# spec file for package dpdk
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,25 +17,11 @@
# 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 maj 25
%define min 0
#%%define lname libdpdk-%%{maj}_%%{min}
%define lname libdpdk-%{maj}
@@ -51,8 +37,8 @@
%bcond_without examples
# Add option to build without tools
%bcond_without tools
Name: dpdk%{name_tag}
Version: 23.11.1
Name: dpdk
Version: 24.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
@@ -63,6 +49,10 @@ Source: https://fast.dpdk.org/rel/dpdk-%{version}.tar.xz
Patch0: 0001-fix-cpu-compatibility.patch
# PATCH-FIX-UPSTREAM - https://bugs.dpdk.org/show_bug.cgi?id=1530
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}
@@ -84,10 +74,12 @@ 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}
%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
# https://bugzilla.opensuse.org/show_bug.cgi?id=1196511
BuildRequires: pkgconfig(libbpf)
@@ -98,27 +90,33 @@ 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}
Summary: Data Plane Development Kit development files
Group: Development/Libraries/C and C++
Requires: %{lname} = %{version}
Conflicts: dpdk-any-devel
Provides: dpdk-any-devel = %{version}
%ifarch aarch64
Provides: dpdk-thunderx-devel = %{version}-%{release}
Obsoletes: dpdk-thunderx-devel < %{version}-%{release}
%endif
%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}
Summary: Data Plane Development Kit static development files
Group: Development/Libraries/C and C++
Requires: %{name}-devel = %{version}
%ifarch aarch64
Provides: dpdk-thunderx-devel-static = %{version}-%{release}
Obsoletes: dpdk-thunderx-devel-static < %{version}-%{release}
%endif
%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}
Summary: Data Plane Development Kit runtime libraries
Group: Development/Libraries/C and C++
Provides: %{lname}-any = %{version}
@@ -127,26 +125,30 @@ 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}
Summary: Data Plane Development Kit API documentation
Group: System/Libraries
Conflicts: dpdk-any-doc
Provides: dpdk-any-doc = %{version}
BuildArch: noarch
%ifarch aarch64
Provides: dpdk-thunderx-doc = %{version}-%{release}
Obsoletes: dpdk-thunderx-doc < %{version}-%{release}
%endif
%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}
Summary: Tools for setting up Data Plane Development Kit environment
Group: System/Libraries
Requires: %{name} = %{version}
Requires: findutils
Requires: iproute
Requires: kmod
Requires: pciutils
Conflicts: dpdk-any-tools
Provides: dpdk-any-tools = %{version}
%ifarch aarch64
Provides: dpdk-thunderx-tools = %{version}-%{release}
Obsoletes: dpdk-thunderx-tools < %{version}-%{release}
%endif
%description tools
This package contains tools for setting up Data Plane Development Kit environment
@@ -154,11 +156,13 @@ This package contains tools for setting up Data Plane Development Kit environmen
%if %{with examples}
%package examples
Summary: Data Plane Development Kit example applications %{summary_tag}
Summary: Data Plane Development Kit example applications
Group: System/Libraries
BuildRequires: libvirt-devel
Conflicts: dpdk-any-examples
Provides: dpdk-any-examples = %{version}
%ifarch aarch64
Provides: dpdk-thunderx-examples = %{version}-%{release}
Obsoletes: dpdk-thunderx-examples < %{version}-%{release}
%endif
%description examples
Example applications utilizing the Data Plane Development Kit, such
@@ -171,14 +175,8 @@ as L2 and L3 forwarding.
%define pmddir %{_libdir}/dpdk-pmds-%{maj}.%{min}
%prep
# can't use %%{name} because of dpdk-thunderx
%setup -q -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
@@ -230,9 +228,14 @@ for flavor in %{flavors_to_build}; do
done
# Fix documentation
mkdir -p %{buildroot}%docdir
mv %{buildroot}%{_datadir}/doc/dpdk %{buildroot}%docdir
rm -r %{buildroot}/%docdir/dpdk/html/.doctrees
mkdir -p %{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/*