b88dbb
# Copyright (C) 2009, 2010, 2013, 2014 Nicira Networks, Inc.
b88dbb
#
b88dbb
# Copying and distribution of this file, with or without modification,
b88dbb
# are permitted in any medium without royalty provided the copyright
b88dbb
# notice and this notice are preserved.  This file is offered as-is,
b88dbb
# without warranty of any kind.
b88dbb
#
b88dbb
# If tests have to be skipped while building, specify the '--without check'
b88dbb
# option. For example:
b88dbb
# rpmbuild -bb --without check rhel/openvswitch-fedora.spec
b88dbb
b88dbb
# This defines the base package name's version.
b88dbb
b88dbb
%define pkgname openvswitch2.17
b88dbb
b88dbb
b88dbb
%if 0%{?commit:1}
b88dbb
%global shortcommit %(c=%{commit}; echo ${c:0:7})
b88dbb
%endif
b88dbb
b88dbb
# Enable PIE, bz#955181
b88dbb
%global _hardened_build 1
b88dbb
b88dbb
# RHEL-7 doesn't define _rundir macro yet
b88dbb
# Fedora 15 onwards uses /run as _rundir
b88dbb
%if 0%{!?_rundir:1}
b88dbb
%define _rundir /run
b88dbb
%endif
b88dbb
b88dbb
# FIXME Test "STP - flush the fdb and mdb when topology changed" fails on s390x
b88dbb
# FIXME 2 tests fails on ppc64le. They will be hopefully fixed before official 2.11
b88dbb
%ifarch %{ix86} x86_64 aarch64
b88dbb
%bcond_without check
b88dbb
%else
b88dbb
%bcond_with check
b88dbb
%endif
b88dbb
# option to run kernel datapath tests, requires building as root!
b88dbb
%bcond_with check_datapath_kernel
b88dbb
# option to build with libcap-ng, needed for running OVS as regular user
b88dbb
%bcond_without libcapng
b88dbb
# option to build with ipsec support
b88dbb
%bcond_without ipsec
b88dbb
b88dbb
# Build python2 (that provides python) and python3 subpackages on Fedora
b88dbb
# Build only python3 (that provides python) subpackage on RHEL8
b88dbb
# Build only python subpackage on RHEL7
b88dbb
%if 0%{?rhel} > 7 || 0%{?fedora}
b88dbb
# On RHEL8 Sphinx is included in buildroot
b88dbb
%global external_sphinx 1
b88dbb
%else
b88dbb
# Don't use external sphinx (RHV doesn't have optional repositories enabled)
b88dbb
%global external_sphinx 0
b88dbb
%endif
b88dbb
b88dbb
Name: %{pkgname}
b88dbb
Summary: Open vSwitch
b88dbb
Group: System Environment/Daemons daemon/database/utilities
b88dbb
URL: http://www.openvswitch.org/
b88dbb
Version: 2.17.0
b88dbb
Release: 31%{?dist}
b88dbb
b88dbb
# Nearly all of openvswitch is ASL 2.0.  The bugtool is LGPLv2+, and the
b88dbb
# lib/sflow*.[ch] files are SISSL
b88dbb
# datapath/ is GPLv2 (although not built into any of the binary packages)
b88dbb
License: ASL 2.0 and LGPLv2+ and SISSL
b88dbb
b88dbb
%define dpdkver 21.11
b88dbb
%define dpdkdir dpdk
b88dbb
%define dpdksver %(echo %{dpdkver} | cut -d. -f-2)
b88dbb
# NOTE: DPDK does not currently build for s390x
b88dbb
# DPDK on aarch64 is not stable enough to be enabled in FDP
b88dbb
%if 0%{?rhel} > 7 || 0%{?fedora}
b88dbb
%define dpdkarches x86_64 ppc64le
b88dbb
%else
b88dbb
%define dpdkarches
b88dbb
%endif
b88dbb
b88dbb
%if 0%{?commit:1}
b88dbb
Source: https://github.com/openvswitch/ovs/archive/%{commit}.tar.gz#/openvswitch-%{commit}.tar.gz
b88dbb
%else
b88dbb
Source: https://github.com/openvswitch/ovs/archive/v%{version}.tar.gz#/openvswitch-%{version}.tar.gz
b88dbb
%endif
b88dbb
Source10: https://fast.dpdk.org/rel/dpdk-%{dpdkver}.tar.xz
b88dbb
b88dbb
%define docutilsver 0.12
b88dbb
%define pygmentsver 1.4
b88dbb
%define sphinxver   1.2.3
b88dbb
%define pyelftoolsver 0.27
b88dbb
Source100: https://pypi.io/packages/source/d/docutils/docutils-%{docutilsver}.tar.gz
b88dbb
Source101: https://pypi.io/packages/source/P/Pygments/Pygments-%{pygmentsver}.tar.gz
b88dbb
Source102: https://pypi.io/packages/source/S/Sphinx/Sphinx-%{sphinxver}.tar.gz
b88dbb
Source103: https://pypi.io/packages/source/p/pyelftools/pyelftools-%{pyelftoolsver}.tar.gz
b88dbb
b88dbb
Patch:     openvswitch-%{version}.patch
b88dbb
b88dbb
# The DPDK is designed to optimize througput of network traffic using, among
b88dbb
# other techniques, carefully crafted assembly instructions.  As such it
b88dbb
# needs extensive work to port it to other architectures.
b88dbb
ExclusiveArch: x86_64 aarch64 ppc64le s390x
b88dbb
b88dbb
# Do not enable this otherwise YUM will break on any upgrade.
b88dbb
# Provides: openvswitch
b88dbb
Conflicts: openvswitch < 2.17
b88dbb
Conflicts: openvswitch-dpdk < 2.17
b88dbb
Conflicts: openvswitch2.10
b88dbb
Conflicts: openvswitch2.11
b88dbb
Conflicts: openvswitch2.12
b88dbb
Conflicts: openvswitch2.13
b88dbb
Conflicts: openvswitch2.14
b88dbb
Conflicts: openvswitch2.15
b88dbb
Conflicts: openvswitch2.16
b88dbb
b88dbb
# FIXME Sphinx is used to generate some manpages, unfortunately, on RHEL, it's
b88dbb
# in the -optional repository and so we can't require it directly since RHV
b88dbb
# doesn't have the -optional repository enabled and so TPS fails
b88dbb
%if %{external_sphinx}
b88dbb
BuildRequires: python3-sphinx
b88dbb
%else
b88dbb
# Sphinx dependencies
b88dbb
BuildRequires: python-devel
b88dbb
BuildRequires: python-setuptools
b88dbb
#BuildRequires: python2-docutils
b88dbb
BuildRequires: python-jinja2
b88dbb
BuildRequires: python-nose
b88dbb
#BuildRequires: python2-pygments
b88dbb
# docutils dependencies
b88dbb
BuildRequires: python-imaging
b88dbb
# pygments dependencies
b88dbb
BuildRequires: python-nose
b88dbb
%endif
b88dbb
b88dbb
BuildRequires: gcc gcc-c++ make
b88dbb
BuildRequires: autoconf automake libtool
b88dbb
BuildRequires: systemd-units openssl openssl-devel
b88dbb
BuildRequires: python3-devel python3-setuptools
b88dbb
BuildRequires: desktop-file-utils
b88dbb
BuildRequires: groff-base graphviz
b88dbb
BuildRequires: unbound-devel
b88dbb
BuildRequires: systemtap-sdt-devel
b88dbb
# make check dependencies
b88dbb
BuildRequires: procps-ng
b88dbb
%if %{with check_datapath_kernel}
b88dbb
BuildRequires: nmap-ncat
b88dbb
# would be useful but not available in RHEL or EPEL
b88dbb
#BuildRequires: pyftpdlib
b88dbb
%endif
b88dbb
b88dbb
%if %{with libcapng}
b88dbb
BuildRequires: libcap-ng libcap-ng-devel
b88dbb
%endif
b88dbb
b88dbb
%ifarch %{dpdkarches}
b88dbb
BuildRequires: meson
b88dbb
%if 0%{?rhel} > 8 || 0%{?fedora}
b88dbb
BuildRequires: python3-pyelftools
b88dbb
%endif
b88dbb
# DPDK driver dependencies
b88dbb
BuildRequires: zlib-devel numactl-devel
b88dbb
%ifarch x86_64
b88dbb
BuildRequires: rdma-core-devel >= 15 libmnl-devel
b88dbb
%endif
b88dbb
b88dbb
# Required by packaging policy for the bundled DPDK
b88dbb
Provides: bundled(dpdk) = %{dpdkver}
b88dbb
%endif
b88dbb
b88dbb
Requires: openssl iproute module-init-tools
b88dbb
#Upstream kernel commit 4f647e0a3c37b8d5086214128614a136064110c3
b88dbb
#Requires: kernel >= 3.15.0-0
b88dbb
Requires: openvswitch-selinux-extra-policy
b88dbb
b88dbb
Requires(pre): shadow-utils
b88dbb
Requires(post): /bin/sed
b88dbb
Requires(post): /usr/sbin/usermod
b88dbb
Requires(post): /usr/sbin/groupadd
b88dbb
Requires(post): systemd-units
b88dbb
Requires(preun): systemd-units
b88dbb
Requires(postun): systemd-units
b88dbb
Obsoletes: openvswitch-controller <= 0:2.1.0-1
b88dbb
b88dbb
%description
b88dbb
Open vSwitch provides standard network bridging functions and
b88dbb
support for the OpenFlow protocol for remote per-flow control of
b88dbb
traffic.
b88dbb
b88dbb
%package -n python3-%{pkgname}
b88dbb
Summary: Open vSwitch python3 bindings
b88dbb
License: ASL 2.0
b88dbb
Requires: %{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
b88dbb
Provides: python-%{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
b88dbb
b88dbb
%description -n python3-%{pkgname}
b88dbb
Python bindings for the Open vSwitch database
b88dbb
b88dbb
%package test
b88dbb
Summary: Open vSwitch testing utilities
b88dbb
License: ASL 2.0
b88dbb
BuildArch: noarch
b88dbb
Requires: python3-%{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
b88dbb
Requires: tcpdump
b88dbb
b88dbb
%description test
b88dbb
Utilities that are useful to diagnose performance and connectivity
b88dbb
issues in Open vSwitch setup.
b88dbb
b88dbb
%package devel
b88dbb
Summary: Open vSwitch OpenFlow development package (library, headers)
b88dbb
License: ASL 2.0
b88dbb
Requires: %{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
b88dbb
b88dbb
%description devel
b88dbb
This provides shared library, libopenswitch.so and the openvswitch header
b88dbb
files needed to build an external application.
b88dbb
b88dbb
%if 0%{?rhel} == 8 || 0%{?fedora} > 28
b88dbb
%package -n network-scripts-%{name}
b88dbb
Summary: Open vSwitch legacy network service support
b88dbb
License: ASL 2.0
b88dbb
Requires: network-scripts
b88dbb
Supplements: (%{name} and network-scripts)
b88dbb
b88dbb
%description -n network-scripts-%{name}
b88dbb
This provides the ifup and ifdown scripts for use with the legacy network
b88dbb
service.
b88dbb
%endif
b88dbb
b88dbb
%if %{with ipsec}
b88dbb
%package ipsec
b88dbb
Summary: Open vSwitch IPsec tunneling support
b88dbb
License: ASL 2.0
b88dbb
Requires: python3-%{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
b88dbb
Requires: libreswan
b88dbb
b88dbb
%description ipsec
b88dbb
This package provides IPsec tunneling support for OVS tunnels.
b88dbb
%endif
b88dbb
b88dbb
%prep
b88dbb
%if 0%{?commit:1}
b88dbb
%setup -q -n ovs-%{commit} -a 10
b88dbb
%else
b88dbb
%setup -q -n ovs-%{version} -a 10
b88dbb
%endif
b88dbb
%if ! %{external_sphinx}
b88dbb
%if 0%{?commit:1}
b88dbb
%setup -n ovs-%{commit} -q -D -T -a 100 -a 101 -a 102
b88dbb
%else
b88dbb
%setup -n ovs-%{version} -q -D -T -a 100 -a 101 -a 102
b88dbb
%endif
b88dbb
%endif
b88dbb
%if 0%{?rhel} && 0%{?rhel} < 9
b88dbb
%if 0%{?commit:1}
b88dbb
%setup -n ovs-%{commit} -q -D -T -a 103
b88dbb
%else
b88dbb
%setup -n ovs-%{version} -q -D -T -a 103
b88dbb
%endif
b88dbb
%endif
b88dbb
b88dbb
mv dpdk-*/ %{dpdkdir}/
b88dbb
b88dbb
# FIXME should we propose a way to do that upstream?
b88dbb
sed -ri "/^subdir\('(usertools|app)'\)/d" %{dpdkdir}/meson.build
b88dbb
b88dbb
%patch -p1
b88dbb
b88dbb
%build
b88dbb
%if 0%{?rhel} && 0%{?rhel} < 9
b88dbb
export PYTHONPATH="${PWD}/pyelftools-%{pyelftoolsver}"
b88dbb
%endif
b88dbb
# Build Sphinx on RHEL
b88dbb
%if ! %{external_sphinx}
b88dbb
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}%{_builddir}/pytmp/lib/python"
b88dbb
for x in docutils-%{docutilsver} Pygments-%{pygmentsver} Sphinx-%{sphinxver}; do
b88dbb
    pushd "$x"
b88dbb
    python2 setup.py install --home %{_builddir}/pytmp
b88dbb
    popd
b88dbb
done
b88dbb
b88dbb
export PATH="$PATH:%{_builddir}/pytmp/bin"
b88dbb
%endif
b88dbb
b88dbb
./boot.sh
b88dbb
b88dbb
%ifarch %{dpdkarches}    # build dpdk
b88dbb
# Lets build DPDK first
b88dbb
cd %{dpdkdir}
b88dbb
b88dbb
ENABLED_DRIVERS=(
b88dbb
    bus/pci
b88dbb
    bus/vdev
b88dbb
    mempool/ring
b88dbb
    net/failsafe
b88dbb
    net/i40e
b88dbb
    net/ring
b88dbb
    net/vhost
b88dbb
    net/virtio
b88dbb
    net/tap
b88dbb
)
b88dbb
b88dbb
%ifarch x86_64
b88dbb
ENABLED_DRIVERS+=(
b88dbb
    bus/auxiliary
b88dbb
    bus/vmbus
b88dbb
    common/iavf
b88dbb
    common/mlx5
b88dbb
    net/bnxt
b88dbb
    net/enic
b88dbb
    net/iavf
b88dbb
    net/ice
b88dbb
    net/mlx5
b88dbb
    net/netvsc
b88dbb
    net/nfp
b88dbb
    net/qede
b88dbb
    net/vdev_netvsc
b88dbb
)
b88dbb
%endif
b88dbb
b88dbb
%ifarch aarch64 x86_64
b88dbb
ENABLED_DRIVERS+=(
b88dbb
    net/e1000
b88dbb
    net/ixgbe
b88dbb
)
b88dbb
%endif
b88dbb
b88dbb
for driver in "${ENABLED_DRIVERS[@]}"; do
b88dbb
    enable_drivers="${enable_drivers:+$enable_drivers,}"$driver
b88dbb
done
b88dbb
b88dbb
# As of 21.11-rc3, following libraries can be disabled:
b88dbb
# optional_libs = [
b88dbb
#         'bitratestats',
b88dbb
#         'gpudev',
b88dbb
#         'gro',
b88dbb
#         'gso',
b88dbb
#         'kni',
b88dbb
#         'jobstats',
b88dbb
#         'latencystats',
b88dbb
#         'metrics',
b88dbb
#         'pdump',
b88dbb
#         'power',
b88dbb
#         'vhost',
b88dbb
# ]
b88dbb
# If doing any updates, this must be aligned with:
b88dbb
# https://access.redhat.com/articles/3538141
b88dbb
DISABLED_LIBS=(
b88dbb
    gpudev
b88dbb
    kni
b88dbb
    jobstats
b88dbb
    power
b88dbb
)
b88dbb
b88dbb
for lib in "${DISABLED_LIBS[@]}"; do
b88dbb
    disable_libs="${disable_libs:+$disable_libs,}"$lib
b88dbb
done
b88dbb
b88dbb
%set_build_flags
b88dbb
%__meson --prefix=%{_builddir}/dpdk-build \
b88dbb
         --buildtype=plain \
b88dbb
         -Ddisable_libs="$disable_libs" \
b88dbb
         -Denable_drivers="$enable_drivers" \
b88dbb
         -Dplatform=generic \
b88dbb
         -Dmax_ethports=1024 \
b88dbb
         -Dmax_numa_nodes=8 \
b88dbb
         -Dtests=false \
b88dbb
         %{_vpath_builddir}
b88dbb
%meson_build
b88dbb
%__meson install -C %{_vpath_builddir} --no-rebuild
b88dbb
b88dbb
# FIXME currently with LTO enabled OVS tries to link with both static and shared libraries
b88dbb
rm -v %{_builddir}/dpdk-build/%{_lib}/*.so*
b88dbb
b88dbb
# Generate a list of supported drivers, its hard to tell otherwise.
b88dbb
cat << EOF > README.DPDK-PMDS
b88dbb
DPDK drivers included in this package:
b88dbb
b88dbb
EOF
b88dbb
b88dbb
for f in %{_builddir}/dpdk-build/%{_lib}/librte_net_*.a; do
b88dbb
    basename ${f} | cut -c12- | cut -d. -f1 | tr [:lower:] [:upper:]
b88dbb
done >> README.DPDK-PMDS
b88dbb
b88dbb
cat << EOF >> README.DPDK-PMDS
b88dbb
b88dbb
For further information about the drivers, see
b88dbb
http://dpdk.org/doc/guides-%{dpdksver}/nics/index.html
b88dbb
EOF
b88dbb
b88dbb
cd -
b88dbb
%endif    # build dpdk
b88dbb
b88dbb
# And now for OVS...
b88dbb
mkdir build-shared build-static
b88dbb
pushd build-shared
b88dbb
ln -s ../configure
b88dbb
%configure \
b88dbb
%if %{with libcapng}
b88dbb
        --enable-libcapng \
b88dbb
%else
b88dbb
        --disable-libcapng \
b88dbb
%endif
b88dbb
        --disable-static \
b88dbb
        --enable-shared \
b88dbb
        --enable-ssl \
b88dbb
        --with-pkidir=%{_sharedstatedir}/openvswitch/pki \
b88dbb
        --enable-usdt-probes
b88dbb
make %{?_smp_mflags}
b88dbb
popd
b88dbb
pushd build-static
b88dbb
ln -s ../configure
b88dbb
%ifarch %{dpdkarches}
b88dbb
PKG_CONFIG_PATH=%{_builddir}/dpdk-build/%{_lib}/pkgconfig \
b88dbb
%endif
b88dbb
%configure \
b88dbb
%if %{with libcapng}
b88dbb
        --enable-libcapng \
b88dbb
%else
b88dbb
        --disable-libcapng \
b88dbb
%endif
b88dbb
        --enable-ssl \
b88dbb
%ifarch %{dpdkarches}
b88dbb
        --with-dpdk=static \
b88dbb
%endif
b88dbb
        --with-pkidir=%{_sharedstatedir}/openvswitch/pki \
b88dbb
        --enable-usdt-probes
b88dbb
make %{?_smp_mflags}
b88dbb
popd
b88dbb
b88dbb
/usr/bin/python3 build-aux/dpdkstrip.py \
b88dbb
        --dpdk \
b88dbb
        < rhel/usr_lib_systemd_system_ovs-vswitchd.service.in \
b88dbb
        > rhel/usr_lib_systemd_system_ovs-vswitchd.service
b88dbb
b88dbb
%install
b88dbb
rm -rf $RPM_BUILD_ROOT
b88dbb
make -C build-shared install-libLTLIBRARIES DESTDIR=$RPM_BUILD_ROOT
b88dbb
make -C build-static install DESTDIR=$RPM_BUILD_ROOT
b88dbb
b88dbb
install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/openvswitch
b88dbb
install -d -m 0750 $RPM_BUILD_ROOT%{_localstatedir}/log/openvswitch
b88dbb
install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch
b88dbb
b88dbb
install -p -D -m 0644 rhel/usr_lib_udev_rules.d_91-vfio.rules \
b88dbb
        $RPM_BUILD_ROOT%{_udevrulesdir}/91-vfio.rules
b88dbb
b88dbb
install -p -D -m 0644 \
b88dbb
        rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
b88dbb
        $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch
b88dbb
b88dbb
for service in openvswitch ovsdb-server ovs-vswitchd \
b88dbb
               ovs-delete-transient-ports; do
b88dbb
        install -p -D -m 0644 \
b88dbb
                        rhel/usr_lib_systemd_system_${service}.service \
b88dbb
                        $RPM_BUILD_ROOT%{_unitdir}/${service}.service
b88dbb
done
b88dbb
b88dbb
%if %{with ipsec}
b88dbb
install -p -D -m 0644 rhel/usr_lib_systemd_system_openvswitch-ipsec.service \
b88dbb
                      $RPM_BUILD_ROOT%{_unitdir}/openvswitch-ipsec.service
b88dbb
%endif
b88dbb
b88dbb
install -m 0755 rhel/etc_init.d_openvswitch \
b88dbb
        $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init
b88dbb
b88dbb
install -p -D -m 0644 rhel/etc_openvswitch_default.conf \
b88dbb
        $RPM_BUILD_ROOT/%{_sysconfdir}/openvswitch/default.conf
b88dbb
b88dbb
install -p -D -m 0644 rhel/etc_logrotate.d_openvswitch \
b88dbb
        $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/openvswitch
b88dbb
b88dbb
install -m 0644 vswitchd/vswitch.ovsschema \
b88dbb
        $RPM_BUILD_ROOT/%{_datadir}/openvswitch/vswitch.ovsschema
b88dbb
b88dbb
%if 0%{?rhel} < 9
b88dbb
install -d -m 0755 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/
b88dbb
install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifdown-ovs \
b88dbb
        $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
b88dbb
install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifup-ovs \
b88dbb
        $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
b88dbb
%endif
b88dbb
b88dbb
install -d -m 0755 $RPM_BUILD_ROOT%{python3_sitelib}
b88dbb
cp -a $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/ovstest \
b88dbb
        $RPM_BUILD_ROOT%{python3_sitelib}
b88dbb
b88dbb
# Build the JSON C extension for the Python lib (#1417738)
b88dbb
pushd python
b88dbb
(
b88dbb
export CPPFLAGS="-I ../include -I ../build-shared/include"
b88dbb
export LDFLAGS="%{__global_ldflags} -L $RPM_BUILD_ROOT%{_libdir}"
b88dbb
%py3_build
b88dbb
%py3_install
b88dbb
[ -f "$RPM_BUILD_ROOT/%{python3_sitearch}/ovs/_json$(python3-config --extension-suffix)" ]
b88dbb
)
b88dbb
popd
b88dbb
b88dbb
rm -rf $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/
b88dbb
b88dbb
install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch
b88dbb
b88dbb
install -d -m 0755 $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/
b88dbb
b88dbb
install -p -D -m 0755 \
b88dbb
        rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \
b88dbb
        $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-systemd-reload
b88dbb
b88dbb
touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db
b88dbb
# The db needs special permission as IPsec Pre-shared keys are stored in it.
b88dbb
chmod 0640 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db
b88dbb
b88dbb
touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/system-id.conf
b88dbb
b88dbb
# remove unpackaged files
b88dbb
rm -f $RPM_BUILD_ROOT/%{_bindir}/ovs-benchmark \
b88dbb
        $RPM_BUILD_ROOT/%{_bindir}/ovs-docker \
b88dbb
        $RPM_BUILD_ROOT/%{_bindir}/ovs-parse-backtrace \
b88dbb
        $RPM_BUILD_ROOT/%{_bindir}/ovs-testcontroller \
b88dbb
        $RPM_BUILD_ROOT/%{_sbindir}/ovs-vlan-bug-workaround \
b88dbb
        $RPM_BUILD_ROOT/%{_mandir}/man1/ovs-benchmark.1* \
b88dbb
        $RPM_BUILD_ROOT/%{_mandir}/man8/ovs-testcontroller.* \
b88dbb
        $RPM_BUILD_ROOT/%{_mandir}/man8/ovs-vlan-bug-workaround.8*
b88dbb
b88dbb
%if ! %{with ipsec}
b88dbb
rm -f $RPM_BUILD_ROOT/%{_datadir}/openvswitch/scripts/ovs-monitor-ipsec
b88dbb
%endif
b88dbb
b88dbb
# remove ovn unpackages files
b88dbb
rm -f $RPM_BUILD_ROOT%{_bindir}/ovn*
b88dbb
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/ovn*
b88dbb
rm -f $RPM_BUILD_ROOT%{_mandir}/man5/ovn*
b88dbb
rm -f $RPM_BUILD_ROOT%{_mandir}/man7/ovn*
b88dbb
rm -f $RPM_BUILD_ROOT%{_mandir}/man8/ovn*
b88dbb
rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/ovn*
b88dbb
rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovn*
b88dbb
rm -f $RPM_BUILD_ROOT%{_includedir}/ovn/*
b88dbb
b88dbb
%check
b88dbb
%if %{with check}
b88dbb
    pushd build-static
b88dbb
    touch resolv.conf
b88dbb
    export OVS_RESOLV_CONF=$(pwd)/resolv.conf
b88dbb
    if make check TESTSUITEFLAGS='%{_smp_mflags}' ||
b88dbb
       make check TESTSUITEFLAGS='--recheck'; then :;
b88dbb
    else
b88dbb
        cat tests/testsuite.log
b88dbb
        exit 1
b88dbb
    fi
b88dbb
    popd
b88dbb
%endif
b88dbb
%if %{with check_datapath_kernel}
b88dbb
    pushd build-static
b88dbb
    if make check-kernel RECHECK=yes; then :;
b88dbb
    else
b88dbb
        cat tests/system-kmod-testsuite.log
b88dbb
        exit 1
b88dbb
    fi
b88dbb
    popd
b88dbb
%endif
b88dbb
b88dbb
%clean
b88dbb
rm -rf $RPM_BUILD_ROOT
b88dbb
b88dbb
%preun
b88dbb
%if 0%{?systemd_preun:1}
b88dbb
    %systemd_preun openvswitch.service
b88dbb
%else
b88dbb
    if [ $1 -eq 0 ] ; then
b88dbb
    # Package removal, not upgrade
b88dbb
        /bin/systemctl --no-reload disable openvswitch.service >/dev/null 2>&1 || :
b88dbb
        /bin/systemctl stop openvswitch.service >/dev/null 2>&1 || :
b88dbb
    fi
b88dbb
%endif
b88dbb
b88dbb
%pre
b88dbb
getent group openvswitch >/dev/null || groupadd -r openvswitch
b88dbb
getent passwd openvswitch >/dev/null || \
b88dbb
    useradd -r -g openvswitch -d / -s /sbin/nologin \
b88dbb
    -c "Open vSwitch Daemons" openvswitch
b88dbb
b88dbb
%ifarch %{dpdkarches}
b88dbb
    getent group hugetlbfs >/dev/null || groupadd hugetlbfs
b88dbb
    usermod -a -G hugetlbfs openvswitch
b88dbb
%endif
b88dbb
exit 0
b88dbb
b88dbb
%post
b88dbb
if [ $1 -eq 1 ]; then
b88dbb
    sed -i 's:^#OVS_USER_ID=:OVS_USER_ID=:' /etc/sysconfig/openvswitch
b88dbb
b88dbb
%ifarch %{dpdkarches}
b88dbb
    sed -i \
b88dbb
        's@OVS_USER_ID="openvswitch:openvswitch"@OVS_USER_ID="openvswitch:hugetlbfs"@'\
b88dbb
        /etc/sysconfig/openvswitch
b88dbb
%endif
b88dbb
fi
b88dbb
chown -R openvswitch:openvswitch /etc/openvswitch
b88dbb
b88dbb
%if 0%{?systemd_post:1}
b88dbb
    %systemd_post openvswitch.service
b88dbb
%else
b88dbb
    # Package install, not upgrade
b88dbb
    if [ $1 -eq 1 ]; then
b88dbb
        /bin/systemctl daemon-reload >dev/null || :
b88dbb
    fi
b88dbb
%endif
b88dbb
b88dbb
%postun
b88dbb
%if 0%{?systemd_postun:1}
b88dbb
    %systemd_postun openvswitch.service
b88dbb
%else
b88dbb
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
b88dbb
%endif
b88dbb
b88dbb
%triggerun -- openvswitch < 2.5.0-22.git20160727%{?dist}
b88dbb
# old rpm versions restart the service in postun, but
b88dbb
# due to systemd some preparation is needed.
b88dbb
if systemctl is-active openvswitch >/dev/null 2>&1 ; then
b88dbb
    /usr/share/openvswitch/scripts/ovs-ctl stop >/dev/null 2>&1 || :
b88dbb
    systemctl daemon-reload >/dev/null 2>&1 || :
b88dbb
    systemctl stop openvswitch ovsdb-server ovs-vswitchd >/dev/null 2>&1 || :
b88dbb
    systemctl start openvswitch >/dev/null 2>&1 || :
b88dbb
fi
b88dbb
exit 0
b88dbb
b88dbb
%files -n python3-%{pkgname}
b88dbb
%{python3_sitearch}/ovs
b88dbb
%{python3_sitearch}/ovs-*.egg-info
b88dbb
%doc LICENSE
b88dbb
b88dbb
%files test
b88dbb
%{_bindir}/ovs-pcap
b88dbb
%{_bindir}/ovs-tcpdump
b88dbb
%{_bindir}/ovs-tcpundump
b88dbb
%{_mandir}/man1/ovs-pcap.1*
b88dbb
%{_mandir}/man8/ovs-tcpdump.8*
b88dbb
%{_mandir}/man1/ovs-tcpundump.1*
b88dbb
%{_bindir}/ovs-test
b88dbb
%{_bindir}/ovs-vlan-test
b88dbb
%{_bindir}/ovs-l3ping
b88dbb
%{_mandir}/man8/ovs-test.8*
b88dbb
%{_mandir}/man8/ovs-vlan-test.8*
b88dbb
%{_mandir}/man8/ovs-l3ping.8*
b88dbb
%{python3_sitelib}/ovstest
b88dbb
b88dbb
%files devel
b88dbb
%{_libdir}/*.so
b88dbb
%{_libdir}/pkgconfig/*.pc
b88dbb
%{_includedir}/openvswitch/*
b88dbb
%{_includedir}/openflow/*
b88dbb
%exclude %{_libdir}/*.a
b88dbb
%exclude %{_libdir}/*.la
b88dbb
b88dbb
%if 0%{?rhel} == 8 || 0%{?fedora} > 28
b88dbb
%files -n network-scripts-%{name}
b88dbb
%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
b88dbb
%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
b88dbb
%endif
b88dbb
b88dbb
%files
b88dbb
%defattr(-,openvswitch,openvswitch)
b88dbb
%dir %{_sysconfdir}/openvswitch
b88dbb
%{_sysconfdir}/openvswitch/default.conf
b88dbb
%config %ghost %verify(not owner group md5 size mtime) %{_sysconfdir}/openvswitch/conf.db
b88dbb
%ghost %attr(0600,-,-) %verify(not owner group md5 size mtime) %{_sysconfdir}/openvswitch/.conf.db.~lock~
b88dbb
%config %ghost %{_sysconfdir}/openvswitch/system-id.conf
b88dbb
%defattr(-,root,root)
b88dbb
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sysconfig/openvswitch
b88dbb
%{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash
b88dbb
%{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash
b88dbb
%config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch
b88dbb
%{_unitdir}/openvswitch.service
b88dbb
%{_unitdir}/ovsdb-server.service
b88dbb
%{_unitdir}/ovs-vswitchd.service
b88dbb
%{_unitdir}/ovs-delete-transient-ports.service
b88dbb
%{_datadir}/openvswitch/scripts/openvswitch.init
b88dbb
%{_datadir}/openvswitch/scripts/ovs-check-dead-ifs
b88dbb
%{_datadir}/openvswitch/scripts/ovs-lib
b88dbb
%{_datadir}/openvswitch/scripts/ovs-save
b88dbb
%{_datadir}/openvswitch/scripts/ovs-vtep
b88dbb
%{_datadir}/openvswitch/scripts/ovs-ctl
b88dbb
%{_datadir}/openvswitch/scripts/ovs-kmod-ctl
b88dbb
%{_datadir}/openvswitch/scripts/ovs-systemd-reload
b88dbb
%config %{_datadir}/openvswitch/local-config.ovsschema
b88dbb
%config %{_datadir}/openvswitch/vswitch.ovsschema
b88dbb
%config %{_datadir}/openvswitch/vtep.ovsschema
b88dbb
%{_bindir}/ovs-appctl
b88dbb
%{_bindir}/ovs-dpctl
b88dbb
%{_bindir}/ovs-ofctl
b88dbb
%{_bindir}/ovs-vsctl
b88dbb
%{_bindir}/ovsdb-client
b88dbb
%{_bindir}/ovsdb-tool
b88dbb
%{_bindir}/ovs-pki
b88dbb
%{_bindir}/vtep-ctl
b88dbb
%{_libdir}/*.so.*
b88dbb
%{_sbindir}/ovs-vswitchd
b88dbb
%{_sbindir}/ovsdb-server
b88dbb
%{_mandir}/man1/ovsdb-client.1*
b88dbb
%{_mandir}/man1/ovsdb-server.1*
b88dbb
%{_mandir}/man1/ovsdb-tool.1*
b88dbb
%{_mandir}/man5/ovsdb.5*
b88dbb
%{_mandir}/man5/ovsdb.local-config.5*
b88dbb
%{_mandir}/man5/ovsdb-server.5.*
b88dbb
%{_mandir}/man5/ovs-vswitchd.conf.db.5*
b88dbb
%{_mandir}/man5/vtep.5*
b88dbb
%{_mandir}/man7/ovsdb-server.7*
b88dbb
%{_mandir}/man7/ovsdb.7*
b88dbb
%{_mandir}/man7/ovs-actions.7*
b88dbb
%{_mandir}/man7/ovs-fields.7*
b88dbb
%{_mandir}/man8/vtep-ctl.8*
b88dbb
%{_mandir}/man8/ovs-appctl.8*
b88dbb
%{_mandir}/man8/ovs-ctl.8*
b88dbb
%{_mandir}/man8/ovs-dpctl.8*
b88dbb
%{_mandir}/man8/ovs-kmod-ctl.8.*
b88dbb
%{_mandir}/man8/ovs-ofctl.8*
b88dbb
%{_mandir}/man8/ovs-pki.8*
b88dbb
%{_mandir}/man8/ovs-vsctl.8*
b88dbb
%{_mandir}/man8/ovs-vswitchd.8*
b88dbb
%{_mandir}/man8/ovs-parse-backtrace.8*
b88dbb
%{_udevrulesdir}/91-vfio.rules
b88dbb
%doc LICENSE NOTICE README.rst NEWS rhel/README.RHEL.rst
b88dbb
%ifarch %{dpdkarches}
b88dbb
%doc %{dpdkdir}/README.DPDK-PMDS
b88dbb
%attr(750,openvswitch,hugetlbfs) %verify(not owner group) /var/log/openvswitch
b88dbb
%else
b88dbb
%attr(750,openvswitch,openvswitch) %verify(not owner group) /var/log/openvswitch
b88dbb
%endif
b88dbb
/var/lib/openvswitch
b88dbb
%ghost %attr(755,root,root) %verify(not owner group) %{_rundir}/openvswitch
b88dbb
%{_datadir}/openvswitch/bugtool-plugins/
b88dbb
%{_datadir}/openvswitch/scripts/ovs-bugtool-*
b88dbb
%{_bindir}/ovs-dpctl-top
b88dbb
%{_sbindir}/ovs-bugtool
b88dbb
%{_mandir}/man8/ovs-dpctl-top.8*
b88dbb
%{_mandir}/man8/ovs-bugtool.8*
b88dbb
%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} < 29)
b88dbb
%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
b88dbb
%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
b88dbb
%endif
b88dbb
b88dbb
%if %{with ipsec}
b88dbb
%files ipsec
b88dbb
%{_datadir}/openvswitch/scripts/ovs-monitor-ipsec
b88dbb
%{_unitdir}/openvswitch-ipsec.service
b88dbb
%endif
b88dbb
b88dbb
%changelog
b88dbb
* Fri Jul 01 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-31
b88dbb
- Merging upstream branch-2.17 [RH git: f530505b5e]
b88dbb
    Commit list:
b88dbb
    05e9d2b7a9 Pmd.at: fix dpcls and dpif configuration test cases.
b88dbb
b88dbb
b88dbb
* Thu Jun 30 2022 Ilya Maximets <i.maximets@redhat.com> - 2.17.0-30
b88dbb
- Merging upstream branch-2.17 [RH git: a51734d307]
b88dbb
    Commit list:
b88dbb
    45ecaa9e57 ovsdb: Add Local_Config schema.
b88dbb
    
b88dbb
    Merge:
b88dbb
     redhat/template.spec.in updated with new files.
b88dbb
    
b88dbb
    Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
b88dbb
b88dbb
b88dbb
* Wed Jun 29 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-29
b88dbb
- Merging upstream branch-2.17 [RH git: d8e3f49a8c]
b88dbb
    Commit list:
b88dbb
    61d64d3899 dpif-netdev: Fix leak of AVX512 DPIF scratch pad.
b88dbb
b88dbb
b88dbb
* Wed Jun 29 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-28
b88dbb
- Merging upstream branch-2.17 [RH git: f3aee3f437]
b88dbb
    Commit list:
b88dbb
    a77ad9693c dpif-netdev: Refactor AVX512 runtime checks. (#2100393)
b88dbb
b88dbb
b88dbb
* Tue Jun 28 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-27
b88dbb
- Merging upstream branch-2.17 [RH git: 7a72e1ae7e]
b88dbb
    Commit list:
b88dbb
    ccea7df578 dpif-netdev-extract-avx512: Protect GCC builtin usage.
b88dbb
    807f7f994a ovs-tcpdump: Default to OVS_RUNDIR if present.
b88dbb
    ec13b03ca3 ovsdb: Fix memory leak on error path in ovsdb_file_read__().
b88dbb
    8b2dff2e34 odp-util: Ignore unknown attributes in parse_key_and_mask_to_match(). (#2089331)
b88dbb
    13d97f6637 ofproto-dpif: Avoid unneccesary backer revalidation.
b88dbb
    9b4035d699 lldp: Fix lldp memory leak.
b88dbb
    d9351febc2 ipfix: Trigger revalidation if ipfix options changes.
b88dbb
b88dbb
b88dbb
* Mon Jun 27 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-26
b88dbb
- Merging upstream branch-2.17 [RH git: d488a56080]
b88dbb
    Commit list:
b88dbb
    5419b1de93 conntrack: Fix incorrect bit shift while hashing nat range.
b88dbb
    1ab5f94a11 packets: Fix misaligned write to MPLS lse.
b88dbb
    8e00be03c7 tc: Fix misaligned access to stats and time values.
b88dbb
    3a1f5341ca odp-util: Fix unaligned access to tunnel id.
b88dbb
    0c54c43b89 ofpbuf: Fix offsetting a NULL pointer in ofpbuf_reserve.
b88dbb
b88dbb
b88dbb
* Fri Jun 24 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-25
b88dbb
- Merging upstream branch-2.17 [RH git: a7a9ad68bb]
b88dbb
    Commit list:
b88dbb
    98edacb40c drop-stats.at: Fix frequent failures of the recursion too deep test.
b88dbb
    cbc13ce4f7 odp_util: Fix parse_key_and_mask_to_match() vlan parsing.
b88dbb
b88dbb
b88dbb
* Tue Jun 21 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-24
b88dbb
- Merging upstream branch-2.17 [RH git: 8f74cee909]
b88dbb
    Commit list:
b88dbb
    73e6ce4925 Prepare for 2.17.3.
b88dbb
    95979b0f0d Set release date for 2.17.2.
b88dbb
b88dbb
b88dbb
* Tue Jun 07 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-23
b88dbb
- Merging upstream branch-2.17 [RH git: 58de71ec1f]
b88dbb
    Commit list:
b88dbb
    250e1a6dd2 ofproto-dpif-xlate: Fix internal CT state for non-recirc traffic.
b88dbb
    fe870ee072 classifier: Adjust segment boundary to execute prerequisite processing. (#2081773)
b88dbb
    ec0ec464ba ovs-tcpdump: Fix error when stopping ovs-tcpdump.
b88dbb
b88dbb
b88dbb
* Tue May 31 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-22
b88dbb
- Merging upstream branch-2.17 [RH git: 2761ccda9c]
b88dbb
    Commit list:
b88dbb
    420823e2af ofproto-dpif: Fix meter use-after-free.
b88dbb
    c762da2623 ovs-rcu: Add ovsrcu_barrier.
b88dbb
    cd9b6b64f4 dpif-netdev: Fix ALB 'rebalance_intvl' max hard limit.
b88dbb
    64f6c49d25 dpif-netdev: Fix ALB parameters type mismatch.
b88dbb
    b11b84ea7f dpdk: Use DPDK 21.11.1 release.
b88dbb
    d3bf48e9a9 raft: Don't use HMAP_FOR_EACH_SAFE when logging commands.
b88dbb
b88dbb
b88dbb
* Thu May 26 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-21
b88dbb
- Merging upstream branch-2.17 [RH git: 97205fb19a]
b88dbb
    Commit list:
b88dbb
    e07377bb49 ovsdb: raft: Fix transaction double commit due to lost leadership. (#2046340)
b88dbb
    5da86cb360 dynamic-string: Fix undefined behavior due to offsetting null pointer.
b88dbb
    369e688908 Revert "odp-util: Always report ODP_FIT_TOO_LITTLE for IGMP."
b88dbb
    18341166ed ofproto-dpif-xlate: Fix netdev native tunnel neigh discovery spa.
b88dbb
    748e4b2b5b ovs-router: Expose the ovs_router_get_netdev_source_address function.
b88dbb
    34390bb35c ofproto-dpif: Trigger revalidation if ct tp changes.
b88dbb
b88dbb
b88dbb
* Wed May 25 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-20
b88dbb
- Merging upstream branch-2.17 [RH git: c0dd67b058]
b88dbb
    Commit list:
b88dbb
    1adb07e206 Carefully release NBL in Windows
b88dbb
b88dbb
b88dbb
* Wed May 18 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-19
b88dbb
- Merging upstream branch-2.17 [RH git: 5696d42501]
b88dbb
    Commit list:
b88dbb
    1ccaba4484 tests: Properly kill ovsdb test processes.
b88dbb
    260b091c2a ovs-save: Get highest ofp version error.
b88dbb
    7606bb1210 netdev-linux: Properly access 32-bit aligned rtnl_link_stats64 structs.
b88dbb
    0688b9f27d treewide: Avoid offsetting NULL pointers.
b88dbb
    92bcf0a823 treewide: Fix invalid bit shift operations.
b88dbb
b88dbb
b88dbb
* Thu May 05 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.17.0-18
b88dbb
- vhost: fix queue number check when setting inflight FD [RH git: ac46ea1a7e]
b88dbb
    [ upstream commit 6442c329b9d2ded0f44b27d2016aaba8ba5844c5 ]
b88dbb
    
b88dbb
    In function vhost_user_set_inflight_fd, queue number in inflight
b88dbb
    message is used to access virtqueue. However, queue number could
b88dbb
    be larger than VHOST_MAX_VRING and cause write OOB as this number
b88dbb
    will be used to write inflight info in virtqueue structure. This
b88dbb
    patch checks the queue number to avoid the issue and also make
b88dbb
    sure virtqueues are allocated before setting inflight information.
b88dbb
    
b88dbb
    Fixes: ad0a4ae491fe ("vhost: checkout resubmit inflight information")
b88dbb
    
b88dbb
    Reported-by: Wenxiang Qian <leonwxqian@gmail.com>
b88dbb
    Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
b88dbb
    Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
b88dbb
b88dbb
b88dbb
* Thu May 05 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.17.0-17
b88dbb
- vhost: fix FD leak with inflight messages [RH git: c2ac4edf6d]
b88dbb
    [ upstream commit af74f7db384ed149fe42b21dbd7975f8a54ef227 ]
b88dbb
    
b88dbb
    Even if unlikely, a buggy vhost-user master might attach fds to inflight
b88dbb
    messages. Add checks like for other types of vhost-user messages.
b88dbb
    
b88dbb
    Fixes: d87f1a1cb7b6 ("vhost: support inflight info sharing")
b88dbb
    
b88dbb
    Signed-off-by: David Marchand <david.marchand@redhat.com>
b88dbb
    Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
b88dbb
b88dbb
b88dbb
* Wed May 04 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-16
b88dbb
- Merging upstream branch-2.17 [RH git: acda732382]
b88dbb
    Commit list:
b88dbb
    7fa76371de utilities: Handle dumping packets in GDB TUI.
b88dbb
    8cac8baa8f ofproto-dpif-xlate: Remove mirror assert.
b88dbb
    e0e8f0c546 netdev-dpdk: Fix tx drops statistic for a down netdev.
b88dbb
    f9b5f8a781 netdev-dpdk: Remove a leftover lock annotation.
b88dbb
    4c3976ff2a netdev-dpdk: Refactor the DPDK transmit path.
b88dbb
b88dbb
b88dbb
* Wed May 04 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-15
b88dbb
- Merging upstream branch-2.17 [RH git: 9273c90557]
b88dbb
    Commit list:
b88dbb
    410b97c839 netdev-offload-dpdk: Fix ethernet type for VLANs.
b88dbb
    7948312feb netdev-offload-dpdk: Use has_vlan match attribute.
b88dbb
b88dbb
b88dbb
* Mon May 02 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-14
b88dbb
- Merging upstream branch-2.17 [RH git: 1a8dfc5537]
b88dbb
    Commit list:
b88dbb
    522c46884d python: idl: Raise AttributeError from uuid_to_row.
b88dbb
b88dbb
b88dbb
* Wed Apr 27 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-13
b88dbb
- Merging upstream branch-2.17 [RH git: b306be03b9]
b88dbb
    Commit list:
b88dbb
    cb24c524e4 ofproto-dpif-xlate: Clear out vlan flow fields while processing native tunnel. (#393566
b88dbb
    2060552)
b88dbb
    a665b75dec dpif-netdev-avx512: Fix overflow of UINT32_C(1).
b88dbb
b88dbb
b88dbb
* Tue Apr 26 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-12
b88dbb
- Merging upstream branch-2.17 [RH git: 1af56b0e7d]
b88dbb
    Commit list:
b88dbb
    60e7badd6e dpif-netdev-avx512: Fix ubsan shift error in bitmasks.
b88dbb
    9cc329ec5b python: Politely handle misuse of table.condition.
b88dbb
    0631be2b5a ofproto-xlate: Fix crash when forwarding packet between legacy_l3 tunnels.
b88dbb
    df97903099 system-traffic: Fix fragment reassembly with L3 L4 protocol information.
b88dbb
b88dbb
b88dbb
* Thu Apr 21 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.17.0-11
b88dbb
- Set RTE_ETH_MAXPORTS to 1024 [RH git: 5226ee22e0] (#2077451)
b88dbb
    Resolves: #2077451
b88dbb
b88dbb
b88dbb
* Mon Apr 18 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-10
b88dbb
- Merging upstream branch-2.17 [RH git: bf2a38bb7b]
b88dbb
    Commit list:
b88dbb
    ba159ee0f9 cirrus: Update FreeBSD versions.
b88dbb
b88dbb
b88dbb
* Thu Apr 14 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.17.0-9
b88dbb
- redhat: network-scripts are gone in RHEL9 [RH git: a15ee438ad]
b88dbb
b88dbb
b88dbb
* Fri Apr 08 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-8
b88dbb
- Merging upstream branch-2.17 [RH git: 3bd5aec051]
b88dbb
    Commit list:
b88dbb
    bd1a3b6b49 Prepare for 2.17.2.
b88dbb
    41bb202fb3 Set release date for 2.17.1.
b88dbb
b88dbb
b88dbb
* Fri Apr 08 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-7
b88dbb
- Merging upstream branch-2.17 [RH git: 052159c286]
b88dbb
    Commit list:
b88dbb
    8f42d4f597 NEWS: Highlight libopenvswitch API change caused by UB fixes.
b88dbb
b88dbb
b88dbb
* Wed Apr 06 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-6
b88dbb
- Merging upstream branch-2.17 [RH git: 928136477c]
b88dbb
    Commit list:
b88dbb
    14301b3a3c netdev-offload-tc: Check for ct_state flag combinations that are not offloadable.
b88dbb
    3a2eef7927 python: idl: Set cond_changed to true if condition change requested.
b88dbb
    d05ccf288d dpif-netdev: Fix dp_netdev_get_pmd() function getting correct core_id.
b88dbb
    79e291f983 alb.at: Add tests for cross-numa polling.
b88dbb
    9c3b74fb24 dpif-netdev: Fix PMD auto load balance with pmd-rxq-isolate.
b88dbb
    8580ff9ddd pmd.at: Add tests for multi non-local numa pmds.
b88dbb
    6bf4eeddbb dpif-netdev: Fix non-local numa selection for more than two numas.
b88dbb
    c41434b3b7 dpif-netdev: Fix typo in function name.
b88dbb
    e0aa5e1329 python: idl: Set cond_changed to false if last id is zero.
b88dbb
    8da40d31c7 ofproto-dpif-xlate: Fix NULL pointer dereference in xlate_normal().
b88dbb
    63a903ab42 ofproto/ofproto-dpif: Fix dpif_type for userspace tunnels.
b88dbb
b88dbb
b88dbb
* Mon Apr 04 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.17.0-5
b88dbb
- downstream: Enable usdt probes in build [RH git: d7746afd9c]
b88dbb
    Fixes: BZ1840877
b88dbb
b88dbb
b88dbb
* Wed Mar 30 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-4
b88dbb
- Merging upstream branch-2.17 [RH git: f6beee6395]
b88dbb
    Commit list:
b88dbb
    14d54eb8b6 sset: add SHORT version of SAFE loop macros.
b88dbb
    f0e63b115f sparse: bump recommended version and include headers.
b88dbb
    70b87cf722 idlc: support short version of SAFE macros.
b88dbb
    3777ed90c9 rculist: use multi-variable helpers for loop macros.
b88dbb
    bb52e9bebf hindex: remove the next variable in safe loops.
b88dbb
    7d6cbfa24b hindex: use multi-variable iterators.
b88dbb
    97ad96b63a cmap: use multi-variable iterators.
b88dbb
    cd62fda22d hmap: use short version of safe loops if possible.
b88dbb
    d56bfd7521 hmap: implement UB-safe hmap pop iterator.
b88dbb
    e2c8354861 hmap: use multi-variable helpers for hmap loops.
b88dbb
    897d6647e6 list: use short version of safe loops if possible.
b88dbb
    979a9eb5b5 list: use multi-variable helpers for list loops.
b88dbb
    6bacf802c6 util: add helpers to overload SAFE macro.
b88dbb
    f127123d66 util: add safe multi-variable iterators.
b88dbb
    38e73f0b68 util: add multi-variable loop iterator macros.
b88dbb
b88dbb
b88dbb
* Wed Mar 30 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-3
b88dbb
- Merging upstream branch-2.17 [RH git: 19d425fcfb]
b88dbb
    Commit list:
b88dbb
    e91edf4568 ovsdb: raft: Fix inability to read the database with DNS host names. (#2055097)
b88dbb
    2404d45367 system-traffic.at: Fix flaky DNAT load balancing test.
b88dbb
    6b8adfdd8d dpif-netdev: Keep orig_in_port as a field of the flow.
b88dbb
    6098b7f250 tests: Fix incorrect usage of OVS_WAIT_UNTIL.
b88dbb
    cf9018d373 odp-util: Fix output for tc to be equal to kernel.
b88dbb
    992de24063 netdev-offload-tc: Fix IP and port ranges in flower returns.
b88dbb
    7e26796c03 netdev-offload-tc: Fix use of ICMP values instead of masks defines.
b88dbb
    e319e27064 netdev-offload-tc: Always include conntrack information to tc.
b88dbb
    51ef81ad78 netdev-offload-tc: Check for valid netdev ifindex in flow_put.
b88dbb
    974253dc2e netdev-offload-tc: Set the correct VLAN_VID and VLAN_PCP masks.
b88dbb
    c43c159aea netdev-offload-tc: Add debug logs on tc rule verify failures.
b88dbb
    d34622a03b tc: Keep header rewrite actions order.
b88dbb
    5255713d1f faq: Update OVS/DPDK version table for OVS 2.15/2.16
b88dbb
    05cf36a620 system-dpdk: Fix mfex autovalidator tests.
b88dbb
    87540e3b9f ofp-prop: Silence the 'may be uninitialized' warning.
b88dbb
    812164adef tests: Ignore log about failing to set NETLINK_EXT_ACK.
b88dbb
    ae51ccc12c ovsdb-cluster.at: Avoid test failures due to different hashing.
b88dbb
    f33cde23c7 ofproto: Use xlate map for uuid lookups.
b88dbb
    6ac255496c ofproto: Add refcount to ofproto to fix ofproto use-after-free.
b88dbb
    db0cc8be38 ofproto-dpif: Trigger revalidation when ipfix config set.
b88dbb
    31b86e5c98 conntrack: Prefer dst port range during unique tuple search.
b88dbb
    b761b532c3 conntrack: Select correct sport range for well-known origin sport.
b88dbb
    78bd058c36 ipsec: StrongSwan report connection update failures to ovs logs.
b88dbb
    aa05596dfb ipsec: Libreswan report connection failures to ovs logs.
b88dbb
    427776ceae system-tso: Skip encap tests when userspace TSO is enabled.
b88dbb
    66d16e2883 tc: Fix stats byte count on fragmented packets.
b88dbb
    b63c41f31f compat: Add gen_stats include to define tc hw stats.
b88dbb
    c531b3828f ovsdb: raft: Fix inability to join the cluster after interrupted attempt. (#2033514)
b88dbb
    498cedc483 reconnect: Fix broken inactivity probe if there is no other reason to wake up.
b88dbb
    5dc1423d80 datapath-windows: Fix NXM_OF_IP_TOS issue
b88dbb
    91c0f0068d Prepare for 2.17.1.
b88dbb
b88dbb
b88dbb
* Wed Mar 30 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.17.0-2
b88dbb
- redhat: fix setup on RHEL8 [RH git: 03255d5ae3]
b88dbb
b88dbb
b88dbb
* Mon Feb 21 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.17.0-1
b88dbb
- redhat: Imported Red Hat build files. [RH git: 4b0e1204d4]
b88dbb
b88dbb