# Copyright (C) 2009, 2010, 2013, 2014 Nicira Networks, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without warranty of any kind.
#
# If tests have to be skipped while building, specify the '--without check'
# option. For example:
# rpmbuild -bb --without check rhel/openvswitch-fedora.spec
# This defines the base package name's version.
%define pkgname openvswitch2.15
%if 0%{?commit:1}
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%endif
# Enable PIE, bz#955181
%global _hardened_build 1
# RHEL-7 doesn't define _rundir macro yet
# Fedora 15 onwards uses /run as _rundir
%if 0%{!?_rundir:1}
%define _rundir /run
%endif
# FIXME Test "STP - flush the fdb and mdb when topology changed" fails on s390x
# FIXME 2 tests fails on ppc64le. They will be hopefully fixed before official 2.11
%ifarch %{ix86} x86_64 aarch64
%bcond_without check
%else
%bcond_with check
%endif
# option to run kernel datapath tests, requires building as root!
%bcond_with check_datapath_kernel
# option to build with libcap-ng, needed for running OVS as regular user
%bcond_without libcapng
# option to build with ipsec support
%bcond_without ipsec
# Build python2 (that provides python) and python3 subpackages on Fedora
# Build only python3 (that provides python) subpackage on RHEL8
# Build only python subpackage on RHEL7
%if 0%{?rhel} > 7 || 0%{?fedora}
# On RHEL8 Sphinx is included in buildroot
%global external_sphinx 1
%else
# Don't use external sphinx (RHV doesn't have optional repositories enabled)
%global external_sphinx 0
%endif
Name: %{pkgname}
Summary: Open vSwitch
Group: System Environment/Daemons daemon/database/utilities
URL: http://www.openvswitch.org/
Version: 2.15.0
Release: 58%{?dist}
# Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the
# lib/sflow*.[ch] files are SISSL
# datapath/ is GPLv2 (although not built into any of the binary packages)
License: ASL 2.0 and LGPLv2+ and SISSL
%define dpdkver 20.11
%define dpdkdir dpdk
%define dpdksver %(echo %{dpdkver} | cut -d. -f-2)
# NOTE: DPDK does not currently build for s390x
# DPDK on aarch64 is not stable enough to be enabled in FDP
%if 0%{?rhel} > 7 || 0%{?fedora}
%define dpdkarches x86_64 ppc64le
%else
%define dpdkarches
%endif
%if 0%{?commit:1}
Source: https://github.com/openvswitch/ovs/archive/%{commit}.tar.gz#/openvswitch-%{commit}.tar.gz
%else
Source: https://github.com/openvswitch/ovs/archive/v%{version}.tar.gz#/openvswitch-%{version}.tar.gz
%endif
Source10: https://fast.dpdk.org/rel/dpdk-%{dpdkver}.tar.xz
%define docutilsver 0.12
%define pygmentsver 1.4
%define sphinxver 1.2.3
Source100: https://pypi.io/packages/source/d/docutils/docutils-%{docutilsver}.tar.gz
Source101: https://pypi.io/packages/source/P/Pygments/Pygments-%{pygmentsver}.tar.gz
Source102: https://pypi.io/packages/source/S/Sphinx/Sphinx-%{sphinxver}.tar.gz
Patch: openvswitch-%{version}.patch
# 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 aarch64 ppc64le s390x
# Do not enable this otherwise YUM will break on any upgrade.
# Provides: openvswitch
Conflicts: openvswitch < 2.15
Conflicts: openvswitch-dpdk < 2.15
Conflicts: openvswitch2.10
Conflicts: openvswitch2.11
Conflicts: openvswitch2.12
Conflicts: openvswitch2.13
Conflicts: openvswitch2.14
# FIXME Sphinx is used to generate some manpages, unfortunately, on RHEL, it's
# in the -optional repository and so we can't require it directly since RHV
# doesn't have the -optional repository enabled and so TPS fails
%if %{external_sphinx}
BuildRequires: python3-sphinx
%else
# Sphinx dependencies
BuildRequires: python-devel
BuildRequires: python-setuptools
#BuildRequires: python2-docutils
BuildRequires: python-jinja2
BuildRequires: python-nose
#BuildRequires: python2-pygments
# docutils dependencies
BuildRequires: python-imaging
# pygments dependencies
BuildRequires: python-nose
%endif
BuildRequires: gcc gcc-c++ make
BuildRequires: autoconf automake libtool
BuildRequires: systemd-units openssl openssl-devel
BuildRequires: python3-devel python3-setuptools
BuildRequires: desktop-file-utils
BuildRequires: groff-base graphviz
BuildRequires: unbound-devel
# make check dependencies
BuildRequires: procps-ng
%if 0%{?rhel} > 7 || 0%{?fedora}
BuildRequires: python3-pyOpenSSL
%endif
%if %{with check_datapath_kernel}
BuildRequires: nmap-ncat
# would be useful but not available in RHEL or EPEL
#BuildRequires: pyftpdlib
%endif
%if %{with libcapng}
BuildRequires: libcap-ng libcap-ng-devel
%endif
%ifarch %{dpdkarches}
BuildRequires: meson
# DPDK driver dependencies
BuildRequires: zlib-devel numactl-devel
%ifarch x86_64
BuildRequires: rdma-core-devel >= 15 libmnl-devel
%endif
# Required by packaging policy for the bundled DPDK
Provides: bundled(dpdk) = %{dpdkver}
%endif
Requires: openssl iproute module-init-tools
#Upstream kernel commit 4f647e0a3c37b8d5086214128614a136064110c3
#Requires: kernel >= 3.15.0-0
Requires: openvswitch-selinux-extra-policy
Requires(pre): shadow-utils
Requires(post): /bin/sed
Requires(post): /usr/sbin/usermod
Requires(post): /usr/sbin/groupadd
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
Obsoletes: openvswitch-controller <= 0:2.1.0-1
%description
Open vSwitch provides standard network bridging functions and
support for the OpenFlow protocol for remote per-flow control of
traffic.
%package -n python3-%{pkgname}
Summary: Open vSwitch python3 bindings
License: ASL 2.0
Requires: %{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: python-%{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
%description -n python3-%{pkgname}
Python bindings for the Open vSwitch database
%package test
Summary: Open vSwitch testing utilities
License: ASL 2.0
BuildArch: noarch
Requires: python3-%{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: tcpdump
%description test
Utilities that are useful to diagnose performance and connectivity
issues in Open vSwitch setup.
%package devel
Summary: Open vSwitch OpenFlow development package (library, headers)
License: ASL 2.0
Requires: %{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
%description devel
This provides shared library, libopenswitch.so and the openvswitch header
files needed to build an external application.
%if 0%{?rhel} > 7 || 0%{?fedora} > 28
%package -n network-scripts-%{name}
Summary: Open vSwitch legacy network service support
License: ASL 2.0
Requires: network-scripts
Supplements: (%{name} and network-scripts)
%description -n network-scripts-%{name}
This provides the ifup and ifdown scripts for use with the legacy network
service.
%endif
%if %{with ipsec}
%package ipsec
Summary: Open vSwitch IPsec tunneling support
License: ASL 2.0
Requires: python3-%{pkgname} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: libreswan
%description ipsec
This package provides IPsec tunneling support for OVS tunnels.
%endif
%prep
%if 0%{?commit:1}
%setup -q -n ovs-%{commit} -a 10
%else
%setup -q -n ovs-%{version} -a 10
%endif
%if ! %{external_sphinx}
%if 0%{?commit:1}
%setup -n ovs-%{commit} -q -D -T -a 100 -a 101 -a 102
%else
%setup -n ovs-%{version} -q -D -T -a 100 -a 101 -a 102
%endif
%endif
mv dpdk-*/ %{dpdkdir}/
# FIXME should we propose a way to do that upstream?
sed -ri "/^subdir\('(usertools|app)'\)/d" %{dpdkdir}/meson.build
%patch -p1
%build
# Build Sphinx on RHEL
%if ! %{external_sphinx}
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}%{_builddir}/pytmp/lib/python"
for x in docutils-%{docutilsver} Pygments-%{pygmentsver} Sphinx-%{sphinxver}; do
pushd "$x"
python2 setup.py install --home %{_builddir}/pytmp
popd
done
export PATH="$PATH:%{_builddir}/pytmp/bin"
%endif
./boot.sh
%ifarch %{dpdkarches} # build dpdk
# Lets build DPDK first
cd %{dpdkdir}
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
#CFLAGS="$(echo %{optflags} | sed -e 's:-Wall::g' -e 's:-march=[[:alnum:]]* ::g') -Wformat -fPIC %{_hardening_ldflags}" \
%set_build_flags
%__meson --prefix=%{_builddir}/dpdk-build \
--buildtype=plain \
-Ddisable_drivers="$disable_drivers" \
-Dmachine=default \
-Dmax_ethports=128 \
-Dmax_numa_nodes=8 \
-Dtests=false \
%{_vpath_builddir}
%meson_build
%__meson install -C %{_vpath_builddir} --no-rebuild
# FIXME currently with LTO enabled OVS tries to link with both static and shared libraries
rm -v %{_builddir}/dpdk-build/%{_lib}/*.so*
# Generate a list of supported drivers, its hard to tell otherwise.
cat << EOF > README.DPDK-PMDS
DPDK drivers included in this package:
EOF
for f in %{_builddir}/dpdk-build/%{_lib}/librte_net_*.a; do
basename ${f} | cut -c12- | cut -d. -f1 | tr [:lower:] [:upper:]
done >> README.DPDK-PMDS
cat << EOF >> README.DPDK-PMDS
For further information about the drivers, see
http://dpdk.org/doc/guides-%{dpdksver}/nics/index.html
EOF
cd -
%endif # build dpdk
# And now for OVS...
mkdir build-shared build-static
pushd build-shared
ln -s ../configure
%configure \
%if %{with libcapng}
--enable-libcapng \
%else
--disable-libcapng \
%endif
--disable-static \
--enable-shared \
--enable-ssl \
--with-pkidir=%{_sharedstatedir}/openvswitch/pki
make %{?_smp_mflags}
popd
pushd build-static
ln -s ../configure
%ifarch %{dpdkarches}
PKG_CONFIG_PATH=%{_builddir}/dpdk-build/%{_lib}/pkgconfig \
%endif
%configure \
%if %{with libcapng}
--enable-libcapng \
%else
--disable-libcapng \
%endif
--enable-ssl \
%ifarch %{dpdkarches}
--with-dpdk=static \
%endif
--with-pkidir=%{_sharedstatedir}/openvswitch/pki
make %{?_smp_mflags}
popd
/usr/bin/python3 build-aux/dpdkstrip.py \
--dpdk \
< rhel/usr_lib_systemd_system_ovs-vswitchd.service.in \
> rhel/usr_lib_systemd_system_ovs-vswitchd.service
%install
rm -rf $RPM_BUILD_ROOT
make -C build-shared install-libLTLIBRARIES DESTDIR=$RPM_BUILD_ROOT
make -C build-static install DESTDIR=$RPM_BUILD_ROOT
install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/openvswitch
install -d -m 0750 $RPM_BUILD_ROOT%{_localstatedir}/log/openvswitch
install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch
install -p -D -m 0644 rhel/usr_lib_udev_rules.d_91-vfio.rules \
$RPM_BUILD_ROOT%{_udevrulesdir}/91-vfio.rules
install -p -D -m 0644 \
rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch
for service in openvswitch ovsdb-server ovs-vswitchd \
ovs-delete-transient-ports; do
install -p -D -m 0644 \
rhel/usr_lib_systemd_system_${service}.service \
$RPM_BUILD_ROOT%{_unitdir}/${service}.service
done
%if %{with ipsec}
install -p -D -m 0644 rhel/usr_lib_systemd_system_openvswitch-ipsec.service \
$RPM_BUILD_ROOT%{_unitdir}/openvswitch-ipsec.service
%endif
install -m 0755 rhel/etc_init.d_openvswitch \
$RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init
install -p -D -m 0644 rhel/etc_openvswitch_default.conf \
$RPM_BUILD_ROOT/%{_sysconfdir}/openvswitch/default.conf
install -p -D -m 0644 rhel/etc_logrotate.d_openvswitch \
$RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/openvswitch
install -m 0644 vswitchd/vswitch.ovsschema \
$RPM_BUILD_ROOT/%{_datadir}/openvswitch/vswitch.ovsschema
install -d -m 0755 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/
install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifdown-ovs \
$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifup-ovs \
$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
install -d -m 0755 $RPM_BUILD_ROOT%{python3_sitelib}
cp -a $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/ovstest \
$RPM_BUILD_ROOT%{python3_sitelib}
# Build the JSON C extension for the Python lib (#1417738)
pushd python
(
export CPPFLAGS="-I ../include -I ../build-shared/include"
export LDFLAGS="%{__global_ldflags} -L $RPM_BUILD_ROOT%{_libdir}"
%py3_build
%py3_install
[ -f "$RPM_BUILD_ROOT/%{python3_sitearch}/ovs/_json$(python3-config --extension-suffix)" ]
)
popd
rm -rf $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/
install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch
install -d -m 0755 $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/
install -p -D -m 0755 \
rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \
$RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-systemd-reload
touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db
# The db needs special permission as IPsec Pre-shared keys are stored in it.
chmod 0640 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db
touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/system-id.conf
# remove unpackaged files
rm -f $RPM_BUILD_ROOT/%{_bindir}/ovs-benchmark \
$RPM_BUILD_ROOT/%{_bindir}/ovs-docker \
$RPM_BUILD_ROOT/%{_bindir}/ovs-parse-backtrace \
$RPM_BUILD_ROOT/%{_bindir}/ovs-testcontroller \
$RPM_BUILD_ROOT/%{_sbindir}/ovs-vlan-bug-workaround \
$RPM_BUILD_ROOT/%{_mandir}/man1/ovs-benchmark.1* \
$RPM_BUILD_ROOT/%{_mandir}/man8/ovs-testcontroller.* \
$RPM_BUILD_ROOT/%{_mandir}/man8/ovs-vlan-bug-workaround.8*
%if ! %{with ipsec}
rm -f $RPM_BUILD_ROOT/%{_datadir}/openvswitch/scripts/ovs-monitor-ipsec
%endif
# remove ovn unpackages files
rm -f $RPM_BUILD_ROOT%{_bindir}/ovn*
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/ovn*
rm -f $RPM_BUILD_ROOT%{_mandir}/man5/ovn*
rm -f $RPM_BUILD_ROOT%{_mandir}/man7/ovn*
rm -f $RPM_BUILD_ROOT%{_mandir}/man8/ovn*
rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/ovn*
rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovn*
rm -f $RPM_BUILD_ROOT%{_includedir}/ovn/*
%check
%if %{with check}
pushd build-static
touch resolv.conf
export OVS_RESOLV_CONF=$(pwd)/resolv.conf
if make check TESTSUITEFLAGS='%{_smp_mflags}' ||
make check TESTSUITEFLAGS='--recheck'; then :;
else
cat tests/testsuite.log
exit 1
fi
popd
%endif
%if %{with check_datapath_kernel}
pushd build-static
if make check-kernel RECHECK=yes; then :;
else
cat tests/system-kmod-testsuite.log
exit 1
fi
popd
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%preun
%if 0%{?systemd_preun:1}
%systemd_preun openvswitch.service
%else
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
/bin/systemctl --no-reload disable openvswitch.service >/dev/null 2>&1 || :
/bin/systemctl stop openvswitch.service >/dev/null 2>&1 || :
fi
%endif
%pre
getent group openvswitch >/dev/null || groupadd -r openvswitch
getent passwd openvswitch >/dev/null || \
useradd -r -g openvswitch -d / -s /sbin/nologin \
-c "Open vSwitch Daemons" openvswitch
%ifarch %{dpdkarches}
getent group hugetlbfs >/dev/null || groupadd hugetlbfs
usermod -a -G hugetlbfs openvswitch
%endif
exit 0
%post
if [ $1 -eq 1 ]; then
sed -i 's:^#OVS_USER_ID=:OVS_USER_ID=:' /etc/sysconfig/openvswitch
%ifarch %{dpdkarches}
sed -i \
's@OVS_USER_ID="openvswitch:openvswitch"@OVS_USER_ID="openvswitch:hugetlbfs"@'\
/etc/sysconfig/openvswitch
%endif
fi
chown -R openvswitch:openvswitch /etc/openvswitch
%if 0%{?systemd_post:1}
%systemd_post openvswitch.service
%else
# Package install, not upgrade
if [ $1 -eq 1 ]; then
/bin/systemctl daemon-reload >dev/null || :
fi
%endif
%postun
%if 0%{?systemd_postun:1}
%systemd_postun openvswitch.service
%else
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
%endif
%triggerun -- openvswitch < 2.5.0-22.git20160727%{?dist}
# old rpm versions restart the service in postun, but
# due to systemd some preparation is needed.
if systemctl is-active openvswitch >/dev/null 2>&1 ; then
/usr/share/openvswitch/scripts/ovs-ctl stop >/dev/null 2>&1 || :
systemctl daemon-reload >/dev/null 2>&1 || :
systemctl stop openvswitch ovsdb-server ovs-vswitchd >/dev/null 2>&1 || :
systemctl start openvswitch >/dev/null 2>&1 || :
fi
exit 0
%files -n python3-%{pkgname}
%{python3_sitearch}/ovs
%{python3_sitearch}/ovs-*.egg-info
%doc LICENSE
%files test
%{_bindir}/ovs-pcap
%{_bindir}/ovs-tcpdump
%{_bindir}/ovs-tcpundump
%{_mandir}/man1/ovs-pcap.1*
%{_mandir}/man8/ovs-tcpdump.8*
%{_mandir}/man1/ovs-tcpundump.1*
%{_bindir}/ovs-test
%{_bindir}/ovs-vlan-test
%{_bindir}/ovs-l3ping
%{_mandir}/man8/ovs-test.8*
%{_mandir}/man8/ovs-vlan-test.8*
%{_mandir}/man8/ovs-l3ping.8*
%{python3_sitelib}/ovstest
%files devel
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/openvswitch/*
%{_includedir}/openflow/*
%exclude %{_libdir}/*.a
%exclude %{_libdir}/*.la
%if 0%{?rhel} > 7 || 0%{?fedora} > 28
%files -n network-scripts-%{name}
%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
%endif
%files
%defattr(-,openvswitch,openvswitch)
%dir %{_sysconfdir}/openvswitch
%{_sysconfdir}/openvswitch/default.conf
%config %ghost %verify(not owner group md5 size mtime) %{_sysconfdir}/openvswitch/conf.db
%ghost %attr(0600,-,-) %verify(not owner group md5 size mtime) %{_sysconfdir}/openvswitch/.conf.db.~lock~
%config %ghost %{_sysconfdir}/openvswitch/system-id.conf
%defattr(-,root,root)
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sysconfig/openvswitch
%{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash
%{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash
%config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch
%{_unitdir}/openvswitch.service
%{_unitdir}/ovsdb-server.service
%{_unitdir}/ovs-vswitchd.service
%{_unitdir}/ovs-delete-transient-ports.service
%{_datadir}/openvswitch/scripts/openvswitch.init
%{_datadir}/openvswitch/scripts/ovs-check-dead-ifs
%{_datadir}/openvswitch/scripts/ovs-lib
%{_datadir}/openvswitch/scripts/ovs-save
%{_datadir}/openvswitch/scripts/ovs-vtep
%{_datadir}/openvswitch/scripts/ovs-ctl
%{_datadir}/openvswitch/scripts/ovs-kmod-ctl
%{_datadir}/openvswitch/scripts/ovs-systemd-reload
%config %{_datadir}/openvswitch/vswitch.ovsschema
%config %{_datadir}/openvswitch/vtep.ovsschema
%{_bindir}/ovs-appctl
%{_bindir}/ovs-dpctl
%{_bindir}/ovs-ofctl
%{_bindir}/ovs-vsctl
%{_bindir}/ovsdb-client
%{_bindir}/ovsdb-tool
%{_bindir}/ovs-pki
%{_bindir}/vtep-ctl
%{_libdir}/*.so.*
%{_sbindir}/ovs-vswitchd
%{_sbindir}/ovsdb-server
%{_mandir}/man1/ovsdb-client.1*
%{_mandir}/man1/ovsdb-server.1*
%{_mandir}/man1/ovsdb-tool.1*
%{_mandir}/man5/ovsdb.5*
%{_mandir}/man5/ovsdb-server.5.*
%{_mandir}/man5/ovs-vswitchd.conf.db.5*
%{_mandir}/man5/vtep.5*
%{_mandir}/man7/ovsdb-server.7*
%{_mandir}/man7/ovsdb.7*
%{_mandir}/man7/ovs-actions.7*
%{_mandir}/man7/ovs-fields.7*
%{_mandir}/man8/vtep-ctl.8*
%{_mandir}/man8/ovs-appctl.8*
%{_mandir}/man8/ovs-ctl.8*
%{_mandir}/man8/ovs-dpctl.8*
%{_mandir}/man8/ovs-kmod-ctl.8.*
%{_mandir}/man8/ovs-ofctl.8*
%{_mandir}/man8/ovs-pki.8*
%{_mandir}/man8/ovs-vsctl.8*
%{_mandir}/man8/ovs-vswitchd.8*
%{_mandir}/man8/ovs-parse-backtrace.8*
%{_udevrulesdir}/91-vfio.rules
%doc LICENSE NOTICE README.rst NEWS rhel/README.RHEL.rst
%ifarch %{dpdkarches}
%doc %{dpdkdir}/README.DPDK-PMDS
%attr(750,openvswitch,hugetlbfs) %verify(not owner group) /var/log/openvswitch
%else
%attr(750,openvswitch,openvswitch) %verify(not owner group) /var/log/openvswitch
%endif
/var/lib/openvswitch
%ghost %attr(755,root,root) %verify(not owner group) %{_rundir}/openvswitch
%{_datadir}/openvswitch/bugtool-plugins/
%{_datadir}/openvswitch/scripts/ovs-bugtool-*
%{_bindir}/ovs-dpctl-top
%{_sbindir}/ovs-bugtool
%{_mandir}/man8/ovs-dpctl-top.8*
%{_mandir}/man8/ovs-bugtool.8*
%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} < 29)
%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
%endif
%if %{with ipsec}
%files ipsec
%{_datadir}/openvswitch/scripts/ovs-monitor-ipsec
%{_unitdir}/openvswitch-ipsec.service
%endif
%changelog
* Tue Jan 18 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-58
- Merging upstream branch-2.15 [RH git: 14826e19b9]
Commit list:
7f978ee372 Documentation: Fix Rx/Tx queue configuration section.
* Mon Jan 17 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-57
- Merging upstream branch-2.15 [RH git: 228a38c3dc]
Commit list:
a7dc6af0fc ofproto-dpif: Fix memory leak in dpif/show-dp-features appctl.
* Sat Dec 18 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-56
- Merging upstream branch-2.15 [RH git: 9504acc03d]
Commit list:
31288dc725 Prepare for 2.15.4.
e4d2df62e6 Set release date for 2.15.3.
b8baa11416 python: Add cooperative_yield() API method to Idl.
7834abc669 ofproto-dpif-xlate: Snoop ingress packets and update neigh cache if needed.
833c02daab tnl-neigh-cache: Do not refresh the entry while revalidating.
e2182eca88 tnl-neigh-cache: Include expected array sizes in prototypes.
566fe43721 tnl-neigh-cache: Read/write expires atomically.
* Thu Dec 09 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-55
- Merging upstream branch-2.15 [RH git: a1abf356d3]
Commit list:
d477f60008 compat: handle NF_REPEAT error on nf_conntrack_in.
* Mon Dec 06 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-54
- Merging upstream branch-2.15 [RH git: d4f13fd840]
Commit list:
0590e88387 flow: Consider dataofs when parsing TCP packets.
7266042d84 tests/flowgen: Fix packet data endianness.
d2e0632dbe ofproto: Fix resource usage explosion due to removal of large number of flows.
0a7e66e37f ofproto: Fix resource usage explosion while processing bundled FLOW_MOD.
68466efed9 tests/flowgen: Fix length field of 802.2 data link header.
2a2185f9e6 ovs-lib: Backup and remove existing DB when joining cluster.
fcbc29c6f0 docs/dpdk: Fix install doc.
a5d97d4202 ovs-save: Save igmp flows in ofp_parse syntax.
1cbd1f0f56 faq: Update OVS/DPDK version table for OVS 2.13/2.14.
* Thu Nov 18 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-53
- Merging upstream branch-2.15 [RH git: 9221a2233d]
Commit list:
01bc910e57 ofproto-dpif-xlate: Fix check_pkt_larger incomplete translation.
* Mon Nov 15 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-52
- Merging upstream branch-2.15 [RH git: 001ae577c6]
Commit list:
08a270dda1 datapath-windows: Reset flow key after Ipv4 fragments are reassembled
* Thu Oct 28 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-51
- Merging upstream branch-2.15 [RH git: a134a530c9]
Commit list:
eca2d50d40 datapath-windows:Reset PseudoChecksum value only for TX direction offload case
* Wed Oct 27 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-50
- Merging upstream branch-2.15 [RH git: 16dad85706]
Commit list:
031cf67e09 netdev-offload-tc: Verify the flower rule installed.
* Wed Oct 27 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-49
- Merging upstream branch-2.15 [RH git: 2502ca29b0]
Commit list:
952e851506 ci: Make linux-prepare trust system installs.
* Mon Oct 25 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-48
- Merging upstream branch-2.15 [RH git: 7cf784736e]
Commit list:
2cf63851a5 Prepare for 2.15.3.
63f9a7c5d8 Set release date for 2.15.2.
* Tue Oct 19 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-47
- Merging upstream branch-2.15 [RH git: 01110b9088]
Commit list:
b7d9c491ec datapath-windows: add layers when adding the deferred actions
* Thu Oct 14 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-46
- Merging upstream branch-2.15 [RH git: f8619036c9]
Commit list:
3f718857e7 ofproto-dpif-xlate: Fix zone set from non-frozen-metadata fields.
* Wed Oct 13 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-45
- Merging upstream branch-2.15 [RH git: e273e307d1]
Commit list:
ea2ca0af16 dpif-netdev: Fix use-after-free on PACKET_OUT of IP fragments.
9f964354e3 tunnel-push-pop.at: Mask source port in tunnel header.
* Tue Oct 12 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-44
- Merging upstream branch-2.15 [RH git: 3050e5222d]
Commit list:
58397f222b dpdk-stub: Change the ERR log to DBG.
2a963fc314 python: idl: Avoid sending transactions when the DB is not synced up.
* Tue Oct 12 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-43
- Merging upstream branch-2.15 [RH git: 09e3ab3630]
Commit list:
9efa2ea619 ipf: release unhandled packets from the batch
* Thu Sep 30 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-42
- Merging upstream branch-2.15 [RH git: 2a86017f3f]
Commit list:
f8274b78c3 datapath-windows:adjust Offset when processing packet in POP_VLAN action
* Mon Sep 27 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-41
- Merging upstream branch-2.15 [RH git: 8f2e30f011]
Commit list:
a2f860aa2e cirrus: Reduce memory requirements for FreeBSD VMs.
* Thu Sep 23 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-40
- redhat: use hugetlbfs group for /var/log/openvswitch when dpdk is enabled [RH git: 5ccf239b51] (#2007290)
Resolves: #2007290
* Thu Sep 16 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-39
- Merging upstream branch-2.15 [RH git: c6bdfa8cc1]
Commit list:
7788f15798 netdev-linux: Fix a null pointer dereference in netdev_linux_notify_sock().
dd32deba6e pcap-file: Fix memory leak in ovs_pcap_open().
9f2f66c8ea odp-util: Fix a null pointer dereference in odp_flow_format().
02b0c265c4 odp-util: Fix a null pointer dereference in odp_nsh_key_from_attr__().
031eff4563 netdev-dpdk: Fix RSS configuration for virtio.
09cd9570d2 ipf: Fix only nat the first fragment in the reass process.
* Wed Sep 15 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-38
- ofproto-dpif-xlate: Avoid successive ct_clear datapath actions. [RH git: f9a9ac7608] (#1941027)
Due to flow lookup optimizations, especially in the resubmit/clone cases,
we might end up with multiple ct_clear actions, which are not necessary.
This patch only adds the ct_clear action to the datapath if any ct state
is tracked.
Resolves: #1941027
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Acked-by: Timothy Redaelli <tredaelli@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
(cherry picked from commit 355fef6f2ccbcf78797b938421cb4cef9b59af13)
* Wed Sep 08 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-37
- Merging upstream branch-2.15 [RH git: b36eb7e529]
Commit list:
ef8ca3e190 dpif-netdev: Fix crash when PACKET_OUT is metered.
* Tue Aug 17 2021 Michael Santana <msantana@redhat.com> - 2.15.0-36
- Migrate openvswitch to gitlab [RH git: 93147e2cda]
Signed-off-by: Michael Santana <msantana@redhat.com>
* Mon Aug 16 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-35
- Merging upstream branch-2.15 [RH git: 11bcf52d03]
Commit list:
d3ff41d609 tc: Set action flags for tunnel_key release.
079a4de723 netlink-socket: Replace error with txn->error when logging nacked transactions.
f8cc5aa35c dynamic-string: Fix a crash in ds_clone().
* Mon Aug 16 2021 Michael Santana <msantana@redhat.com> - 2.15.0-34
- pkgtool: Swap bugzilla id and RH git [RH git: c2e6243d60]
Having the bugzilla ID not at the end of the line breakes another script
that parses for said ID. This patch fixes that by putting the ID next to
the new line
Fixes: f6b2db4dd33e ("Make changelog in spec file more informative")
Signed-off-by: Michael Santana <msantana@redhat.com>
* Mon Aug 16 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-33
- Merging upstream branch-2.15 [RH git: 08b4ccb1c4]
Commit list:
64d1bba919 dpif-netdev: fix memory leak in dpcls subtable set command
* Tue Aug 03 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-32
- Merging upstream branch-2.15 [RH git: 2cc833ce5b]
Commit list:
90b219275d dpif-netdev: Do not flush PMD offloads on reload.
* Mon Aug 02 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-31
- Merging upstream branch-2.15 [RH git: 88fb0bba8a]
Commit list:
b29b04f85f dpif-netdev: Fix offloads of modified flows.
1d0b89ea7b dpif-netdev: Fix flow modification after failure.
* Mon Jul 26 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-30
- Merging upstream branch-2.15 [RH git: a76a4dfca6]
Commit list:
8d84a4b166 netdev-offload-dpdk: Fix IPv6 rewrite cast-align warning.
f3f7849cbb daemon-unix: Fix leak of a fork error message.
* Fri Jul 23 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-29
- Merging upstream branch-2.15 [RH git: 60c8b2a15b]
Commit list:
8aa0f03747 ovsdb-cs: Perform forced reconnects without a backoff.
* Wed Jul 21 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-28
- Merging upstream branch-2.15 [RH git: 48a90081e8]
Commit list:
ee4e034dc9 datapath-windows:Correct checksum for DNAT action
* Sat Jul 17 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-27
- Merging upstream branch-2.15 [RH git: abdd952536]
Commit list:
72132a9403 bond: Fix broken rebalancing after link state changes.
aa84cfe25d dpif-netlink: Fix report_loss() message.
aec05f7cd1 ovsdb-server: Fix memleak when failing to read storage.
05bdf11fc3 conntrack: Init hash basis first at creation.
94e3b9d9ce netdev-linux: Ignore TSO packets when TSO is not enabled for userspace.
842bfb899f conntrack: Handle already natted packets.
ab873c1afe conntrack: Document all-zero IP SNAT behavior and add a test case.
86d6a9ee14 python: Fix Idl.run change_seqno update.
1ba0c83655 bridge: Use correct (legacy) role names in database.
7e5293ea5a Prepare for 2.15.2.
b855bbc326 Set release date for 2.15.1.
007a4f48fe dpif-netdev: Apply subtable-lookup-prio-set on any datapath.
c93358a563 netlink: removed incorrect optimization
31626579fa ovs-actions.xml: Add missing bracket.
30596ec278 netdev-offload-tc: Use nl_msg_put_flag for OVS_TUNNEL_KEY_ATTR_CSUM.
728980291a conntrack: Increment coverage counter for all bad checksum cases.
* Wed Jun 30 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-26
- Use 10 characters of hash to generate the changelog [RH git: d89d9cd0f1]
This is needed to avoid that the history changes since the default
changes from time to time
* Wed Jun 30 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-25
- Merging 881d71ea22e datapath-windows: Specify external include .. [RH git: 8ad5538601]
Commit list:
881d71ea22e datapath-windows: Specify external include paths
934668c295e Remove Python 2 leftovers.
aaa59670556 ipf: Fix a use-after-free error, and remove the 'do_not_steal' flag.
* Fri Jun 11 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-24
- Merging upstream branch-2.15 [RH git: 78ba3622d9]
Commit list:
bc0aa785a8 ovsdb-idl: Fix the database update signaling if it has never been connected.
559426d2b0 ofproto: Fix potential NULL dereference in ofproto_ct_*_zone_timeout_policy().
f31070e27e ofproto: Fix potential NULL dereference in ofproto_get_datapath_cap().
* Thu May 27 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-23
- Merging upstream branch-2.15 [RH git: ba3ba16d42]
Commit list:
8995d53112 dpif-netlink: Fix send of uninitialized memory in ct limit requests.
0c056891c2 ofproto-dpif: Fix use of uninitialized attributes of timeout policy.
121a67cad3 netdev-linux: Fix use of uninitialized LAG master name.
5f27ff1cfa ofp_actions: Fix set_mpls_tc formatting.
* Wed May 19 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-22
- Merging upstream branch-2.15 [RH git: 8b6b82c2ed]
Commit list:
e87adce83c dpif-netdev: Remove meter rate from the bucket size calculation.
* Sat May 15 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-21
- Merging upstream branch-2.15 [RH git: c7b9daa243]
Commit list:
a3ee3258e2 ovs-ofctl: Fix coredump when using "add-groups" command.
* Fri May 14 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-20
- Merging upstream branch-2.15 [RH git: 69559c9283]
Commit list:
c5d2a62750 raft: Transfer leadership before creating snapshots.
* Fri May 14 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-19
- Merging upstream branch-2.15 [RH git: 6aa50cbb89]
Commit list:
553d523929 ovsdb-cs: Consider all tables when computing expected cond seqno.
8d0aebcc49 dpdk: Use DPDK 20.11.1 release.
* Wed May 12 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-18
- Merge tag 'b6167fabb202faa025946348f514e369dba5853b' into fast-datapath-rhel-8 [RH git: 1cdc5555f9]
dpdk-20.11.1
* Tue May 11 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-17
- Merging upstream branch-2.15 [RH git: 120e2a5d87]
Commit list:
21452722b7 github: Fix up malformed /etc/hosts.
90d1984b99 doc: automake: Add support for sphinx 4.0.
38a8bed703 cirrus: Look up existing versions of python dependencies.
* Mon May 10 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-16
- Merging upstream branch-2.15 [RH git: dbd5501f48]
Commit list:
255c38c745 ofp-group: Use big-enough buffer in ofputil_format_group().
* Wed Apr 21 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-15
- Merging upstream branch-2.15 [RH git: 85f5aecb83]
Commit list:
f2c0744d2f ofproto/ofproto-dpif-sflow: Check sflow agent in case of race
* Tue Apr 20 2021 Aaron Conole <aconole@redhat.com> - 2.15.0-14
- Merging ct_state_fix [RH git: f847e4fac1]
Commit list:
09a2081067 netdev-offload-tc: Add support for ct_state flag rel.
423048a34f netdev-offload-tc: Add support for ct_state flags inv and rpl
* Tue Apr 20 2021 Aaron Conole <aconole@redhat.com> - 2.15.0-13
- ab157ef34d dpif: Fix use of uninitialized execute hash. b1fded0208 odp-util: Fix use of uninitialized erspan metadata. f473ee5689 dpif-netlink: Fix using uninitialized info.tc_modify_flow_deleted in out label. 2721606bd4 netdev-offload-tc: Probe for support for any of the ct_state flags. 091bc48d9c compat: Add ct_state flags definitions. [RH git: e4336ed96c]
* Tue Apr 20 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-12
- Fix typo in rh-mock-srpm [RH git: 85631264db]
Thanks fbl for reporting
* Wed Apr 14 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-11
- Merging upstream branch-2.15 [RH git: 71c33052b9]
Commit list:
1307e90e3f Add test cases for ingress_policing parameters
d184c6ce67 netdev-linux: correct unit of burst parameter
* Wed Apr 07 2021 Michael Santana <msantana@redhat.com> - 2.15.0-10
- Make changelog in spec file more informative [RH git: f6b2db4dd3]
This is done by adding the body of the commit message to the changelong.
The body is indented and has extra spacing separating each entry in the
changelog to make each one more discernible since now they could be
longer
Signed-off-by: Michael Santana <msantana@redhat.com>
* Thu Apr 01 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-9
- Merging upstream branch-2.15 [RH git: 504b67ec8d]
Commit list:
cab998e500 ipsec: Fix IPv6 default route support for Libreswan.
* Thu Apr 01 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-8
- Merging upstream branch-2.15 [RH git: 147a0970be]
Commit list:
b9ab7827ec ovsdb-idl: Mark arc sources as updated when destination is deleted.
c82d2e3fbc ovsdb-idl: Preserve references for deleted rows.
9a24ecbc2a ovsdb-idl.at: Make test outputs more predictable.
* Wed Mar 31 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-7
- Merging upstream branch-2.15 [RH git: cbb083630e]
Commit list:
8d71feb1b8 ovs-ofctl: Fix segfault due to bad meter n_bands.
* Wed Mar 31 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-6
- Merging upstream branch-2.15 [RH git: 221cf613d7]
Commit list:
3a716b1d9c dpif-netdev: Refactor and fix the buckets calculation.
73ece9c87b dpif-netdev: Fix the meter buckets overflow.
* Mon Mar 22 2021 Kevin Traynor <ktraynor@redhat.com> - 2.15.0-5
- dpif-netdev: Allow PMD auto load balance with cross-numa. [RH git: 47e2824210] (#1941673)
commit ec68a877db5bbfba49ddeb9929479c033420ea6b
Author: Kevin Traynor <ktraynor@redhat.com>
Date: Thu Mar 18 11:34:04 2021 +0000
dpif-netdev: Allow PMD auto load balance with cross-numa.
Previously auto load balance did not trigger a reassignment when
there was any cross-numa polling as an rxq could be polled from a
different numa after reassign and it could impact estimates.
In the case where there is only one numa with pmds available, the
same numa will always poll before and after reassignment, so estimates
are valid. Allow PMD auto load balance to trigger a reassignment in
this case.
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
Tested-by: Sunil Pai G <sunil.pai.g@intel.com>
Acked-by: Flavio Leitner <fbl@sysclose.org>
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1941673
Conflicts: Commit backported from upstream master branch. Commit not
present on upstream branch-2.15. Removed NEWS file update as could cause
future merge conflicts.
* Fri Mar 19 2021 Kevin Traynor <ktraynor@redhat.com> - 2.15.0-4
- redhat: Update docs for test builds [RH git: 7620c95a37]
* Tue Mar 16 2021 Open vSwitch CI <ovs-team@redhat.com> - 2.15.0-3
- Merging upstream branch-2.15 [RH git: c4fc969d7e]
Commit list:
d5dc16670e python: Send notifications after the transaction ends.
556e65e179 ovs-ctl: Allow recording hostname separately.
3982aee455 dpif-netdev: Fix crash when add dp flow without in_port field.
02096f1b37 Documentation: Fix DPDK qos example.
8f1dda3164 raft: Report disconnected in cluster/status if candidate retries election.
79e9749daa raft: Reintroduce jsonrpc inactivity probes.
2e84a4adb1 ovsdb-cs: Fix use-after-free for the request id.
d2c311dce8 connmgr: Check nullptr inside ofmonitor_report().
7307af6908 ovsdb-client: Fix needs-conversion when SERVER is explicitly specified.
2a7a635718 windows, tests: Modify service test.
9b48549c68 netdev-linux: Fix indentation.
861a9f3b4d ofproto-dpif-upcall: Fix ukey leak on udpif destroy.
339044c3cc ci: Use parallel build for distcheck.
38744b1bcb ofp-actions: Fix use-after-free while decoding RAW_ENCAP.
33abe6c052 Prepare for 2.15.1.
* Tue Feb 16 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-2
- build with ipsec support by default [RH git: 105482aee7]
* Mon Feb 15 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-1
- Use official 2.15.0 tarball [RH git: 9e107c6359]