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