# 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.16
%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.16.0
Release: 111%{?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.1
%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.16
Conflicts: openvswitch-dpdk < 2.16
Conflicts: openvswitch2.10
Conflicts: openvswitch2.11
Conflicts: openvswitch2.12
Conflicts: openvswitch2.13
Conflicts: openvswitch2.14
Conflicts: openvswitch2.15
# 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/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=1024 \
-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
* Mon Jan 09 2023 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-111
- Merging upstream branch-2.16 [RH git: c5211d025a]
Commit list:
ac9cce1afc cirrus: Update to use FreeBSD 12.4.
* Fri Jan 06 2023 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-110
- Merging upstream branch-2.16 [RH git: 01d0b688c8]
Commit list:
8d9177f6b1 dpif: Fix tunnel key set for IPv6 tunnels with SLOW_ACTION.
* Tue Jan 03 2023 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-109
- Merging upstream branch-2.16 [RH git: 53d801289d]
Commit list:
679b27378a ci: Fix overriding OPTS provided from the yml.
d5532f81e0 Prepare for 2.16.7.
68a258e86b Set release date for 2.16.6.
b4837701b1 hash: Fix compilation error on Fedora 34 with GCC 11 and -O0.
70d64054df lldp: Fix bugs when parsing malformed AutoAttach.
b345daf476 rculist: Use rculist_back_protected to access prev.
* Tue Dec 06 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-108
- net/i40e: fix jumbo frame Rx with X722 [RH git: 72e2959a72]
For NIC I40E_10G-10G_BASE_T_X722, when the port is configured with
link speed, it cannot receive jumbo frame packets.
Because it set maximum frame size failed when starts the port that
the port link status is still down.
This patch fix the error that starts the port will force set maximum
frame size.
Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
Cc: stable@dpdk.org
Signed-off-by: Jie Wang <jie1x.wang@intel.com>
Tested-by: Dukai Yuan <dukaix.yuan@intel.com>
(cherry picked from commit 719469f13b11dbdc921b74258f2d10bd1c5328d4)
* Thu Nov 24 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-107
- Merging upstream branch-2.16 [RH git: 16b6203b1f]
Commit list:
8ed497f6c1 rculist: Fix iteration macros.
76c935cbab learn: Fix parsing immediate value for a field match.
b68533b094 datapath-windows: Check the condition to reset pseudo header checksum on Rx side
* Mon Nov 14 2022 Michael Santana <msantana@redhat.com> - 2.16.0-106
- Merging 5488747abb netdev-offload-dpdk: Enhance the support of.. [RH git: b98298f07b]
Commit list:
5488747abb netdev-offload-dpdk: Enhance the support of tunnel pop action
a77c5f584a ci: Update meson requirement for DPDK.
Resolves conflicts:
.ci/linux-prepare.sh
* Wed Nov 02 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-105
- Merging upstream branch-2.16 [RH git: f0d9ff1c0c]
Commit list:
d28eff1755 netdev-linux: Fix inability to apply QoS on ports with custom qdiscs. (#2138339)
89e1a2c934 vswitch.xml: Fix the name of rstp-path-cost option.
df90768de3 bond: Fix crash while logging not yet enabled member.
* Sun Oct 30 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-104
- Merging upstream branch-2.16 [RH git: 02276d0fef]
Commit list:
91932ecfc1 unaligned: Correct the stats of packet_count and byte_count on Windows.
f9a04f7e6b tests: Fix filtering of whole-second durations.
68fc14a3fd github: Update versions of action dependencies.
3d38056adf Prepare for 2.16.6.
2b931cd850 Set release date for 2.16.5.
faeb53076c daemon-unix: Fix file descriptor leak when monitor restarts child.
fd59944808 vconn: Allow ECONNREFUSED in refuse connection test.
11cefbb5f6 dpdk: Use DPDK 20.11.6 release.
* Tue Oct 11 2022 Aaron Conole <aconole@redhat.com> - 2.16.0-103
- netdev-linux: Skip some internal kernel stats gathering. [RH git: ce553c99e2] (#2118848)
For netdev_linux_update_via_netlink(), hint to the kernel that
we do not need it to gather netlink internal stats when we want
to update the netlink flags, as those stats are not rendered
within OVS.
Background:
ovs-vswitchd can spend quite a bit of time blocked by the kernel
during netlink calls, especially systems with many cores. This
time is dominated by the kernel-side internal stats gathering
mechanism in netlink, specifically:
inet6_fill_link_af
inet6_fill_ifla6_attrs
__snmp6_fill_stats64
In Linux 4.4+, there exists a hint for netlink requests to not
trigger the ipv6 stats gathering mechanism, which greatly reduces
the amount of time that ovs-vswitchd is on CPU.
Testing and Results:
Tested booting 320 VM's and measuring OVS utilization with perf
record, then visualized into a flamegraph using a patched version
of ovs 2.14.2. Calls under bridge_run() seem to get hit the worst
by this issue.
Before bridge_run() == 11.3% of samples
After bridge_run() == 3.4% of samples
Note that there are at least two observed netlink calls under
bridge_run that are still kernel stats heavy after this patch:
Call 1:
bridge_run -> netdev_run -> route_table_run -> route_table_reset ->
ovs_router_insert -> ovs_router_insert__ -> get_src_addr ->
netdev_ger_addr_list -> netdev_linux_get_addr_list -> getifaddrs
Since the actual netlink call is coming from getifaddrs() in glibc,
fixing would likely involve either duplicating glibc code in ovs
source or patch glibc.
Call 2:
bridge_run -> iface_refresh_stats -> netdev_get_stats ->
netdev_linux_get_stats -> get_stats_via_netlink
This does use netlink based stats; however, it isn't immediately
clear if just dropping the stats from inet6_fill_link_af would
impact anything or not. Given this call is more intermittent, its
of lesser concern.
Acked-by: Greg Smith <gasmith@nutanix.com>
Signed-off-by: Jon Kohler <jon@nutanix.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2118848
* Tue Oct 04 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-102
- redhat: get the NVR from spec file directly [RH git: fe9ce6cd83]
Fixes: 339efe77c4c7 ("pkgtool: keep %{?dist} before added bz string")
* Wed Sep 21 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-101
- vhost: fix virtqueue use after free on NUMA reallocation [RH git: 4f951e94df]
[ upstream commit 0b2a2ca35037d6a5168f0832c11d9858b8ae946a ]
translate_ring_addresses (via numa_realloc) may change a virtio device and
virtio queue.
The virtqueue object must be refreshed before accessing the lock.
Fixes: 04c27cb673b9 ("vhost: fix unsafe vring addresses modifications")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
* Mon Sep 19 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-100
- Merging upstream branch-2.16 [RH git: 2a2df330a0]
Commit list:
3c5902fa24 python: idl: Fix idl.Row.__str__ method.
* Mon Sep 19 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-99
- Merging upstream branch-2.16 [RH git: 37cbf20177]
Commit list:
bae84a232f bond: Avoid deadlock while updating post recirculation rules.
58e4668a4f ofproto-dpif-upcall: Add debug commands to pause/resume revalidators.
6b1c9cd084 test-list: Fix false-positive build failure with GCC 12.
f459f9b90f cirrus: Upgrade to FreeBSD 13.1 image.
* Tue Sep 06 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-98
- Merging 73655c6414 version: 20.11.6 [RH git: 6bbfe5da8f]
Commit list:
73655c6414 version: 20.11.6
ef311075d2 net/mlx5: fix Rx queue recovery mechanism
089e01b375 vhost: fix header spanned across more than two descriptors
8fff8520f3 vhost: discard too small descriptor chains
28596f9ebc vhost: prevent async register
ff7d483aaa ethdev: fix RSS update when RSS is disabled
5a6aadbeec kni: fix build
01609d56cb net/virtio-user: fix socket non-blocking mode
c5dc4f6eb5 version: 20.11.6-rc1
3e61bd97d9 doc: add more instructions for running as non-root
aebfd0d746 net/mlx5: fix MPRQ pool registration
ca78fec981 net/hns3: support backplane media type
9a7f5c16d0 net/mlx5: destroy indirect actions on port stop
4a35f74c8a net/mlx5/linux: fix missed Rx packet stats
153cef1fbf net/mlx5: handle MPRQ incompatibility with external buffers
38f1f47db1 vdpa/mlx5: workaround var offset within page
55942e4c4d vdpa/mlx5: fix maximum number of virtqs
d702d0a0bd examples/link_status_interrupt: fix stats refresh rate
20f57bfbd7 gro: fix identifying fragmented packets
da29560252 service: fix lingering active status
edc80cd334 net/igc: support multi-process
dcf5529145 vhost: add some trailing newline in log messages
ecb5596929 net/vhost: fix deadlock on vring state change
e29fe1799c doc: fix readability in vhost guide
9d474a9565 net/netvsc: fix vmbus device reference in multi-process
04e6368ccd app/testpmd: fix supported RSS offload display
d3b24b9ea2 eventdev/eth_tx: fix queue delete
e00e29a3ef doc: fix grammar and parameters in l2fwd-crypto guide
d2384ccb95 doc: fix grammar and formatting in compressdev guide
0e387937c4 crypto/qat: fix DOCSIS crash
c24e314609 examples/fips_validation: handle empty payload
4985a6b051 baseband/acc100: remove prefix of internal file
85c979edf5 test/crypto: fix SNOW3G vector IV format
c263e1d047 test/crypto: fix ZUC vector IV format
c268809192 test/crypto: fix authentication IV for ZUC SGL
21f394a60d net/bnxt: fix setting forced speed
9722929756 net/bnxt: allow Tx only or Rx only
71234d08d2 net/bnxt: fix switch domain allocation
3f6c57b6a3 examples/distributor: fix distributor on Rx core
a035314c1e net/hns3: fix descriptors check with SVE
4fef76f744 test: check memory allocation for CRC
ef31c19b76 app/procinfo: show all non-owned ports
67350d412d test/hash: fix out of bound access
ed1bd718de rib: fix references for IPv6 implementation
eb88adfe30 raw/ioat: fix build when ioat dmadev enabled
40538d0b04 net/mlx5: fix stack buffer overflow in drop action
f371572a76 net/mlx5: fix RSS expansion for patterns with ICMP item
06375d5c71 net/mlx5: fix build with clang 14
35ab757a02 net/qede: fix build with GCC 12
d26e008757 net/ice/base: fix build with GCC 12
b9db1042c3 net/qede: fix build with GCC 13
ac50182289 net/octeontx: fix port close
c9f6c89d9a ci: enable C++ check for Arm and PPC
45eb4af456 config: fix C++ cross compiler for Arm and PPC
dbbdee4c12 malloc: fix allocation of almost hugepage size
a0f0c7d9c5 vhost/crypto: fix descriptor processing
8aa20e45c6 vhost/crypto: fix build with GCC 12
338b9cbeb4 vhost: fix missing enqueue pseudo-header calculation
bbba8ef0cd app/testpmd: revert MAC update in checksum forwarding
9b4779bfac net/txgbe: fix register polling
50c6ddd642 app/testpmd: fix bonding slave devices not released
35768b682b net/hns3: fix return value for unsupported tuple
ecb5bc37dd net/hns3: remove duplicate definition
5b5935a922 net/hns3: fix an unreasonable memset
1adbdac76c test/bonding: fix RSS test when disable RSS
da86d09eac net/bonding: fix RSS inconsistency between ports
a6ae86b161 eventdev/eth_tx: fix adapter creation
b39e829bac test/ipsec: fix performance test
8d49e2f6d1 test/crypto: fix cipher offset for ZUC
cb03983da4 crypto/scheduler: fix queue pair in scheduler failover
df7022dae8 test/ipsec: fix build with GCC 12
5dbe3a6dad common/cpt: fix build with GCC 12
0af3e2fef9 baseband/acc100: remove RTE prefix for internal macros
437389abd9 baseband/acc100: add protection for some negative scenario
34d98de156 baseband/acc100: update companion PF configure function
10cdabfc10 eal/x86: drop export of internal alignment macro
a6388c7595 trace: fix init with long file prefix
3582b40156 app/flow-perf: fix build with GCC 12
b089558de0 vdpa/ifc: fix build with GCC 12
03197727fa net/ice: fix build with GCC 12
cd10d48dcc net/mlx5: fix LRO validation in Rx setup
c352cf12f3 app/testpmd: fix port status of bonding slave device
93ca5fcf94 crypto/dpaa2_sec: fix crypto operation pointer
40b12a0561 net/mlx5: fix RSS hash types adjustment
145c5b453d net/bnxt: fix tunnel stateless offloads
ee29f5fa6b vhost: fix async access
c9a4ddc1e8 raw/ifpga: remove virtual devices on close
3590f93137 kni: use dedicated function to set MAC address
628b8d88c4 kni: use dedicated function to set random MAC address
59d08006aa app/testpmd: fix multicast address pool leak
9c1410c9b0 app/testpmd: fix packet segment allocation
641e8b889e doc: fix formatting and link in BPF library guide
8f68d6fdc6 bus/fslmc: fix VFIO setup
30c0b36a01 raw/ifpga: unregister interrupt on close
14a2726331 examples/dma: fix Tx drop statistics
6c17d92697 net/iavf: increase reset complete wait count
4d11ba721d net/ice: fix outer L4 checksum in scalar Rx
2d9b2c2190 doc: update matching versions in i40e guide
789223ef41 net/iavf: fix Rx queue interrupt setting
7ec8629367 net/iavf: fix mbuf release in multi-process
755ea301db net/iavf: fix queue start exception handling
5b55b9b1ea net/i40e: fix max frame size config at port level
d731c37a84 net/ice: fix MTU info for DCF
e2660944da net/ice/base: fix getting sched node from ID type
43eac062d1 net/ixgbe: add option for link up check on pin SDP3
e0658c3196 net/iavf: fix data path selection
133ec0ce1c kni: fix build with Linux 5.18
8048354bb7 net/mlx5: fix Tx recovery
27dda79b5d examples/vhost: fix crash when no VMDq
63005df100 vhost: fix deadlock when message handling failed
4daae0ccb8 doc: fix vhost multi-queue reconnection
ff874e673a net/bnxt: fix compatibility with some old firmwares
fa4da49c81 ethdev: fix port close in secondary process
ac86ba961e net/nfp: fix disabling VLAN stripping
ef9b301421 net/txgbe: fix max number of queues for SR-IOV
d096c590de ethdev: fix port state when stop
89f54969e7 net/memif: fix overwriting of head segment
711575cd7f net/bonding: fix mbuf fast free usage
bdf2967cd5 app/testpmd: do not poll stopped queues
f6060b1689 ethdev: prohibit polling stopped queue
b4f13e0fdb app/testpmd: fix metering and policing command for RFC4115
070f2b2b8a app/testpmd: replace hardcoded min mbuf number with macro
fe09e56cb5 ethdev: fix possible null pointer access
7386b53220 ethdev: fix memory leak in xstats telemetry
7d17ff9a81 net/axgbe: fix xstats get return if xstats is null
2b88b790c1 net/mvpp2: fix xstats get return if xstats is null
007dfe4102 net/ipn3ke: fix xstats get return if xstats is null
17467579f7 net/hns3: fix xstats get return if xstats is null
eb7b05b5de ethdev: clarify null location case in xstats get
cf28773c93 app/testpmd: remove useless pointer checks
9463f695d7 app/testpmd: perform SW IP checksum for GRO/GSO packets
3b918bc711 doc: add missing auth algo for IPsec example
5e4a008e4e drivers/crypto: fix warnings for OpenSSL version
387d4b3ca7 test/crypto: fix null check for ZUC authentication
b9b994dcf2 examples/ipsec-secgw: fix promiscuous mode option
78059ea5a5 examples/ipsec-secgw: fix uninitialized memory access
b4797829e7 devtools: fix null test for NUMA systems
1d5a0d3379 doc: fix API index Markdown syntax
de28f76399 mbuf: dump outer VLAN
52822a9dd8 rib: fix traversal with /32 route
3267a37602 acl: fix rules with 8-byte field size
20ee31283d test: avoid hang if queues are full and Tx fails
875e84259c eal/freebsd: fix use of newer cpuset macros
8d8739b082 test/ring: remove excessive inlining
597718802f examples/l3fwd: fix scalar LPM
705be73150 eal/x86: fix unaligned access for small memcpy
ca4a019b45 net/bnxt: fix freeing VNIC filters
03a539bf17 net/bnxt: recheck FW readiness if in reset process
c105904aaa net/bnxt: fix link status when port is stopped
f5cee4b2ca net/bnxt: force PHY update on certain configurations
214e9d80be net/bnxt: fix speed autonegotiation
adb37db48f net/bnxt: avoid unnecessary endianness conversion
167d0cbbfd net/bnxt: fix ring group on Rx restart
c69db7f7f7 net/bnxt: fix Rx configuration
7ded422e25 net/bnxt: fix device capability reporting
ae5516cd7a net/bnxt: remove unused macro
1dc7ed3e26 net/bnxt: fix reordering in NEON Rx
472844ca06 app/testpmd: check statistics query before printing
c72194a754 net/hns3: remove unnecessary RSS switch
21c2dd6011 net/hns3: remove redundant RSS tuple field
7bce9bbfb8 net/hns3: fix rollback on RSS hash update
9bf4eb4b1a net/hns3: fix RSS disable
4997f02390 net/bonding: fix slave stop and remove on port close
5f9aca077f net/bonding: fix stopping non-active slaves
d18ed4ab86 doc: update matching versions in ice guide
ad18b9f42d net/dpaa: fix event queue detach
6111eb8b88 vdpa/mlx5: fix dead loop when process interrupted
e8971ff299 vdpa/mlx5: fix interrupt trash that leads to crash
3763af6f3e vhost: fix missing virtqueue lock protection
45f14afcf9 net/vhost: fix TSO feature default disablement
15d4339cfd net/virtio: restore some optimisations with AVX512
e4729f10d0 net/vhost: fix access to freed memory
730c2afc40 net/cxgbe: fix Tx queue stuck with mbuf chain coalescing
063ce7b91c net/cxgbe: fix port ID in Rx mbuf
5e7c16ee76 net/bonding: fix RSS key config with extended key length
72144a630e net/nfp: remove unneeded header inclusion
23bfe0031f test/hash: report non HTM numbers for single thread
c29b05c216 examples/l2fwd-crypto: fix stats refresh rate
25165ac241 common/dpaax: fix short MAC-I IV calculation for ZUC
6b38d08f0c crypto/dpaa2_sec: fix operation status for simple FD
45650937b4 crypto/dpaa_sec: fix secondary process probing
faf1c3baa8 crypto/dpaa2_sec: fix buffer pool ID check
2a680bbbc7 crypto/dpaa2_sec: fix fle buffer leak
8856e5ecd7 crypto/dpaa_sec: fix digest size
c1d1c4fdc3 eal: fix C++ include for device event and DMA
ae1ed789dc mem: skip attaching external memory in secondary process
072f7ee470 test/table: fix buffer overflow on lpm entry
c4d51b3f05 net/mlx5: fix Rx/Tx stats concurrency
8a2529276a net/mlx5: fix GTP handling in header modify action
e8995a2540 net/mlx5: fix Tx when inlining is impossible
a61bd9df25 net/netvsc: fix calculation of checksums based on mbuf flag
4d6996d25a net/i40e: populate error in flow director parser
236835c94f net/iavf: fix HW ring scan method selection
faca682333 examples/bond: fix invalid use of trylock
9526e5c4a5 eal/windows: add missing C++ include guards
5888f84ccd eal/windows: fix data race when creating threads
3a9281f20e crypto/ipsec_mb: fix GMAC parameters setting
0fb580b1c0 crypto/ipsec_mb: fix length and offset settings
abf68ccc8b version: 20.11.5
5ae73012c8 dpaa2: fix build with RTE_LIBRTE_IEEE1588
652658269f pmdinfogen: fix compilation with Clang 3.4.2 on CentOS 7
9b390c4866 Revert "regexdev: fix section attribute of symbols"
e0c907be84 net/cxgbe: remove useless address check
576842a59a version: 20.11.5-rc1
fb2e2836bf cryptodev: add backward-compatible enum
5cb14d7436 raw/ifpga: fix build with optimization
c93d1201cc doc: fix missing note on UIO module in Linux guide
5bc5bab0dc doc: replace characters for (R) symbol in Linux guide
1d25333ce0 net/mlx5: fix port matching in sample flow rule
6b92223d98 net/qede: fix Rx bulk mbuf allocation
540401728f net/octeontx2: fix flow MCAM priority management
975469beaa cryptodev: fix clang C++ include
b16e4220e9 compressdev: fix missing space in log macro
eca0c20f67 eal/freebsd: add missing C++ include guards
dd8a852944 examples/l3fwd: fix buffer overflow in Tx
63f7788b20 app/testpmd: fix show RSS RETA on Windows
6fc2a8d499 bpf: fix build with some libpcap version on FreeBSD
63f156544d net/mlx5: fix sample flow action on trusted device
8c3269273e vhost: fix FD leak with inflight messages
9bac6ad862 vhost: fix queue number check when setting inflight FD
cc761b30f0 net/mlx5: fix initial link status detection
76cfc69e0e net/mlx5: fix link status change detection
c885a4871f common/mlx5: add Netlink event helpers
67cb024a79 raw/ifpga: fix interrupt handle allocation
5500586d7b examples/l3fwd: make Rx and Tx queue size configurable
920e858767 examples/l3fwd: share queue size variables
d4b61e1bc9 net/iavf: fix potential out-of-bounds access
4c3ee24406 net/mlx5: fix MPLS/GRE Verbs spec ordering
5beedd0836 net/mlx5: remove unused reference counter
6979a661df net/mlx5: fix modify port action validation
093fbd470b net/mlx5: fix NIC egress flow mismatch in switchdev mode
42e5440e3f net/mlx5: fix shared RSS destroy
cfcd67541c net/mlx5: fix next protocol RSS expansion
f26a66edd5 net/mlx5: fix inet IPIP protocol type
5e42591829 net/bnxt: fix null dereference in session cleanup
be45c834db ethdev: fix doxygen comments for device info struct
64452c878f regexdev: fix section attribute of symbols
2087ed6ae6 examples/kni: add missing trailing newline in log
9b1f77b32c examples/flow_classify: fix failure message
2ab2cfb2e8 examples/distributor: reduce Tx queue number to 1
5a62d76f89 app/pdump: abort on multi-core capture limit
40252a4876 raw/ifpga: fix monitor thread
3e06257cf5 raw/ifpga: fix variable initialization in probing
a7b346dd4d examples/vhost: fix launch with physical port
76e812e3a5 net/ice: fix Tx offload path choice
ee2cc7d349 net/mlx5: fix matcher priority with ICMP or ICMPv6
83781fe25a net/mlx5: fix GRE item translation in Verbs
fa1579b29f doc: fix typos and punctuation in flow API guide
910925bc31 net/kni: fix config initialization
fbc5f6b5fa net/txgbe: fix queue statistics mapping
63030f8b7b net/iavf: fix function pointer in multi-process
f0a47837dd net/ixgbe: fix FSP check for X550EM devices
38dee9e84a net/hns3: increase time waiting for PF reset completion
b27dbae232 net/hns3: fix VF RSS TC mode entry
ff48dd55d6 net/hns3: fix RSS TC mode entry
af3bd943ee net/hns3: remove duplicate macro definition
52e0989cce compressdev: fix socket ID type
6b75eeccec app/compress-perf: fix number of queue pairs to setup
9df88bfefe app/compress-perf: fix socket ID type during init
c30254b5da app/compress-perf: optimize operations pool allocation
a166f7044b app/compress-perf: fix cycle count operations allocation
e4ca3c9295 net/mlx5: workaround ASO memory region creation
14849b1fa2 examples/qos_sched: fix compile failure
eb0f31af87 net/mlx5: fix sibling device config check
950554a680 common/octeontx2: update mailbox version to 0xb
8d6bbbc514 kni: fix freeing order in device release
3cb68884dd eal/linux: fix illegal memory access in uevent handler
240dc513c2 distributor: fix potential overflow
ffc6e4ea38 efd: fix uninitialized structure
5cd3c071a3 test/efd: fix sockets mask size
3fc564b2d0 app/testpmd: fix build without drivers
2d1c255f30 net/i40e: fix unintentional integer overflow
073988b862 doc: correct name of BlueField-2 in mlx5 guide
dc599f85f7 doc: replace broken links in mlx guides
d07cbead1d doc: remove obsolete vector Tx explanations from mlx5 guide
15f171576e common/mlx5: fix queue pair ack timeout configuration
b94aa34547 net/ena: fix checksum flag for L4
c73e88da70 net/ena: check memory BAR before initializing LLQ
abbaa0b9d1 net/ena: fix meta descriptor DF flag setup
5bb3ff7b47 net/ena: fix reset reason being overwritten
b1d55a40d6 net/ena: skip timer if reset is triggered
39f6adbf54 net/ena: remove unused offload variables
d609358e18 net/ena: remove unused enumeration
2c0325226c net/txgbe: fix debug logs
a274e8922f app/testpmd: fix GENEVE parsing in checksum mode
8d5484e7a1 net/mlx5: fix ineffective metadata argument adjustment
1b7f6d2ad9 net/i40e: enable maximum frame size at port level
7eaca36d9c net/ice: fix overwriting of LSE bit by DCF
b1b1cd71e9 net/af_xdp: ensure socket is deleted on Rx queue setup error
92f88226d9 net/af_xdp: add missing trailing newline in logs
33f2e37561 vhost: fix unsafe vring addresses modifications
37936eb9ef vhost: fix field naming in guest page struct
85ec94182b app/testpmd: check starting port is not in bonding
f85bba14cc net/ixgbe: reset security context pointer on close
3a4dd2649f net/nfb: fix multicast/promiscuous mode switching
aa27fa7968 net/nfb: fix array indexes in deinit functions
92d7cb4446 crypto/ipsec_mb: fix ZUC operation overwrite
4bc8222a12 crypto/ipsec_mb: fix ZUC authentication verify
2eb55ed024 crypto/virtio: fix out-of-bounds access
dceebf9eeb baseband/acc100: avoid out-of-bounds access
ced8638611 examples/l2fwd-crypto: fix port mask overflow
9d1d70c9c8 doc: fix FIPS guide
7b5609a5a0 cryptodev: fix RSA key type name
a7aa7d8812 examples/qos_sched: fix core mask overflow
b56b636c57 dma/idxd: configure maximum batch size to high value
26bebaab55 ethdev: fix cast for C++ compatibility
20baa98d62 vhost: add missing C++ guards
581dea537e kni: add missing C++ guards
9c5dd18e18 eventdev: add missing C++ guards
f85ebc37b1 compressdev: add missing C++ guards
4fd5a95b49 acl: add missing C++ guards
8f9c5d8497 metrics: add missing C++ guards
c840104e23 ethdev: add missing C++ guards
f749277d08 telemetry: add missing C++ guards
2c2d7d7af1 eal: add missing C++ guards
5d76457095 eventdev/eth_tx: fix queue add error code
40f28803d5 common/mlx5: fix error handling in multi-class probe
e08edd8ac6 net/mlx5: fix memory socket selection in ASO management
b6b775f223 net/mlx5: fix MPRQ stride devargs adjustment
0d9346a115 net/mlx5: improve stride parameter names
3adcf39013 common/mlx5: add minimum WQE size for striding RQ
d8fadb1f7e net/nfp: free HW rings memzone on queue release
8a78f023b7 config: add arch define for Arm
c32be7490e net/octeontx2:: fix base rule merge
2bc455ec39 kni: update kernel API to set random MAC address
105b5a4130 raw/ntb: clear all valid doorbell bits on init
cf9be04290 crypto/dpaax_sec: fix auth/cipher xform chain checks
bdd4b322cf compress/octeontx: fix null pointer dereference
045d6f7c38 net/bnxt: fix ring calculation for representors
c9eb38cd06 net/mlx5: fix inline length for multi-segment TSO
c45f526d8a net/mlx5: fix committed bucket size
64d94d1e8f net/ice: fix build with 16-byte Rx descriptor
dc92390efe net/ice/base: add profile validation on switch filter
da0833ea1f net/iavf: count continuous DD bits for Arm in flex Rx
3152179d55 net/iavf: count continuous DD bits for Arm
813b5994cf net/sfc: demand Tx fast free offload on EF10 simple datapath
964a78f4be net/sfc: do not push fast free offload to default TxQ config
3915e71a30 net/memif: remove pointer deference before null check
468cbff3fe vfio: cleanup the multiprocess sync handle
184d1f7ae0 ipc: end multiprocess thread during cleanup
b8e818df2a test/mbuf: fix mbuf data content check
32d2194f4f app/fib: fix division by zero
1b84be5c00 mem: check allocation in dynamic hugepage init
c7bd2f4354 vhost: fix C++ include
b6dd9d6b2c table: fix C++ include
97f298e315 ipsec: fix C++ include
04eb6cecc9 graph: fix C++ include
48735e1e43 eventdev: fix C++ include
ae0613e133 eal: fix C++ include
7cabaf23be stack: fix stubs header export
c53cb87b51 regex/mlx5: fix memory allocation check
0e63db2022 vhost: fix guest to host physical address mapping
58767a90f4 app/testpmd: fix stack overflow for EEPROM display
aea2c5be01 net/tap: fix to populate FDs in secondary process
eea12b2874 ethdev: add internal function to device struct from name
b040eaa335 app/testpmd: fix bonding mode set
c4a4ba788f net/bonding: fix reference count on mbufs
78ee1995c9 net/bonding: fix promiscuous and allmulticast state
8189e99b3a net/ixgbe: check filter init failure
061f2416ab net/hns3: delete duplicated RSS type
3f03bc5d20 net/hns3: fix operating queue when TCAM table is invalid
b65114d8a3 net/hns3: fix insecure way to query MAC statistics
73d4297244 net/hns3: fix RSS key with null
edfefb90ca net/hns3: fix max packet size rollback in PF
463673460a net/enic: fix dereference before null check
cafb0cbdb4 eal/windows: remove useless C++ include guard
e9734a61da net/dpaa2: remove useless C++ include guard
6506a4b485 net/cxgbe: remove useless C++ include guard
8650a0c17c bus/dpaa: fix C++ include guard
d3f8892862 test/mem: fix error check
2da6c30247 eal/windows: fix error code for not supported API
19746aaeab ring: fix overflow in memory size calculation
6e47aebf24 ring: fix error code when creating ring
6c4c4398a4 ring: optimize corner case for enqueue/dequeue
25f563d388 doc: fix KNI PMD name typo
1b61157ec9 kni: fix ioctl signature
04a29bf8a8 build: remove deprecated Meson functions
3215df7480 build: fix warning about using -Wextra flag
14421740c4 build: fix warnings when running external commands
29649b4590 doc: update matching versions in ice guide
12eaf885f5 net/mlx5: reject jump to root table
a133cd9add net/mlx5: fix mark enabling for Rx
d8090fd8c4 net/virtio-user: check FD flags getting failure
ac0c52244d net/virtio-user: fix resource leak on probing failure
61144dff74 vdpa/ifc: fix log info mismatch
9605f71afa net/virtio: fix Tx queue 0 overriden by queue 128
16ba91d4f3 vdpa/mlx5: workaround queue stop with traffic
f3cd5320d8 net/hns3: fix using enum as boolean
90ada5e388 net/bonding: fix RSS with early configure
1ed391676f net/memif: remove unnecessary Rx interrupt stub
1044516947 raw/ifpga/base: fix port feature ID
edea3f39dd net/bnxt: fix VF resource allocation strategy
3e0a066400 net/bnxt: fix memzone allocation per VNIC
7ee6d43e5e net/bnxt: handle ring cleanup in case of error
e7f6c7629a net/bnxt: fix check for autoneg enablement
f05952e7bf raw/ifpga: fix thread closing
ab9cde2e72 net/ice: fix link up when starting device
06665489e6 raw/ifpga/base: fix SPI transaction
ff474dde7b net/sfc: validate queue span when parsing flow action RSS
238f205dd5 net/nfp: remove useless range checks
e977e8ef8e net/nfp: remove duplicated check when setting MAC address
f06710409f net/mlx5: fix maximum packet headers size for TSO
1d10966a22 net/dpaa2: fix timestamping for IEEE1588
bab9d520cb net/dpaa2: fix unregistering interrupt handler
b5b90b6ea3 net/cxgbe: fix dangling pointer by mailbox access rework
a5f8244a5f app/testpmd: fix external buffer allocation
a2f86fa32f app/testpmd: fix dereference before null check
239f57b000 net/bonding: fix mode type mismatch
8b6401daed net/af_xdp: fix build with -Wunused-function
a5018b1aa6 net/axgbe: use PCI root complex device to distinguish device
a26506bce1 app/testpmd: fix Tx scheduling interval
8d0afb3f68 net/bonding: fix offloading configuration
e93a5f4479 net/bnxt: check VF representor pointer before access
31080d4c62 net/bnxt: fix xstats query
52d79e8244 net/bnxt: fix PAM4 mask setting
766d7701ba net/bnxt: fix handling of VF configuration change
ef80ca417e net/bnxt: get maximum supported multicast filters count
893c784eef net/bnxt: add null check for mark table
5889a24544 net/bnxt: cap maximum number of unicast MAC addresses
fa8cc81989 net/bnxt: fix restoring VLAN filtering after recovery
7275db81e8 net/bnxt: restore RSS configuration after reset recovery
c612a4bbf3 net/bnxt: fix queue stop operation
3ea46b608a net/bnxt: fix multicast MAC restore during reset recovery
5ee96222ab net/bnxt: fix multicast address set
e2c9b9902d net/bnxt: fix xstats names query overrun
66aa6f9467 net/mlx5: relax headroom assertion
0374774e88 net/mlx5: fix GRE protocol type translation for Verbs
a5edf85175 net/mlx5: fix RSS expansion with explicit next protocol
1c64873e8d net/mlx5: fix assertion on flags set in packet mbuf
24e61aa014 net/ixgbe: add vector Rx parameter check
a02fbcde75 net/ice: fix Tx checksum offload
8577641fca net/ice: track DCF state of PF
f7b02e1127 net/ice: fix Tx checksum offload capability
793c820620 net/qede: fix redundant condition in debug code
4ee719c72e devtools: fix comment detection in forbidden token check
33a5d155d0 examples/ipsec-secgw: fix default flow rule creation
dff4380aae examples/ipsec-secgw: fix eventdev start sequence
19524c9cb1 examples/l3fwd: fix Rx burst size for event mode
6bfaf85e5b doc: fix dlb2 guide
eb5a21b54a eal/linux: log hugepage create errors with filename
0602aa0fd4 dma/idxd: fix paths to driver sysfs directory
4548934a6d bus/ifpga: remove useless check while browsing devices
7c66f7f679 doc: remove dependency on findutils on FreeBSD
cf1a7f66a9 maintainers: update for stable branches
269489433c doc: replace deprecated distutils version parsing
0b5a6c7b32 fix spelling in comments and strings
b05d183a7f config/ppc: fix build with GCC >= 10
4d47f37431 version: 20.11.4
ebdc786158 common/qat: revert fix queut pairs number
35fb9c4b93 build: disable Windows warnings for insecure funtions
395bb64d1b kni: fix build for SLES15-SP3
c3e1d196e5 table: fix missing headers on ARM64
04d8f7c496 eal/common: exclude code unsupported on Windows
bab4318634 version: 20.11.4-rc1
16fd24c265 raw/octeontx2_ep: remove unused variable
66b0d3a2f4 net/mlx5: fix flow shared age action reference counting
930ac3db1a crypto/octeontx2: fix lookaside IPsec IPv6
67992959ee baseband/acc100: fix 4GUL outbound size
86cbc9786f net/mlx5: fix RSS expansion with EtherType
460136f414 net/mlx5: fix RSS expansion for L2/L3 VXLAN
fa62ff901f net/mlx5: fix RSS expansion traversal over next nodes
8ab211780c net/mlx5: fix RSS expansion for explicit graph node
519154bdd5 net/mlx5: fix RSS expansion for inner tunnel VLAN
d94b467435 doc: fix a typo in EAL guide
ab2ec45d52 net/mlx5: fix devargs validation for multi-class probing
368163da05 doc: fix typo in coding style
951ab7b608 doc: capitalise PMD
cea3552ab7 fix PMD wording
ed9a13b0fa remove repeated 'the' in the code
769cd1d909 net/mlx5: fix GENEVE and VXLAN-GPE flow item matching
62f37b7a5b net/mlx5: fix GRE flow item matching
22dc2d42b2 app/testpmd: fix hexadecimal parser with odd length
585669bf46 doc: fix memif driver acronyms
fed3abcad0 net/memif: allow stopping and closing device
f489ca40fb net/mlx5: fix multi-segment packet wraparound
14f47af82f net/mlx5: fix flow mark with sampling and metering
03f92022bb net/mlx4: fix empty Ethernet spec with VLAN
acf010a8e5 net/mlx5: fix metadata and meter split shared tag
f803c82df7 net/bnxt: fix autoneg on PAM4 links
401a4bc91e doc: remove repeated repeated words
62b23da816 examples/ptpclient: fix delay request message
e8e74b5804 doc: strip build artefacts for examples file list
47e5dbb3a6 mbuf: fix dump of dynamic fields and flags
07ab7b7d9a kni: restrict bifurcated device support
1f3b7af315 drivers/crypto: fix IPsec TTL decrement option
2aa2b0f1e5 crypto/ipsec_mb: fix cipher key setting
7695cdb5e2 common/mlx5: fix user mode register access attribute
5045cabbec net/mlx5: fix MPLS tunnel outer layer overwrite
c897e773f9 net/mlx5: fix partial inline of fine grain packets
81836e2c89 app/testpmd: fix tunnel offload validation
47c838de7c net/failsafe: fix secondary process probe
14bb775f70 net/bnxt: fix Rx next consumer index in mbuf alloc fail
b0ecc5765f net/mlx5: fix mutex unlock in Tx packet pacing cleanup
820f954788 net/hns3: optimize Tx performance by mbuf fast free
e628b925e5 net/mlx5: fix GRE protocol type translation
b831cc80b2 net/mlx5: fix GENEVE protocol type translation
8708f00342 net/mlx5: fix RSS expansion scheme for GRE header
3d4d2600f3 net/mlx5: add Ethernet header to GENEVE RSS expansion
5b82df45c1 net/mlx5: fix VXLAN-GPE next protocol translation
01029bb978 vdpa/mlx5: fix mkey creation check
0da7f8f9f2 doc: fix Doxygen examples build on FreeBSD
d3a4e55ca1 app/flow-perf: fix parsing of invalid option
9827b33ea1 examples/ntb: fix build dependency
e8a8503d42 config/x86: skip GNU binutils bug check for LLVM
07e1e6e798 fix spelling in comments and doxygen
1967878181 examples/multi_process: fix Rx packets distribution
75af4401a4 examples/l3fwd-power: fix early shutdown
3a8dc3e8dc test/crypto: remove unnecessary stats retrieval
cd50e6f438 common/cpt: fix KASUMI input length
bc4695a138 test/crypto: fix missing return checks
fa912be2c5 test/crypto: fix data lengths
139df45885 test/crypto: skip plain text compare for null cipher
985e9324d9 event/dlb2: fix delayed pop test in selftest
4f17d46380 eventdev/eth_tx: fix queue delete logic
0d266c9fe9 examples/performance-thread: remove unused hits count
9a514a21d8 test/distributor: remove unused counter
7db7d2e658 net/vmxnet3: fix build with clang 13
0c8aa41249 net/qede/base: remove unused message size
e72e4962d5 net/nfp: remove unused message length
6fdb54e73f net/liquidio: remove unused counter
415c636992 net/bnxt: remove some unused variables
ae0fe7d799 event/sw: remove unused inflight events count
22ebe5378e bus/fslmc: remove unused device count
14e420ac85 net/octeontx: remove unused packet length
0a475878ef net/hinic/base: remove some unused variables
878f71050e test/red: fix typo in test description
0ed3a7333f ethdev: fix typos
5d3a7aab19 app/testpmd: fix DCB in VT configuration
40588e9f6f net/mlx5: fix Tx scheduling check
712ace31c5 net/iavf: fix pointer of meta data
2f5b7df1e4 net/i40e: fix risk in descriptor read in scalar Rx
fdb91c91e8 doc: describe timestamp limitations for mlx5
7ae03fc171 common/mlx5: fix build for zero-length headroom array
6d132c0f73 net/mlx5: fix RETA update without stopping device
2a9a0c9d63 net/mlx5: fix tag ID conflict with sample action
5744208d62 net/mlx5: fix tunnel offload validation
180fa49727 power: fix build with clang 13
3088dda469 net/mlx5: workaround MR creation for flow counter
2e7f6f9336 vdpa/mlx5: workaround guest MR registrations
4f691f2c97 vdpa/mlx5: workaround dirty bitmap MR creation
6108eff3be common/mlx5: create wrapped MR
2991d7abc2 common/mlx5: glue MR registration with IOVA
dfae8dc0ec net/virtio: fix Tx checksum for tunnel packets
5de5f15c5b net/bnxt: fix VLAN indication in Rx mbuf
8ef3bed388 net/mlx5: do not close stdin on error
b99528eb2d net/nfp: cancel delayed LSC work in port close logic
463cd893e2 net/af_packet: fix ignoring full ring on Tx
ce48d01167 net/ixgbe: fix port initialization if MTU config fails
6c0517f529 net/iavf: fix multi-process shared data
1d5d3847af net/hns3: fix interrupt vector freeing
5ff9c28131 net/hns3: fix residual MAC after setting default MAC
dbf27ac1e7 net/i40e: fix i40evf device initialization
89a78fde25 app/testpmd: remove unused header file
4fd42c0a44 net/hns3: simplify queue DMA address arithmetic
480eecce54 interrupt: fix request notifier interrupt processing
e963a3650b vfio: set errno on unsupported OS
1fd6329364 vfio: fix FreeBSD documentation
07e02c596a vfio: fix FreeBSD clear group stub
d2a21b149a kni: check error code of allmulticast mode switch
e5f58ae926 net/mlx5: remove duplicated reference of Tx doorbell
19c487a7cd common/mlx5: fix UAR allocation diagnostics messages
f368f1bbb5 common/mlx5: remove unreachable branch in UAR allocation
87e20726cc app/testpmd: remove double dependency on bitrate lib
3be19a63d4 common/sfc_efx: fix debug compilation control
ac08c1ba97 ethdev: fix crash on owner delete
5ec9795c68 net/i40e: fix forward outer IPv6 VXLAN
b2d0ed96d5 net/mlx5: fix Rx queue memory allocation return value
63ba41d7ee net/mlx5: fix Altivec Rx
6385edbe1c common/mlx5: fix flex parser DevX creation routine
2f2c2b5b7e common/qat: fix queue pairs number
b332923763 examples/ipsec-secgw: move global array from header
01f69bbd74 test/compress-perf: remove unused variable
c10c8edfa4 examples/fips_validation: fix device start
13dc08c1ca crypto/qat: fix uncleared cookies after operation
7bacbc5eb3 crypto/qat: fix status in RSA decryption
9120474fcc test/crypto: fix max length for raw data path
d5b7c084fc net/txgbe: fix packet statistics
9e127ea969 net/hns3: unregister MP action on close for secondary
5bf8d5b2f7 net/hns3: fix multi-process action register and unregister
69212ae06b net/hns3: fix secondary process reference count
9488e784fc net/ice: fix flow redirect
e3632cfa14 net/ice: save rule on switch filter creation
4c5c31b120 net/enic: avoid error message when no advanced filtering
5927fdf154 net/bnxt: fix firmware version query
6b4e43eaaa net/i40e: fix 32-bit build
8d4494154e net/hns3: fix mailbox communication with HW
c4d20e838e net/virtio: fix link update in speed feature
1c5f0499f5 net/mlx5: fix RSS RETA update
223d61646c app/testpmd: fix RSS type display
6a4ec07e26 app/testpmd: fix RSS key length
a5e3534481 doc: update NIC feature matrix for bnxt
e4082697ba net/iavf: fix shared data in multi-process
0e28edc58a net/ice: fix function pointer in multi-process
8c4227ddae mem: fix dynamic hugepage mapping in container
e324ec6bc4 malloc: fix allocation with unknown socket ID
394952356a eal/linux: fix uevent message parsing
558953d965 eal/linux: remove unused variable for socket memory
2af8cf0bae eal: fix device iterator when no bus is selected
d2f33a2cbe test/mbuf: fix access to freed memory
d43921f4af test/cmdline: fix memory leak
7cc4ec4aba eal/freebsd: fix IOVA mode selection
e306e6d9b3 test: fix ring PMD initialisation
d6f5ee8904 net/i40evf: extend the polling times of vf reset
6b33455411 net/i40e: fix buffer size alignment
982e2c63d1 common/mlx5: fix physical port name recognition
e567087a43 eal/windows: fix IOVA mode detection and handling
4272080bb1 rib: fix IPv6 depth mask
9902d7dcb9 lpm6: fix buffer overflow
1729b2c337 hash: fix Doxygen comment of Toeplitz file
f1b1f1186a eal: reset lcore task callback and argument
0cab294bc0 eal/x86: avoid cast-align warning in memcpy functions
b91dcac711 mbuf: avoid cast-align warning in data offset macro
11895408d9 net: avoid cast-align warning in VLAN insert function
0f1d36a746 doc: fix default mempool option in guides
d60f7f0105 usertools/pmdinfo: fix plugin auto scan
a0347e7e7e pipeline: fix instruction label check
ff1898349e test/event: fix timer adapter creation test
1057ce433c app/testpmd: fix packet burst spreading stats
3d0f003632 ethdev: fix PCI device release in secondary process
e880b1c163 net/virtio: fix avail descriptor ID
04bd8e7fcb net/virtio: fix indirect descriptor reconnection
abd207e5fa vhost: add sanity check on inflight last index
2074d20561 vdpa/mlx5: retry VAR allocation during vDPA restart
3713e9c370 vdpa/mlx5: workaround FW first completion in start
d8ce32c71e net/virtio: fix check scatter on all Rx queues
136944a2cb net/mlx5: close tools socket with last device
8ce5c675a8 net/mlx5: fix Rx queue resource cleanup
829fbd7252 devtools: fix letter case check in commit title
74fb264b05 bpf: allow self-xor operation
edb5fcae31 eventdev/eth_rx: fix WRR buffer overrun
f7fa666eec app/eventdev: fix terminal colour after control-c exit
d95c7a669d mbuf: fix reset on mbuf free
2eb840f1ae test/hash: fix buffer overflow with jhash
869a35948e ethdev: forbid closing started device
c95ffe5671 net/i40e: fix risk in descriptor read in NEON Rx
dd5334c4ac net/ice: fix generic build on FreeBSD
6e46115943 net/mlx5: support more tunnel types
8a28600abc app/testpmd: add tunnel types
73250dca43 app/testpmd: fix access to DSCP table entries
5d3a512994 net/ena: advertise scattered Rx capability
84a35ce308 net/ena: fix per-queue offload capabilities
d1ccc7019d net/ena: fix offload capabilities verification
ac9f3ffd5d net: fix aliasing in checksum computation
44cd82b519 doc: fix emulated device names in e1000 guide
6d32420ce9 net/ice: fix deadlock on flow redirect
137ea50f60 drivers/net: remove queue xstats auto-fill flag
d19e3bea52 net/txgbe: fix to get interrupt status
349ac4cf40 app/testpmd: fix hex string parser in flow commands
1edd186c4f net/softnic: fix useless address check
2dcdba115e net/enic: fix filter mode detection
8cb630d9e4 net/mlx5: fix tunneling support query
15242b3f60 net/mlx5: fix software parsing support query
7379aa7aa8 net/i40e/base: fix using checksum before check
610b598aa0 net/i40e/base: fix potentially uninitialized variables
c1977a22f6 net/i40e/base: fix function name in comments
a02cb9ff21 net/i40e/base: fix AOC media type
abc841874f net/i40e/base: fix update link data for X722
7dcf2e3db4 net/i40e/base: fix PF reset
37817b554a net/i40e/base: fix PHY identifiers for 2.5G and 5G adapters
63e0206bdb net/ixgbe: fix queue release
e69e21048d net/i40e: fix Rx packet statistics
ce17996fc6 net/sfc: update comment about representor support
f74eaa5869 net/sfc: free MAE lock once switch domain is assigned
b391213ff8 app/testpmd: retain all original dev conf when config DCB
710a47c4c6 net/bonding: fix RSS key length
e0d9039f2e net/bonding: fix dedicated queue mode in vector burst
e788cc2006 app/testpmd: fix txonly forwarding
4a2204af7b app/testpmd: update forward engine beginning
4370d53fb5 net/af_xdp: disable secondary process support
6ec9dcdfed test/bpf: fix undefined behavior with clang
939685eaec cryptodev: fix multi-segment raw vector processing
ca9b74af25 app/crypto-perf: fix AAD template copy overrun
386085df05 mempool: deprecate unused physical page defines
3446f6d200 mbuf: enforce no option for dynamic fields and flags
a8590be363 test/atomic: fix 128-bit atomic test with many cores
2bd66f32c9 mbuf: fix typo in comment
aa4a2ef3fe telemetry: fix JSON output buffer length
341804051a eal/freebsd: ignore in-memory option
be9717a4cc bus/vmbus: fix ring buffer mapping in secondary process
c41706bb6e eal/x86: fix some CPU extended features definitions
cc7ded572d test/service: fix race in attr check
3ee8970823 test/service: fix some comment
cd24395f65 test/event_crypto: fix event crypto metadata write
de983dfa6d examples/fips_validation: fix resetting pointer
1aab8371d3 examples/fips_validation: remove unused allocation
6d4f5a1639 eal/windows: do not install virt2phys header
822f885986 eal/windows: fix CPU cores counting
449612955b net: fix checksum API documentation
288a450bb9 net/hns3: fix input parameters of MAC functions
2adcdc8cc7 net/ixgbe: fix memzone leak on queue re-configure
4e60a45559 net/i40e: fix memzone leak on queue re-configure
8b56d27644 net/ice: fix memzone leak on queue re-configure
b51d3a4970 net/e1000: fix memzone leak on queue re-configure
8f825b3b13 ethdev: fix xstats by ID API documentation
b4108eb62c common/dpaax: fix physical address conversion
a7bb99fc86 raw/ifpga/base: fix linking with librt
1b8fac0312 test/latency: fix loop boundary
a00d38a2e1 bus/vmbus: fix leak on device scan
3df9064884 net/mlx5: fix flow tables double release
95cf6a360f net/bnxt: fix tunnel port accounting
5b3f9bec58 net/bnxt: fix memzone free for Tx and Rx rings
f1c89a7edd net/bnxt: fix Tx queue startup state
ea39d70a50 net/bnxt: fix function driver register/unregister
c9eddf61f5 net/ice: retry getting VF VSI map after failure
90d7fd5b10 common/iavf: fix ARQ resource leak
eca9795521 net/iavf: fix Rx queue IRQ resource leak
cd90c7a5b2 net/ice: fix double free ACL flow entry
1900a18518 net/iavf: fix high CPU usage on frequent command
49a2b0ca69 net/virtio: do not use PMD log type
758eb05f2b net/virtio: fix Tx completed mbuf leak on device stop
0da178c94e net/virtio: fix Tx cleanup functions to have same signature
9786a89ed4 vhost: clean IOTLB cache on vring stop
192d2f2dcd test/mem: fix memory autotests on FreeBSD
95934ebba9 eal/freebsd: lock memory device to prevent conflicts
ad4051ca8f usertools: fix handling EOF for telemetry input pipe
45f9d14e11 bitrate: fix calculation to match API description
102d6df14d bitrate: fix registration to match API description
1e697abcfd ring: fix Doxygen comment of internal function
51a9cd2327 eal: remove Windows-specific list of common files
8a43d7c5f4 eal/windows: export version function
196cda0e31 bus/pci: fix unknown NUMA node value on Windows
7b3cdb7c64 kvargs: fix comments style
edfd68842c net/memif: fix chained mbuf determination
39f117c3b5 net/mlx5: fix shared RSS destruction
5d3374aff1 net/mlx5: fix memory leak on context allocation failure
4649ead943 net/octeontx: fix access to indirect buffers
474bbafd6f net/iavf: fix mbuf leak
60974c7c2c net/ice/base: calculate logical PF ID
8532dae4d6 net/bonding: fix memory leak on closing device
25533b38a6 test/compress: fix buffer overflow
8f07dfbc18 examples/ipsec-secgw: fix parsing of flow queue
e78d085e36 stack: fix reload head when pop fails
6f7c9fde71 vdpa/mlx5: fix large VM memory region registration
bb7f3bc24b sched: get 64-bit greatest common divisor
2a5a421658 bus/pci: fix unknown NUMA node value on Windows
d593c0569e doc: fix numbers power of 2 in LPM6 guide
88719f1273 net/iavf: fix Rx queue buffer size alignment
64734ba6e2 net/i40e/base: fix resource leakage
012f9cfceb net/iavf: fix mbuf leak
af659df64e net/ice/base: fix PF ID for DCF
4fc96ab6c9 net/i40e: fix device startup resource release
30fcdc4f50 net/i40e: fix mbuf leak
c7afc99804 net/octeontx2: fix MTU when PTP is enabled
92569f9804 net/virtio: fix device configure without jumbo Rx offload
aafb232afb vhost: log socket path on adding connection
e0d08d0c03 net/virtio: fix repeated freeing of virtqueue
e543f89ba5 vhost: fix crash on port deletion
dd6e6e33c7 net/virtio-user: fix Rx interrupts with multi-queue
b00b073569 net/virtio: avoid unneeded link interrupt configuration
b954047654 net/virtio: fix split queue vectorized Rx
24ae55b075 net/virtio: fix mbuf count on Rx queue setup
8cbd4cec76 net: fix checksum offload for outer IPv4
7e0a1eee89 ethdev: fix typo in Rx queue setup API comment
fcece17c51 eal: fix memory leak when saving arguments
64c6120185 examples/service_cores: fix lcore count check
8192dfc388 test/func_reentrancy: free memzones after test
91f3769c3f build: propagate Windows system dependencies to pkg-config
8404c8c99a net/ice: fix performance with writeback policy
d9958c1907 net/ixgbe: fix mbuf leak
a1ebe4da32 net/ixgbe: fix MAC resource leak
5787cc1187 net/ixgbe: fix queue resource leak
c1723e2d14 net/ixgbe: fix hash handle leak
ed49cafb25 net/sfc: set FDIR bit for flow mark in EF100 Rx
dd8e8fcf1f net/hns3: fix taskqueue pair reset command
0c355fecc0 net/hns3: fix queue flow action validation
6b6aacee71 net/pcap: fix resource leakage on port probe
a202064ef3 net/axgbe: fix unreleased lock in I2C transfer
19acac8cef doc: fix bonding driver name
af6efb8cb2 net/af_xdp: fix zero-copy Tx queue drain
fc300c1c4a net/bnxt: fix double allocation of ring groups
8516f35456 net/bnxt: fix ring group free
ddc5464088 net/bnxt: check FW capability for VLAN offloads
16f8bcc3d8 net/bnxt: fix mbuf VLAN in scalar Rx
9f02c498bf net/ixgbe: fix Rx multicast statistics after reset
c660ad64aa net/iavf: fix overflow in maximum packet length config
073599bf92 net/ice: fix queue config in DCF
7722837b52 net/ice: fix deadlock on flow query
e244e8c066 net/ice: fix RXDID default value in DCF
34a2e17afc net/ice: fix memzone leak after device init failure
877a05209a net/nfp: fix minimum descriptor sizes
1f83882dac common/dpaax/caamflib: fix IV for short MAC-I in SNOW3G
52ed92cfb6 crypto/openssl: fix CCM processing 0 length source
c3672a36e6 config/ppc: ignore GCC 11 psabi warnings
9102608a1c eal/ppc: ignore GCC 10 stringop-overflow warnings
e4509540be crypto/octeontx2: fix unaligned access to device memory
6e5dbe1586 app/testpmd: fix dump of Tx offload flags
3dc611ee15 app/testpmd: fix check without outer checksum
8f75f8b588 net/bnxt: fix crash after port stop/start
d53332318f app/testpmd: fix Tx retry in flowgen engine
83ec79465d net/bnxt: update ring group after ring stop start
4ba7ab1ebd net/mlx5: fix eCPRI matching
f50cec54fd net/mlx5: fix mbuf replenishment check for zipped CQE
05af857e43 net/txgbe: fix reading SFP module SFF-8472 data
e2eae48793 net/ice: fix max entry number for ACL normal priority
2cbc3c42d2 net/ice/base: fix typo in comment
39a30eb884 drivers/net: fix vector Rx comments
99e95a04c4 drivers/net: fix typo in vector Rx comment
d65672bac2 examples/performance-thread: fix build with clang 12.0.1
cd9f079d87 net/i40e: support 25G AOC/ACC cables
cfcca69903 version: 20.11.3
fcdf769a98 test/power: fix CPU frequency when turbo enabled
ede02cfc47 net/mlx5: fix imissed statistics
c5f4e9dd15 version: 20.11.3-rc1
62ff84ca2a app/testpmd: fix IPv4 checksum
bf76709d20 bus: clarify log for non-NUMA-aware devices
53193aeeba net/mlx5: workaround drop action with old kernel
12cc60e507 doc: update atomic operation deprecation
78b8978ef7 doc: remove old deprecation notice for sched
cf52376b2d doc: fix spelling
853a987716 crypto/qat: disable asymmetric crypto on GEN3
fb63987b6d crypto/octeontx: fix freeing after device release
151569886c cryptodev: fix freeing after device release
946df43747 eal/windows: cleanup virt2phys handle
d06cadbbbd eventdev: fix event port setup in Tx adapter
c9c391ea60 app/testpmd: fix Tx checksum calculation for tunnel
3a0ced629f net/softnic: fix memory leak as profile is freed
c3e2390817 net/softnic: fix null dereference in arguments parsing
d43a754af8 net/memif: fix abstract socket address length
62a186761f net/ena: enable multi-segment in Tx offload flags
72f6920480 net/mlx5: add Tx scheduling check on queue creation
f46e2c750a net/mlx5: fix timestamp initialization on empty clock queue
0564825638 net/mlx5: fix flow engine type in function name
4ac789fddc net/mlx5: fix default queue number in RSS flow rule
38779aa845 net/mlx5: fix RSS flow rule with L4 mismatch
f67d7c848e net/mlx5: fix queue leaking in hairpin auto bind check
3003560e24 net/mlx5: fix representor interrupt handler
ad67a31e0a net/iavf: fix Tx threshold check
13ac5a5101 net/virtio: fix default duplex mode
f21bc78175 net/virtio: fix interrupt handle leak
dc023498c9 vhost: fix crash on reconnect
47d67fb4bb net/virtio: report maximum MTU in device info
84a32847c9 net/octeontx2: fix default MCAM allocation size
2f39890f4a app/testpmd: fix MAC address after port reset
d0eebf4a00 app/testpmd: fix help string for port reset
36c937ac72 sched: rework configuration failure handling
41a170fc81 sched: fix profile allocation failure handling
0cd4f7ee81 net/sfc: fix MAC stats update for stopped device
b84a0ebd17 net/sfc: fix xstats query by unsorted list of IDs
e4ebfdeb0d net/sfc: fix xstats query by ID according to ethdev
99bcdae014 net/sfc: fix reading adapter state without locking
e5e8e0aa61 net/sfc: fix MAC stats lock in xstats query by ID
4b44020ca7 net/dpaa: fix headroom in VSP case
b2ac79d89a bus/dpaa: fix freeing in FMAN interface destructor
66d9de1cde net/ena: trigger reset on Tx prepare failure
f91f60bb47 net/hinic: fix MTU consistency with firmware
3e6a9fa0e2 net/hinic/base: fix LRO
2ca9d750c9 net/hinic: increase protection of the VLAN
4e210bb141 net/hns3: fix Tx prepare after stop
28a94eea0c net/hns3: fix flow rule list in multi-process
fc0e7a4358 net/hns3: fix timing of clearing interrupt source
01dcb16186 net/hns3: fix filter parsing comment
471ed659c1 net/hns3: fix residual MAC address entry
752b19f91f net/softnic: fix memory leak in arguments parsing
ce81944f3d eal/windows: check callback parameter of alarm functions
806a18751b net/bnxt: fix null dereference in interrupt handler
3e8a6d6b1d net/bnxt: remove workaround for default VNIC
03348e9bec net/mlx5: export PMD-specific API file
d0213e26bb net/mlx5: reject inner ethernet matching in GTP
cf3ae2009c net/mlx5: fix RSS expansion for GTP
3fd282e728 net/mlx5: fix RoCE LAG bond device probing
453f8bb235 net/mlx5: fix indirect action modify rollback
a20d4d2506 net/mlx5: fix Rx/Tx queue checks
da1a6d5e46 regex/mlx5: fix redundancy in device removal
0760fa23a0 net/mlx5: fix overflow in mempool argument
c571fde575 vdpa/mlx5: fix overflow in queue attribute
4eb4301b07 regex/mlx5: fix size of setup constants
a961df1650 net/virtio: fix Rx scatter offload
e1b663f8b3 vhost: fix lock on device readiness notification
12e277dee6 net/virtio: fix refill order in packed ring datapath
2df90802c6 vhost: check header for legacy dequeue offload
db878744bc test/crypto: fix mempool size for session-less
89d903beb4 crypto/octeontx2: fix lookaside IPsec IV pointer
48181d181d crypto/octeontx2: fix IPsec session member overlap
7bbe274958 test/power: fix CPU frequency check for intel_pstate
1f4a450852 raw/ioat: fix config script queue size calculation
133edc5f0f distributor: fix 128-bit write alignment
fc9d2f0dbe net/bnxt: clear cached statistics
3f2f6be303 net/bnxt: fix nested lock during bonding
5584a03fe9 net/bnxt: fix missing barriers in completion handling
f58d25a579 net/octeontx2: fix TM node statistics query
6595f06986 net/mvpp2: fix configured state dependency
9c8609a356 net/mvpp2: fix port speed overflow
ef16dc1cc8 net/mlx5: fix typo in vectorized Rx comments
4c8e04c056 net/mlx5: fix threshold for mbuf replenishment in MPRQ
a6a787bf7d net/mlx5: fix missing RSS expansion of IPv6 frag
5b34c2ad6f net/mlx5: fix missing RSS expandable items
2a5c46697b net/mlx5: remove redundant operations in NEON Rx
a5fb806241 app/testpmd: fix offloads for newly attached port
96ad1e25fc net/softnic: fix connection memory leak
6807067d71 net/bonding: check flow setting
2b916ad7eb net/bonding: fix error message on flow verify
e77955f0ed net/bnxt: fix ring allocation and free
2346170dd3 net/bnxt: detect bad opaque in Rx completion
d375abc717 table: fix bucket empty check
4b8bd031fe net/hns3: fix Arm SVE build with GCC 8.3
2bf923fc8f net/virtio: fix aarch32 build
39156c3208 net/bnxt: fix aarch32 build
7590791b9e net/sfc: fix aarch32 build
2da39fd204 build: support drivers symlink on Windows
fd2f9a4932 doc: fix build on Windows with Meson 0.58
97d5862b30 net/octeontx/base: fix debug build with clang
d232a49bf4 net/ixgbe: fix flow entry access after freeing
7cdf5af809 net/i40e: fix descriptor scan on Arm
ebe009027c net/ice: fix memzone leak when firmware is missing
386524e3f5 common/mlx5: fix compatibility with OFED port query API
32b98abf1b common/mlx5: use new port query API if available
10beb1ace1 net/mlx5: fix MPLS RSS expansion
29c7cf41a2 net/mlx5: remove unsupported flow item MPLS over IP
d709081562 common/mlx5: fix Netlink receive message buffer size
0e61040a35 net/mlx5: fix match MPLS over GRE with key
6452e165df net/mlx5: fix pattern expansion in RSS flow rules
c1ed88d89b net/mlx5: fix r/w lock usage in DMA unmap
ce3be50034 doc: add limitation for ConnectX-4 with L2 in mlx5 guide
79bd409861 net/mlx5: fix TSO multi-segment inline length
1e2b9848ab common/mlx5: fix memory region leak
06e38e2e83 net/mlx5: fix multi-segment inline for the first segments
98d41069f1 net/bnxt: fix Rx interrupt setting
ec202acb1c net/bnxt: fix scalar Tx completion handling
8eb3ca3f92 net/bnxt: fix Tx descriptor status implementation
0e27d70604 net/bnxt: fix ring and context memory allocation
43bcce71fe net/bnxt: invoke device removal event on recovery failure
6d2d072cc1 net/bnxt: fix auto-negociation on Whitney+
39d5e6fea3 net/bnxt: fix typo in log message
a12b17cb05 net/bnxt: cleanup code
8a742f542c ipc: stop mp control thread on cleanup
fba329627d crypto/mvsam: fix options parsing
1a3903c0d3 crypto/mvsam: fix session data reset
bbfd3f227b crypto/mvsam: fix capabilities
929b5fec9d crypto/mvsam: fix AES-GCM session parameters
a3c1ad39e4 test/crypto: fix typo in ESN case
cc48322720 test/crypto: fix typo in AES case
bb9d13ec90 test/crypto: fix autotest function parameters
a1242338e1 crypto/aesni_gcm: fix performance on some AVX512 CPUs
a5405a2eba test/crypto: fix mbuf reset after null check
63f28457dc app/crypto-perf: fix out-of-place mempool allocation
1b7530a088 crypto/qat: fix Arm build with special memcpy
85c2f7fed5 app/testpmd: change port link speed without stopping all
55585a5f1a ethdev: fix doc of flow action
4f3fba99a7 app/testpmd: fix type of FEC mode parsing output
b4d36b226b net/tap: fix Rx checksum flags on TCP packets
936bdd642b net/tap: fix Rx checksum flags on IP options packets
dccbbfc8ee net/sfc: fix outer L4 checksum Rx
e942ab2144 net/pfe: remove unnecessary null check
2799483e12 net/hns3: fix maximum queues on configuration failure
2157046ca0 net/hns3: fix VLAN strip log
bf6bd022ef net/hns3: fix fake queue rollback
14a0af5994 net/hns3: fix delay for waiting to stop Rx/Tx
24dc86183d net/hns3: increase VF reset retry maximum
21ec6d9eb2 drivers/net: fix memzone allocations for DMA memory
55b7e77a7d net/sfc: fix outer match in MAE backend
b19930090a net/sfc: check ID overflow in action port ID
97fcc59a87 mempool/octeontx2: fix shift calculation
7009b90679 vdpa/mlx5: fix TSO offload without checksum
cb97272d8e vhost: fix NUMA reallocation with multi-queue
1b6e6c1754 vhost: fix missing guest pages table NUMA realloc
2412914cdb vhost: fix missing memory table NUMA realloc
b386dd5b4b net/i40e: fix multi-process shared data
142e3badc2 net/i40e: fix flow director input set conflict
ef03fc3f01 net/ice: fix overflow in maximum packet length config
0ac008ccca net/octeontx2: use runtime LSO format indices
b1cb0f2fcb net/octeontx2: fix flow creation limit on CN98xx
b719b89624 test/mbuf: fix virtual address conversion
a2d9e63eec bus/pci: fix leak for unbound devices
c24244d08f examples/l2fwd: fix [no-]mac-updating options
8f9f2da7e3 app/test: fix IPv6 header initialization
ef0558c8be bus/pci: fix IOVA as VA support for PowerNV
f0847028f3 common/mlx5: fix Netlink port name padding in probing
6b23ae0cad net/mlx5: fix IPIP multi-tunnel validation
63c0a9b54e net/mlx5: fix switchdev mode recognition
82758719aa net/mlx5: fix RSS pattern expansion
b6690ca0b1 tests/eal: fix memory leak
72bff6df5f tests/cmdline: fix memory leaks
d4a803fd53 rib: fix max depth IPv6 lookup
36dbd9df87 flow_classify: fix leaking rules on delete
16d0682d67 kni: fix crash on userspace VA for segmented packets
3fc6330a65 kni: fix mbuf allocation for kernel side use
979fecc857 vhost/crypto: check request pointer before dereference
bd03c14aaf devtools: fix file listing in maintainers check
5ca9e6b50d vfio: add stdbool include
24b3c18127 doc: fix default burst size in testpmd
6dfb0b782f doc: fix typo in SPDX tag
ac4a67a5f9 net/iavf: fix scalar Rx
5f70ea4e97 net/i40e: fix use after free in FDIR release
1050357ef7 net/ice: fix data path in secondary process
744e86e089 net/ice: fix data path selection in secondary process
18db4a4d84 net/i40e: fix raw packet flow director
d5052b1a2e net/iavf: fix handling of unsupported promiscuous
ea3ef0c977 net/ice: fix default RSS key generation
58fbfecc2a net/iavf: fix RSS key access out of bound
70b84a4e1b net/bnxt: remove unnecessary comment
386efec380 net/bnxt: improve probing log message
a2e10ac19d net/bnxt: fix check for PTP support in FW
92e631ec91 net/bnxt: use common function to free VNIC resource
cb99c42fe0 net/bnxt: set flow error after tunnel redirection free
2f6cc4ff5f net/bnxt: fix error handling in VNIC prepare
3d3770a60f net/bnxt: remove unnecessary code
da7d8b7da3 net/bnxt: set flow error when free filter not available
78f6a49fd4 net/bnxt: fix error messages in VNIC prepare
47b40639d9 net/bnxt: workaround spurious zero stats in Thor
70314ce028 net/bnxt: fix Rx burst size constraint
d19b2017fc net/bnxt: check access to possible null pointer
73b4b37a14 malloc: fix size annotation for NUMA-aware realloc
cd12bf5357 bitmap: fix buffer overrun in bitmap init
7af7de2a52 graph: fix null dereference in stats
3d328cf711 graph: fix memory leak in stats
a860247483 version: 20.11.2
aac916d95c version: 20.11.2-rc2
8db55d6a07 net/mlx5: fix receiving queue timestamp format
6b3e11c79d net/ice: fix RSS for L2 packet
f7b699f8e1 event/octeontx2: fix XAQ pool reconfigure
a0481453af event/octeontx2: configure crypto adapter xaq pool
a71455d9f5 event/octeontx2: fix crypto adapter queue pair operations
ffa8fb5f54 build: fix drivers selection without Python
d997326fe3 net/ark: fix leak on thread termination
e11b10e00a net/hns3: fix concurrent interrupt handling
621a74d828 test/cmdline: silence clang 12 warning
bd41e2bc99 doc: fix runtime options in DLB2 guide
8ba82ed84d event/dlb2: remove references to deferred scheduling
4d182a84d5 test: fix build with GCC 11
0b1753ac72 net/memif: fix Tx bps statistics for zero-copy
b1ec8ac5ec common/sfc_efx/base: add missing MCDI response length checks
6f41c82e52 common/sfc_efx/base: limit reported MCDI response length
83fcaa37fe net/mlx5: fix loopback for Direct Verbs queue
91f0c38c0d net/hns3: fix link speed when VF device is down
f4a3f4a6b9 net/hns3: fix DCB reconfiguration
0eafb399ba net/hns3: fix DCB configuration
aeaba9b829 net/hns3: remove meaningless packet buffer rollback
47af5229ce net/hns3: fix requested FC mode rollback
6442b97894 net/hns3: fix Rx/Tx queue numbers check
a6967ee4a8 vdpa/mlx5: fix device unplug
4079bce204 net/vhost: restore pseudo TSO support
d565e160b1 net/mlx5: fix counter offset detection
570fa795f0 net/mlx5: fix leak when configured repeatedly
2471e99da3 net/mlx4: fix leak when configured repeatedly
6156da1041 crypto/zuc: fix build with GCC 11
87eec97f52 test/crypto: fix build with GCC 11
18918e1884 devtools: fix orphan symbols check with busybox
934abbb8b8 test: fix division by zero
99755af674 examples/l3fwd-power: fix empty poll thresholds
64ac670fa0 test/table: fix build with GCC 11
61238b46be test/power: fix turbo test
4498bac0f5 test/power: fix low frequency test when turbo enabled
c5a5a60d9e test/power: add turbo mode to frequency check
c729d4f125 test/power: fix CPU frequency check
9a1044da25 test: check flow classifier creation
acf64e9685 examples/skeleton: fix NUMA check of port and core
12822e56a0 examples/l2fwd-cat: fix NUMA check of port and core
110a22070f examples/flow_classify: fix NUMA check of port and core
b993ebf7bb examples/rxtx_callbacks: fix port ID format specifier
fc88e04a9a app/crypto-perf: check memory allocation
cfd635034c crypto/qat: fix null authentication request
010e63f5ee test/crypto: fix return value of a skipped test
975a9831e1 net/mlx5: fix RSS flow item expansion for NVGRE
cb97d59428 net/mlx5: fix secondary process initialization ordering
14b6df2399 net/mlx4: fix secondary process initialization ordering
071855618a net/tap: fix build with GCC 11
c2155d8297 net/ice/base: fix build with GCC 11
84c5ec2505 net/bnx2x: fix build with GCC 11
724378c1a1 net/bnx2x: fix build with GCC 11
a83980d079 net/igc: fix speed configuration
e0305fc830 net/i40e: fix VF RSS configuration
2e077407fe net/ice: fix VSI array out of bounds access
e5c01fbc22 net/ena: indicate Rx RSS hash presence
96883cec2a net/mlx5: fix tunnel offload private items location
6bdf384447 net/enic: enable GENEVE offload via VNIC configuration
1cf7b4c769 net/ice: fix leak on thread termination
18151dfdcb app/testpmd: fix tunnel offload flows cleanup
98f23aad56 net/hns3: fail setting FEC if one bit mode is not supported
a6c272ac76 net/hns3: fix ordering in secondary process initialization
edd8521ace net/hns3: fix secondary process request start/stop Rx/Tx
a795428a29 net/hns3: fix mailbox message ID in log
5244852443 net/hns3: fix TM QCN error event report by MSI-X
ec14e37220 net/txgbe: fix QinQ strip
33f33e3e7c net/hns3: fix querying flow director counter for out param
8e72b7a2ee net/hns3: fix VF alive notification after config restore
6ed898b297 net/hns3: clear hash map on flow director clear
8f93ec6288 net/hns3: fix log on flow director clear
9e15a154c5 net/hns3: return error on PCI config write failure
3387f2c95f net/nfp: fix reporting of RSS capabilities
c9000c686e net/ena: report default ring size
4a79d25bd1 net/ena: remove endian swap functions
967dcfb168 net/ena: fix crash with unsupported device argument
a5c0cca39a net/ena: fix parsing of large LLQ header device argument
1c44277b56 net/ena/base: destroy multiple wait events
74cc4f7d97 net/ena/base: fix type conversions by explicit casting
47ed9f3e81 net/ena/base: improve style and comments
70f1f80edb net/ena: switch memcpy to optimized version
48af30a4c3 net/mlx5/linux: fix firmware version
106f00833d net/mlx5: fix RSS flow item expansion for GRE key
6db31e3304 net/ice/base: fix memory allocation wrapper
d8351b6c9f app/eventdev: fix lcore parsing skipping last core
d4138b565d event/dpaa2: remove unused macros
b7ab9f121d power: fix sanity checks for guest channel read
5d30751003 doc: remove PDF requirements
14e975dea9 test/timer: check memzone allocation
3ce8842e18 examples/timer: fix time interval
764a01e145 ipc: use monotonic clock
45c0d2e47e raw/skeleton: add missing check after setting attribute
3aadd33dd2 eal: fix memory mapping on 32-bit target
3cb6827a32 eal: fix leak in shared lib mode detection
5be4837391 bus/fslmc: remove unused debug macro
07d17061ab test/crypto: copy offset data to OOP destination buffer
e5bf617fa8 crypto/dpaa2_sec: fix close and uninit functions
39b13992e9 crypto/dpaa_sec: affine the thread portal affinity
8038030f29 test/crypto: fix auth-cipher compare length in OOP
afe3a7f202 compress/qat: enable compression on GEN3
95fd32f696 common/qat: increase IM buffer size for GEN3
6856433bed app/bbdev: fix HARQ error messages
90ca87dd69 app/bbdev: check memory allocation
2194792b3a eal: fix service core list parsing
689d3a982b ipc: check malloc sync reply result
89bbedc455 raw/ntb: check memory allocations
1a62a37afe raw/ntb: check SPAD user index
10ddae775c examples: fix pkg-config override
8ff559890a regex/octeontx2: remove unused include directory
a0a21cb0c7 net/bnxt: prevent device access in error state
00b2343239 net/bnxt: fix mismatched type comparison in Rx
e00127b777 net/bnxt: check PCI config read
91d4a1731a net/bnxt: fix mismatched type comparison in MAC restore
1cfcaccb0b net/bnxt: fix single PF per port check
85b0241b6b net/bnxt: fix dynamic VNIC count
a7375b06e8 net/bnxt: fix Rx timestamp when FIFO pending bit is set
699e70a0b6 net/bnxt: refactor multi-queue Rx configuration
ca60f84823 vhost: fix offload flags in Rx path
96c209b1a6 net/virtio: fix vectorized Rx queue rearm
b6659faacc telemetry: fix race on callbacks list
31619530c8 test/distributor: fix burst flush on worker quit
8e681713b3 test/distributor: fix worker notification in burst mode
8064f75d9b ethdev: add missing buses in device iterator
8e6d9cfe2d net/hns3: increase readability in logs
ce498169d4 net/hns3: remove unused VMDq code
5d84f2b422 net/hns3: remove read when enabling TM QCN error event
29da2a8b3d net/hns3: fix vector Rx burst limitation
88be45dbba net/bnxt: drop unused attribute
15cf480f1a net/sfc: fix mark support in EF100 native Rx datapath
40c046441f net/i40e: fix primary MAC type when starting port
38b01e7fa3 net/iavf: fix primary MAC type when starting port
5c4358f054 raw/ifpga: fix device name format
cb6f74724d net/mlx5: fix flow age event triggering
053299cf1d net/hns3: remove unused macros
2f0e34a575 net/hns3: fix time delta calculation
589600a03a net/hns3: log time delta in decimal format
1f6d0c6f6c app/testpmd: verify DCB config during forward config
313bd50dab app/testpmd: fix DCB re-configuration
a3da207349 app/testpmd: fix DCB forwarding configuration
95d258ab14 app/testpmd: fix forward lcores number for DCB
9874e06dc5 net/kni: warn on stop failure
3caffc5447 net/tap: check ioctl on restore
6af34d2abd app/testpmd: fix division by zero on socket memory dump
180a37c3ef net/hns3: fix link speed when port is down
3502d412a0 net/hns3: fix link status when port is stopped
47b2b44b9f net/mlx5: fix probing device in legacy bonding mode
1c43f69982 net/mlx4: fix buffer leakage on device close
04475743c8 net/mlx5: remove drop queue function prototypes
8965b66896 net/bnxt: use prefix on global function
52d2337eac net/bnxt: remove unused function parameters
5396d57fc3 net/bnxt: remove unnecessary forward declarations
0f0469489b net/virtio: fix getline memory leakage
24743b77a7 vhost: fix redundant vring status change notification
b0a7aab7d8 vhost: fix queue initialization
351bc34645 net/e1000: fix flow error message object
5d2c2857f4 common/iavf: fix duplicated offload bit
dc22d3cfab net/iavf: fix VF to PF command failure handling
e488fd804d net/ice: fix fast mbuf freeing
c7db959613 net/i40e: remove redundant VSI check in Tx queue setup
35e133887c net/i40e: fix negative VEB index
3085e8ab3e common/sfc_efx/base: fix dereferencing null pointer
551f3198b8 net/hns3: fix handling link update
adefa69ef3 net/bonding: fix socket ID check
8d04d026a7 doc: fix formatting in testpmd guide
9886a1aed2 app/testpmd: fix segment number check
bef47e0c78 net/hns3: fix typos on comments
58155c9ecf net/tap: fix interrupt vector array size
6ca567cc48 app/testpmd: fix max queue number for Tx offloads
eaee68d852 test/kni: check init result
3b949ee57a test/kni: fix a comment
448c880b6e net/bonding: fix leak on remove
8abec7f317 net/hns3: remove unused mailbox macro and struct
b012ce6634 net/hns3: fix processing link status message on PF
b47af28ffd net/hns3: fix mailbox error message
3ab9cfbc6a drivers/net: fix FW version query
b65e812dd2 net/kni: check init result
bfaab1571e doc: fix multiport syntax in nfp guide
7abfd667da power: save original ACPI governor always
2c6016c807 bpf: fix JSLT validation
a5fd2098d6 acl: fix build with GCC 11
efdd260f6e eventdev: fix memory leakage on thread creation failure
78dfdbc90f eventdev: remove redundant thread name setting
d173cc85c9 app/eventdev: fix overflow in lcore list parsing
8ad8d124a5 test/mempool: fix object initializer
f532cbbedb mbuf: check shared memory before dumping dynamic space
5f90abb232 eal/arm64: fix platform register bit
35ad25c5b1 raw/ioat: fix script for configuring small number of queues
1c96bfbc4c config/ppc: reduce number of cores and NUMA nodes
cf948fe9c5 stack: allow lock-free only on relevant architectures
ad11991368 version: 20.11.2-rc1
06ed5a2729 app: fix exit messages
3dce6da8bc bus/pci: support I/O port operations with musl
8aeb5c3538 net/bnxt: fix ring count calculation for Thor
d225df791f regex/mlx5: support timestamp format
1607156dcd net/mlx5: support timestamp format
2ceb5afbf2 doc: fix build with Sphinx 4
7fbddcaa0e net/bnxt: fix PTP support for Thor
05d828f0b6 net/bnxt: fix Rx queue count
189a17d086 net/bnxt: fix Rx descriptor status
51fef82607 net/sfc: fix outer rule rollback on error
1524a5460b net/hns3: fix verification of NEON support
c6bc1e8980 net/hns3: fix timing in mailbox
41b2680227 net/hns3: fix VF handling LSC event in secondary process
58d8850553 net/hns3: fix possible mismatched response of mailbox
595ee1c60a net/virtio: fix interrupt unregistering for listening socket
442a4977a9 net/iavf: fix wrong Tx context descriptor
6a6af19db5 net/hns3: fix setting default MAC address in bonding of VF
d24915f072 net/hns3: fix mbuf leakage
67fe9bc80f ci: catch coredumps
0f9f25a1d1 ci: ignore APT update failure in GitHub Actions
a93e472781 ci: fix package installation in GitHub Actions
2f415afb56 ci: enable v21 ABI checks
bb63ff4aa1 ci: hook to GitHub Actions
92ef3bbc7a kni: fix kernel deadlock with bifurcated device
d4d212786a kni: refactor user request processing
0cf8916e01 kni: support async user request
20bbce05a8 doc: fix names of UIO drivers
7d3e01ef10 net/e1000/base: fix timeout for shadow RAM write
bd0291a99a net/i40e: fix flow director for common pctypes
abb66bf463 net/ice: fix disabling promiscuous mode
32698b8d32 net/hns3: remove unused macro
8d6377e172 net/igc: fix Rx packet size
608d69a62f net/bnxt: fix health check alarm cancellation
8ffdca19f3 net/bnxt: fix resource cleanup
9231460d33 net/bonding: fix adding itself as its slave
ba1a310e04 net/hns3: fix flow director lock
5eaa5abcd8 net/hns3: fix VMDq mode check
cdffbfb77f net/hns3: fix DCB mode check
2782c994db net/hns3: remove redundant mailbox response
5c61f0e991 doc: fix matching versions in ice guide
bd0494c495 net/hns3: remove unused macros
f81a67f4b8 doc: fix HiSilicon copyright syntax
1eea3b7a27 examples/ethtool: remove unused parsing
aa94d640eb examples: add eal cleanup to examples
8347ba1646 test/power: round CPU frequency to check
2266f65a23 test/power: add delay before checking CPU frequency
323d01cf8d test/bpf: fix error message
79273b13a0 common/dpaax: fix possible null pointer access
1bcde22826 sched: fix traffic class oversubscription parameter
9ffa1fee27 ip_frag: fix fragmenting IPv4 packet with header option
b6b219b87c test: check thread creation
7b3cbf5315 test/cmdline: fix inputs array
c62ae18b64 examples/l3fwd: fix LPM IPv6 subnets
512393d56e examples/ptpclient: remove wrong comment
51ca4146bb pipeline: fix endianness conversions
6b76e06108 vfio: fix duplicated user mem map
879dc56ebd eventdev: fix case to initiate crypto adapter service
86ec5aeef9 net/iavf: fix lack of MAC type when set MAC address
674d4cb4de net/i40e: fix lack of MAC type when set MAC address
6ac6d7e852 net/hns3: fix flow control mode
20a6184f88 net/hns3: remove VLAN/QinQ ptypes from support list
dc7d063415 net/hns3: fix missing outer L4 UDP flag for VXLAN
f20ccda35a net/hns3: fix use of command status enumeration
a0cffe358d net/ice: fix crash in AVX512
b59be07a77 net/iavf: fix crash in AVX512
5ecc163bf9 ethdev: update flow item GTP QFI definition
42c05be1fe app/testpmd: fix bitmap of link speeds when force speed
be168e4fec net/ixgbe: fix Rx errors statistics for UDP checksum
8e59d734a2 net/mlx5: fix resource release for mirror flow
00d769c518 net/mlx4: fix RSS action with null hash key
fb455a8129 net/mlx5: fix redundant flow after RSS expansion
1cb30b35c9 net/ice: fix illegal access when removing MAC filter
ac002ace6e net/e1000: fix max Rx packet size
9c9d25bce1 common/sfc_efx/base: fix indication of MAE encap support
41111ae623 net/hns3: fix configure FEC when concurrent with reset
33c960aad1 net/hns3: fix queue state when concurrent with reset
da8413c234 net/hns3: fix timing in resetting queues
94bb3ef988 net/hns3: fix some packet types
60065a5a61 test: fix TCP header initialization
3d8025a121 buildtools: fix all drivers disabled on Windows
acbb986965 crypto/qat: fix offset for out-of-place scatter-gather
ce88f40d2c examples/l2fwd-crypto: fix packet length while decryption
9c07408cef examples/l2fwd-crypto: skip masked devices
96d2d64bf1 crypto/octeontx: fix session-less mode
9e520a5a7a eal: add C++ include guard for reciprocal header
45b58e4ac4 raw/octeontx2_dma: assign PCI device in DPI VF
d2d434683d test/trace: fix race on collected perf data
cf45856b8b license: fix typos
eb30365e9e event/octeontx2: fix device reconfigure for single slot
dc7e8df00f app/eventdev: fix timeout accuracy
5b91f48bc8 test/event: fix timeout accuracy
ba0aecb72a eal/windows: fix return codes of pthread shim layer
2e83b42a99 app/flow-perf: fix encap/decap actions
2b03f8ca36 net/enic: fix flow initialization error handling
44bd01347f net/hns3: delete redundant blank line
7764ed833a net/hns3: support get device version when dump register
d0897ad2fb net/hns3: fix VF mailbox head field
bb24098f63 net/hns3: fix flow counter value
654aeb2619 net/hns3: fix flow control exception
73db182cb0 net/hns3: fix rollback after setting PVID failure
c718e751f4 net/hns3: fix FLR miss detection
539f3b7802 net/hns3: fix copyright date
a096b11ef5 ethdev: validate input in EEPROM info
963fcacd95 ethdev: validate input in register info
2e6638d897 ethdev: validate input in module EEPROM dump
ec4d4d10f3 vhost: fix initialization of async temporary header
de93dc0502 vhost: fix initialization of temporary header
d43a7f6be8 net/bnxt: fix configuring LRO
bc53c25124 net/bnxt: fix double free in port start failure
f30dc57e78 net/mlx5: fix drop action for Direct Rules/Verbs
b52bd28182 net/mlx5: fix missing shared RSS hash types
43af55f5bf net/mlx5: fix shared inner RSS
81c1c91037 net/i40e: fix flow director config after flow validate
5a4a7bb830 doc: update recommended versions for i40e
b1fab4dc0d net/e1000: fix Rx error counter for bad length
fa6df61bf2 net/igc: fix Rx error counter for bad length
13e3e5e93c net/ena: fix releasing Tx ring mbufs
7151983d32 net/hns3: update HiSilicon copyright syntax
fdd1a58762 net/hns3: fix MTU config complexity
1324beafba eal: fix hang in control thread creation
ea6d0d6561 eal: fix race in control thread creation
5a324f3e4d app/testpmd: fix usage text
7b581788ee app/regex: fix usage text
3ad213dfa7 eal: fix evaluation of log level option
4fc1996894 test: proceed if timer subsystem already initialized
92805a55da drivers: fix log level after loading
6baf95a98d service: clean references to removed symbol
e0a41b8c47 mem: fix freeing segments in --huge-unlink mode
8ee0fdee90 power: do not skip saving original P-state governor
4370808640 doc: fix sphinx rtd theme import in GHA
8d3f8b347f vdpa/mlx5: fix virtq cleaning
42ed69a37b examples/vhost_crypto: remove unused short option
429dd55035 vhost: fix batch dequeue potential buffer overflow
358cba78c0 vhost: fix packed ring potential buffer overflow
25d53e1eb8 vhost: fix split ring potential buffer overflow
1716e66878 examples/vhost: check memory table query
42457347e2 vdpa/ifc: check PCI config read
f90c6e9d41 net/mlx5: fix using flow tunnel before null check
7f55ac318c net/ixgbe: fix RSS RETA being reset after port start
843b7caa8e net/iavf: fix TSO max segment size
eefc6b16bc net/igc: fix Rx RSS hash offload capability
8235f3fdfd net/i40e: announce request queue capability in PF
ddb17b5462 net/iavf: fix packet length parsing in AVX512
7f8de73228 net/i40e: fix parsing packet type for NEON
38824647ed app/testpmd: fix Tx/Rx descriptor query error log
cd33dd08a7 net/sfc: fix error path inconsistency
de81fe259a net/hinic: fix crash in secondary process
a1b0bff2d5 net/hns3: fix long task queue pairs reset time
15b6974306 net/hns3: fix link update when failed to get link info
7537fafbc7 net/hns3: fix Tx checksum for UDP packets with special port
a7bf8336a2 net/hns3: fix processing Tx offload flags
e29b92b998 net/hns3: fix reporting undefined speed
530d228d3e net/mlx5: support RSS expansion for IPv6 GRE
2291013139 net/mlx5: fix flow actions index in cache
162f87fce1 net/ice/base: fix memory allocation for MAC addresses
7b7af2fd73 net/ice: fix RSS hash update
fe1461f8b6 net/i40e: fix input set field mask
74fc31b48f net/qede: accept bigger RSS table
50650a3ab2 net/qede: reduce log verbosity
75f780af8b net/bnxt: fix memory allocation for command response
34972cfd96 net/bnxt: check kvargs parsing
b1f8911ea3 net/bnxt: fix handling of null flow mask
28e5e8b722 net/bnxt: fix Tx length hint threshold
b21daacf92 net/bnxt: fix Rx buffer posting
6260a81282 net/bnxt: fix timesync when PTP is not supported
23f07e5fdc net/bnxt: fix link state operations
88f2faa23c net/bnxt: fix RSS context cleanup
832c6464ce net/bnxt: fix PCI write check
2b68ea0468 net/bnxt: fix Tx timestamp init
763cb5c708 app/testpmd: fix NVGRE encap configuration
516cebd9dd common/sfc_efx: remove GENEVE from supported tunnels
b22415b70a net/ark: refactor Rx buffer recovery
f6beb20cd9 net/ark: update packet director initial state
d1b41662e0 test: fix autotest handling of skipped tests
7c0c441826 pipeline: fix instruction translation
a8c9a82b54 examples/packet_ordering: fix port configuration
67becbfe57 table: fix actions with different data size
19bb5235f0 examples/bbdev: fix header include for musl
ba7c3d6bef app/testpmd: fix build with musl
0999e13c7a event/dlb: fix header includes for musl
c8f64e248d net/igc: remove use of uint type
6bee873fbb net/cxgbe: remove use of uint type
fc4664ada5 bus/dpaa: fix build with musl
a01c94a0c3 bus/dpaa: fix 64-bit arch detection
a4553bb9d2 common/dpaax/caamflib: fix build with musl
efa745cbb2 eal: fix build with musl
9c3bb2603c build: remove redundant _GNU_SOURCE definitions
14702af2e5 build: detect execinfo library on Linux
1555f48f85 buildtools: fix build with busybox
838da36866 eal: fix comment of OS-specific header files
cf10220946 net/mlx5: fix Rx metadata leftovers
cd5184145e vdpa/mlx5: support timestamp format
7ddf9eaed9 common/mlx5: add timestamp format support to DevX
604068df87 net/ice: check some functions return
9a7fd13201 app/testpmd: check MAC address query
211541b614 net/bnxt: fix Rx and Tx timestamps
7c69b27093 net/bnxt: fix xstats get
f061789e7c net/bnxt: mute some failure logs
15d81d5f9e net/bnxt: fix HWRM and FW incompatibility handling
274ff8673a net/bnxt: fix VF info allocation
3d051e75a4 net/bnxt: fix device readiness check
2d5c161605 net/bnxt: fix FW readiness check during recovery
3fd1f9e8ec net/bnxt: fix firmware fatal error handling
86e9785dbd net/bnxt: fix queues per VNIC
74451465f7 net/bnxt: fix VNIC configuration
262c0649f5 net/bnxt: remove unused macro
7c078fd0e9 net: fix comment in IPv6 header
a7e79f5d2c bus/pci: fix Windows kernel driver categories
75c0d71c9f bus/pci: skip probing some Windows NDIS devices
d68bec0b17 eal/windows: fix default thread priority
87af5c7023 eal/windows: add missing SPDX license tag
d43987787c log/linux: make default output stderr
f59f4e98e4 build: exclude meson files from examples installation
b66b37a2b5 net/octeontx2: fix VLAN filter
6f1a03c53e net/mlx5: fix Rx segmented packets on mbuf starvation
d0de930b7b net/i40e: fix IPv4 fragment offload
9461039311 net/i40evf: fix packet loss for X722
0d32ae0c6f net/ice/base: cleanup filter list on error
8d88d38931 net/ice/base: fix uninitialized struct
d4ef2f169e net/ice/base: fix payload indicator on ptype
e3486cbde8 net/e1000: remove MTU setting limitation
f9b6f0ca8b net/igc: remove MTU setting limitation
f27ac1c009 net/ice: fix VLAN filter with PF
58fc7f65f2 net/txgbe: update packet type
4d4ae30d07 net/txgbe: fix Rx missed packet counter
991c44b257 net/txgbe: remove unused functions
96cc541d11 net/bonding: fix LACP system address check
19922dfa9e net/hns3: remove unused parameter markers
3997b85241 net/hns3: fix HW buffer size on MTU update
e4e0a6505d net/hns3: fix device capabilities for copper media type
4371d3b12b common/mlx5: add DevX commands for queue counters
6e06d42907 common/mlx5: add DevX command to query WQ
fba807cae9 common/mlx5/linux: add glue function to query WQ
44e87e7c10 net/pcap: fix file descriptor leak on close
82f21305c4 net/mlx5: fix UAR allocation diagnostics messages
1cac75b516 net/mlx5: fix hashed list size for tunnel flow groups
cf30b35eb3 net/pcap: fix format string
40313397da net/af_xdp: fix error handling during Rx queue setup
32ae43ccb7 net/sfc: fix buffer size for flow parse
40072bc599 app/testpmd: remove unnecessary UDP tunnel check
7a866f25e6 net/ionic: fix completion type in lif init
c725e11eb3 net/dpaa: fix getting link status
d287fda7da net/dpaa2: fix getting link status
e518710835 bus/dpaa: fix statistics reading
1965f4ee95 bus/fslmc: fix random portal hangs with qbman 5.0
58200ed66a net/mlx5: fix metadata item validation for ingress flows
8d2066d2ec common/mlx5: fix DevX read output buffer size
23b584d6cc net/mlx5: fix external buffer pool registration for Rx queue
7fe1e5cdb9 net/failsafe: report minimum and maximum MTU
9da42b8f93 net/failsafe: fix RSS hash offload reporting
4f140c14a2 fbarray: fix log message on truncation error
db950ecec2 vfio: fix API description
b8bde7fa4b power: remove duplicated symbols from map file
e41a908c66 test/mem: fix page size for external memory
7f904ea0c6 vfio: fix DMA mapping granularity for IOVA as VA
0e42f2b7ea vfio: do not merge contiguous areas
* Wed Aug 31 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-97
- Merging upstream branch-2.16 [RH git: e6de3f5eee]
Commit list:
975bd48a00 raft: Fix unnecessary periodic compactions.
* Mon Aug 15 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-96
- Merging upstream branch-2.16 [RH git: ddb62f8750]
Commit list:
f68ae52392 handlers: Fix handlers mapping.
3cbadc0b74 handlers: Create additional handler threads when using CPU isolation.
* Wed Aug 10 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-95
- pkgtool: keep %{?dist} before added bz string [RH git: 339efe77c4]
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
* Tue Aug 09 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-94
- Merging upstream branch-2.16 [RH git: 200df9decf]
Commit list:
3e1750eee2 github: Move CI to ubuntu 20.04 base image.
* Mon Aug 08 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-93
- Merging upstream branch-2.16 [RH git: 3bb0f66a11]
Commit list:
c85d35ea1a netdev-offload-tc: Disable offload of IPv6 fragments.
* Mon Aug 08 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-92
- Merging upstream branch-2.16 [RH git: 6cd148d13d]
Commit list:
b8fc670ae6 system-traffic: Fix IPv4 fragmentation test sequence for check-kernel.
23d514dd25 system-traffic: Fix incorrect neigh entry in ipv6 header modification test.
da1f5a95cf system-traffic: Don't run IPv6 header modification test on kernels < 5.19.
* Fri Aug 05 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-91
- Merging upstream branch-2.16 [RH git: ca5dd54f22]
Commit list:
e7792039e6 netdev-linux: set correct action for packets that passed policer
* Thu Aug 04 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-90
- Merging upstream branch-2.16 [RH git: d31b5a2a53]
Commit list:
27936e0f9a python: Fix E275 missing whitespace after keyword.
0d3a67c462 dpif-netlink: Fix incorrect bit shift in compat mode.
4e319c98fa packets: Re-calculate IPv6 checksum only for first frag upon modify.
* Fri Jul 29 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-89
- Merging upstream branch-2.16 [RH git: a9d421666d]
Commit list:
2de2ef224e libopenvswitch.pc: Add missing libs for a static build.
bdf147c584 rhel: Stop installing internal headers.
a48436481a netdev-linux: Do not touch LAG members if master is not attached to OVS.
9cc1335f91 netdev: Clear auto_classified if netdev reopened with the type specified.
* Mon Jul 25 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-88
- Merging upstream branch-2.16 [RH git: 11b35522e2]
Commit list:
dfc4a324b0 system-traffic: Properly stop dangling ping after geneve test.
1c017da8ed conntrack: Fix conntrack multiple new state.
* Thu Jul 14 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-87
- Merging upstream branch-2.16 [RH git: 092b9c8e76]
Commit list:
997ba4ee77 tc: Fix misaligned access while creating pedit actions.
* Wed Jun 29 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-86
- Merging upstream branch-2.16 [RH git: c1bbe117f8]
Commit list:
2e6d28fafe dpif-netdev: Fix leak of AVX512 DPIF scratch pad.
* Wed Jun 29 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-85
- Merging upstream branch-2.16 [RH git: df1ebc7699]
Commit list:
0fe91ee5b0 dpif-netdev: Refactor AVX512 runtime checks. (#2100393)
* Tue Jun 28 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-84
- Merging upstream branch-2.16 [RH git: 058ebc82c2]
Commit list:
19f20b0da7 dpif-netdev-extract-avx512: Protect GCC builtin usage.
1439c72fa3 ovsdb: Fix memory leak on error path in ovsdb_file_read__().
8456befa34 odp-util: Ignore unknown attributes in parse_key_and_mask_to_match(). (#2089331)
222a52c86e lldp: Fix lldp memory leak.
b04b30af65 ipfix: Trigger revalidation if ipfix options changes.
* Mon Jun 27 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-83
- Merging upstream branch-2.16 [RH git: 3a0b236aca]
Commit list:
2266e91acd conntrack: Fix incorrect bit shift while hashing nat range.
7cfbd3921c odp-util: Fix unaligned access to tunnel id.
b46d9ba9f9 ofpbuf: Fix offsetting a NULL pointer in ofpbuf_reserve.
* Fri Jun 24 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-82
- Merging upstream branch-2.16 [RH git: c4dc313aae]
Commit list:
63f21bd205 drop-stats.at: Fix frequent failures of the recursion too deep test.
* Wed Jun 15 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-81
- Merging upstream branch-2.16 [RH git: 4e6f367244]
Commit list:
64f289dc97 Prepare for 2.16.5.
b614d27ebe Set release date for 2.16.4.
* Tue Jun 07 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-80
- Merging upstream branch-2.16 [RH git: 45dcf738b0]
Commit list:
87922569f3 ofproto-dpif-xlate: Fix internal CT state for non-recirc traffic.
51aa8dd106 classifier: Adjust segment boundary to execute prerequisite processing. (#2081773)
* Tue May 31 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-79
- Merging upstream branch-2.16 [RH git: c224775aed]
Commit list:
840c3fcb12 ofproto-dpif: Fix meter use-after-free.
77c89b0d25 ovs-rcu: Add ovsrcu_barrier.
* Thu May 26 2022 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-78
- Merging upstream branch-2.16 [RH git: d7d5f09849]
Commit list:
c8c78a76e5 ovsdb: raft: Fix transaction double commit due to lost leadership. (#2046340)
2809af022a Revert "odp-util: Always report ODP_FIT_TOO_LITTLE for IGMP."
90e31552be ofproto-dpif: Trigger revalidation if ct tp changes.
* Wed May 25 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-77
- Merging upstream branch-2.16 [RH git: 3e3d3725d3]
Commit list:
72bad27674 Carefully release NBL in Windows
* Wed May 18 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-76
- Merging upstream branch-2.16 [RH git: 72426100fe]
Commit list:
6a304c7866 tests: Properly kill ovsdb test processes.
44dfae2991 ovs-save: Get highest ofp version error.
63754ac391 netdev-linux: Properly access 32-bit aligned rtnl_link_stats64 structs.
* Wed May 04 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-75
- Merging upstream branch-2.16 [RH git: 0c22edcd05]
Commit list:
df77b74438 ofproto-dpif-xlate: Remove mirror assert.
c81571d602 netdev-dpdk: Fix tx drops statistic for a down netdev.
* Thu Apr 28 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-74
- vhost: fix queue number check when setting inflight FD [RH git: d084ce15a7]
[ upstream commit 6442c329b9d2ded0f44b27d2016aaba8ba5844c5 ]
In function vhost_user_set_inflight_fd, queue number in inflight
message is used to access virtqueue. However, queue number could
be larger than VHOST_MAX_VRING and cause write OOB as this number
will be used to write inflight info in virtqueue structure. This
patch checks the queue number to avoid the issue and also make
sure virtqueues are allocated before setting inflight information.
Fixes: ad0a4ae491fe ("vhost: checkout resubmit inflight information")
Reported-by: Wenxiang Qian <leonwxqian@gmail.com>
Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
* Thu Apr 28 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-73
- vhost: fix FD leak with inflight messages [RH git: fafbd8f642]
[ upstream commit af74f7db384ed149fe42b21dbd7975f8a54ef227 ]
Even if unlikely, a buggy vhost-user master might attach fds to inflight
messages. Add checks like for other types of vhost-user messages.
Fixes: d87f1a1cb7b6 ("vhost: support inflight info sharing")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
* Wed Apr 27 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-72
- Merging upstream branch-2.16 [RH git: 1c2e3ff275]
Commit list:
a51dd4685d ofproto-dpif-xlate: Clear out vlan flow fields while processing native tunnel. (#393566
2060552)
* Tue Apr 26 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-71
- Merging upstream branch-2.16 [RH git: a0490a292c]
Commit list:
271bea0ee0 ofproto-xlate: Fix crash when forwarding packet between legacy_l3 tunnels.
9f9d59aeae system-traffic: Fix fragment reassembly with L3 L4 protocol information.
* Thu Apr 21 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-70
- Really set RTE_ETH_MAXPORTS to 1024 [RH git: 104da44ad6]
Fixes: 81ff7c5a60f0 ("Change RTE_ETH_MAXPORTS to 1024")
* Mon Apr 18 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-69
- Merging upstream branch-2.16 [RH git: c9969bac2f]
Commit list:
2afa9d2285 cirrus: Update FreeBSD versions.
* Fri Apr 08 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-68
- Merging upstream branch-2.16 [RH git: 2ee98fa0ff]
Commit list:
be8b35fddf Prepare for 2.16.4.
d8639f81c1 Set release date for 2.16.3.
71a5a38c83 NEWS: Highlight libopenvswitch API change caused by UB fixes.
* Wed Apr 06 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-67
- Merging upstream branch-2.16 [RH git: 4936a7194b]
Commit list:
2c666b9791 netdev-offload-tc: Check for ct_state flag combinations that are not offloadable.
* Mon Apr 04 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-66
- Merging upstream branch-2.16 [RH git: 1418edaf18]
Commit list:
26189fd264 dpif-netdev: Fix dp_netdev_get_pmd() function getting correct core_id.
a5af081bc6 alb.at: Add tests for cross-numa polling.
78c8f8a7f6 dpif-netdev: Fix PMD auto load balance with pmd-rxq-isolate.
6731e581c4 pmd.at: Add tests for multi non-local numa pmds.
60652bb3eb dpif-netdev: Fix non-local numa selection for more than two numas.
c113039503 ofproto-dpif-xlate: Fix NULL pointer dereference in xlate_normal().
* Wed Mar 30 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-65
- Merging upstream branch-2.16 [RH git: b4c45acc47]
Commit list:
7644c924e8 sparse: bump recommended version and include headers.
20b87feba9 rculist: use multi-variable helpers for loop macros.
05a440fafb hindex: use multi-variable iterators.
04dca15004 cmap: use multi-variable iterators.
80e64f712d hmap: implement UB-safe hmap pop iterator.
3b4b0af690 hmap: use multi-variable helpers for hmap loops.
05e899ea8f list: use multi-variable helpers for list loops.
d2406399ae util: add helpers to overload SAFE macro.
f22f9d947a util: add safe multi-variable iterators.
72c3e8627c util: add multi-variable loop iterator macros.
* Wed Mar 30 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-64
- Merging upstream branch-2.16 [RH git: 32008eb008]
Commit list:
1570924c3f ovsdb: raft: Fix inability to read the database with DNS host names. (#2055097)
* Mon Mar 28 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-63
- Merging upstream branch-2.16 [RH git: a3c48a5aeb]
Commit list:
c50a0f080d system-traffic.at: Fix flaky DNAT load balancing test.
9928344ea7 dpif-netdev: Keep orig_in_port as a field of the flow.
aee2e66287 tests: Fix incorrect usage of OVS_WAIT_UNTIL.
5881545bd0 odp-util: Fix output for tc to be equal to kernel.
4a80c322f9 netdev-offload-tc: Fix IP and port ranges in flower returns.
49e0bb72bc netdev-offload-tc: Fix use of ICMP values instead of masks defines.
0fb545c7d9 netdev-offload-tc: Always include conntrack information to tc.
13a3f57976 netdev-offload-tc: Check for valid netdev ifindex in flow_put.
6e72fd96d3 netdev-offload-tc: Set the correct VLAN_VID and VLAN_PCP masks.
e43157f303 netdev-offload-tc: Add debug logs on tc rule verify failures.
37297e7ee6 tc: Keep header rewrite actions order.
823be413ec dpdk: Use DPDK 20.11.4 release
* Fri Mar 11 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-62
- Merging upstream branch-2.16 [RH git: 561b178a3d]
Commit list:
47b5374280 system-dpdk: Fix mfex autovalidator tests.
98a74bd487 ofp-prop: Silence the 'may be uninitialized' warning.
ab4f30e02b ovsdb-cluster.at: Avoid test failures due to different hashing.
* Mon Mar 07 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-61
- Merging upstream branch-2.16 [RH git: 0e0cf86cf5]
Commit list:
d5d2bd3c09 ofproto: Use xlate map for uuid lookups.
d158b29fb6 ofproto: Add refcount to ofproto to fix ofproto use-after-free.
* Sat Mar 05 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-60
- Merging upstream branch-2.16 [RH git: 67312d8bee]
Commit list:
43882d8372 ofproto-dpif: Trigger revalidation when ipfix config set.
218bb05fb2 system-tso: Skip encap tests when userspace TSO is enabled.
* Fri Mar 04 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-59
- Merging upstream branch-2.16 [RH git: 832e52bea7]
Commit list:
1515e085b9 tc: Fix stats byte count on fragmented packets.
7a3b46d517 compat: Add gen_stats include to define tc hw stats.
* Tue Mar 01 2022 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-58
- Change RTE_ETH_MAXPORTS to 1024 [RH git: 81ff7c5a60] (#2059758)
Resolves: #2059758
* Fri Feb 25 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-57
- Merging upstream branch-2.16 [RH git: 897937f6d3]
Commit list:
9598f0529c ovsdb: raft: Fix inability to join the cluster after interrupted attempt. (#2033514)
* Fri Feb 25 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-56
- Merging upstream branch-2.16 [RH git: e4d6d108a3]
Commit list:
fb4767b472 dpif-netdev: Fix a race condition in deletion of offloaded flows.
3e72eae031 dpif-netdev: Move port flush after datapath reconfiguration.
* Thu Feb 24 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-55
- Merging upstream branch-2.16 [RH git: 970214133d]
Commit list:
0168e7989d reconnect: Fix broken inactivity probe if there is no other reason to wake up.
* Thu Feb 24 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-54
- Merging upstream branch-2.16 [RH git: ac5da61d03]
Commit list:
dee52795e6 datapath-windows: Fix NXM_OF_IP_TOS issue
* Wed Feb 16 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-53
- Merging upstream branch-2.16 [RH git: b2df459e49]
Commit list:
dcde9771c5 ovsdb-idl: Fix use-after-free when destroying an IDL loop.
* Wed Feb 16 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-52
- Merging upstream branch-2.16 [RH git: bba08b5363]
Commit list:
8e23c06f24 dpif-netdev-dpcls: Make subtable reprobe thread-safe.
ac0e3dd3ba ci: Fix typo in variable name.
fc25e0397a dp-packet: Ensure packet base is always non-NULL.
dbae56e702 bfd: lldp: stp: Fix misaligned packet field access.
ee17b06cf9 ovsdb-idlc: Avoid accessing member within NULL idl index cursors.
1d799a5d17 stopwatch: Fix buffer underflow when computing percentiles.
* Wed Feb 09 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-51
- Merging upstream branch-2.16 [RH git: 7b6570c65f]
Commit list:
0954c2911d ofproto: Fix ipfix not always sampling on egress. (#2016346)
* Wed Feb 09 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-50
- Merging upstream branch-2.16 [RH git: c5ad7f71c5]
Commit list:
867e586b45 tc: Fix incorrect TC rule for decap+encap datapath flow.
* Tue Feb 08 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-49
- Merging upstream branch-2.16 [RH git: 4541c91b99]
Commit list:
418e6a0b8e dpif-netdev: fix vlan and ipv4 parsing in avx512
* Mon Feb 07 2022 Michael Santana <msantana@redhat.com> - 2.16.0-48
- Merging upstream branch-2.16 [RH git: 9d51785142]
Commit list:
1ec567a752 ci: Install wheel before installing any other python packages.
031a99cef0 odp-util: Fix tunnel key attr for GTP-U.
558699c73c ovsdb-idl: Only process successful txn in ovsdb_idl_loop_run.
* Wed Feb 02 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-47
- Merging upstream branch-2.16 [RH git: 6e6f66ffd0]
Commit list:
0276bdb30a ofproto-dpif-upcall: Fix n_revalidators on upcall show.
* Wed Feb 02 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-46
- Merging upstream branch-2.16 [RH git: 513117cbb0]
Commit list:
16575362dc acinclude: Detect avx512 vpopcntdq compiler support.
* Tue Feb 01 2022 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-45
- ovsdb: transaction: Keep one entry in the transaction history. [RH git: 7665f42d12] (#2044621)
commit 6e13565dd32fb2cf5517f51ca06956e2052c4bba
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Sun Dec 19 15:09:38 2021 +0100
ovsdb: transaction: Keep one entry in the transaction history.
If a single transaction exceeds the size of the whole database (e.g.,
a lot of rows got removed and new ones added), transaction history will
be drained. This leads to sending UUID_ZERO to the clients as the last
transaction id in the next monitor update, because monitor doesn't
know what was the actual last transaction id. In case of a re-connect
that will cause re-downloading of the whole database, since the
client's last_id will be out of sync.
One solution would be to store the last transaction ID separately
from the actual transactions, but that will require a careful
management in cases where database gets reset and the history needs
to be cleared. Keeping the one last transaction instead to avoid
the problem. That should not be a big concern in terms of memory
consumption, because this last transaction will be removed from the
history once the next transaction appeared. This is also not a concern
for a fast re-sync, because this last transaction will not be used
for the monitor reply; it's either client already has it, so no need
to send, or it's a history miss.
The test updated to not check the number of atoms if there is only
one transaction in the history.
Fixes: 317b1bfd7dd3 ("ovsdb: Don't let transaction history grow larger than the database.")
Acked-by: Mike Pattrick <mkp@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/2044621
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Mon Jan 31 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-44
- Merging upstream branch-2.16 [RH git: d202cd6da1]
Commit list:
34c830c540 ovsdb-idl: ovsdb_idl_loop_destroy must also destroy the committing txn.
13009736b2 ovsdb-cs: Clear last_id on reconnect if condition changes in-flight.
017e2ae50e ofp-flow: Skip flow reply if it exceeds the maximum message size.
e0c6f92a95 ovsdb-cs: Fix ignoring of the last id from the initial monitor reply. (#2044624)
* Fri Jan 28 2022 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-43
- ovsdb: storage: Randomize should_snapshot checks when the minimum time passed. [RH git: abe61535ca] (#2044614)
commit 339f97044e3c2312fbb65b932fa14a181acf40d5
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Mon Dec 13 16:43:33 2021 +0100
ovsdb: storage: Randomize should_snapshot checks when the minimum time passed.
Snapshots are scheduled for every 10-20 minutes. It's a random value
in this interval for each server. Once the time is up, but the maximum
time (24 hours) not reached yet, ovsdb will start checking if the log
grew a lot on every iteration. Once the growth is detected, compaction
is triggered.
OTOH, it's very common for an OVSDB cluster to not have the log growing
very fast. If the log didn't grow 2x in 20 minutes, the randomness of
the initial scheduled time is gone and all the servers are checking if
they need to create snapshot on every iteration. And since all of them
are part of the same cluster, their logs are growing with the same
speed. Once the critical mass is reached, all the servers will start
creating snapshots at the same time. If the database is big enough,
that might leave the cluster unresponsive for an extended period of
time (e.g. 10-15 seconds for OVN_Southbound database in a larger scale
OVN deployment) until the compaction completed.
Fix that by re-scheduling a quick retry if the minimal time already
passed. Effectively, this will work as a randomized 1-2 min delay
between checks, so the servers will not synchronize.
Scheduling function updated to not change the upper limit on quick
reschedules to avoid delaying the snapshot creation indefinitely.
Currently quick re-schedules are only used for the error cases, and
there is always a 'slow' re-schedule after the successful compaction.
So, the change of a scheduling function doesn't change the current
behavior much.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Han Zhou <hzhou@ovn.org>
Acked-by: Dumitru Ceara <dceara@redhat.com>
Reported-at: https://bugzilla.redhat.com/2044614
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Fri Jan 28 2022 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-42
- raft: Only allow followers to snapshot. [RH git: 915efc8c00] (#2044614)
commit bf07cc9cdb2f37fede8c0363937f1eb9f4cfd730
Author: Dumitru Ceara <dceara@redhat.com>
Date: Mon Dec 13 20:46:03 2021 +0100
raft: Only allow followers to snapshot.
Commit 3c2d6274bcee ("raft: Transfer leadership before creating
snapshots.") made it such that raft leaders transfer leadership before
snapshotting. However, there's still the case when the next leader to
be is in the process of snapshotting. To avoid delays in that case too,
we now explicitly allow snapshots only on followers. Cluster members
will have to wait until the current election is settled before
snapshotting.
Given the following logs taken from an OVN_Southbound 3-server cluster
during a scale test:
S1 (old leader):
19:07:51.226Z|raft|INFO|Transferring leadership to write a snapshot.
19:08:03.830Z|ovsdb|INFO|OVN_Southbound: Database compaction took 12601ms
19:08:03.940Z|raft|INFO|server 8b8d is leader for term 43
S2 (follower):
19:08:00.870Z|raft|INFO|server 8b8d is leader for term 43
S3 (new leader):
19:07:51.242Z|raft|INFO|received leadership transfer from f5c9 in term 42
19:07:51.244Z|raft|INFO|term 43: starting election
19:08:00.805Z|ovsdb|INFO|OVN_Southbound: Database compaction took 9559ms
19:08:00.869Z|raft|INFO|term 43: elected leader by 2+ of 3 servers
We see that the leader to be (S3) receives the leadership transfer,
initiates the election and immediately after starts a snapshot that
takes ~9.5 seconds. During this time, S2 votes for S3 electing it
as cluster leader but S3 doesn't effectively become leader until it
finishes snapshotting, essentially keeping the cluster without a
leader for up to ~9.5 seconds.
With the current change, S3 will delay compaction and snapshotting until
the election is finished.
The only exception is the case of single-node clusters for which we
allow the node to snapshot regardless of role.
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/2044614
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Wed Jan 26 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-41
- Merging upstream branch-2.16 [RH git: f1ca7b8ac3]
Commit list:
2571b1a464 ofproto-dpif: Fix issue with non-reversible actions on a patch ports.
* Fri Jan 21 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-40
- Merging upstream branch-2.16 [RH git: 60b19f443c]
Commit list:
07a115f7d9 ovs-monitor-ipsec: Fix generated strongSwan ipsec.conf for IPv6.
* Thu Jan 20 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-39
- Merging upstream branch-2.16 [RH git: 349d687673]
Commit list:
f2ee013f73 datapath-windows: Pickup Ct tuple as CT lookup key in function OvsCtSetupLookupCtx
* Tue Jan 18 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-38
- Merging upstream branch-2.16 [RH git: e370e283cf]
Commit list:
bd8ebcd10c Documentation: Fix Rx/Tx queue configuration section.
* Mon Jan 17 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-37
- Merging upstream branch-2.16 [RH git: c9297f5ef7]
Commit list:
29936a853f ofproto-dpif: Fix memory leak in dpif/show-dp-features appctl.
* Thu Jan 13 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-36
- Merging upstream branch-2.16 [RH git: edae801e00]
Commit list:
ba7fffb832 dpif-netdev: Improve loading of packet data for undersized packets.
* Sat Dec 18 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-35
- Merging upstream branch-2.16 [RH git: 6ad0375ff5]
Commit list:
2595b7b3d1 Prepare for 2.16.3.
6caaae525c Set release date for 2.16.2.
443e3657d7 ofproto-dpif-xlate: Snoop ingress packets and update neigh cache if needed.
75d2ef9a60 tnl-neigh-cache: Do not refresh the entry while revalidating.
5d88836566 tnl-neigh-cache: Read/write expires atomically.
fb42c99c15 dpif-netdev: Improve handling of IP/TCP in avx512 mfex.
* Thu Dec 09 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-34
- Merging upstream branch-2.16 [RH git: 07b9bf085a]
Commit list:
f42c484445 compat: handle NF_REPEAT error on nf_conntrack_in.
* Mon Dec 06 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-33
- Merging upstream branch-2.16 [RH git: 8708b55152]
Commit list:
3e527f21cf flow: Consider dataofs when parsing TCP packets.
b537e049ad tests/flowgen: Fix packet data endianness.
35244b4980 ofproto: Fix resource usage explosion due to removal of large number of flows.
a201297639 ofproto: Fix resource usage explosion while processing bundled FLOW_MOD.
cd0133402c tests/flowgen: Fix length field of 802.2 data link header.
2d65b8ffd2 ovs-lib: Backup and remove existing DB when joining cluster.
ab01177637 docs/dpdk: Fix install doc.
38a2129524 ovs-save: Save igmp flows in ofp_parse syntax.
dc77857ce2 faq: Update OVS/DPDK version table for OVS 2.13/2.14.
* Thu Nov 18 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-32
- Merging upstream branch-2.16 [RH git: e90e06a818]
Commit list:
1d8e0f861f ofproto-dpif-xlate: Fix check_pkt_larger incomplete translation.
* Mon Nov 15 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-31
- Merging upstream branch-2.16 [RH git: 77a249d38b]
Commit list:
f8f2f7c9cb datapath-windows: Reset flow key after Ipv4 fragments are reassembled
* Wed Nov 10 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-30
- python: Replace pyOpenSSL with ssl. [RH git: 0cd5867531] (#1988429)
Currently, pyOpenSSL is half-deprecated upstream and so it's removed on
some distributions (for example on CentOS Stream 9,
https://issues.redhat.com/browse/CS-336), but since OVS only
supports Python 3 it's possible to replace pyOpenSSL with "import ssl"
included in base Python 3.
Stream recv and send had to be splitted as _recv and _send, since SSLError
is a subclass of socket.error and so it was not possible to except for
SSLWantReadError and SSLWantWriteError in recv and send of SSLStream.
TCPstream._open cannot be used in SSLStream, since Python ssl module
requires the SSL socket to be created before connecting it, so
SSLStream._open needs to create the socket, create SSL socket and then
connect the SSL socket.
Reported-by: Timothy Redaelli <tredaelli@redhat.com>
Reported-at: https://bugzilla.redhat.com/1988429
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Acked-by: Terry Wilson <twilson@redhat.com>
Tested-by: Terry Wilson <twilson@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
* Wed Nov 10 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-29
- python: socket-util: Split inet_open_active function and use connect_ex. [RH git: 2e704b371c]
In an upcoming patch, PyOpenSSL will be replaced with Python ssl module,
but in order to do an async connection with Python ssl module the ssl
socket must be created when the socket is created, but before the
socket is connected.
So, inet_open_active function is splitted in 3 parts:
- inet_create_socket_active: creates the socket and returns the family and
the socket, or (error, None) if some error needs to be returned.
- inet_connect_active: connect the socket and returns the errno (it
returns 0 if errno is EINPROGRESS or EWOULDBLOCK).
connect is replaced by connect_ex, since Python suggest to use it for
asynchronous connects and it's also cleaner since inet_connect_active
returns errno that connect_ex already returns, moreover due to a Python
limitation connect cannot not be used with ssl module.
inet_open_active function is changed in order to use the new functions
inet_create_socket_active and inet_connect_active.
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Acked-by: Terry Wilson <twilson@redhat.com>
Tested-by: Terry Wilson <twilson@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
* Wed Nov 10 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-28
- redhat: remove mlx4 support [RH git: 4c846afd24] (#1998122)
Resolves: #1998122
* Tue Nov 09 2021 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-27
- ovsdb: Don't let transaction history grow larger than the database. [RH git: 93d1fa0bdf] (#2012949)
commit 317b1bfd7dd315e241c158e6d4095002ff391ee3
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Tue Sep 28 13:17:21 2021 +0200
ovsdb: Don't let transaction history grow larger than the database.
If user frequently changes a lot of rows in a database, transaction
history could grow way larger than the database itself. This wastes
a lot of memory and also makes monitor_cond_since slower than
usual monotor_cond if the transaction id is old enough, because
re-construction of the changes from a history is slower than just
creation of initial database snapshot. This is also the case if
user deleted a lot of data, so transaction history still holds all of
it while the database itself doesn't.
In case of current lb-per-service model in ovn-kubernetes, each
load-balancer is added to every logical switch/router. Such a
transaction touches more than a half of a OVN_Northbound database.
And each of these transactions is added to the transaction history.
Since transaction history depth is 100, in worst case scenario,
it will hold 100 copies of a database increasing memory consumption
dramatically. In tests with 3000 LBs and 120 LSs, memory goes up
to 3 GB, while holding at 30 MB if transaction history disabled in
the code.
Fixing that by keeping count of the number of ovsdb_atom's in the
database and not allowing the total number of atoms in transaction
history to grow larger than this value. Counting atoms is fairly
cheap because we don't need to iterate over them, so it doesn't have
significant performance impact. It would be ideal to measure the
size of individual atoms, but that will hit the performance.
Counting cells instead of atoms is not sufficient, because OVN
users are adding hundreds or thousands of atoms to a single cell,
so they are largely different in size.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Han Zhou <hzhou@ovn.org>
Acked-by: Dumitru Ceara <dceara@redhat.com>
Reported-at: https://bugzilla.redhat.com/2012949
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Tue Nov 09 2021 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-26
- ovsdb: transaction: Incremental reassessment of weak refs. [RH git: e8a363db49] (#2005958)
commit 4dbff9f0a68579241ac1a040726be3906afb8fe9
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Sat Oct 16 03:20:23 2021 +0200
ovsdb: transaction: Incremental reassessment of weak refs.
The main idea is to not store list of weak references in the source
row, so they all don't need to be re-checked/updated on every
modification of that source row. The point is that source row already
knows UUIDs of all destination rows stored in the data, so there is no
much profit in storing this information somewhere else. If needed,
destination row can be looked up and reference can be looked up in the
destination row. For the fast lookup, destination row now stores
references in a hash map.
Weak reference structure now contains the table and uuid of a source
row instead of a direct pointer. This allows to replace/update the
source row without breaking any weak references stored in destination
rows.
Structure also now contains the key-value pair of atoms that triggered
creation of this reference. These atoms can be used to quickly
subtract removed references from a source row. During reassessment,
ovsdb now only needs to care about new added or removed atoms, and
atoms that got removed due to removal of the destination rows, but
these are marked for reassessment by the destination row.
ovsdb_datum_subtract() is used to remove atoms that points to removed
or incorrect rows, so there is no need to re-sort datum in the end.
Results of an OVN load-balancer benchmark that adds 3K load-balancers
to each of 120 logical switches and 120 logical routers in the OVN
sandbox with clustered Northbound database and then removes them:
Before:
%CPU CPU Time CMD
86.8 00:16:05 ovsdb-server nb1.db
44.1 00:08:11 ovsdb-server nb2.db
43.2 00:08:00 ovsdb-server nb3.db
After:
%CPU CPU Time CMD
54.9 00:02:58 ovsdb-server nb1.db
33.3 00:01:48 ovsdb-server nb2.db
32.2 00:01:44 ovsdb-server nb3.db
So, on a cluster leader the processing time dropped by 5.4x, on
followers - by 4.5x. More load-balancers - larger the performance
difference. There is a slight increase of memory usage, because new
reference structure is larger, but the difference is not significant.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Dumitru Ceara <dceara@redhat.com>
Reported-at: https://bugzilla.redhat.com/2005958
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Thu Oct 28 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-25
- Merging upstream branch-2.16 [RH git: f5366890c5]
Commit list:
c221c8e613 datapath-windows:Reset PseudoChecksum value only for TX direction offload case
* Wed Oct 27 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-24
- Merging upstream branch-2.16 [RH git: 4682b76694]
Commit list:
b79f0369f2 ci: Make linux-prepare trust system installs.
* Mon Oct 25 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-23
- Merging upstream branch-2.16 [RH git: cce913794e]
Commit list:
2a4c87f300 Prepare for 2.16.2.
aaa1439b8e Set release date for 2.16.1.
* Thu Oct 21 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-22
- Merging upstream branch-2.16 [RH git: 29f01c4fdb]
Commit list:
108176ab5a github: Stick to python 3.9.
* Tue Oct 19 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-21
- Merging upstream branch-2.16 [RH git: 2546fa9646]
Commit list:
5c5e34603b datapath-windows: add layers when adding the deferred actions
* Thu Oct 14 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-20
- Merging upstream branch-2.16 [RH git: d572c95f69]
Commit list:
458a4f75f3 ofproto-dpif-xlate: Fix zone set from non-frozen-metadata fields.
* Wed Oct 13 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-19
- Merging upstream branch-2.16 [RH git: 557ca689f7]
Commit list:
6d8190584a dpif-netdev: Fix use-after-free on PACKET_OUT of IP fragments.
44a66cc1d0 tunnel-push-pop.at: Mask source port in tunnel header.
* Tue Oct 12 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-18
- Merging upstream branch-2.16 [RH git: a6c4770398]
Commit list:
27a5848a33 ovs-ctl: Add missing description for --ovs-vswitchd-options and --ovsdb-server-options to usage().
0300d0c0c2 dpdk-stub: Change the ERR log to DBG.
cdd6dd821d dpif-netlink: Fix feature negotiation for older kernels.
c2682c42cb dpif-netdev: Fix pmd thread comments to include SMC.
9377f4a465 python: idl: Avoid sending transactions when the DB is not synced up.
* Tue Oct 12 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-17
- Merging upstream branch-2.16 [RH git: c1145b5236]
Commit list:
0fd17fbb09 ipf: release unhandled packets from the batch
* Thu Sep 30 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-16
- Merging upstream branch-2.16 [RH git: 5c05133179]
Commit list:
3f692fba98 datapath-windows:adjust Offset when processing packet in POP_VLAN action
* Wed Sep 29 2021 Dumitru Ceara <dceara@redhat.com> - 2.16.0-15
- ovsdb-data: Deduplicate string atoms. [RH git: 24e7d1140e] (#2006839)
commit 429b114c5aadee24ccfb16ad7d824f45cdcea75a
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Wed Sep 22 09:28:50 2021 +0200
ovsdb-server spends a lot of time cloning atoms for various reasons,
e.g. to create a diff of two rows or to clone a row to the transaction.
All atoms, except for strings, contains a simple value that could be
copied in efficient way, but duplicating strings every time has a
significant performance impact.
Introducing a new reference-counted structure 'ovsdb_atom_string'
that allows to not copy strings every time, but just increase a
reference counter.
This change allows to increase transaction throughput in benchmarks
up to 2x for standalone databases and 3x for clustered databases, i.e.
number of transactions that ovsdb-server can handle per second.
It also noticeably reduces memory consumption of ovsdb-server.
Next step will be to consolidate this structure with json strings,
so we will not need to duplicate strings while converting database
objects to json and back.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Dumitru Ceara <dceara@redhat.com>
Acked-by: Mark D. Gray <mark.d.gray@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2006839
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
* Wed Sep 29 2021 Dumitru Ceara <dceara@redhat.com> - 2.16.0-14
- ovsdb-data: Add function to apply diff in-place. [RH git: df0e4bda98] (#2006851)
commit 32b51326ef9c307b4acd0bacafb0218dd1372f3d
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Thu Sep 23 01:47:24 2021 +0200
ovsdb_datum_apply_diff() is heavily used in ovsdb transactions, but
it's linear in terms of number of comparisons. And it also clones
all the atoms along the way. In most cases size of a diff is much
smaller than the size of the original datum, this allows to perform
the same operation in-place with only O(diff->n * log2(old->n))
comparisons and O(old->n + diff->n) memory copies with memcpy.
Using this function while applying diffs read from the storage gives
a significant performance boost and allows to execute much more
transactions per second.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Mark D. Gray <mark.d.gray@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2006851
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
* Wed Sep 29 2021 Dumitru Ceara <dceara@redhat.com> - 2.16.0-13
- ovsdb-data: Optimize subtraction of sets. [RH git: 5bace82405] (#2005483)
commit bb12b63176389e516ddfefce20dfa165f24430fb
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Thu Sep 23 01:47:23 2021 +0200
Current algorithm for ovsdb_datum_subtract looks like this:
for-each atom in a:
if atom in b:
swap(atom, <last atom in 'a'>)
destroy(atom)
quicksort(a)
Complexity:
Na * log2(Nb) + (Na - Nb) * log2(Na - Nb)
Search Comparisons for quicksort
It's not optimal, especially because Nb << Na in a vast majority of
cases.
Reversing the search phase to look up atoms from 'b' in 'a', and
closing gaps from deleted elements in 'a' by plain memory copy to
avoid quicksort.
Resulted complexity:
Nb * log2(Na) + (Na - Nb)
Search Memory copies
Subtraction is heavily used while executing database transactions.
For example, to remove one port from a logical switch in OVN.
Complexity of such operation if original logical switch had 100 ports
goes down from
100 * log2(1) = 100 comparisons for search and
99 * log2(99) = 656 comparisons for quicksort
------------------------------
756 comparisons in total
to only
1 * log2(100) = 7 comparisons for search
+ memory copy of 99 * sizeof (union ovsdb_atom) bytes.
We could use memmove to close the gaps after removing atoms, but
it will lead to 2 memory copies inside the call, while we can perform
only one to the temporary 'result' and swap pointers.
Performance in cases, where sizes of 'a' and 'b' are comparable,
should not change. Cases with Nb >> Na should not happen in practice.
All in all, this change allows ovsdb-server to perform several times
more transactions, that removes elements from sets, per second.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Han Zhou <hzhou@ovn.org>
Acked-by: Mark D. Gray <mark.d.gray@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2005483
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
* Wed Sep 29 2021 Dumitru Ceara <dceara@redhat.com> - 2.16.0-12
- ovsdb-data: Optimize union of sets. [RH git: e2a4c7d794] (#2005483)
commit 51946d22274cd591dc061358fb507056fbd91420
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Thu Sep 23 01:47:22 2021 +0200
Current algorithm of ovsdb_datum_union looks like this:
for-each atom in b:
if not bin_search(a, atom):
push(a, clone(atom))
quicksort(a)
So, the complexity looks like this:
Nb * log2(Na) + Nb + (Na + Nb) * log2(Na + Nb)
Comparisons clones Comparisons for quicksort
for search
ovsdb_datum_union() is heavily used in database transactions while
new element is added to a set. For example, if new logical switch
port is added to a logical switch in OVN. This is a very common
use case where CMS adds one new port to an existing switch that
already has, let's say, 100 ports. For this case ovsdb-server will
have to perform:
1 * log2(100) + 1 clone + 101 * log2(101)
Comparisons Comparisons for
for search quicksort.
~7 1 ~707
Roughly 714 comparisons of atoms and 1 clone.
Since binary search can give us position, where new atom should go
(it's the 'low' index after the search completion) for free, the
logic can be re-worked like this:
copied = 0
for-each atom in b:
desired_position = bin_search(a, atom)
push(result, a[ copied : desired_position - 1 ])
copied = desired_position
push(result, clone(atom))
push(result, a[ copied : Na ])
swap(a, result)
Complexity of this schema:
Nb * log2(Na) + Nb + Na
Comparisons clones memory copy on push
for search
'swap' is just a swap of a few pointers. 'push' is not a 'clone',
but a simple memory copy of 'union ovsdb_atom'.
In general, this schema substitutes complexity of a quicksort
with complexity of a memory copy of Na atom structures, where we're
not even copying strings that these atoms are pointing to.
Complexity in the example above goes down from 714 comparisons
to 7 comparisons and memcpy of 100 * sizeof (union ovsdb_atom) bytes.
General complexity of a memory copy should always be lower than
complexity of a quicksort, especially because these copies usually
performed in bulk, so this new schema should work faster for any input.
All in all, this change allows to execute several times more
transactions per second for transactions that adds new entries to sets.
Alternatively, union can be implemented as a linear merge of two
sorted arrays, but this will result in O(Na) comparisons, which
is more than Nb * log2(Na) in common case, since Na is usually
far bigger than Nb. Linear merge will also mean per-atom memory
copies instead of copying in bulk.
'replace' functionality of ovsdb_datum_union() had no users, so it
just removed. But it can easily be added back if needed in the future.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Han Zhou <hzhou@ovn.org>
Acked-by: Mark D. Gray <mark.d.gray@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2005483
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
* Wed Sep 29 2021 Dumitru Ceara <dceara@redhat.com> - 2.16.0-11
- ovsdb: transaction: Use diffs for strong reference counting. [RH git: 85da133eaa] (#2003203)
commit b2712d026eae2d9a5150c2805310eaf506e1f162
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Tue Sep 14 00:19:57 2021 +0200
Currently, even if one reference added to the set of strong references
or removed from it, ovsdb-server will walk through the whole set and
re-count references to other rows. These referenced rows will also be
added to the transaction in order to re-count their references.
For example, every time Logical Switch Port added to a Logical Switch,
OVN Northbound database server will walk through all ports of this
Logical Switch, clone their rows, and re-count references. This is
not very efficient. Instead, it can only increase reference counters
for added references and reduce for removed ones. In many cases this
will be only one row affected in the Logical_Switch_Port table.
Introducing new function that generates a diff of two datum objects,
but stores added and removed atoms separately, so they can be used
to increase or decrease row reference counters accordingly.
This change allows to perform several times more transactions that
adds or removes strong references to/from sets per second, because
ovsdb-server no longer clones and re-counts rows that are irrelevant
to current transaction.
Acked-by: Dumitru Ceara <dceara@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2003203
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
* Mon Sep 27 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-10
- Merging upstream branch-2.16 [RH git: 2114714012]
Commit list:
547371ecdb cirrus: Reduce memory requirements for FreeBSD VMs.
* Thu Sep 23 2021 Timothy Redaelli <tredaelli@redhat.com> - 2.16.0-9
- redhat: use hugetlbfs group for /var/log/openvswitch when dpdk is enabled [RH git: 4e5928b671] (#2004543)
Resolves: #2004543
* Thu Sep 16 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-8
- Merging upstream branch-2.16 [RH git: 7332b410fc]
Commit list:
facaf5bc71 netdev-linux: Fix a null pointer dereference in netdev_linux_notify_sock().
6e203d4873 pcap-file: Fix memory leak in ovs_pcap_open().
f50da0b267 odp-util: Fix a null pointer dereference in odp_flow_format().
7da752e43f odp-util: Fix a null pointer dereference in odp_nsh_key_from_attr__().
bc22b01459 netdev-dpdk: Fix RSS configuration for virtio.
81706c5d43 ipf: Fix only nat the first fragment in the reass process.
* Wed Sep 08 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-7
- Merging upstream branch-2.16 [RH git: e71f31dfd6]
Commit list:
242c280f0e dpif-netdev: Fix crash when PACKET_OUT is metered.
* Tue Aug 31 2021 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-6
- ovsdb: monitor: Store serialized json in a json cache. [RH git: bc20330c85] (#1996152)
commit 43e66fc27659af2a5c976bdd27fe747b442b5554
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Tue Aug 24 21:00:39 2021 +0200
Same json from a json cache is typically sent to all the clients,
e.g., in case of OVN deployment with ovn-monitor-all=true.
There could be hundreds or thousands connected clients and ovsdb
will serialize the same json object for each of them before sending.
Serializing it once before storing into json cache to speed up
processing.
This change allows to save a lot of CPU cycles and a bit of memory
since we need to store in memory only a string and not the full json
object.
Testing with ovn-heater on 120 nodes using density-heavy scenario
shows reduction of the total CPU time used by Southbound DB processes
from 256 minutes to 147. Duration of unreasonably long poll intervals
also reduced dramatically from 7 to 2 seconds:
Count Min Max Median Mean 95 percentile
-------------------------------------------------------------
Before 1934 1012 7480 4302.5 4875.3 7034.3
After 1909 1004 2730 1453.0 1532.5 2053.6
Acked-by: Dumitru Ceara <dceara@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1996152
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Tue Aug 31 2021 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-5
- raft: Don't keep full json objects in memory if no longer needed. [RH git: 4606423e8b] (#1990058)
commit 0de882954032aa37dc943bafd72c33324aa0c95a
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Tue Aug 24 21:00:38 2021 +0200
raft: Don't keep full json objects in memory if no longer needed.
Raft log entries (and raft database snapshot) contains json objects
of the data. Follower receives append requests with data that gets
parsed and added to the raft log. Leader receives execution requests,
parses data out of them and adds to the log. In both cases, later
ovsdb-server reads the log with ovsdb_storage_read(), constructs
transaction and updates the database. On followers these json objects
in common case are never used again. Leader may use them to send
append requests or snapshot installation requests to followers.
However, all these operations (except for ovsdb_storage_read()) are
just serializing the json in order to send it over the network.
Json objects are significantly larger than their serialized string
representation. For example, the snapshot of the database from one of
the ovn-heater scale tests takes 270 MB as a string, but 1.6 GB as
a json object from the total 3.8 GB consumed by ovsdb-server process.
ovsdb_storage_read() for a given raft entry happens only once in a
lifetime, so after this call, we can serialize the json object, store
the string representation and free the actual json object that ovsdb
will never need again. This can save a lot of memory and can also
save serialization time, because each raft entry for append requests
and snapshot installation requests serialized only once instead of
doing that every time such request needs to be sent.
JSON_SERIALIZED_OBJECT can be used in order to seamlessly integrate
pre-serialized data into raft_header and similar json objects.
One major special case is creation of a database snapshot.
Snapshot installation request received over the network will be parsed
and read by ovsdb-server just like any other raft log entry. However,
snapshots created locally with raft_store_snapshot() will never be
read back, because they reflect the current state of the database,
hence already applied. For this case we can free the json object
right after writing snapshot on disk.
Tests performed with ovn-heater on 60 node density-light scenario,
where on-disk database goes up to 97 MB, shows average memory
consumption of ovsdb-server Southbound DB processes decreased by 58%
(from 602 MB to 256 MB per process) and peak memory consumption
decreased by 40% (from 1288 MB to 771 MB).
Test with 120 nodes on density-heavy scenario with 270 MB on-disk
database shows 1.5 GB memory consumption decrease as expected.
Also, total CPU time consumed by the Southbound DB process reduced
from 296 to 256 minutes. Number of unreasonably long poll intervals
reduced from 2896 down to 1934.
Deserialization is also implemented just in case. I didn't see this
function being invoked in practice.
Acked-by: Dumitru Ceara <dceara@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1990058
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Tue Aug 31 2021 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-4
- json: Add support for partially serialized json objects. [RH git: 885e5ce1b5] (#1990058)
commit b0bca6f27aae845c3ca8b48d66a7dbd3d978162a
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Tue Aug 24 21:00:37 2021 +0200
json: Add support for partially serialized json objects.
Introducing a new json type JSON_SERIALIZED_OBJECT. It's not an
actual type that can be seen in a json message on a wire, but
internal type that is intended to hold a serialized version of
some other json object. For this reason it's defined after the
JSON_N_TYPES to not confuse parsers and other parts of the code
that relies on compliance with RFC 4627.
With this JSON type internal users may construct large JSON objects,
parts of which are already serialized. This way, while serializing
the larger object, data from JSON_SERIALIZED_OBJECT can be added
directly to the result, without additional processing.
This will be used by next commits to add pre-serialized JSON data
to the raft_header structure, that can be converted to a JSON
before writing the file transaction on disk or sending to other
servers. Same technique can also be used to pre-serialize json_cache
for ovsdb monitors, this should allow to not perform serialization
for every client and will save some more memory.
Since serialized JSON is just a string, reusing the 'json->string'
pointer for it.
Acked-by: Dumitru Ceara <dceara@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1990058
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Tue Aug 31 2021 Ilya Maximets <i.maximets@redhat.com> - 2.16.0-3
- json: Optimize string serialization. [RH git: bb1654da63] (#1990069)
commit 748010ff304b7cd2c43f4eb98a554433f0df07f9
Author: Ilya Maximets <i.maximets@ovn.org>
Date: Tue Aug 24 23:07:22 2021 +0200
json: Optimize string serialization.
Current string serialization code puts all characters one by one.
This is slow because dynamic string needs to perform length checks
on every ds_put_char() and it's also doesn't allow compiler to use
better memory copy operations, i.e. doesn't allow copying few bytes
at once.
Special symbols are rare in a typical database. Quotes are frequent,
but not too frequent. In databases created by ovn-kubernetes, for
example, usually there are at least 10 to 50 chars between quotes.
So, it's better to count characters that doesn't require escaping
and use fast data copy for the whole sequential block.
Testing with a synthetic benchmark (included) on my laptop shows
following performance improvement:
Size Q S Before After Diff
-----------------------------------------------------
100000 0 0 : 0.227 ms 0.142 ms -37.4 %
100000 2 1 : 0.277 ms 0.186 ms -32.8 %
100000 10 1 : 0.361 ms 0.309 ms -14.4 %
10000000 0 0 : 22.720 ms 12.160 ms -46.4 %
10000000 2 1 : 27.470 ms 19.300 ms -29.7 %
10000000 10 1 : 37.950 ms 31.250 ms -17.6 %
100000000 0 0 : 239.600 ms 126.700 ms -47.1 %
100000000 2 1 : 292.400 ms 188.600 ms -35.4 %
100000000 10 1 : 387.700 ms 321.200 ms -17.1 %
Here Q - probability (%) for a character to be a '\"' and
S - probability (%) to be a special character ( < 32).
Testing with a closer to real world scenario shows overall decrease
of the time needed for database compaction by ~5-10 %. And this
change also decreases CPU consumption in general, because string
serialization is used in many different places including ovsdb
monitors and raft.
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Acked-by: Numan Siddique <numans@ovn.org>
Acked-by: Dumitru Ceara <dceara@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1990069
Signed-off-by: Ilya Maximets <i.maximets@redhat.com>
* Fri Aug 20 2021 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-2
- Merging upstream branch-2.16 [RH git: 7d7567e339]
Commit list:
0991ea8d19 Prepare for 2.16.1.
* Wed Aug 18 2021 Flavio Leitner <fbl@redhat.com> - 2.16.0-1
- redhat: First 2.16.0 release. [RH git: 0a1c4276cc]