Blob Blame History Raw
# 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: 102%{?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
* 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]