# 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 openvswitch3.3 %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: 3.3.0 Release: 42%{?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 23.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 Source2: openvswitch.sysusers Source3: openvswitch-hugetlbfs.sysusers Source10: https://fast.dpdk.org/rel/dpdk-%{dpdkver}.tar.xz %define docutilsver 0.12 %define pygmentsver 1.4 %define sphinxver 1.2.3 %define pyelftoolsver 0.27 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 Source103: https://pypi.io/packages/source/p/pyelftools/pyelftools-%{pyelftoolsver}.tar.gz %define apply_patch %(test -s %{_sourcedir}/openvswitch-%{version}.patch && echo 1 || echo 0) %if %{apply_patch} Patch0: openvswitch-%{version}.patch %endif # 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 < 3.3 Conflicts: openvswitch-dpdk < 3.3 Conflicts: openvswitch2.10 Conflicts: openvswitch2.11 Conflicts: openvswitch2.12 Conflicts: openvswitch2.13 Conflicts: openvswitch2.14 Conflicts: openvswitch2.15 Conflicts: openvswitch2.16 Conflicts: openvswitch2.17 Conflicts: openvswitch3.0 Conflicts: openvswitch3.1 Conflicts: openvswitch3.2 # 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 systemd-rpm-macros openssl openssl-devel BuildRequires: python3-devel python3-setuptools BuildRequires: desktop-file-utils BuildRequires: groff-base graphviz BuildRequires: unbound-devel BuildRequires: systemtap-sdt-devel # make check dependencies BuildRequires: procps-ng %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 %if 0%{?rhel} > 8 || 0%{?fedora} BuildRequires: python3-pyelftools %endif # DPDK driver dependencies BuildRequires: zlib-devel numactl-devel libarchive-devel # libarchive static dependencies BuildRequires: bzip2-devel libacl-devel libxml2-devel libzstd-devel lz4-devel xz-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 %{?sysusers_requires_compat} Requires(post): /bin/sed Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units Obsoletes: openvswitch-controller <= 0:2.1.0-1 %if 0%{?rhel} # sortedcontainers are not packaged on RHEL yet, but ovs includes it %global __requires_exclude ^python%{python3_version}dist\\(sortedcontainers\\)$ %endif %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} == 8 || 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 %if 0%{?rhel} && 0%{?rhel} < 9 %if 0%{?commit:1} %setup -n ovs-%{commit} -q -D -T -a 103 %else %setup -n ovs-%{version} -q -D -T -a 103 %endif %endif mv dpdk-*/ %{dpdkdir}/ %if %{apply_patch} %patch0 -p1 %endif %build %if 0%{?rhel} && 0%{?rhel} < 9 export PYTHONPATH="${PWD}/pyelftools-%{pyelftoolsver}" %endif # 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+=( baseband/acc bus/auxiliary bus/vmbus common/iavf common/mlx5 common/nfp 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 for driver in "${ENABLED_DRIVERS[@]}"; do enable_drivers="${enable_drivers:+$enable_drivers,}"$driver done # If doing any updates, this must be aligned with: # https://access.redhat.com/articles/3538141 ENABLED_LIBS=( bbdev bitratestats bpf cmdline cryptodev dmadev gro gso hash ip_frag latencystats member meter metrics pcapng pdump security stack vhost ) for lib in "${ENABLED_LIBS[@]}"; do enable_libs="${enable_libs:+$enable_libs,}"$lib done %set_build_flags %__meson --prefix=%{_builddir}/dpdk-build \ --buildtype=plain \ -Denable_libs="$enable_libs" \ -Ddisable_apps="*" \ -Denable_drivers="$enable_drivers" \ -Dplatform=generic \ -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 \ --enable-usdt-probes \ --disable-afxdp \ --with-version-suffix=-%{release} 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 \ --enable-usdt-probes \ --disable-afxdp \ --with-version-suffix=-%{release} 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 sbin_PROGRAMS=ovsdb/ovsdb-server DESTDIR=$RPM_BUILD_ROOT make -C build-static install bin_PROGRAMS= sbin_PROGRAMS=vswitchd/ovs-vswitchd 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 %{SOURCE2} $RPM_BUILD_ROOT%{_sysusersdir}/openvswitch.conf %ifarch %{dpdkarches} install -p -D -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysusersdir}/openvswitch-hugetlbfs.conf %endif 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 %if 0%{?rhel} < 9 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 %endif 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 %sysusers_create_compat %{SOURCE2} %ifarch %{dpdkarches} %sysusers_create_compat %{SOURCE3} %endif %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 %{_datadir}/openvswitch/scripts/usdt/* %{_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} == 8 || 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/local-config.ovsschema %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.local-config.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 %{_sysusersdir}/openvswitch.conf %ifarch %{dpdkarches} %{_sysusersdir}/openvswitch-hugetlbfs.conf %endif %if %{with ipsec} %files ipsec %{_datadir}/openvswitch/scripts/ovs-monitor-ipsec %{_unitdir}/openvswitch-ipsec.service %endif %changelog * Mon Aug 12 2024 Open vSwitch CI - 3.3.0-42 - Merging upstream branch-3.3 [RH git: 7188a23809] Commit list: 73c563efc7 tunnel, tests: Add test for mirroring over tunnels. 81e64f47d7 ofproto-dpif-xlate: Add a recursion limit to tunnel address lookup. * Thu Aug 08 2024 Open vSwitch CI - 3.3.0-41 - Merging upstream branch-3.3 [RH git: 65b2f8cd44] Commit list: 7428125173 netdev-dpdk: Fix race condition in mempool information dump. e0c0302d71 ovsdb: transaction: Remove incorrect transaction abort in pre-commit. * Mon Jul 22 2024 Open vSwitch CI - 3.3.0-40 - Merging upstream branch-3.3 [RH git: 62b757012a] Commit list: 59d80787ad netlink-notifier: Silence the UBsan's function pointer mismatch error. bd133fcf6b Documentation: Update QEMU documentation URLs. 6738b680ec match: Fix false-positive snprintf size warning. 5bf4c0f09e util: Add non-NULL format assertion to xvasprintf. 9cbd8804dd docs: Define Read the Docs configuration for Sphinx HTML parameters. 6eca4d13c8 flow: Fix unaligned access to the ND target in miniflow_extract. d2119feb01 dpif-netlink-rtnl: Fix netdev leak in out-of-tree tunnels probe. 9c439c23e6 dpctl: Fix netdev reference leak in "show" command. * Wed Jul 17 2024 Timothy Redaelli - 3.3.0-39 - Use --with-version-suffix [RH git: 03cc07cae1] * Wed Jul 17 2024 Timothy Redaelli - 3.3.0-38 - rhel: Make the version, displayed to the user, customizable. [RH git: 470b5520a5] Since on CentOS/RHEL the builds are based on stable branches and not on tags for debugging purpose it's better to have the downstream version as version so it's easier to know which commits are included in a build. This commit adds --with-version-suffix as ./configure option in order to set an OVS version suffix that should be shown to the user via ovs-vsctl -V and, so, also on database, on ovs-vsctl show and the other utilities. --with-version-suffix is used in Fedora/CentOS/RHEL spec file in order to have the version be aligned with the downstream one. Signed-off-by: Timothy Redaelli Signed-off-by: Ilya Maximets (cherry picked from commit 9e6d43ef32152527f7887d7f316a191adb5f338c) * Wed Jul 03 2024 Open vSwitch CI - 3.3.0-37 - Merging upstream branch-3.3 [RH git: 59364717e8] Commit list: 15cbfb19fa cirrus: Update to FreeBSD 14.1. * Wed Jul 03 2024 Open vSwitch CI - 3.3.0-36 - Merging upstream branch-3.3 [RH git: eb0ad890f2] Commit list: a3722ab1f7 ovs-monitor-ipsec: LibreSwan v5 support. bd18a13732 ovs-monitor-ipsec: LibreSwan autodetect version. * Tue Jul 02 2024 Michael Santana - 3.3.0-35 - netdev-offload-tc: Reserve lower tc prio for vlan ethertype. [RH git: c2202ea6e8] The cited commit reserved lower tc priorities for IP ethertypes in order to give IP traffic higher priority than other management traffic. In case of of vlan encap traffic, IP traffic will still get lower priority. Fix it by also reserving low priority tc prio for vlan. Fixes: c230c7579c14 ("netdev-offload-tc: Reserve lower tc prios for ip ethertypes") Signed-off-by: Maor Dickman Acked-by: Roi Dayan Signed-off-by: Simon Horman * Tue Jul 02 2024 Open vSwitch CI - 3.3.0-34 - Merging upstream branch-3.3 [RH git: c09d2d60bb] Commit list: 504efbe923 netdev-dpdk: Check pending reset when adding device. * Tue Jun 25 2024 Open vSwitch CI - 3.3.0-33 - Merging upstream branch-3.3 [RH git: 3ecc0a5b13] Commit list: 2393305d96 odp-execute: Check IPv4 checksum offload flag in AVX. 0aec0c2cc0 odp-execute: Set IPv6 traffic class in AVX implementation. * Fri Jun 21 2024 Open vSwitch CI - 3.3.0-32 - Merging upstream branch-3.3 [RH git: ecd756e0cf] Commit list: dd1aea7f8b ofp-prop: Fix unaligned 128 bit access. * Wed Jun 19 2024 Open vSwitch CI - 3.3.0-31 - Merging upstream branch-3.3 [RH git: 92e783ebee] Commit list: 830fd48237 dpdk: Check other_config:dpdk-extra for '--lcores'. * Fri Jun 07 2024 Open vSwitch CI - 3.3.0-30 - Merging upstream branch-3.3 [RH git: b79bfd3e3b] Commit list: 8499e90274 Prepare for 3.3.2. 2b87b844db Set release date for 3.3.1. * Fri Jun 07 2024 Open vSwitch CI - 3.3.0-29 - Merging upstream branch-3.3 [RH git: 9d435dd64a] Commit list: 81d2804fc3 python: ovs: flow: Fix nested check_pkt_len acts. 8c15b5c0f3 python: idl: Fix index not being updated on row modification. 80c935dba3 python: ovsdb-idl: Convert new_uuid insert() arg to UUID. 6b6d7f05db python: ovsdb-idl: Make IndexedRows mirror hmap. * Fri Jun 07 2024 Open vSwitch CI - 3.3.0-28 - Merging upstream branch-3.3 [RH git: e5ee6d743e] Commit list: 479dd96e18 ci: Restore vhost-user unit tests in check-dpdk. cc99622485 system-dpdk: Fix socket conflict when starting testpmd. * Thu Jun 06 2024 Open vSwitch CI - 3.3.0-27 - Merging upstream branch-3.3 [RH git: 63995fdae6] Commit list: 5bb95ad089 netdev-dpdk: Refactor tunnel checksum offloading. a9248871af netdev-dpdk: Use guest TSO segmentation size hint. 55d2e6d3dc netdev-dpdk: Refactor TSO request code. 2fe3ab83ab netdev-dpdk: Fix inner checksum when outer is not supported. 537a6bcda7 netdev-dpdk: Disable outer UDP checksum for net/iavf. 2e03f5567c netdev-dpdk: Fallback to non tunnel checksum offloading. * Wed Jun 05 2024 Open vSwitch CI - 3.3.0-26 - Merging upstream branch-3.3 [RH git: 00e3d428c5] Commit list: 7916a24171 nsh: Add support to compose-packet and use it in system tests. 310cf419e7 tests: Convert ND, MPLS and CT sendpkt tests to compose-packet. 96efed3499 tests: sendpkt: Allow different input formats. 2e89ed9946 ipf: Handle common case of ipf defragmentation. 69424e53b6 ipf: Only add fragments to batch of same dl_type. * Mon Jun 03 2024 Open vSwitch CI - 3.3.0-25 - Merging upstream branch-3.3 [RH git: 05cf3a52ce] Commit list: 5cfbc915de python: ovsdb-idl: Use monitor_cond for _Server DB. 84c83589b6 ovsdb-idl: Add C IDL test for "monitor" fallback. * Mon Jun 03 2024 Open vSwitch CI - 3.3.0-24 - Merging upstream branch-3.3 [RH git: 0a6f4082a3] Commit list: 79608c4fdd tests: Fix non-portable plus match in python vlog test. * Fri May 31 2024 Open vSwitch CI - 3.3.0-23 - Merging upstream branch-3.3 [RH git: bc25876bb0] Commit list: 6688bff495 odp-execute: Fix AVX checksum calculation. * Thu May 30 2024 Open vSwitch CI - 3.3.0-22 - Merging upstream branch-3.3 [RH git: 4a1c8a2b9c] Commit list: 0ec55bbe95 dpdk: Use DPDK 23.11.1 release for OVS 3.3. * Tue May 28 2024 Open vSwitch CI - 3.3.0-21 - Merging upstream branch-3.3 [RH git: 4793020729] Commit list: a3022b08ac netdev-linux: Initialize link speed in error conditions. 216c2c1ff9 netdev-linux: Return an error if device feature names are empty. 1b78323a21 socket: Fix uninitialized values in inet_parse_ functions. 4ece94d2ab dpctl: Fix uninitialized value when deleting flows. 7ee12c5ae1 netdev-native-tnl: Fix use of uninitialized offset on SRv6 header pop. 258bc1e0c6 netdev-linux: Fix ethtool_cmd is partly outside array bounds. * Thu May 23 2024 Open vSwitch CI - 3.3.0-20 - Merging upstream branch-3.3 [RH git: e37661f387] Commit list: ffbce0c428 atlocal: Replace deprecated pkg_resources. 1f0423a4ee atlocal: Fix setting HAVE_PYTEST on unexpected errors. 95baf295af srv6: Fix misaligned writes to segment list. * Fri May 17 2024 Open vSwitch CI - 3.3.0-19 - Merging upstream branch-3.3 [RH git: f3bdc58258] Commit list: 8d4ba3b5a8 compiler: Fix errors in Clang 17 ubsan checks. d153eff606 table: Fix freeing global variable. f02dc3cfec vlog: Destroy async_append first then close log_fd. * Tue May 14 2024 Open vSwitch CI - 3.3.0-18 - Merging upstream branch-3.3 [RH git: 2c450fb957] Commit list: bf1b16364b conntrack: Fully initialize conn struct before insertion. cf461fe282 conntrack: Do not use {0} to initialize unions. * Tue May 07 2024 Open vSwitch CI - 3.3.0-17 - Merging upstream branch-3.3 [RH git: a2b1d49351] Commit list: 20ed5491c5 ovsdb-client: Add missing arg to help for 'dump'. * Fri May 03 2024 Open vSwitch CI - 3.3.0-16 - Merging upstream branch-3.3 [RH git: 8c52aecb56] Commit list: 4756bf4baf ofproto-dpif-trace: Fix access to an out-of-scope stack memory. 01eca18be1 hash, jhash: Fix unaligned access to the hash remainder. 4f61523c0d sparse: Add additional define for sparse on GCC >= 14. * Tue Apr 30 2024 Open vSwitch CI - 3.3.0-15 - Merging upstream branch-3.3 [RH git: 1cb679f528] Commit list: 9a5c24d70f sparse: Add immintrin.h header. 3528cc6f45 tc: Fix -Wgnu-variable-sized-type-not-at-end warning with Clang 18. 5814de5687 tests: Fix build failure with Clang 18 due to -Wformat-truncation. * Mon Apr 29 2024 Open vSwitch CI - 3.3.0-14 - Merging upstream branch-3.3 [RH git: fd340e5b9e] Commit list: a6c3b5202c netdev-dpdk: Fix possible memory leak configuring VF MAC address. * Tue Apr 23 2024 Open vSwitch CI - 3.3.0-13 - Merging upstream branch-3.3 [RH git: 2914158441] Commit list: 42e685916e ovsdb: raft: Fix probe intervals after install snapshot request. 1c44cb5963 ovsdb: raft: Fix inability to join a cluster with a large database. 5966c22b85 rhel/systemd: Set ovsdb-server timeout to 5 minutes. * Thu Apr 11 2024 Open vSwitch CI - 3.3.0-12 - Merging upstream branch-3.3 [RH git: 9b5e829705] Commit list: f19448b861 github: Update python to 3.12. b705fb8dd2 ovsdb-dot: Fix flake8 issues. 1ac823cb03 ovsdb-doc: Fix syntax warning with Python 3.12 and flake8 issues. * Wed Apr 10 2024 Open vSwitch CI - 3.3.0-11 - Merging upstream branch-3.3 [RH git: 7956e878a6] Commit list: 7e99dbd8a0 python: Remove hacking dependency and use recent flake8. 41055da769 cirrus: Update to FreeBSD 13.3. 6448c1b697 vlog: Log stack trace on vlog_abort. * Tue Apr 09 2024 Open vSwitch CI - 3.3.0-10 - Merging upstream branch-3.3 [RH git: 41fe6a6437] Commit list: a6852319b4 tests: Fix compatibility issue with Python 3.13 in vlog.at. * Fri Apr 05 2024 Open vSwitch CI - 3.3.0-9 - Merging upstream branch-3.3 [RH git: 3b2958ef7b] Commit list: 775507fe91 ofproto-dpif-upcall: Fix ukey installation failure logs and counters. * Wed Apr 03 2024 Open vSwitch CI - 3.3.0-8 - Merging upstream branch-3.3 [RH git: 69817f7024] Commit list: b26baf873e conntrack: Do not use icmp reverse helper for icmpv6. b9f28c5862 conntrack: Fix SNAT with exhaustion system test. * Wed Mar 27 2024 Open vSwitch CI - 3.3.0-7 - Merging upstream branch-3.3 [RH git: 1a2a88672e] Commit list: 43db937876 ovsdb: raft: Fix inability to join after leadership change round trip. 2a2f162b57 ovsdb: raft: Fix assertion when 1-node cluster looses leadership. a174a5ab8b ovsdb: raft: Fix permanent joining state on a cluster member. 5eac230f22 ovsdb: raft: Fix time intervals for multitasking while joining. 99fe661f04 ovsdb: raft: Avoid transferring leadership to unavailable servers. * Wed Mar 27 2024 Open vSwitch CI - 3.3.0-6 - Merging upstream branch-3.3 [RH git: 918ba37710] Commit list: c560f6ca32 ofproto-dpif-xlate: Fix continuations with associated metering. * Fri Mar 22 2024 Open vSwitch CI - 3.3.0-5 - Merging upstream branch-3.3 [RH git: 53f3f1b833] Commit list: 1c1f173ce8 dpif-netdev: Fix crash due to tunnel offloading on recirculation. feb0fefd8d netdev-dpdk: Disable outer UDP checksum offload for ice/i40e driver. 3280d95c42 ovs-monitor-ipsec: LibreSwan autodetect paths. (#1975039) 4fedcae6ee route-table: Avoid routes from non-standard routing tables. 9f39cd4a11 ovs-tcpdump: Fix cleanup mirror failed with twice fatal signals. * Tue Mar 19 2024 Open vSwitch CI - 3.3.0-4 - Merging upstream branch-3.3 [RH git: e9ada703c5] Commit list: 7fa40643e7 ofproto-dpif: Fix tunnel with different name del/add failure. 04dc9d117a ofpbuf: Prevent undefined behavior in ofpbuf_clone. * Sat Mar 16 2024 Open vSwitch CI - 3.3.0-3 - Merging upstream branch-3.3 [RH git: 742462843f] Commit list: 667c9eb2b0 netdev-dpdk: Fix tunnel type check during Tx offload preparation. 332300c360 netdev-dpdk: Fix TCP check during Tx offload preparation. e7778b3716 netdev-dpdk: Clear inner packet marks if no inner offloads requested. * Wed Mar 13 2024 Open vSwitch CI - 3.3.0-2 - Merging upstream branch-3.3 [RH git: ed97fb253e] Commit list: c85158e265 netdev-dpdk: Clean up all marker flags if no offloads requested. a6bb8be429 github: Reduce ASLR entropy to be compatible with asan in llvm 14. 70dcee98f4 netdev-dpdk: Dump packets that fail Tx preparation. 5ae591757a bfd: Improve state change log message. (#2258496) efbc37b946 tests: Fix "SSL db: Implementation" test with openssl > 3.2.0. 0f1af687cc conntrack: Fix flush not flushing all elements. 04f1984a44 m4: Fix linking with OpenSSL 1.1.0+ and 3+ on Windows. 8f903b598f ovs-pki: Fix file permissions on Windows. 3002010658 bond: Reset stats when deleting post recirc rule. 02f0d6db14 ofproto-dpif-trace: Fix infinite recirculation tracing. e68ddb34bc github: Temporarily disable SNAT with exhaustion system test. 95d4d7108a dp-packet: Don't offload inner csum if outer isn't supported. 05453d807d ofproto-dpif-xlate: Fix ignoring IPv6 local_ip for native tunnels. a0df9c85de netdev-dummy: Add local route entries for IP addresses. 2f742d7afc tests: Move the non-local port as tunnel endpoint test. a6bdf7d310 Prepare for 3.3.1. * Wed Mar 13 2024 Timothy Redaelli - 3.3.0-1 - redhat: Imported Red Hat OVS 3.3 build files. [RH git: dfdea27000]