diff --git a/.gitignore b/.gitignore index 1c315cf..3d932a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,9 @@ -/dpdk-1.7.0-20140603git5ebbb1728.tgz -/dpdk-1.7.0.tar.gz -/dpdk-2.0.0.tar.gz -/dpdk-2.1.0.tar.gz -/dpdk-2.2.0.tar.gz -/dpdk-16.04.tar.gz -/dpdk-16.07.tar.xz -/dpdk-16.11.tar.xz -/dpdk-17.02.tar.xz -/dpdk-17.05.tar.xz -/dpdk-17.08.tar.xz +/dpdk-stable-16.11.2.tar.xz /dpdk-17.11.tar.xz -/dpdk-18.02.tar.xz -/dpdk-17.11.1.tar.xz -/dpdk-17.11.2.tar.xz /dpdk-18.11.tar.xz /dpdk-18.11.2.tar.xz -/dpdk-18.11.6.tar.xz /dpdk-19.11.tar.xz /dpdk-19.11.1.tar.xz +/dpdk-19.11.2.tar.xz /dpdk-19.11.3.tar.xz /dpdk-20.11.tar.xz diff --git a/README b/README new file mode 100644 index 0000000..f984f87 --- /dev/null +++ b/README @@ -0,0 +1,86 @@ +The RH DPDK Configuration System +================================ + +Overview +-------- + +As we're aware, the DPDK configuration is an important thing to manage +well. We have a number of concerns that must be addressed in any +configuration management system. + +1. We want to make sure that we have 'conscious' configurations made up + for each platform, and for each DPDK-enabled package +2. We want to make sure that when DPDK project adds a new configuration, + we make a conscious decision about whether we enable that + configuration. +3. We need to make sure that we can accommodate the wacky new + configuration management system coming down the pipe for + DPDK (meson+ninja). + + +Procedure (High level) +---------------------- + +Taking some inspiration from the kernel config DPDK packages will use +the following procedure: + +1. We generate the DPDK configuration from source (as we do today with + 'make T=TEMPLATE config'). This creates a base configuration file. + In this case TEMPLATE is the combination of $arch and $release that + can vary for the package. +2. We generate a sha256 sum from that file (based on a rules engine + described later). +3. We take a hand-built checked-in configuration (dpdk.TEMPLATE.config) + which has a special tag inside containing the required base sha256 + sum and compare with the generated sha256 sum. +4. If the comparison succeeds, we overwrite the generated config with + the hand-built config. Proceed building as normal. +5. If the comparison fails, we halt the build. Clearly a new + configuration was introduced which was not considered and needs to be + addressed. + +It's important to note that if the default configuration changes, that +will also cause the shasum to change. Even if the default for a +parameter that we override changes, this will trip up this simplistic +version. + + +SHA Sum +------- + +To generate the sha256 sum: +* remove all 'comment' and empty lines +* sort the remaining lines +* calculate the sha sum + +This is expressed in bash as a one-liner: + + egrep -v ^"$cmnt" $1 | egrep -v ^$ | sort -u | sha256sum | cut -d" " -f1 + +The new DPDK configuration will be generating into a header file +(rte_config.h), and so some 'forward' consideration was given to making +the comment line as configurable (instead of using straight '#') - hence the +'$cmnt' variable. + +The SHA sum will be identified in the 'new' header by the standard ascii +tag format: + +# -*- cfg-sha: [a-z0-9]+ + +Or in the case of a .c file: +/* -*- cfg-sha: [a-z0-9]+ */ + + +Helper scripts +-------------- + +Included are a set of scripts for DPDK configuration, which replaces +the original setconf functions in the old spec file. + +* set_config.sh - A script which copies the new DPDK configuration over the + old one. This validates the sha sum. +* gen_config_group.sh - A script which reads the .spec file for all of the + architectures and generates starting configurations. + Use this script to get a baseline configuration for + modifying. +* configlib.sh - A library for generating and reading SHA sums. diff --git a/dpdk-snapshot.sh b/dpdk-snapshot.sh new file mode 100644 index 0000000..0bae0d1 --- /dev/null +++ b/dpdk-snapshot.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +snapgit=`git log --pretty=oneline -n1|cut -c1-8` +snapser=`git log --pretty=oneline | wc -l` + +makever=`make showversion` +basever=`echo ${makever} | cut -d- -f1` + +prefix=dpdk-${basever}-${snapser}.git${snapgit} +archive=${prefix}.tar.gz + +echo "Creating ${archive}" +git archive --prefix=${prefix}/ HEAD | gzip -9 > ${archive} diff --git a/dpdk.spec b/dpdk.spec index 08198ad..34f2787 100644 --- a/dpdk.spec +++ b/dpdk.spec @@ -1,21 +1,43 @@ -# Add option to build as static libraries (--without shared) -%bcond_without shared -# Add option to build without examples +# Add option to build with examples %bcond_with examples # Add option to build without tools %bcond_without tools -# Avoid architecture-specific name of build-dir to fix per-arch reproducibility with doxygen -%global _vpath_builddir %{_vendor}-%{_target_os}-build +# Dont edit Version: and Release: directly, only these: +#% define commit0 7001c8fdb27357c67147c0a13cb3826e48c0f2bf +#% define date 20191128 +#% define shortcommit0 %(c=%{commit0}; echo ${c:0:7}) + +%define ver 20.11 +%define rel 3 + +%define srcname dpdk + +%define ninjaver 1.8.2 +%define mesonver 0.49.2 Name: dpdk -Version: 20.11 -Release: 3%{?dist} -Epoch: 2 +Version: %{ver} +Release: %{rel}%{?commit0:.%{date}git%{shortcommit0}}%{?dist} URL: http://dpdk.org -Source: https://fast.dpdk.org/rel/dpdk-%{version}.tar.xz +%if 0%{?commit0:1} +Source: http://dpdk.org/browse/dpdk/snapshot/dpdk-%{commit0}.tar.xz +%else +Source: http://fast.dpdk.org/rel/dpdk-%{ver}.tar.xz +%endif +%if 0%{?rhel} && 0%{?rhel} < 8 +Source1: https://github.com/ninja-build/ninja/archive/v%{ninjaver}.tar.gz#/ninja-build-%{ninjaver}.tar.gz +Source2: https://github.com/mesonbuild/meson/releases/download/%{mesonver}/meson-%{mesonver}.tar.gz +%else BuildRequires: meson +%endif + +# Only needed for creating snapshot tarballs, not used in build itself +Source100: dpdk-snapshot.sh + +# Patches only in dpdk package + Summary: Set of libraries and drivers for fast packet processing @@ -30,13 +52,99 @@ License: BSD and LGPLv2 and GPLv2 # The DPDK is designed to optimize througput of network traffic using, among # other techniques, carefully crafted assembly instructions. As such it # needs extensive work to port it to other architectures. -# -ExclusiveArch: x86_64 i686 aarch64 ppc64le +ExclusiveArch: x86_64 aarch64 ppc64le -BuildRequires: gcc -BuildRequires: kernel-headers, libpcap-devel, doxygen, /usr/bin/sphinx-build, zlib-devel -BuildRequires: numactl-devel -BuildRequires: rdma-core-devel +%define sdkdir %{_datadir}/%{name} +%define docdir %{_docdir}/%{name} +%define incdir %{_includedir}/%{name} +%define pmddir %{_libdir}/%{name}-pmds + +%define venvdir %{_builddir}/venv + +%if 0%{?rhel} > 7 || 0%{?fedora} +%define _py python3 +%define _py_exec %{?__python3} +%else +%define _py python +%define _py_exec %{?__python2} +%endif + +%if 0%{?rhel} > 7 +# Fix conflicts with README and MAINTAINERS (included in dpdk-doc < 18.11-2) +Conflicts: dpdk-doc < 18.11-2 +%endif + +BuildRequires: gcc, kernel-headers, zlib-devel, numactl-devel +BuildRequires: doxygen, %{_py}-devel, %{_py}-sphinx +BuildRequires: python3-devel +%ifarch x86_64 +BuildRequires: rdma-core-devel >= 15 +%endif + +# Macros taked from ninja-build and meson packages and adapted to be defined here +# See /usr/lib/rpm/macros.d/macros.{ninja,meson} +%if 0%{?rhel} && 0%{?rhel} < 8 + +# RHEL-7 doesn't define _vpath_* macros yet +%if 0%{!?_vpath_srcdir:1} +%define _vpath_srcdir . +%endif +%if 0%{!?_vpath_builddir:1} +%define _vpath_builddir %_target_platform +%endif + +%define __ninja %{venvdir}/bin/ninja +%define __ninja_common_opts -v %{?_smp_mflags} + +%define ninja_build \ + %{__ninja} %{__ninja_common_opts} + +%define ninja_install \ + DESTDIR=%{buildroot} %{__ninja} install %{__ninja_common_opts} + +%define ninja_test \ + %{__ninja} test %{__ninja_common_opts} + +%define __meson %{venvdir}/bin/meson +%define __meson_wrap_mode nodownload +%define __meson_auto_features enabled + +%define meson \ + export CFLAGS="${CFLAGS:-%__global_cflags}" \ + export CXXFLAGS="${CXXFLAGS:-%__global_cxxflags}" \ + export FFLAGS="${FFLAGS:-%__global_fflags}" \ + export FCFLAGS="${FCFLAGS:-%__global_fcflags}" \ + export LDFLAGS="${LDFLAGS:-%__global_ldflags}" \ + %{__meson} \\\ + --buildtype=plain \\\ + --prefix=%{_prefix} \\\ + --libdir=%{_libdir} \\\ + --libexecdir=%{_libexecdir} \\\ + --bindir=%{_bindir} \\\ + --sbindir=%{_sbindir} \\\ + --includedir=%{_includedir} \\\ + --datadir=%{_datadir} \\\ + --mandir=%{_mandir} \\\ + --infodir=%{_infodir} \\\ + --localedir=%{_datadir}/locale \\\ + --sysconfdir=%{_sysconfdir} \\\ + --localstatedir=%{_localstatedir} \\\ + --sharedstatedir=%{_sharedstatedir} \\\ + --wrap-mode=%{__meson_wrap_mode} \\\ + --auto-features=%{__meson_auto_features} \\\ + %{_vpath_srcdir} %{_vpath_builddir} \\\ + %{nil} + +%define meson_build \ + %ninja_build -C %{_vpath_builddir} + +%define meson_install \ + %ninja_install -C %{_vpath_builddir} + +%define meson_test \ + %ninja_test -C %{_vpath_builddir} + +%endif %description The Data Plane Development Kit is a set of libraries and drivers for @@ -44,11 +152,10 @@ fast packet processing in the user space. %package devel Summary: Data Plane Development Kit development files -Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} python3 -%if ! %{with shared} -Provides: %{name}-static = %{?epoch:%{epoch}:}%{version}-%{release} -%endif +Requires: %{name}%{?_isa} = %{version}-%{release} +%ifarch x86_64 Requires: rdma-core-devel +%endif %description devel This package contains the headers and other files needed for developing @@ -64,8 +171,8 @@ API programming documentation for the Data Plane Development Kit. %if %{with tools} %package tools Summary: Tools for setting up Data Plane Development Kit environment -Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} -Requires: kmod pciutils findutils iproute python3-pyelftools +Requires: %{name} = %{version}-%{release} +Requires: kmod pciutils findutils iproute %{_py_exec} %description tools %{summary} @@ -75,324 +182,516 @@ Requires: kmod pciutils findutils iproute python3-pyelftools %package examples Summary: Data Plane Development Kit example applications BuildRequires: libvirt-devel -BuildRequires: make %description examples Example applications utilizing the Data Plane Development Kit, such as L2 and L3 forwarding. %endif -%define sdkdir %{_datadir}/%{name} -%define docdir %{_docdir}/%{name} -%define incdir %{_includedir}/%{name} -%define pmddir %{_libdir}/%{name}-pmds - -%pretrans -p --- This is to clean up directories before links created --- See https://fedoraproject.org/wiki/Packaging:Directory_Replacement - -directories = { - "/usr/share/dpdk/mk/exec-env/bsdapp", - "/usr/share/dpdk/mk/exec-env/linuxapp" -} -for i,path in ipairs(directories) do - st = posix.stat(path) - if st and st.type == "directory" then - status = os.rename(path, path .. ".rpmmoved") - if not status then - suffix = 0 - while not status do - suffix = suffix + 1 - status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix) - end - os.rename(path, path .. ".rpmmoved") - end - end -end %prep -%setup -q -n dpdk-%{version} +%if 0%{?rhel} && 0%{?rhel} < 8 +%setup -q -a 1 -a 2 -n %{srcname}-%{?commit0:%{commit0}}%{!?commit0:%{ver}} +%else +%setup -q -n %{srcname}-%{?commit0:%{commit0}}%{!?commit0:%{ver}} +%endif +%autopatch -p1 %build -CFLAGS="$(echo %{optflags} -fcommon)" \ +%if 0%{?rhel} && 0%{?rhel} < 8 +%{__python3} -m venv --clear %{venvdir} +pushd ninja-%{ninjaver} +%{venvdir}/bin/python configure.py --bootstrap --with-python %{venvdir}/bin/python +mv ninja %{venvdir}/bin +popd + +pushd meson-%{mesonver} +%{venvdir}/bin/python setup.py install +popd + +export PATH="%{venvdir}/bin:$PATH" +%endif + +ENABLED_DRIVERS=( + bus/pci + bus/vdev + mempool/ring + net/failsafe + net/i40e + net/ring + net/vhost + net/virtio + net/tap +) + +%ifarch x86_64 +ENABLED_DRIVERS+=( + bus/vmbus + common/iavf + common/mlx5 + net/bnxt + net/enic + net/iavf + net/ice + net/mlx4 + net/mlx5 + net/netvsc + net/nfp + net/qede + net/vdev_netvsc +) +%endif + +%ifarch aarch64 x86_64 +ENABLED_DRIVERS+=( + net/e1000 + net/ixgbe +) +%endif + +# Since upstream doesn't have a way +for driver in drivers/*/*/; do + driver=${driver#drivers/} + driver=${driver%/} + [[ " ${ENABLED_DRIVERS[@]} " == *" $driver "* ]] || \ + disable_drivers="${disable_drivers:+$disable_drivers,}"$driver +done + %meson --includedir=include/dpdk \ + --default-library=shared \ + -Ddisable_drivers="$disable_drivers" \ -Ddrivers_install_subdir=dpdk-pmds \ -Denable_docs=true \ -Dmachine=default \ -%if %{with examples} - -Dexamples=all \ -%endif -%if %{with shared} - --default-library=shared -%else - --default-library=static -%endif - + -Dmax_ethports=32 \ + -Dmax_numa_nodes=8 \ + -Dtests=false %meson_build %install +%if 0%{?rhel} && 0%{?rhel} < 8 +export PATH="%{venvdir}/bin:$PATH" +%endif + %meson_install +# FIXME this file doesn't have chmod +x upstream +chmod +x %{buildroot}%{sdkdir}/examples/pipeline/examples/vxlan_table.py + +rm -f %{buildroot}%{_bindir}/dpdk-pdump +rm -f %{buildroot}%{_bindir}/dpdk-proc-info +rm -f %{buildroot}%{_bindir}/dpdk-test{,-acl,-bbdev,-cmdline,-compress-perf,-crypto-perf,-eventdev,-pipeline,-sad,-fib,-flow-perf,-regex} +rm -f %{buildroot}%{_libdir}/*.a + %files # BSD +%doc README MAINTAINERS %{_bindir}/dpdk-testpmd -%{_bindir}/dpdk-proc-info -%if %{with shared} +%dir %{pmddir} %{_libdir}/*.so.* %{pmddir}/*.so.* -%endif %files doc #BSD +%exclude %{docdir}/README +%exclude %{docdir}/MAINTAINERS %{docdir} %files devel #BSD %{incdir}/ -%{sdkdir} -%ghost %{sdkdir}/mk/exec-env/bsdapp -%ghost %{sdkdir}/mk/exec-env/linuxapp +%{sdkdir}/ %if %{with tools} %exclude %{_bindir}/dpdk-*.py %endif %if %{with examples} %exclude %{sdkdir}/examples/ %endif -%if ! %{with shared} -%{_libdir}/*.a -%exclude %{_libdir}/*.so -%exclude %{pmddir}/*.so -%else %{_libdir}/*.so %{pmddir}/*.so -%exclude %{_libdir}/*.a -%endif %{_libdir}/pkgconfig/libdpdk.pc %{_libdir}/pkgconfig/libdpdk-libs.pc +%if %{with examples} +%files examples +%{_bindir}/dpdk-* +%doc %{sdkdir}/examples/ +%endif %if %{with tools} %files tools -%{_bindir}/dpdk-pdump -%{_bindir}/dpdk-test -%{_bindir}/dpdk-test-* %{_bindir}/dpdk-*.py %endif -%if %{with examples} -%files examples -%{_bindir}/dpdk_example_* -%doc %{sdkdir}/examples -%endif - %changelog -* Mon Aug 09 2021 Mohan Boddu -- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Related: rhbz#1991688 +* Tue Feb 16 2021 Timothy Redaelli - 20.11-3 +- Fix gating since on DPDK 20.11 testpmd is called dpdk-testpmd -* Thu Apr 15 2021 Mohan Boddu -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Wed Feb 10 2021 Timothy Redaelli - 20.11-2 +- Enable ice PMD for x86_64 (#1927179) -* Thu Jan 21 2021 Timothy Redaelli - 2:20.11-1 -- Update to 20.11 +* Tue Dec 01 2020 Timothy Redaelli - 20.11-1 +- Rebase DPDK to 20.11 using meson build system (#1908446) -* Tue Jan 26 2021 Fedora Release Engineering - 2:19.11.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild +* Thu Aug 13 2020 Timothy Redaelli - 19.11.3-1 +- Rebase DPDK to 19.11.3 (#1868708) -* Tue Sep 01 2020 Jeff Law - 2:19.11.3-2 -- Re-enable LTO +* Wed May 20 2020 Timothy Redaelli - 19.11.2-1 +- Rebase DPDK to 19.11.2 (#1836830, #1837024, #1837030, #1837022) -* Tue Sep 01 2020 Timothy Redaelli - 2:19.11.3-1 -- Update to latest 19.11 LTS (bz1874499) +* Fri Apr 17 2020 Timothy Redaelli - 19.11.1-1 +- Rebase DPDK to 19.11.1 (#1824905) +- Remove dpdk-pmdinfo.py (#1801361) +- Add Requires: rdma-core-devel libmnl-devel on x86_64 for dpdk-devel (#1813252) -* Mon Jul 27 2020 Fedora Release Engineering - 2:19.11.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild +* Thu Feb 20 2020 Timothy Redaelli - 19.11-4 +- Remove MLX{4,5} glue libraries since RHEL 8 ships the correct libibverbs + library. (#1805140) -* Wed Jul 01 2020 Jeff Law - 2:19.11.1-6 -- Disable LTO +* Mon Feb 17 2020 Timothy Redaelli - 19.11-3 +- Remove /usr/share/dpdk/mk/exec-env/{bsd,linux}app symlinks (#1773889) -* Tue Jun 23 2020 Timothy Redaelli - 2:19.11.1-5 -- Fix missing Requires for dpdk-devel (bz1843590) +* Thu Feb 13 2020 Timothy Redaelli - 19.11-2 +- Add pretrans to handle /usr/share/dpdk/mk/exec-env/{bsd,linux}app (#1773889) -* Thu Jun 04 2020 Neil Horman - 2:19.11.1-4 -- Fix broken buildrequires (bz1843590) +* Thu Nov 28 2019 David Marchand - 19.11-1 +- Rebase to 19.11 (#1773889) +- Remove dpdk-pdump (#1779229) -* Thu Jun 04 2020 Neil Horman - 2:19.11.1-3 -- Enable MLX5 PMD (bz 1843590) +* Mon Nov 04 2019 Timothy Redaelli - 18.11.2-4 +- Pass the correct LDFLAGS to host apps (dpdk-pmdinfogen) too (#1755538) -* Thu May 07 2020 Neil Horman - 2:19.11.1-2 -- Fix error in python interpreter fixup (bz 1832416) +* Mon Sep 16 2019 Jens Freimann - 18.11.2-3 +- Add fix for wrong pointer calculation to fix Covscan issue +- https://cov01.lab.eng.brq.redhat.com/covscanhub/task/135452/log/added.html -* Mon Apr 06 2020 Timothy Redaelli - 2:19.11-1 -- Update to latest 19.11 LTS (bz1821213) +* Wed Aug 14 2019 Jens Freimann - 18.11.2-2 +- Backport "net/virtio: allocate vrings on device NUMA node" (#1700373) -* Fri Feb 07 2020 Timothy Redaelli - 2:18.11.6-1 -- Update to latest 18.11 LTS (bz1800510) -- Add -fcommon to CFLAGS as workaround in order to make it build on GCC 10 - (bz1799289) +* Thu Jun 27 2019 Timothy Redaelli - 18.11.2-1 +- Updated to DPDK 18.11.2 (#1713704) -* Tue Jan 28 2020 Fedora Release Engineering - 2:18.11.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild +* Fri May 24 2019 Maxime Coquelin - 18.11.8 +- Backport "net/virtio: allocate vrings on device NUMA node" (#1525039) -* Mon Nov 04 2019 Timothy Redaelli - 2:18.11.2-5 -- Pass the correct LDFLAGS to host apps (dpdk-pmdinfogen) too (bz1768405) +* Thu May 23 2019 Timothy Redaelli - 18.11-7 +- Really use the security cflags (copied from Fedora RPM) (#1703985) -* Wed Sep 11 2019 Than Ngo - 2:18.11.2-4 -- Fix multilib issue, different outputs on different arches +* Fri May 17 2019 Maxime Coquelin - 18.11-6 +- Fix basic CI gating test (#1682308) +- Add manual gating test (#1682308) -* Mon Aug 26 2019 Neil Horman - 2:18.11.2-3 -- Fix csh syntax in dpdk-sdk-x86_64.csg (bz1742942) +* Tue Mar 26 2019 Maxime Coquelin - 18.11-5 +- Add basic CI gating test (#1682308) -* Wed Jul 24 2019 Fedora Release Engineering - 2:18.11.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild +* Mon Feb 18 2019 Jens Freimann - 18.11-4 +- Set correct offload flags for virtio and allow jumbo frames (#1676646) -* Tue Jun 25 2019 Timothy Redaelli - 2:18.11.2-1 -- Update to latest 18.11 LTS (bz1721056) +* Mon Feb 18 2019 Maxime Coquelin - 18.11.3 +- Backport NETVSC pmd fixes (#1676534) -* Thu Feb 28 2019 Timothy Redaelli - 2:18.11.0-1 -- Update to latest LTS release (bz1684107) +* Tue Nov 27 2018 Timothy Redaelli - 18.11-2 +- Remove meson.build from dpdk-tools +- Don't install README and MAINTAINERS in dpdk-doc -* Wed Feb 13 2019 Neil Horman - 2:17.11.2-6 -- Fix some FTBFS errors (1674825) +* Tue Nov 27 2018 Timothy Redaelli - 18.11-1 +- Updated to DPDK 18.11 (#1492326): + - Updated configs + - Added libmnl-devel BuildRequires for Mellanox -* Thu Jan 31 2019 Fedora Release Engineering - 2:17.11.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild +* Thu Sep 20 2018 Tomas Orsava - 17.11-14 +- Require the Python interpreter directly instead of using the package name +- Related: rhbz#1619153 -* Tue Nov 27 2018 Neil Horman - 2:17.11.2-4 -- Add wdiff to BuildRequires +* Mon Sep 10 2018 Timothy Redaelli - 17.11-13 +- Backport "net/mlx{4,5}: Avoid stripping the glue library" (#1609659) -* Thu Sep 27 2018 Neil Horman - 2:17.11.2-3 -- quiet annocheck complaints (bz1548404) +* Fri Jul 20 2018 Timothy Redaelli - 17.11-12 +- Use python3 packages on RHEL8 and Fedora +- Remove dpdk-pmdinfo (#1494462) +- Backport "net/mlx5: fix build with rdma-core v19" -* Thu Jul 12 2018 Fedora Release Engineering - 2:17.11.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild +* Thu Jun 14 2018 Timothy Redaelli - 17.11-11 +- Re-align with DPDK patches inside OVS FDP 18.06 (#1591198) -* Tue Apr 24 2018 Neil Horman 2:17.11.2-1 -- Update to latest 17.11 LTS (fixes bz 1571361) +* Mon Jun 11 2018 Aaron Conole - 17.11-10 +- Fix mlx5 memory region boundary checks (#1581230) -* Tue Apr 10 2018 Timothy Redaelli - 2:17.11.1-3 -- Fix Requires dpdk by adding epoch +* Thu Jun 07 2018 Timothy Redaelli - 17.11-9 +- Add 2 missing QEDE patches +- Fix previous changelog date -* Fri Apr 06 2018 Neil Horman 2:17.11.1-2 -- Fix aarch64 build issue +* Thu Jun 07 2018 Timothy Redaelli - 17.11-8 +- Align with DPDK patches inside OVS FDP 18.06 +- Enable BNXT, MLX4, MLX5, NFP and QEDE PMDs +- Backport "net/mlx: fix rdma-core glue path with EAL plugins" (only needed on + DPDK package) -* Fri Apr 06 2018 Neil Horman 2:17.11.1-1 -- Update to latest LTS release for OVS +* Wed Jan 31 2018 Kevin Traynor - 17.11-7 +- Backport to forbid IOVA mode if IOMMU address width too small (#1530957) -* Fri Apr 06 2018 Timothy Redaelli - 18.02 -6 -- Replace "/usr/bin/env python" with "/usr/bin/python3" (bz 1564215) +* Wed Jan 31 2018 Aaron Conole - 17.11-6 +- Backport to protect active vhost_user rings (#1525446) -* Thu Apr 05 2018 Neil Horman - 18.02-5 -- Fix compiler flag error (bz 1548404) -- Update spec file to switch to python3 +* Tue Jan 09 2018 Timothy Redaelli - 17.11-5 +- Real backport of "net/virtio: fix vector Rx break caused by rxq flushing" -* Wed Mar 14 2018 Neil Horman < -18.02-4 -- Fixing date in changelog below +* Thu Dec 14 2017 Timothy Redaelli - 17.11-4 +- Backport "net/virtio: fix vector Rx break caused by rxq flushing" -* Thu Mar 08 2018 Neil Horman - 18.02-3 -- Fixing missing c/ldflags for pmdinfogen (bz 1548404) +* Wed Dec 06 2017 Timothy Redaelli - 17.11-3 +- Enable ENIC only for x86_64 -* Tue Feb 27 2018 Neil Horman - 18.02-2 -- Fix rpm ldflags usage (bz 1548404) +* Wed Dec 06 2017 Timothy Redaelli - 17.11-2 +- Re-add main package dependency from dpdk-tools +- Add explicit python dependency to dpdk-tools -* Mon Feb 19 2018 Neil Horman - 18.02-1 -- update to latest upstream +* Tue Nov 28 2017 Timothy Redaelli - 17.11-1 +- Update to DPDK 17.11 (#1522700) +- Use a static configuration file +- Remove i686 from ExclusiveArch since it's not supported on RHEL7 +- Remove "--without shared" support -* Wed Feb 07 2018 Fedora Release Engineering - 17.11-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild +* Fri Oct 13 2017 Josh Boyer - 16.11.2-6 +- Rebuild to pick up all arches -* Wed Jan 03 2018 Iryna Shcherbina - 17.11-3 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) +* Fri Oct 13 2017 Timothy Redaelli - 16.11.2-5 +- Enable only supported PMDs (#1497384) -* Thu Nov 30 2017 Neil Horman - 17.11-2 -- Fix dangling symlinks (bz 1519322) -- Fix devtools->usertools conversion (bz 1519332) -- Fix python-pyelftools requirement (bz 1519336) +* Fri Jun 23 2017 John W. Linville - 16.11.2-4 +- Backport "eal/ppc: fix mmap for memory initialization" -* Thu Nov 16 2017 Neil Horman - 17.11-1 -- Update to latest upstream +* Fri Jun 09 2017 John W. Linville - 16.11.2-3 +- Enable i40e driver in PowerPC along with its altivec intrinsic support +- Add PCI probing support for vfio-pci devices in Power8 -* Wed Aug 09 2017 Neil Horman - 17.08-1 -- Update to latest upstream +* Thu Jun 08 2017 John W. Linville - 16.11.2-2 +- Enable aarch64, ppc64le (#1428587) -* Mon Jul 31 2017 Neil Horman - 17.05-2 -- backport rte_eth_tx_done_cleanup map fix (#1476341) +* Thu Jun 08 2017 Timothy Redaelli - 16.11.2-1 +- Import from fdProd +- Update to 16.11.2 (#1459333) -* Wed Jul 26 2017 Fedora Release Engineering - 17.05-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild +* Wed Mar 22 2017 Timothy Redaelli - 16.11-4 +- Avoid infinite loop while linking with libdpdk.so (#1434907) -* Mon May 15 2017 Neil Horman - 17.05-1 -- Update to latest upstream +* Thu Feb 02 2017 Timothy Redaelli - 16.11-3 +- Make driverctl a different package -* Fri Feb 24 2017 Neil Horman - 17-02-2 -- Add python dependency (#1426561) +* Thu Dec 08 2016 Kevin Traynor - 16.11-2 +- Update to DPDK 16.11 (#1335865) -* Wed Feb 15 2017 Fedora Release Monitoring - 17.02-1 -- Update to 17.02 (#1422285) +* Wed Oct 05 2016 Panu Matilainen - 16.07-1 +- Update to DPDK 16.07 (#1383195) +- Disable unstable bnx2x driver (#1330589) +- Enable librte_vhost NUMA support again (#1279525) +- Enable librte_cryptodev, its no longer considered experimental +- Change example prefix to dpdk- for consistency with other utilities +- Update driverctl to 0.89 -* Mon Feb 06 2017 Yaakov Selkowitz - 16.11-2 -- Enable aarch64, ppc64le (#1419731) +* Thu Jul 21 2016 Flavio Leitner - 16.04-4 +- Updated to DPDK 16.04 -* Tue Nov 15 2016 Neil Horman - 16.11-1 -- Update to 16.11 +* Wed Mar 16 2016 Panu Matilainen - 2.2.0-3 +- Disable librte_vhost NUMA support for now, it causes segfaults -* Tue Aug 02 2016 Neil Horman - 16.07-1 -* Update to 16.07 - -* Thu Apr 14 2016 Panu Matilainen - 16.04-1 -- Update to 16.04 -- Drop all patches, they're not needed anymore -- Drop linker script generation, its upstream now -- Enable vhost numa support again - -* Wed Mar 16 2016 Panu Matilainen - 2.2.0-7 -- vhost numa code causes crashes, disable until upstream fixes -- Generalize target/machine/etc macros to enable i686 builds - -* Tue Mar 01 2016 Panu Matilainen - 2.2.0-6 -- Drop no longer needed bnx2x patch, the gcc false positive has been fixed -- Drop no longer needed -Wno-error=array-bounds from CFLAGS -- Eliminate the need for the enic patch by eliminating second -Wall from CFLAGS -- Disable unmaintained librte_power as per upstream recommendation - -* Mon Feb 15 2016 Neil Horman 2.2.0-5 -- Fix ftbfs isssue (1307431) - -* Wed Feb 03 2016 Fedora Release Engineering - 2.2.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jan 26 2016 Panu Matilainen - 2.2.0-3 +* Wed Jan 27 2016 Panu Matilainen - 2.2.0-2 - Use a different quoting method to avoid messing up vim syntax highlighting - A string is expected as CONFIG_RTE_MACHINE value, quote it too - -* Mon Jan 25 2016 Panu Matilainen - 2.2.0-2 - Enable librte_vhost NUMA-awareness -* Wed Jan 20 2016 Panu Matilainen - 2.2.0-1 -- Update to 2.2.0 -- Establish a driver directory for automatic driver loading +* Tue Jan 12 2016 Panu Matilainen - 2.2.0-1 +- Update DPDK to 2.2.0 final +- Add README and MAINTAINERS docs +- Adopt new upstream standard installation layout, including + dpdk_nic_bind.py renamed to dpdk_nic_bind - Move the unversioned pmd symlinks from libdir -devel +- Establish a driver directory for automatic driver loading +- Disable CONFIG_RTE_SCHED_VECTOR, it conflicts with CONFIG_RTE_MACHINE default +- Disable experimental cryptodev library +- More complete dtneeded patch - Make option matching stricter in spec setconf -- Spec cleanups -- Adopt upstream standard installation layout +- Update driverctl to 0.59 -* Thu Oct 22 2015 Aaron Conole - 2.1.0-3 -- Include examples binaries -- Enable the Broadcom NetXtreme II 10Gb PMD -- Fix up linkages for the dpdk-devel package +* Wed Dec 09 2015 Panu Matilainen - 2.1.0-5 +- Fix artifacts from driverctl having different version +- Update driverctl to 0.58 -* Wed Sep 30 2015 Aaron Conole - 2.1.0-2 -- Re-enable the IGB, IXGBE, I40E PMDs -- Bring the Fedora and RHEL packages more in-line. +* Fri Nov 13 2015 Panu Matilainen - 2.1.0-4 +- Add driverctl sub-package -* Wed Aug 26 2015 Neil Horman - 2.1.0-1 -- Update to latest version +* Fri Oct 23 2015 Panu Matilainen - 2.1.0-3 +- Enable bnx2x pmd, which buildrequires zlib-devel -* Wed Jun 17 2015 Fedora Release Engineering - 2.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild +* Mon Sep 28 2015 Panu Matilainen - 2.1.0-2 +- Make lib and include available both ways in the SDK paths -* Mon Apr 06 2015 Neil Horman - 2.0.0-1 -- Update to dpdk 2.0 -- converted --with shared option to --without shared option +* Thu Sep 24 2015 Panu Matilainen - 2.1.0-1 +- Update to dpdk 2.1.0 final + - Disable ABI_NEXT + - Rebase patches as necessary + - Fix build of ip_pipeline example + - Drop no longer needed -Wno-error=array-bounds + - Rename libintel_dpdk to libdpdk + +* Tue Aug 11 2015 Panu Matilainen - 2.0.0-9 +- Drop main package dependency from dpdk-tools + +* Wed May 20 2015 Panu Matilainen - 2.0.0-8 +- Drop eventfd-link patch, its only needed for vhost-cuse + +* Tue May 19 2015 Panu Matilainen - 2.0.0-7 +- Drop pointless build conditional, the linker script is here to stay +- Drop vhost-cuse build conditional, vhost-user is here to stay +- Cleanup comments a bit +- Enable parallel build again +- Dont build examples by default + +* Thu Apr 30 2015 Panu Matilainen - 2.0.0-6 +- Fix potential hang and thread issues with VFIO eventfd + +* Fri Apr 24 2015 Panu Matilainen - 2.0.0-5 +- Fix a potential hang due to missed interrupt in vhost library + +* Tue Apr 21 2015 Panu Matilainen - 2.0.0-4 +- Drop unused pre-2.0 era patches +- Handle vhost-user/cuse selection automatically based on the copr repo name + +* Fri Apr 17 2015 Panu Matilainen - 2.0.0-3 +- Dont depend on fuse when built for vhost-user support +- Drop version from testpmd binary, we wont be parallel-installing that + +* Thu Apr 09 2015 Panu Matilainen - 2.0.0-2 +- Remove the broken kmod stuff +- Add a new dkms-based eventfd_link subpackage if vhost-cuse is enabled + +* Tue Apr 07 2015 Panu Matilainen - 2.0.0-1 +- Update to 2.0 final (http://dpdk.org/doc/guides-2.0/rel_notes/index.html) + +* Thu Apr 02 2015 Panu Matilainen - 2.0.0-0.2086.git263333bb.2 +- Switch (back) to vhost-user, thus disabling vhost-cuse support +- Build requires fuse-devel for now even when fuse is unused + +* Mon Mar 30 2015 Panu Matilainen - 2.0.0-0.2049.git2f95a470.1 +- New snapshot +- Add spec option for enabling vhost-user instead of vhost-cuse +- Build requires fuse-devel only with vhost-cuse +- Add virtual provide for vhost user/cuse tracking + +* Fri Mar 27 2015 Panu Matilainen - 2.0.0-0.2038.git91a8743e.3 +- Disable vhost-user for now to get vhost-cuse support, argh. + +* Fri Mar 27 2015 Panu Matilainen - 2.0.0-0.2038.git91a8743e.2 +- Add a bunch of missing dependencies to -tools + +* Thu Mar 26 2015 Panu Matilainen - 2.0.0-0.2038.git91a8743e.1 +- Another day, another snapshot +- Disable IVSHMEM support for now + +* Fri Mar 20 2015 Panu Matilainen - 2.0.0-0.2022.gitfe4810a0.2 +- Dont fail build for array bounds warnings for now, gcc 5 is emitting a bunch + +* Fri Mar 20 2015 Panu Matilainen - 2.0.0-0.2022.gitfe4810a0.1 +- Another day, another snapshot +- Avoid building pdf docs + +* Tue Mar 03 2015 Panu Matilainen - 2.0.0-0.1916.gita001589e.2 +- Add missing dependency to tools -subpackage + +* Tue Mar 03 2015 Panu Matilainen - 2.0.0-0.1916.gita001589e.1 +- New snapshot +- Work around #1198009 + +* Mon Mar 02 2015 Panu Matilainen - 2.0.0-0.1911.gitffc468ff.2 +- Optionally package tools too, some binding script is needed for many setups + +* Mon Mar 02 2015 Panu Matilainen - 2.0.0-0.1911.gitffc468ff.1 +- New snapshot +- Disable kernel module build by default +- Add patch to fix missing defines/includes for external applications + +* Fri Feb 27 2015 Panu Matilainen - 2.0.0-0.1906.git00c68563.1 +- New snapshot +- Remove bogus devname module alias from eventfd-link module +- Whack evenfd-link to honor RTE_KERNELDIR too + +* Thu Feb 26 2015 Panu Matilainen - 2.0.0-0.1903.gitb67578cc.3 +- Add spec option to build kernel modules too +- Build eventfd-link module too if kernel modules enabled + +* Thu Feb 26 2015 Panu Matilainen - 2.0.0-0.1903.gitb67578cc.2 +- Move config changes from spec after "make config" to simplify things +- Move config changes from dpdk-config patch to the spec + +* Thu Feb 19 2015 Panu Matilainen - 2.0.0-0.1717.gitd3aa5274.2 +- Fix warnings tripping up build with gcc 5, remove -Wno-error + +* Wed Feb 18 2015 Panu Matilainen - 2.0.0-0.1698.gitc07691ae.1 +- Move the unversioned .so links for plugins into main package +- New snapshot + +* Wed Feb 18 2015 Panu Matilainen - 2.0.0-0.1695.gitc2ce3924.3 +- Fix missing symbol export for rte_eal_iopl_init() +- Only mention libs once in the linker script + +* Wed Feb 18 2015 Panu Matilainen - 2.0.0-0.1695.gitc2ce3924.2 +- Fix gcc version logic to work with 5.0 too + +* Wed Feb 18 2015 Panu Matilainen - 2.0.0-0.1695.gitc2ce3924.1 +- Add spec magic to easily switch between stable and snapshot versions +- Add tarball snapshot script for reference +- Update to pre-2.0 git snapshot + +* Thu Feb 12 2015 Panu Matilainen - 1.8.0-15 +- Disable -Werror, this is not useful behavior for released versions + +* Wed Feb 11 2015 Panu Matilainen - 1.8.0-14 +- Fix typo causing librte_vhost missing DT_NEEDED on fuse + +* Wed Feb 11 2015 Panu Matilainen - 1.8.0-13 +- Fix vhost library linkage +- Add spec option to build example applications, enable by default + +* Fri Feb 06 2015 Panu Matilainen - 1.8.0-12 +- Enable librte_acl build +- Enable librte_ivshmem build + +* Thu Feb 05 2015 Panu Matilainen - 1.8.0-11 +- Drop the private libdir, not needed with versioned libs + +* Thu Feb 05 2015 Panu Matilainen - 1.8.0-10 +- Drop symbol versioning patches, always do library version for shared +- Add comment on the combined library thing + +* Wed Feb 04 2015 Panu Matilainen - 1.8.0-9 +- Add missing symbol version to librte_cmdline + +* Tue Feb 03 2015 Panu Matilainen - 1.8.0-8 +- Set soname of the shared libraries +- Fixup typo in ld path config file name + +* Tue Feb 03 2015 Panu Matilainen - 1.8.0-7 +- Add library versioning patches as another build option, enable by default + +* Tue Feb 03 2015 Panu Matilainen - 1.8.0-6 +- Add our libraries to ld path & run ldconfig when using shared libs + +* Fri Jan 30 2015 Panu Matilainen - 1.8.0-5 +- Add DT_NEEDED for external dependencies (pcap, fuse, dl, pthread) +- Enable combined library creation, needed for OVS +- Enable shared library creation, needed for sanity + +* Thu Jan 29 2015 Panu Matilainen - 1.8.0-4 +- Include scripts directory in the "sdk" too + +* Thu Jan 29 2015 Panu Matilainen - 1.8.0-3 +- Fix -Wformat clash preventing i40e driver build, enable it +- Fix -Wall clash preventing enic driver build, enable it + +* Thu Jan 29 2015 Panu Matilainen - 1.8.0-2 +- Enable librte_vhost, which buildrequires fuse-devel +- Enable physical NIC drivers that build (e1000, ixgbe) for VFIO use + +* Thu Jan 29 2015 Panu Matilainen - 1.8.0-1 +- Update to 1.8.0 * Wed Jan 28 2015 Panu Matilainen - 1.7.0-8 - Always build with -fPIC @@ -432,7 +731,7 @@ CFLAGS="$(echo %{optflags} -fcommon)" \ - Remove ix86 from ExclusiveArch -- it does not build with above changes * Thu Jul 10 2014 - Neil Horman - 1.7.0-1.0 -- Update source to official 1.7.0 release +- Update source to official 1.7.0 release * Thu Jul 03 2014 - Neil Horman - Fixing up release numbering diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..9a997a9 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,8 @@ +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: manual.sst_networking.dpdk.tier1} + diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..2c5de61 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,9 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + tests: + - simple: + dir: . + run: dpdk-testpmd --help