SHA256
1
0
forked from pool/openvswitch

Accepting request 406694 from network

- Allow the OvS daemon to run as non-root (bsc#987545)
- Add missing 'Conflicts' statements to all the subpackages as
  required by the Factory review tools.

- Remove the ?_with_dpdk macro usage since this is not being set
  without explicitly passing --with/--without during an OBS build.
  This reverts back to using the %{with dpdk} style which is set
  automatically based on %bcond_with* macros.

- Fix subpackage dependencies to not require the non-existent python
  DPDK subpackages (bsc#986835). We do not provide DPDK versions of
  the python bindings so nothing should depend on these subpackages.

- Update rpm groups, acronym forms.

- Multiple fixes for the openvswitch-dpdk package (bsc#985878)
  * Rename main package name to openvswitch-dpdk
  * Do not build the python and kmp packages since they do not
    depend on the DPDK capabilities
  * Remove the open_virtual_switch capability. The
    openvswitch-common will be used by reverse dependencies to
    require either of the OvS packages.
  * Provide virtual capabilities for all DPDK subpackages.
  * Fix the dependencies in the python package to require either
    of the OvS packages.
  * Suggest the kmp package only if it's actually provided.
  * Small cleanups.

OBS-URL: https://build.opensuse.org/request/show/406694
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openvswitch?expand=0&rev=7
This commit is contained in:
Dominique Leuenberger 2016-07-12 21:51:23 +00:00 committed by Git OBS Bridge
commit 7a31b291d6
7 changed files with 1854 additions and 22 deletions

View File

@ -0,0 +1,60 @@
From fb496f92ca1eeead8760b5cdfd857165f64deadf Mon Sep 17 00:00:00 2001
From: Numan Siddique <nusiddiq@redhat.com>
Date: Mon, 21 Dec 2015 12:31:14 +0530
Subject: [PATCH] Remove broken pipe warning logs from ovsdb-server.log for ovn
tests
Taken the fix from the commit d3292dd... (in ovn-controller-vtep.at)
Signed-off-by: Numan Siddique <nusiddiq@redhat.com>
Signed-off-by: Russell Bryant <rbryant@redhat.com>
---
tests/ovn-nbctl.at | 10 +++++++++-
tests/ovn-sbctl.at | 10 +++++++++-
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/tests/ovn-nbctl.at b/tests/ovn-nbctl.at
index 5358f1e..efad8a2 100644
--- a/tests/ovn-nbctl.at
+++ b/tests/ovn-nbctl.at
@@ -16,7 +16,15 @@ m4_define([OVN_NBCTL_TEST_START],
# OVN_NBCTL_TEST_STOP
m4_define([OVN_NBCTL_TEST_STOP],
- [AT_CHECK([check_logs $1])
+ [# removes all 'Broken pipe' warning logs from ovsdb-server.log. this is in
+ # that *ctl command (e.g. ovn-nbctl) exits right after committing the change
+ # to database. however, in reaction, some daemon (e.g. ovn-controller-vtep)
+ # may immediately update the database. this later update may cause database
+ # sending update back to *ctl command if *ctl has not proceeded to exit yet.
+ # and if *ctl command exits before database calling send, the send from
+ # database will fail with 'Broken pipe' error.
+ AT_CHECK([check_logs "$1
+/Broken pipe/d"])
AT_CHECK([ovs-appctl -t ovsdb-server exit])])
diff --git a/tests/ovn-sbctl.at b/tests/ovn-sbctl.at
index 9986d9a..4c7cf87 100644
--- a/tests/ovn-sbctl.at
+++ b/tests/ovn-sbctl.at
@@ -25,7 +25,15 @@ m4_define([OVN_SBCTL_TEST_START],
# OVN_SBCTL_TEST_STOP
m4_define([OVN_SBCTL_TEST_STOP],
- [AT_CHECK([check_logs $1])
+ [# removes all 'Broken pipe' warning logs from ovsdb-server.log. this is in
+ # that *ctl command (e.g. ovn-nbctl) exits right after committing the change
+ # to database. however, in reaction, some daemon (e.g. ovn-controller-vtep)
+ # may immediately update the database. this later update may cause database
+ # sending update back to *ctl command if *ctl has not proceeded to exit yet.
+ # and if *ctl command exits before database calling send, the send from
+ # database will fail with 'Broken pipe' error.
+ AT_CHECK([check_logs "$1
+/Broken pipe/d"])
AT_CHECK([ovs-appctl -t ovn-northd exit])
AT_CHECK([ovs-appctl -t ovsdb-server exit])])
--
2.8.3

View File

@ -0,0 +1,148 @@
From 40b5ea86319f803cc4f5df6754b2cd1556f6bd94 Mon Sep 17 00:00:00 2001
From: Bhanuprakash Bodireddy <bhanuprakash.bodireddy@intel.com>
Date: Tue, 12 Apr 2016 11:44:15 +0100
Subject: [PATCH] acinclude: Autodetect DPDK location when configuring OVS
When using DPDK datapath, the OVS configure script requires the DPDK
build directory passed on --with-dpdk. This can be avoided if DPDK
library, headers are in standard compiler search paths.
This patch fixes the problem by searching for DPDK libraries in standard
locations and configure OVS sources for dpdk datapath.
If the install location is manually specified in "--with-dpdk"
autodiscovery shall be skipped.
Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodireddy@intel.com>
Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
---
AUTHORS | 1 +
acinclude.m4 | 76 +++++++++++++++++++++++++++++++++++++++++-------------------
2 files changed, 53 insertions(+), 24 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index f345c31..acd7ce7 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -163,27 +163,50 @@ AC_DEFUN([OVS_CHECK_DPDK], [
[AC_HELP_STRING([--with-dpdk=/path/to/dpdk],
[Specify the DPDK build directory])])
- if test X"$with_dpdk" != X; then
- RTE_SDK=$with_dpdk
+ AC_MSG_CHECKING([whether dpdk datapath is enabled])
+ if test -z "$with_dpdk" || test "$with_dpdk" = no; then
+ AC_MSG_RESULT([no])
+ DPDKLIB_FOUND=false
+ else
+ AC_MSG_RESULT([yes])
+ case "$with_dpdk" in
+ yes)
+ DPDK_AUTO_DISCOVER="true"
+ DPDK_INCLUDE="/usr/local/include/dpdk -I/usr/include/dpdk"
+ ;;
+ *)
+ DPDK_AUTO_DISCOVER="false"
+ DPDK_INCLUDE="$with_dpdk/include"
+ # If 'with_dpdk' is passed install directory, point to headers
+ # installed in $DESTDIR/$prefix/include/dpdk
+ AC_CHECK_FILE([$DPDK_INCLUDE/rte_config.h], [],
+ [AC_CHECK_FILE([$DPDK_INCLUDE/dpdk/rte_config.h],
+ [DPDK_INCLUDE=$DPDK_INCLUDE/dpdk], [])])
+ DPDK_LIB_DIR="$with_dpdk/lib"
+ ;;
+ esac
- DPDK_INCLUDE=$RTE_SDK/include
- DPDK_LIB_DIR=$RTE_SDK/lib
DPDK_LIB="-ldpdk"
DPDK_EXTRA_LIB=""
- RTE_SDK_FULL=`readlink -f $RTE_SDK`
-
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([#include <$RTE_SDK_FULL/include/rte_config.h>
-#if !RTE_LIBRTE_VHOST_USER
-#error
-#endif], [])],
- [], [AC_DEFINE([VHOST_CUSE], [1], [DPDK vhost-cuse support enabled, vhost-user disabled.])
- DPDK_EXTRA_LIB="-lfuse"])
ovs_save_CFLAGS="$CFLAGS"
ovs_save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -L$DPDK_LIB_DIR"
CFLAGS="$CFLAGS -I$DPDK_INCLUDE"
+ if test "$DPDK_AUTO_DISCOVER" = "false"; then
+ LDFLAGS="$LDFLAGS -L${DPDK_LIB_DIR}"
+ fi
+
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [
+ #include <rte_config.h>
+#if !RTE_LIBRTE_VHOST_USER
+#error
+#endif
+ ], [])
+ ], [],
+ [AC_DEFINE([VHOST_CUSE], [1], [DPDK vhost-cuse support enabled, vhost-user disabled.])
+ DPDK_EXTRA_LIB="-lfuse"])
# On some systems we have to add -ldl to link with dpdk
#
@@ -192,7 +215,7 @@ AC_DEFUN([OVS_CHECK_DPDK], [
# Before each attempt the search cache must be unset,
# otherwise autoconf will stick with the old result
- found=false
+ DPDKLIB_FOUND=false
save_LIBS=$LIBS
for extras in "" "-ldl"; do
LIBS="$DPDK_LIB $extras $save_LIBS $DPDK_EXTRA_LIB"
@@ -201,17 +224,25 @@ AC_DEFUN([OVS_CHECK_DPDK], [
#include <rte_eal.h>],
[int rte_argc; char ** rte_argv;
rte_eal_init(rte_argc, rte_argv);])],
- [found=true])
- if $found; then
+ [DPDKLIB_FOUND=true])
+ if $DPDKLIB_FOUND; then
break
fi
done
- if $found; then :; else
- AC_MSG_ERROR([cannot link with dpdk])
+
+ # If linking unsuccessful
+ if test "$DPDKLIB_FOUND" = "false" ; then
+ if $DPDK_AUTO_DISCOVER; then
+ AC_MSG_ERROR([Could not find DPDK library in default search path, Use --with-dpdk to specify the DPDK library installed in non-standard location])
+ else
+ AC_MSG_ERROR([Could not find DPDK libraries in $DPDK_LIB_DIR])
+ fi
fi
CFLAGS="$ovs_save_CFLAGS"
LDFLAGS="$ovs_save_LDFLAGS"
- OVS_LDFLAGS="$OVS_LDFLAGS -L$DPDK_LIB_DIR"
+ if test "$DPDK_AUTO_DISCOVER" = "false"; then
+ OVS_LDFLAGS="$OVS_LDFLAGS -L$DPDK_LIB_DIR"
+ fi
OVS_CFLAGS="$OVS_CFLAGS -I$DPDK_INCLUDE"
OVS_ENABLE_OPTION([-mssse3])
@@ -226,12 +257,9 @@ AC_DEFUN([OVS_CHECK_DPDK], [
DPDK_vswitchd_LDFLAGS=-Wl,--whole-archive,$DPDK_LIB,--no-whole-archive
AC_SUBST([DPDK_vswitchd_LDFLAGS])
AC_DEFINE([DPDK_NETDEV], [1], [System uses the DPDK module.])
-
- else
- RTE_SDK=
fi
- AM_CONDITIONAL([DPDK_NETDEV], test -n "$RTE_SDK")
+ AM_CONDITIONAL([DPDK_NETDEV], test "$DPDKLIB_FOUND" = true)
])
dnl OVS_GREP_IFELSE(FILE, REGEX, [IF-MATCH], [IF-NO-MATCH])
--
2.8.2

887
openvswitch-dpdk.changes Normal file
View File

@ -0,0 +1,887 @@
-------------------------------------------------------------------
Mon Jul 4 12:08:06 UTC 2016 - mchandras@suse.de
- Allow the OvS daemon to run as non-root (bsc#987545)
- Add missing 'Conflicts' statements to all the subpackages as
required by the Factory review tools.
-------------------------------------------------------------------
Wed Jun 29 15:17:07 UTC 2016 - mchandras@suse.de
- Remove the ?_with_dpdk macro usage since this is not being set
without explicitly passing --with/--without during an OBS build.
This reverts back to using the %{with dpdk} style which is set
automatically based on %bcond_with* macros.
-------------------------------------------------------------------
Tue Jun 28 13:21:12 UTC 2016 - mchandras@suse.de
- Fix subpackage dependencies to not require the non-existent python
DPDK subpackages (bsc#986835). We do not provide DPDK versions of
the python bindings so nothing should depend on these subpackages.
-------------------------------------------------------------------
Wed Jun 22 15:07:01 UTC 2016 - jengelh@inai.de
- Update rpm groups, acronym forms.
-------------------------------------------------------------------
Tue Jun 21 14:10:15 UTC 2016 - mchandras@suse.de
- Multiple fixes for the openvswitch-dpdk package (bsc#985878)
* Rename main package name to openvswitch-dpdk
* Do not build the python and kmp packages since they do not
depend on the DPDK capabilities
* Remove the open_virtual_switch capability. The
openvswitch-common will be used by reverse dependencies to
require either of the OvS packages.
* Provide virtual capabilities for all DPDK subpackages.
* Fix the dependencies in the python package to require either
of the OvS packages.
* Suggest the kmp package only if it's actually provided.
* Small cleanups.
-------------------------------------------------------------------
Fri May 27 13:49:15 UTC 2016 - mchandras@suse.de
- Add %check directive to run the openvswitch testsuite on demand.
The openvswitch contains hundreds of tests covering simple and
complex openvswitch configuration so it's beneficial to run them
during package builds. However, running the testsuite is not enabled
by default. Also add the following upstream patch:
* 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch
-------------------------------------------------------------------
Thu May 26 15:40:04 UTC 2016 - mchandras@suse.de
- Build a DPDK-enabled Open vSwitch (fate#319170)
* Apply the following changes to the openvswitch.spec file
- Add support for building with DPDK capabilities
- Add conflicts between the two packages.
- Add new 'open_virtual_switch-*' capabilities for openvswitch,
openvswitch-switch, openvswitch-test packages which can be used
by reverse dependencies to select between the two openvswitch
implementations.
* Add pre_checkin.sh to generate the openvswitch_dpdk.spec file
based on the openvswitch.spec one.
* Add upstream openvswitch-2.5.0-detect-dpdk-installation.patch
patch to detect and link against a DPDK installation.
-------------------------------------------------------------------
Mon May 23 18:33:13 UTC 2016 - jengelh@inai.de
- Keep %prep small for speedier `quilt setup`. Kill __DATE__ from
source. Drop all .la files that are in %_libdir.
-------------------------------------------------------------------
Fri May 20 09:54:16 UTC 2016 - mchandras@suse.de
- Add missing %dir directive for /var/log/openvswitch
-------------------------------------------------------------------
Thu May 19 10:13:41 UTC 2016 - dmueller@suse.com
- remove aarch64 conditional, no longer needed
-------------------------------------------------------------------
Thu May 5 09:00:26 UTC 2016 - mchandras@suse.de
- Multiple spec file and package fixes.
* Drop obsolete log-check-module-loop.patch patch.
* Drop conditional code for older openSUSE releases. This also removes
all of the sysvinit files which were pulled in when the package was
originally developed.
* Drop support for building the GUI. The GUI code has been removed in
7868fbc6c97c2 ("ovsdbmonitor: Remove.") upstream commit and it does
not exist since v2.2.0 so drop the code in the spec file.
* Use the upstream systemd service files for the OVN components instead
of maintaining our own downstream.
* Drop the unofficial ipsec support. It hasn't been enabled in years.
* Drop support for building the upstream kernel module since it's being
shipped with the kernel package in latest releases. Restore the
%bcond_with kmp to make it easier to build the external kernel module
if needed.
* Fix some suse-missing-rclink rpmlint warnings for the ovn subpackage
* Base our service unit to the upstream one.
* Stop silently enabling the GRE protocol in iptables by default.
* Install the upstream sysconfig file to pass more information to the
openvswitch service unit.
* Use make install instead of %makeinstall
* Drop brcompat leftovers.
* spec-cleaner fixes
-------------------------------------------------------------------
Fri Apr 1 10:39:26 UTC 2016 - dmueller@suse.com
- address dimstars concerns
-------------------------------------------------------------------
Tue Mar 22 18:06:40 UTC 2016 - mchandras@suse.de
- Prevent systemd from autogenerating a service file for
openvswitch-switch which conflicts with the opevswitch
one. (bsc#966762)
-------------------------------------------------------------------
Fri Mar 18 10:20:02 UTC 2016 - kmroz@suse.com
- Add missing %defattr to ovn files section.
-------------------------------------------------------------------
Tue Mar 8 13:16:03 UTC 2016 - kmroz@suse.com
- Add additional install requirements for python-openvswitch-test
package.
-------------------------------------------------------------------
Fri Mar 4 14:38:16 UTC 2016 - kmroz@suse.com
- Add support for building both 2.4.0 and 2.5.0 from the same spec
file. Needed to fix SLE11 builds as OVS-2.5.0 no longer supports
python < 2.7. SLE11 SP3 and SP4 use python 2.6.
- Added: openvswitch-2.4.0.tar.gz
-------------------------------------------------------------------
Thu Mar 3 13:47:04 UTC 2016 - kmroz@suse.com
- New upstream version 2.5.0 (LTS)
- Dropped support for Python older than version 2.7. As a consequence,
using Open vSwitch 2.5 or later on XenServer 6.5 or earlier (which
have Python 2.4) requires first installing Python 2.7.
- OpenFlow:
* Group chaining (where one OpenFlow group triggers another) is
now supported.
* OpenFlow 1.4+ "importance" is now considered for flow eviction.
* OpenFlow 1.4+ OFPTC_EVICTION is now implemented.
* OpenFlow 1.4+ OFPTC_VACANCY_EVENTS is now implemented.
* OpenFlow 1.4+ OFPMP_TABLE_DESC is now implemented.
* Allow modifying the ICMPv4/ICMPv6 type and code fields.
* OpenFlow 1.4+ OFPT_SET_ASYNC_CONFIG and OFPT_GET_ASYNC_CONFIG are
now implemented.
- ovs-ofctl:
* New "out_group" keyword for OpenFlow 1.1+ matching on output group.
- Tunnels:
* Geneve tunnels can now match and set options and the OAM bit.
* The nonstandard GRE64 tunnel extension has been dropped.
- Support Multicast Listener Discovery (MLDv1 and MLDv2).
- Add 'symmetric_l3l4' and 'symmetric_l3l4+udp' hash functions.
- sFlow agent now reports tunnel and MPLS structures.
- New 'check-system-userspace', 'check-kmod' and 'check-kernel' Makefile
targets to run a new system testsuite. These tests can be run inside
a Vagrant box. See INSTALL.md for details
- Mark --syslog-target argument as deprecated. It will be removed in
the next OVS release.
- Added --user option to all daemons
- Add support for connection tracking through the new "ct" action
and "ct_state"/"ct_zone"/"ct_mark"/"ct_label" match fields. Only
available on Linux kernels with the connection tracking module loaded.
- Add experimental version of OVN. OVN, the Open Virtual Network, is a
system to support virtual network abstraction. OVN complements the
existing capabilities of OVS to add native support for virtual network
abstractions, such as virtual L2 and L3 overlays and security groups.
- RHEL packaging:
* DPDK ports may now be created via network scripts (see README.RHEL).
- DPDK:
* Requires DPDK 2.2
* Added multiqueue support to vhost-user
* Note: QEMU 2.5+ required for multiqueue support
- SELinux:
* Introduced SELinux policy package.
- New package: openvswitch-ovn
- Removed: openvswitch-2.4.0.tar.gg
- Added: openvswitch-2.5.0.tar.gg
- Added: openvswitch-testcontroller.init
- Added: ovn-controller-vtep.service
- Added: ovn-controller.service
- Added: ovn-northd.service
- TODO: Explicit DPDK support not yet added to spec.
- Spec file work and cleanup.
-------------------------------------------------------------------
Tue Mar 1 08:43:19 UTC 2016 - kmroz@suse.com
- Tighten up openvswitch service ordering (bsc#968205).
-------------------------------------------------------------------
Wed Feb 24 15:23:20 UTC 2016 - kmroz@suse.com
- Don't install INSTALL.* files.
-------------------------------------------------------------------
Wed Feb 24 13:45:52 UTC 2016 - kmroz@suse.com
- Removed: openvswitch-switch.template
-------------------------------------------------------------------
Wed Feb 24 12:53:50 UTC 2016 - kmroz@suse.com
- New upstream version 2.4.0
- Flow table modifications are now atomic, meaning that each packet
now sees a coherent version of the OpenFlow pipeline. For
example, if a controller removes all flows with a single OpenFlow
"flow_mod", no packet sees an intermediate version of the OpenFlow
pipeline where only some of the flows have been deleted.
- Added support for SFQ, FQ_CoDel and CoDel qdiscs.
- Add bash command-line completion support for ovs-vsctl Please check
utilities/ovs-command-compgen.INSTALL.md for how to use.
- The MAC learning feature now includes per-port fairness to mitigate
MAC flooding attacks.
- New support for a "conjunctive match" OpenFlow extension, which
allows constructing OpenFlow matches of the form "field1 in
{a,b,c...} AND field2 in {d,e,f...}" and generalizations. For details,
see documentation for the "conjunction" action in ovs-ofctl(8).
- Add bash command-line completion support for ovs-appctl/ovs-dpctl/
ovs-ofctl/ovsdb-tool commands. Please check
utilities/ovs-command-compgen.INSTALL.md for how to use.
- The "learn" action supports a new flag "delete_learned" that causes
the learned flows to be deleted when the flow with the "learn" action
is deleted.
- Basic support for the Geneve tunneling protocol. It is not yet
possible to generate or match options. This is planned for a future
release. The protocol is documented at
http://tools.ietf.org/html/draft-gross-geneve-00
- The OVS database now reports controller rate limiting statistics.
- sflow now exports information about LACP-based bonds, port names, and
OpenFlow port numbers, as well as datapath performance counters.
- ovs-dpctl functionality is now available for datapaths integrated
into ovs-vswitchd, via ovs-appctl. Some existing ovs-appctl
commands are now redundant and will be removed in a future
release. See ovs-vswitchd(8) for details.
- OpenFlow:
* OpenFlow 1.4 bundles are now supported for flow mods and port
mods. For flow mods, both 'atomic' and 'ordered' bundle flags
are trivially supported, as all bundled messages are executed
in the order they were added and all flow table modifications
are now atomic to the datapath. Port mods may not appear in
atomic bundles, as port status modifications are not atomic.
* IPv6 flow label and neighbor discovery fields are now modifiable.
* OpenFlow 1.5 extended registers are now supported.
* The OpenFlow 1.5 actset_output field is now supported.
* OpenFlow 1.5 Copy-Field action is now supported.
* OpenFlow 1.5 masked Set-Field action is now supported.
* OpenFlow 1.3+ table features requests are now supported (read-only).
* Nicira extension "move" actions may now be included in action sets.
* "resubmit" actions may now be included in action sets. The resubmit
is executed last, and only if the action set has no "output" or "group"
action.
* OpenFlow 1.4+ flow "importance" is now maintained in the flow table.
* A new Netronome extension to OpenFlow 1.5+ allows control over the
fields hashed for OpenFlow select groups. See "selection_method" and
related options in ovs-ofctl(8) for details.
- ovs-ofctl has a new '--bundle' option that makes the flow mod commands
('add-flow', 'add-flows', 'mod-flows', 'del-flows', and 'replace-flows')
use an OpenFlow 1.4 bundle to operate the modifications as a single
atomic transaction. If any of the flow mods in a transaction fail, none
of them are executed. All flow mods in a bundle appear to datapath
lookups simultaneously.
- ovs-ofctl 'add-flow' and 'add-flows' commands now accept arbitrary flow
mods as an input by allowing the flow specification to start with an
explicit 'add', 'modify', 'modify_strict', 'delete', or 'delete_strict'
keyword. A missing keyword is treated as 'add', so this is fully
backwards compatible. With the new '--bundle' option all the flow mods
are executed as a single atomic transaction using an OpenFlow 1.4 bundle.
- ovs-pki: Changed message digest algorithm from MD5 to SHA-1 because
MD5 is no longer secure and some operating systems have started to disable
it in OpenSSL.
- ovsdb-server: New OVSDB protocol extension allows inequality tests on
"optional scalar" columns. See ovsdb-server(1) for details.
- ovs-vsctl now permits immutable columns in a new row to be modified in
the same transaction that creates the row.
- test-controller has been renamed ovs-testcontroller at request of users
who find it useful for testing basic OpenFlow setups. It is still not
a necessary or desirable part of most Open vSwitch deployments.
- Support for travis-ci.org based continuous integration builds has been
added. Build failures are reported to build@openvswitch.org. See INSTALL.md
file for additional details.
- Support for the Rapid Spanning Tree Protocol (IEEE 802.1D-2004).
The implementation has been tested successfully against the Ixia Automated
Network Validation Library (ANVL).
- Stats are no longer updated on fake bond interface.
- Keep active bond slave selection across OVS restart.
- A simple wrapper script, 'ovs-docker', to integrate OVS with Docker
containers. If and when there is a native integration of Open vSwitch
with Docker, the wrapper script will be retired.
- Added support for DPDK Tunneling. VXLAN, GRE, and Geneve are supported
protocols. This is generic tunneling mechanism for userspace datapath.
- Support for multicast snooping (IGMPv1, IGMPv2 and IGMPv3)
- Support for Linux kernels up to 4.0.x
- The documentation now use the term 'destination' to mean one of syslog,
console or file for vlog logging instead of the previously used term
'facility'.
- Support for VXLAN Group Policy extension
- Initial support for the IETF Auto-Attach SPBM draft standard. This
contains rudimentary support for the LLDP protocol as needed for
Auto-Attach.
- The default OpenFlow and OVSDB ports are now the IANA-assigned
numbers. OpenFlow is 6653 and OVSDB is 6640.
- Support for DPDK vHost.
- Support for outer UDP checksums in Geneve and VXLAN.
- The kernel vports with dependencies are no longer part of the overall
openvswitch.ko but built and loaded automatically as individual kernel
modules (vport-*.ko).
- Support for STT tunneling.
- Support to configure method (--syslog-method argument) that determines
how daemons will talk with syslog.
- Support for "ovs-appctl vlog/list-pattern" command that lets to query
logging message format for each destination.
- GRE64 and ipsec_gre64 tunnel protocol is deprecated and will be removed
from OVS v2.5 release.
* The openvswitch-testcontroller package is new. It reintroduces the
simple OpenFlow controller that was packaged with Open vSwitch prior to
version 2.1, at request of users who find it useful for testing basic
OpenFlow setups. It is still not a necessary or desirable part of most
Open vSwitch deployments.
- Fixed: log-check-module-loop.patch to work with new version.
- Removed: openvswitch-2.3.1.tar.gz
- Added: openvswitch-2.4.0.tar.gz
- Spec file work and cleanup.
-------------------------------------------------------------------
Sun Jan 10 17:55:22 UTC 2016 - antoine.belvire@laposte.net
- Add calls to /sbin/ldconfig in %post and %postun
- Fix typo in Url
-------------------------------------------------------------------
Sun Dec 28 21:27:49 UTC 2014 - andrea@opensuse.org
- new upstream version 2.3.1
- Compatibility with autoconf 2.63 (previously >=2.64)
- ovs-pki: Changed message digest algorithm from MD5 to SHA-1 because
MD5 is no longer secure and some operating systems have started to disable
it in OpenSSL.
- Keep active bond slave selection across OVS restart.
* v2.3.0 - 14 Aug 2014
- OpenFlow 1.1, 1.2, and 1.3 are now enabled by default in
ovs-vswitchd.
- Linux kernel datapath now has an exact match cache optimizing the
flow matching process.
- Datapath flows now have partially wildcarded tranport port field
matches. This reduces userspace upcalls, but increases the
number of different masks in the datapath. The kernel datapath
exact match cache removes the overhead of matching the incoming
packets with the larger number of masks, but when paired with an
older kernel module, some workloads may perform worse with the
new userspace.
* v2.2.0 - Internal Release
- Internal ports are no longer brought up by default, because it
should be an administrator task to bring up devices as they are
configured properly.
- ovs-vsctl now reports when ovs-vswitchd fails to create a new port or
bridge.
- The "ovsdbmonitor" graphical tool has been removed, because it was
poorly maintained and not widely used.
- New "check-ryu" Makefile target for running Ryu tests for OpenFlow
controllers against Open vSwitch. See INSTALL for details.
- Added IPFIX support for SCTP flows and templates for ICMPv4/v6 flows.
- Upon the receipt of a SIGHUP signal, ovs-vswitchd no longer reopens its
log file (it will terminate instead). Please use 'ovs-appctl vlog/reopen'
instead.
- Support for Linux kernels up to 3.14. From Kernel 3.12 onwards OVS uses
tunnel API for GRE and VXLAN.
- Added experimental DPDK support.
- Added support for custom vlog patterns in Python
- removed datapath-Add-support-for-Linux-3.12.patch no more required
- removed sle11-device-ops-backport.diff , not used before
-------------------------------------------------------------------
Tue Oct 21 11:24:25 UTC 2014 - dmueller@suse.com
- fix rcX link
-------------------------------------------------------------------
Tue Sep 23 08:40:15 UTC 2014 - dmueller@suse.com
- disable shipped kmp module build for newer distros
-------------------------------------------------------------------
Mon Sep 22 07:11:35 UTC 2014 - dmueller@suse.com
- update to 2.1.3:
datapath: Drop packets when interdev is not up
Fix two memory leaks.
tests: Remove extraneous parenthesis from test name.
build: Allow building with autoconf 2.63
ovsdb: Don't add ovsdb-server.c to libovsdb.
stp: Make stp-disabled port forward stp bpdu packets.
dpif-linux: Fix bad backport in previous commit.
dpif-linux: Avoid null dereference if all ports disappear.
ofp-msgs: Correct code for queue configuration messages in OpenFlow 1.0.
ofp-util: Fix null pointer dereference in ofputil_pull_buckets().
tests: Disable glibc memory checking under glibc <= 2.11.
datapath/flow_netlink: Fix NDP flow mask validation
datapath: Change u64_stats_* to use _irq instead of _bh().
datapath: Use exact lookup for flow_get and flow_del.
json: Fix parsing of strings that end with a backslash.
dpif: When executing actions needs help, use "set" action to set tunnel.
datapath: Rehash 16-bit skbuff hashes into 32 bits.
upcall: Configure datapath max-idle through ovs-vsctl.
upcall: Add appctl call to set flow_limit.
stream-ssl: Enable TLSv1.1 and TLSv1.2.
lib/classifier: Fix use of uninitialized memory.
lib/classifier: Clarify trie_lookup_value().
ovs-lib: allow non-root users to check service status
rhel: Add Patch Port support to initscripts
rhel: support persistent mac addresses on OVS bridges
netflow: Fold netflow_expire() into netflow_flow_clear().
ofproto: Fix memory leak in ofproto_destroy().
ofproto: Send monitor updates if a flow mod changes a rules actions
lib/match: Add mask bits for nd_target for ICMPv6
bridge: Initialize dscp for mgmt connections.
datapath: Fix build from stats backport.
openvswitch: fix a possible deadlock and lockdep warning
AUTHORS: Fix spelling of Anoob Soman's name.
ofproto-dpif-xlate: Fix null pointer dereference
ovs-ctl: Don't decrease max open fds if already set higher
Makefiles: Fix invocation of dot2pic when builddir != srcdir.
dot2pic: Stop assuming the path of the interpreter
dot2pic: Use "> $@; mv $@.tmp $@" notation to make this reliably fail
tunnel: Fix bug where misconfiguration persists.
netdev: Safely increment refcount in netdev_open().
datapath: Fix feature check for HAVE_RXHASH.
datapath: clear l4_rxhash in skb_clear_hash.
ofproto-dpif-xlate: Fix in_port=controller case for NORMAL action
-------------------------------------------------------------------
Fri May 2 03:38:11 UTC 2014 - e.istomin@edss.ee
- updated to 2.1.2.
This contains bug fixes related to sending packet-in messages to the controller.
-------------------------------------------------------------------
Tue Apr 29 17:16:22 UTC 2014 - e.istomin@edss.ee
- updated to 2.1.1. This release removes the "ovsdbmonitor" program and contains bug fixes.
-------------------------------------------------------------------
Wed Apr 2 14:25:35 UTC 2014 - kmroz@suse.com
- Prevent ovsdb-server from entering an infinite loop when
processing logging levels during bringup.
added: log-check-module-loop.patch
-------------------------------------------------------------------
Thu Mar 27 12:56:32 UTC 2014 - dmueller@suse.com
- update to 2.1.0:
- Address prefix tracking support for flow tables. New columns
"prefixes" in OVS-DB table "Flow_Table" controls which packet
header fields are used for address prefix tracking. Prefix
tracking allows the classifier to skip rules with longer than
necessary prefixes, resulting in better wildcarding for datapath
flows. Default configuration is to not use any fields for prefix
tracking. However, if any flow tables contain both exact matches
and masked matches for IP address fields, OVS performance may be
increased by using this feature.
* As of now, the fields for which prefix lookup can be enabled
are: 'tun_id', 'tun_src', 'tun_dst', 'nw_src', 'nw_dst' (or
aliases 'ip_src' and 'ip_dst'), 'ipv6_src', and 'ipv6_dst'.
(Using this feature for 'tun_id' would only make sense if the
tunnel IDs have prefix structure similar to IP addresses.)
* There is a maximum number of fields that can be enabled for any
one flow table. Currently this limit is 3.
* Examples:
$ ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- \
--id=@N1 create Flow_Table name=table0
$ ovs-vsctl set Bridge br0 flow_tables:1=@N1 -- \
--id=@N1 create Flow_Table name=table1
$ ovs-vsctl set Flow_Table table0 prefixes=ip_dst,ip_src
$ ovs-vsctl set Flow_Table table1 prefixes=[]
- TCP flags matching: OVS now supports matching of TCP flags. This
has an adverse performance impact when using OVS userspace 1.10
or older (no megaflows support) together with the new OVS kernel
module. It is recommended that the kernel and userspace modules
both are upgraded at the same time.
- The default OpenFlow and OVSDB ports will change to
IANA-assigned numbers in a future release. Consider updating
your installations to specify port numbers instead of using the
defaults.
- OpenFlow:
* The OpenFlow 1.1+ "Write-Actions" instruction is now supported.
* OVS limits the OpenFlow port numbers it assigns to port 32767 and
below, leaving port numbers above that range free for assignment
by the controller.
* ovs-vswitchd now honors changes to the "ofport_request" column
in the Interface table by changing the port's OpenFlow port
number.
- ovs-vswitchd.conf.db.5 man page will contain graphviz/dot
diagram only if graphviz package was installed at the build time.
- Support for Linux kernels up to 3.11
- ovs-dpctl:
The "show" command also displays mega flow mask stats.
- ovs-ofctl:
* New command "ofp-parse-pcap" to dump OpenFlow from PCAP files.
- ovs-controller has been renamed test-controller. It is no longer
packaged or installed by default, because too many users assumed
incorrectly that ovs-controller was a necessary or desirable part
of an Open vSwitch deployment.
- Added vlog option to export to a UDP syslog sink.
- ovsdb-client:
* The "monitor" command can now monitor all tables in a database,
instead of being limited to a single table.
- The flow-eviction-threshold has been replaced by the flow-limit which is a
hard limit on the number of flows in the datapath. It defaults to 200,000
flows. OVS automatically adjusts this number depending on network
conditions.
-------------------------------------------------------------------
Thu Mar 27 12:55:44 UTC 2014 - dmueller@suse.com
- allow to use kmod as well
-------------------------------------------------------------------
Mon Feb 3 17:13:36 UTC 2014 - dmueller@suse.com
- another fix in logrotate
-------------------------------------------------------------------
Mon Jan 27 10:42:05 UTC 2014 - dmueller@suse.com
- fix logrotate configuration
-------------------------------------------------------------------
Tue Jan 21 08:48:03 UTC 2014 - dmueller@suse.com
- add openvswitch.service for systemd distros
-------------------------------------------------------------------
Tue Jan 14 15:03:56 UTC 2014 - dmueller@suse.com
- add kernel-312.diff (build against Kernel 3.12.x)
-------------------------------------------------------------------
Fri Jan 3 17:54:10 UTC 2014 - dmueller@suse.com
- do not build with valgrind-devel on aarch64 (doesn't exist)
-------------------------------------------------------------------
Thu Dec 5 13:14:11 UTC 2013 - dmueller@suse.com
- update to 2.0.0:
- The ovs-vswitchd process is no longer single-threaded. Multiple
threads are now used to handle flow set up and asynchronous
logging.
- OpenFlow:
* Experimental support for OpenFlow 1.1 (in addition to 1.2 and
1.3, which had experimental support in 1.10).
* New support for matching outer source and destination IP address
of tunneled packets, for tunnel ports configured with the newly
added "remote_ip=flow" and "local_ip=flow" options.
* Support for matching on metadata 'pkt_mark' for interacting with
other system components. On Linux this corresponds to the skb
mark.
* Support matching, rewriting SCTP ports
- The Interface table in the database has a new "ifindex" column to
report the interface's OS-assigned ifindex.
- New "check-oftest" Makefile target for running OFTest against Open
vSwitch. See README-OFTest for details.
- The flow eviction threshold has been moved to the Open_vSwitch table.
- Database names are now mandatory when specifying ovsdb-server options
through database paths (e.g. Private key option with the database name
should look like "--private-key=db:Open_vSwitch,SSL,private_key").
- Added ovs-dev.py, a utility script helpful for Open vSwitch developers.
- Support for Linux kernels up to 3.10
- ovs-ofctl:
* New "ofp-parse" for printing OpenFlow messages read from a file.
- Added configurable flow caching support to IPFIX exporter.
- Dropped support for Linux pre-2.6.32.
- Log file timestamps and ovsdb commit timestamps are now reported
with millisecond resolution. (Previous versions only reported
whole seconds.)
-------------------------------------------------------------------
Wed Dec 4 11:44:02 CET 2013 - jsuchome@suse.cz
- added try-restart action to openvswitch-switch init script
(bnc#849222)
-------------------------------------------------------------------
Wed Nov 20 02:51:57 UTC 2013 - kmroz@suse.com
- Incorporate ubuntu Linux 3.11 fix to prevent kernel datapath panics.
Addresses bnc#851395
+ added datapath-add-support-for-linux-3.11.patch
-------------------------------------------------------------------
Tue Oct 1 07:21:16 UTC 2013 - speilicke@suse.com
- Let openvswitch-switch depend on util-linux instead of uuid-runtime
(Debian package name). The ovs-ctl / ovs-pki tools use /usr/bin/uuidgen
-------------------------------------------------------------------
Tue Sep 24 13:17:25 UTC 2013 - bwiedemann@suse.com
- add vlan_apichange.patch to compensate kernel API changes
between 3.8 and 3.11 in commits f646968f and 86a9bad3
-------------------------------------------------------------------
Fri Sep 13 15:25:40 UTC 2013 - dmueller@suse.com
- update to 1.11.0:
* http://openvswitch.org/releases/NEWS-1.11.0
- remove accept-newer-kernel-versions.diff
-------------------------------------------------------------------
Fri Sep 13 10:09:18 UTC 2013 - dmueller@suse.com
- sign modules for secure boot (bnc#839838)
-------------------------------------------------------------------
Tue Jul 2 17:08:11 UTC 2013 - tpaszkowski@novell.com
- Build openvswitch kernel module for xen kernel flavor.
-------------------------------------------------------------------
Sun Jun 16 05:30:24 UTC 2013 - vuntz@suse.com
- Add openvswitch-ipsec.init, Module.supported,
Module.supported.updates and README.packager as sources: they
were not listed as such.
- Install openvswitch-ipsec.init if we build ipsec support.
-------------------------------------------------------------------
Thu Jun 6 14:28:07 UTC 2013 - tpaszkowski@novell.com
- mark openvswitch module shipped with package as supported
-------------------------------------------------------------------
Fri May 17 11:58:32 UTC 2013 - dmueller@suse.com
- only call boot.sh for newer distros
- build parallel
- accept-newer-kernel-versions.diff:
Accept newer kernel versions
- sle11-device-ops-backport.diff
Handle sle11 device ops backport
-------------------------------------------------------------------
Fri May 3 14:28:00 UTC 2013 - e.istomin@edss.ee
- New upstream version 1.10.0
http://openvswitch.org/releases/NEWS-1.10.0
- Removed openvswitch-1.7.0-stp-fwd-delay.patch because of bridge compatibility support removing
-------------------------------------------------------------------
Wed Apr 3 09:30:20 UTC 2013 - tpaszkowski@novell.com
- %make_install macro no longer works on SLE11. Spec file now uses %makeinstall.
-------------------------------------------------------------------
Tue Mar 26 11:21:37 UTC 2013 - speilicke@suse.com
- Use build conditionals instead of %define and disable GUI by default
everywhere
-------------------------------------------------------------------
Thu Mar 21 13:23:36 UTC 2013 - tpaszkowski@novell.com
- Fix openvswitch-controller init script
- Add openflow-controller sysconfig file with default binding to ptcp:
-------------------------------------------------------------------
Tue Mar 12 13:36:57 UTC 2013 - tpaszkowski@suse.com
- ipsec build temporary disabled
-------------------------------------------------------------------
Fri Mar 8 14:16:57 UTC 2013 - tpaszkowski@suse.com
- Provides and Obsolete for former openvswitch-common package
-------------------------------------------------------------------
Thu Mar 7 21:49:09 UTC 2013 - tpaszkowski@suse.com
- always build in openvswitch kernel module (gre tunelling not present
within the standard kernel module)
- removed unnedded build rquirements (move to appropriate subpackage)
- moved common stuff to main pkg
- added group filed to packages and sub packages
- switch pkg suggest kernel module pkg
- moved python test stuff to python-openvswitch-test sub pkg
- moved ui interface requirements to ovsdbmonitor sub pkg
- ovsdbmonitor will not be build on sles (for now)
- sub pkg test require python-twisted (ovs-test)
- don't call boot.sh on sles11 (old autoconf). Shipped configuration stuff
is ok (we don't patch plenty of stuff)
- ovs-parse-backtrace now part of main pkg
- addes ovs-l3ping,ovs-vlan-test to test sub pkg
-------------------------------------------------------------------
Thu Feb 28 22:17:11 UTC 2013 - e.istomin@edss.ee
- New upstream version 1.9.0
http://openvswitch.org/releases/NEWS-1.9.0
-------------------------------------------------------------------
Thu Nov 15 08:59:41 UTC 2012 - rhafer@suse.com
- New patch openvswitch-1.7.1-ovs-pki-permissions.patch: Avoid
creating world writeable directory (bnc#774332, CVE-2012-3449)
-------------------------------------------------------------------
Sun Sep 9 15:33:08 UTC 2012 - on@morlock.nu
- New upstream version 1.7.1
* This release only contain bug fixes.
-------------------------------------------------------------------
Tue Jul 31 12:41:19 UTC 2012 - on@morlock.nu
- New upstream version 1.7.0
* kernel modules are renamed. openvswitch_mod.ko is now
openvswitch.ko and brcompat_mod.ko is now brcompat.ko.
* Increased the number of NXM registers to 8.
* Added ability to configure DSCP setting for manager and controller
connections. By default, these connections have a DSCP value of
Internetwork Control (0xc0).
* Added the granular link health statistics, 'cfm_health', to an
interface.
* OpenFlow:
- Added support to mask nd_target for ICMPv6 neighbor discovery flows.
- Added support for OpenFlow 1.3 port description (OFPMP_PORT_DESC)
multipart messages.
* ovs-ofctl:
- Added the "dump-ports-desc" command to retrieve port
information using the new port description multipart messages.
* ovs-test:
- Added support for spawning ovs-test server from the client.
- Now ovs-test is able to automatically create test bridges and ports.
* "ovs-dpctl dump-flows" now prints observed TCP flags in TCP flows.
* Tripled flow setup performance.
* The "coverage/log" command previously available through ovs-appctl
has been replaced by "coverage/show". The new command replies with
coverage counter values, instead of logging them.
- Adjusted openvswitch-1.1.0-stp-fwd-delay.patch (new filename)
-------------------------------------------------------------------
Thu Jul 26 11:47:36 UTC 2012 - rhafer@suse.com
- The kernel modules where renamed in recent kernels. Backported a
patch from the 1.7 branch to use the new kernel names when
building on openSUSE > 12.1.
-------------------------------------------------------------------
Tue Jun 26 15:09:02 UTC 2012 - on@morlock.nu
- New upstream version 1.6.1
* Added support for bitwise matching on TCP and UDP ports.
* Support for limiting the number of flows in an OpenFlow flow
table, with configurable policy for evicting flows upon
overflow.
* Added an OpenFlow extension that allows controllers more precise
control over which messages they receive asynchronously.
* CFM module CCM broadcasts can now be tagged with an 802.1p priority.
* Load balancing for bonds can be disabled.
-------------------------------------------------------------------
Wed Jun 6 15:04:45 UTC 2012 - on@morlock.nu
- New upstream version 1.5.0
* OpenFlow:
- Added support for querying, modifying, and deleting flows
based on flow cookie when using NXM.
- Added new NXM_PACKET_IN format.
* ovs-ofctl:
- Added daemonization support to the monitor and snoop commands.
* ovs-vsctl:
- The "find" command supports new set relational operators
{=}, {!=}, {<}, {>}, {<=}, and {>=}.
* ovsdb-tool now uses the typical database and schema installation
directories as defaults.
-------------------------------------------------------------------
Thu May 10 22:32:34 UTC 2012 - on@morlock.nu
- New upstream version 1.4.1
* The default MAC learning timeout has been increased from 60 seconds
to 300 seconds. The MAC learning timeout is now configurable.
* Bug fixes
-------------------------------------------------------------------
Thu Apr 5 10:08:32 UTC 2012 - on@morlock.nu
- Build KMP packages from kernel-source on openSuSE > 12.1.
-------------------------------------------------------------------
Tue Mar 13 12:16:43 UTC 2012 - mvidner@suse.com
- Specify defattr for pki subpackage to fix 11.4 build.
-------------------------------------------------------------------
Thu Mar 1 13:35:52 UTC 2012 - dmacvicar@suse.de
- Rewrite the package based on the debian version instead
* current package was tied to xenserver config without
even requiring it
* instead of one big package depending even on qt4, there
are -switch, -controller, -test subpackages now
-------------------------------------------------------------------
Mon Feb 20 23:39:50 UTC 2012 - on@morlock.nu
- New upstream version 1.4.0
* Compatible with Open vSwitch kernel module included in Linux 3.3.
* Don't require the "normal" action to use mirrors.
* New "VLAN splinters" feature to work around buggy device driver in old Linux versions.
* Added ability to match ECN and TTL in IPv4 and IPv6 headers.
* Added ability to match IPv6 flow label.
* Added ability to modify ECN bits and TTL in IPv4 headers.
* And many others. See the full change log here:
http://openvswitch.org/releases/NEWS-1.4.0
-------------------------------------------------------------------
Fri Sep 2 09:11:21 UTC 2011 - andrea@opensuse.org
- new uopstream version 1.2.1
* The release only contains bug fixes for the 1.2.0 release
-------------------------------------------------------------------
Mon Aug 8 17:47:58 UTC 2011 - andrea@opensuse.org
- new upstream version 1.2.0
* New abstraction layer to make better use of switching ASICs
* Packaging for Red Hat (RHEL) 5.6 and 6.0
* Datapath support for Linux kernels up to 3.0
* And many others. See the full change log here:
http://openvswitch.org/releases/ChangeLog-1.2.0
- rebased openvswitch-1.1.0-suse.patch as
openvswitch-1.2.0-suse.patch to apply to the files
-------------------------------------------------------------------
Thu Jun 23 06:49:16 UTC 2011 - andrea@opensuse.org
- new upstream version 1.1.1
* bug fix release
-------------------------------------------------------------------
Wed May 18 10:09:45 UTC 2011 - andrea@opensuse.org
- re-enabled kmp package since openvswitch_mod.ko and
brcompat_mod.ko are not available on suse kernel rpms
-------------------------------------------------------------------
Tue May 17 12:04:05 UTC 2011 - andrea@opensuse.org
- new upstream version 1.1.0 (stable)
- spec file clean up
- added as dependency all python modules to enable additional
functionalities
- rebase patches
- build pyside support only if pyside is available
-------------------------------------------------------------------
Fri Dec 31 15:26:59 UTC 2010 - pmullaney@novell.com
- updates for build issues
- fixes for libvirt integration
-------------------------------------------------------------------
Sat Dec 11 19:57:28 UTC 2010 - pmullaney@novell.com
- initial version 1.1

558
openvswitch-dpdk.spec Normal file
View File

@ -0,0 +1,558 @@
#
# spec file for package openvswitch-dpdk
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# needssslcertforbuild
# Disable building the external kernel datapath by default
%bcond_with kmp
# DPDK build disabled by default. It's enabled in the
# openvswitch-dpdk.spec file (generated by pre_checkin.sh)
%bcond_without dpdk
# The testsuite is somewhat fragile for continuous testing in OBS
# but keep it here as an option
%bcond_with check
# Do NOT edit this auto generated file! Edit openvswitch.spec instead
# and run 'pre_checkin.sh' before committing
Name: openvswitch-dpdk
Version: 2.5.0
Release: 0
Summary: An open source, production quality, multilayer virtual switch (DPDK)
License: Apache-2.0
Group: Productivity/Networking/System
Url: http://openvswitch.org/
Source0: http://openvswitch.org/releases/openvswitch-%{version}.tar.gz
Source1: preamble
Source2: openvswitch-switch.logrotate
Source3: openvswitch.service
Source89: Module.supported.updates
# PATCH-FIX-UPSTREAM openvswitch-2.5.0-detect-dpdk-installation.patch
Patch0: openvswitch-%{version}-detect-dpdk-installation.patch
Patch1: 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch
BuildRequires: autoconf
BuildRequires: automake
%if %{with dpdk}
# We need to be a bit strict with the dpdk version since
# it's very possible for DPDK to change it's API between
# releases. OVS currently requires 2.2.0. We may have to
# provide multiple versions of dpdk if OVS and DPDK get
# out of sync too often.
BuildRequires: dpdk-devel = 2.2.0
ExclusiveArch: x86_64 %ix86
%endif
BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: glibc-devel
BuildRequires: graphviz
BuildRequires: libcap-ng-devel
BuildRequires: libopenssl-devel
BuildRequires: libtool
BuildRequires: make
BuildRequires: openssl
BuildRequires: perl
BuildRequires: pkg-config
# Needed by the testsuite
BuildRequires: procps
BuildRequires: python-devel
BuildRequires: python-xml
Requires: logrotate
Requires: openssl
Requires: python
Provides: openvswitch-common = %{version}
Obsoletes: openvswitch-common < %{version}
Provides: openvswitch-controller = %{version}
Obsoletes: openvswitch-controller < %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%py_requires
BuildRequires: valgrind-devel
# We can't have openvswitch and openvswitch-dpdk in parallel
%if %{with dpdk}
Conflicts: openvswitch
%endif
%description
Open vSwitch is a production quality, multilayer virtual switch licensed under
the open source Apache 2.0 license. It is designed to enable massive network automation
through programmatic extension, while still supporting standard management interfaces
and protocols (e.g. NetFlow, sFlow, RSPAN, ERSPAN, CLI, LACP, 802.1ag). In addition,
it is designed to support distribution across multiple physical servers similar to
VMwares vNetwork distributed vswitch or Ciscos Nexus 1000V.
%if ! %{with dpdk}
%if %{with kmp}
%package kmp
Summary: Open vSwitch kernel modules (DPDK)
License: GPL-2.0+
Group: System/Kernel
BuildRequires: %{kernel_module_package_buildreqs}
%suse_kernel_module_package -p %{_sourcedir}/preamble ec2 xenpae vmi um
%description kmp
Kernel modules supporting the openvswitch datapath.
%endif
%endif
%package devel
Summary: Open vSwitch Devel Libraries (DPDK)
License: Apache-2.0
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Provides: openvswitch-any-devel = %{version}
%if %{with dpdk}
Conflicts: openvswitch-devel
%endif
%description devel
Devel libraries and headers for Open vSwitch.
%package switch
Summary: Open vSwitch switch implementations (DPDK)
License: Apache-2.0
Group: Productivity/Networking/System
Requires: %{name} = %{version}
Requires: modutils
Requires: procps
Requires: python
# ovs-ctl / ovs-pki use /usr/bin/uuidgen:
Requires: util-linux
Requires(post): %fillup_prereq
Provides: openvswitch-any-switch = %{version}
%if %{with dpdk}
Conflicts: openvswitch-switch
%endif
Suggests: logrotate
%if %{with kmp}
Suggests: openvswitch-kmp
%endif
%{?systemd_requires}
%description switch
openvswitch-switch provides the userspace components and utilities for
the Open vSwitch kernel-based switch.
Open vSwitch is a full-featured software-based Ethernet switch.
%package ovn
Summary: Open vSwitch - Open Virtual Network support (DPDK)
License: Apache-2.0
Group: Productivity/Networking/System
Requires: %{name} = %{version}
Requires: %{name}-switch = %{version}
Requires: %{name}-vtep = %{version}
Provides: openvswitch-any-ovn = %{version}
%if %{with dpdk}
Conflicts: openvswitch-ovn
%endif
%description ovn
OVN, the Open Virtual Network, is a system to support virtual network
abstraction. OVN complements the existing capabilities of OVS to add
native support for virtual network abstractions, such as virtual L2 and L3
overlays and security groups.
%package pki
Summary: Open vSwitch public key infrastructure dependency package (DPDK)
License: Apache-2.0
Group: Productivity/Networking/System
Requires: %{name} = %{version}
Provides: openvswitch-any-pki = %{version}
%if %{with dpdk}
Conflicts: openvswitch-pki
%endif
%description pki
openvswitch-pki provides PKI (public key infrastructure) support for
Open vSwitch switches and controllers, reducing the risk of
man-in-the-middle attacks on the Open vSwitch network infrastructure.
Open vSwitch is a full-featured software-based Ethernet switch.
%package vtep
Summary: Open vSwitch VTEP emulator (DPDK)
License: Apache-2.0
Group: Productivity/Networking/System
Requires: %{name} = %{version}
Requires: %{name}-switch = %{version}
# Since openvswitch/scripts/ovs-vtep requires various ovs python modules.
Requires: python-openvswitch = %{version}
Provides: openvswitch-any-vtep = %{version}
%if %{with dpdk}
Conflicts: openvswitch-vtep
%endif
%description vtep
A VTEP (VXLAN Tunnel EndPoint) emulator that uses Open vSwitch for
forwarding.
Open vSwitch is a full-featured software-based Ethernet switch.
%if ! %{with dpdk}
%package -n python-openvswitch
Summary: Python bindings for Open vSwitch (DPDK)
License: Python-2.0
Group: Productivity/Networking/System
Requires: openvswitch-common = %{version}
Requires: python
%description -n python-openvswitch
This package contains the full Python bindings for Open vSwitch database.
%package -n python-openvswitch-test
Summary: Python bindings for Open vSwitch (DPDK)
License: Python-2.0
Group: Productivity/Networking/System
Requires: openvswitch-common = %{version}
Requires: python
Requires: python-openvswitch = %{version}
Requires: python-twisted
%description -n python-openvswitch-test
This package contains the full Python bindings for Open vSwitch database.
%endif
%package test
Summary: Open vSwitch test package (DPDK)
License: Apache-2.0
Group: Productivity/Networking/System
Requires: %{name} = %{version}
Requires: python
Requires: python-argparse
Requires: python-openvswitch-test = %{version}
Requires: python-twisted
Provides: openvswitch-any-test = %{version}
%if %{with dpdk}
Conflicts: openvswitch-test
%endif
%description test
This package contains utilities that are useful to diagnose
performance and connectivity issues in Open vSwitch setup.
Open vSwitch is a full-featured software-based Ethernet switch.
%prep
%setup -n openvswitch-%{version} -q
%patch0 -p1
%patch1 -p1
%build
set -- * .travis*
mkdir source
mv "$@" source/
mkdir obj
pushd source
perl -i -pe 's{__(DATE|TIME)__}{""}g' include/openvswitch/util.h
# only call boot.sh for distros with autoconf >= 2.64
bash -x boot.sh
popd
%if ! %{with dpdk}
%if %{with kmp}
export EXTRA_CFLAGS='-DVERSION=\"%{version}\"'
for flavor in %{flavors_to_build}; do
rm -rf obj/$flavor
cp -r source obj/$flavor
cp -a %{SOURCE89} obj/$flavor/datapath/linux/Module.supported
pushd obj/$flavor
%configure \
--with-logdir=%{_localstatedir}/log/openvswitch \
--with-linux=%{_prefix}/src/linux-obj/%{_target_cpu}/$flavor \
--with-linux-source=%{_prefix}/src/linux
cd datapath/linux
make %{?_smp_mflags}
popd
done
%endif
%endif
pushd source
%if %{with dpdk}
dpdk_opt="--with-dpdk"
%endif
%configure \
--disable-static \
--enable-libcapng \
--enable-shared \
${dpdk_opt} \
--with-logdir=%{_localstatedir}/log/openvswitch
make %{?_smp_mflags}
popd
%check
%if %{with check}
pushd source
# Recheck tests before we declare them broken. If that fails, dump
# the log and exit. >2.5.0 uses the RECHECK env variable so this
# needs to be taken into consideration for future releases.
if make check TESTSUITEFLAGS="%{_smp_mflags}" ||
make check TESTSUITEFLAGS='--recheck'; then :;
else
cat tests/testsuite.log
exit 1
fi
popd
%endif
%install
%if ! %{with dpdk}
%if %{with kmp}
export NO_BRP_STALE_LINK_ERROR=yes
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=updates
export BRP_PESIGN_FILES="*.ko /lib/firmware"
for flavor in %{flavors_to_build}; do
pushd obj/$flavor/datapath/linux
make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD
popd
done
%endif
%endif
pushd source
make %{?_smp_mflags} DESTDIR=%{buildroot} install
for service in ovn-controller ovn-controller-vtep ovn-northd; do
install -D -m 644 rhel/usr_lib_systemd_system_${service}.service \
%{buildroot}%{_unitdir}/${service}.service
done
# We use our own openvswitch.service
install -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/openvswitch.service
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcopenvswitch
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-controller
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-controller-vtep
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-northd
install -D -m 644 rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
%{buildroot}/%{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch
install -d -m 755 %{buildroot}/%{_sysconfdir}/logrotate.d
install -d -m 755 %{buildroot}/%{_localstatedir}/log/openvswitch
install -m 644 %{SOURCE2} \
%{buildroot}/%{_sysconfdir}/logrotate.d/openvswitch-switch
install -d -m 755 %{buildroot}/%{_sysconfdir}/profile.d
install -m 644 vswitchd/vswitch.ovsschema \
%{buildroot}/%{_datadir}/openvswitch/vswitch.ovsschema
popd
mkdir -p %{buildroot}%{py_sitedir}
mv %{buildroot}%{_datadir}/openvswitch/python/* %{buildroot}%{py_sitedir}
rmdir %{buildroot}%{_datadir}/openvswitch/python
rm -f %buildroot/%_libdir/*.la
# Remove unpackaged files for the dpdk case
%if %{with dpdk}
rm -rf %{buildroot}%{py_sitedir}
%else
%fdupes %{buildroot}%{py_sitedir}
%endif
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%pre switch
%service_add_pre openvswitch.service
%post switch
%service_add_post openvswitch.service
%{fillup_only -n openvswitch}
%preun switch
%service_del_preun openvswitch.service
%postun switch
%service_del_postun openvswitch.service
%pre ovn
%service_add_pre ovn-controller.service ovn-controller-vtep.service ovn-northd.service
%post ovn
/sbin/ldconfig
%service_add_post ovn-controller.service ovn-controller-vtep.service ovn-northd.service
%preun ovn
%service_del_preun ovn-controller.service ovn-controller-vtep.service ovn-northd.service
%postun ovn
%service_del_postun ovn-controller.service ovn-controller-vtep.service ovn-northd.service
/sbin/ldconfig
%preun test
%stop_on_removal openvswitch-testcontroller
%postun test
%restart_on_update openvswitch-testcontroller
%post vtep -p /sbin/ldconfig
%postun vtep -p /sbin/ldconfig
%files
%defattr(-,root,root)
%dir %{_datadir}/openvswitch
%doc source/AUTHORS
%doc source/CONTRIBUTING.md
%doc source/COPYING
%doc source/CodingStyle.md
%doc source/DESIGN.md
%doc source/FAQ.md
%doc source/IntegrationGuide.md
%doc source/NEWS
%doc source/NOTICE
%doc source/OPENFLOW-1.1+.md
%doc source/PORTING.md
%doc source/README*
%doc source/SECURITY.md
%doc source/TODO.md
%doc source/WHY-OVS.md
%{_bindir}/ovs-appctl
%{_bindir}/ovs-benchmark
%{_bindir}/ovs-ofctl
%{_bindir}/ovsdb-client
%{_bindir}/ovs-parse-backtrace
%{_bindir}/ovs-dpctl-top
%{_sbindir}/ovs-bugtool
%{_sbindir}/ovs-vlan-bug-workaround
%dir %{_datadir}/openvswitch/scripts
%{_datadir}/openvswitch/bugtool-plugins
%{_datadir}/openvswitch/scripts/ovs-bugtool-*
%{_libdir}/libofproto.so.*
%{_libdir}/libopenvswitch.so.*
%{_libdir}/libovsdb.so.*
%{_libdir}/libsflow.so.*
%{_mandir}/man1/ovs-benchmark.1.gz
%{_mandir}/man1/ovsdb-client.1.gz
%{_mandir}/man8/ovs-appctl.8.gz
%{_mandir}/man8/ovs-bugtool.8.gz
%{_mandir}/man8/ovs-ofctl.8.gz
%{_mandir}/man8/ovs-vlan-bug-workaround.8.gz
%{_mandir}/man8/ovs-parse-backtrace.8.gz
%{_mandir}/man8/ovs-dpctl-top.8.gz
%{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash
%files pki
%defattr(-,root,root)
%{_mandir}/man8/ovs-pki.8.gz
%{_bindir}/ovs-pki
%files vtep
%defattr(-,root,root)
%{_bindir}/vtep-ctl
%{_mandir}/man5/vtep.5.gz
%{_mandir}/man8/vtep-ctl.8.gz
%{_datadir}/openvswitch/scripts/ovs-vtep
%{_datadir}/openvswitch/vtep.ovsschema
%{_libdir}/libvtep.so.*
%if ! %{with dpdk}
%files -n python-openvswitch
%defattr(-,root,root)
%{py_sitedir}/ovs/
%files -n python-openvswitch-test
%defattr(-,root,root)
%{py_sitedir}/ovstest/
%endif
%files switch
%defattr(-,root,root)
%{_bindir}/ovs-docker
%{_bindir}/ovs-dpctl
%{_bindir}/ovs-tcpundump
%{_bindir}/ovs-pcap
%{_bindir}/ovs-vsctl
%{_bindir}/ovsdb-tool
%{_sbindir}/ovs-vswitchd
%{_sbindir}/ovsdb-server
%{_datadir}/openvswitch/scripts/ovs-check-dead-ifs
%{_datadir}/openvswitch/scripts/ovs-ctl
%{_datadir}/openvswitch/scripts/ovs-lib
%{_datadir}/openvswitch/scripts/ovs-save
%{_datadir}/openvswitch/vswitch.ovsschema
%{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash
%config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch-switch
%{_mandir}/man8/ovs-dpctl.8.gz
%{_mandir}/man1/ovs-tcpundump.1.gz
%{_mandir}/man1/ovs-pcap.1.gz
%{_mandir}/man8/ovs-vsctl.8.gz
%{_mandir}/man1/ovsdb-tool.1.gz
%{_mandir}/man8/ovs-vswitchd.8.gz
%{_mandir}/man1/ovsdb-server.1.gz
%{_mandir}/man5/ovs-vswitchd.conf.db.5.gz
%{_mandir}/man8/ovs-ctl.8.gz
%{_sbindir}/rcopenvswitch
%{_unitdir}/openvswitch.service
%{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch
%dir %{_localstatedir}/log/openvswitch
%files ovn
%defattr(-,root,root)
%{_bindir}/ovn-controller
%{_bindir}/ovn-controller-vtep
%{_bindir}/ovn-docker-overlay-driver
%{_bindir}/ovn-docker-underlay-driver
%{_bindir}/ovn-nbctl
%{_bindir}/ovn-northd
%{_bindir}/ovn-sbctl
%{_datadir}/openvswitch/scripts/ovn-ctl
%{_libdir}/libovn.so.*
%{_mandir}/man5/ovn-nb.5*
%{_mandir}/man5/ovn-sb.5*
%{_mandir}/man7/ovn-architecture.7*
%{_mandir}/man8/ovn-controller.8*
%{_mandir}/man8/ovn-controller-vtep.8*
%{_mandir}/man8/ovn-ctl.8*
%{_mandir}/man8/ovn-nbctl.8*
%{_mandir}/man8/ovn-northd.8*
%{_mandir}/man8/ovn-sbctl.8*
%config %{_datadir}/openvswitch/ovn-nb.ovsschema
%config %{_datadir}/openvswitch/ovn-sb.ovsschema
%{_sbindir}/rcovn-controller
%{_sbindir}/rcovn-controller-vtep
%{_sbindir}/rcovn-northd
%{_unitdir}/ovn-controller.service
%{_unitdir}/ovn-controller-vtep.service
%{_unitdir}/ovn-northd.service
%files test
%defattr(-,root,root)
%{_bindir}/ovs-test
%{_bindir}/ovs-l3ping
%{_bindir}/ovs-vlan-test
%{_bindir}/ovs-testcontroller
%{_mandir}/man8/ovs-test.8.gz
%{_mandir}/man8/ovs-l3ping.8.gz
%{_mandir}/man8/ovs-vlan-test.8.gz
%{_mandir}/man8/ovs-testcontroller.8.gz
%files devel
%defattr(-,root,root)
%{_libdir}/libofproto.so
%{_libdir}/libopenvswitch.so
%{_libdir}/libovn.so
%{_libdir}/libovsdb.so
%{_libdir}/libsflow.so
%{_libdir}/libvtep.so
%{_includedir}/openflow/
%{_includedir}/openvswitch/
%{_libdir}/pkgconfig/*.pc
%changelog

View File

@ -1,3 +1,72 @@
-------------------------------------------------------------------
Mon Jul 4 12:08:06 UTC 2016 - mchandras@suse.de
- Allow the OvS daemon to run as non-root (bsc#987545)
- Add missing 'Conflicts' statements to all the subpackages as
required by the Factory review tools.
-------------------------------------------------------------------
Wed Jun 29 15:17:07 UTC 2016 - mchandras@suse.de
- Remove the ?_with_dpdk macro usage since this is not being set
without explicitly passing --with/--without during an OBS build.
This reverts back to using the %{with dpdk} style which is set
automatically based on %bcond_with* macros.
-------------------------------------------------------------------
Tue Jun 28 13:21:12 UTC 2016 - mchandras@suse.de
- Fix subpackage dependencies to not require the non-existent python
DPDK subpackages (bsc#986835). We do not provide DPDK versions of
the python bindings so nothing should depend on these subpackages.
-------------------------------------------------------------------
Wed Jun 22 15:07:01 UTC 2016 - jengelh@inai.de
- Update rpm groups, acronym forms.
-------------------------------------------------------------------
Tue Jun 21 14:10:15 UTC 2016 - mchandras@suse.de
- Multiple fixes for the openvswitch-dpdk package (bsc#985878)
* Rename main package name to openvswitch-dpdk
* Do not build the python and kmp packages since they do not
depend on the DPDK capabilities
* Remove the open_virtual_switch capability. The
openvswitch-common will be used by reverse dependencies to
require either of the OvS packages.
* Provide virtual capabilities for all DPDK subpackages.
* Fix the dependencies in the python package to require either
of the OvS packages.
* Suggest the kmp package only if it's actually provided.
* Small cleanups.
-------------------------------------------------------------------
Fri May 27 13:49:15 UTC 2016 - mchandras@suse.de
- Add %check directive to run the openvswitch testsuite on demand.
The openvswitch contains hundreds of tests covering simple and
complex openvswitch configuration so it's beneficial to run them
during package builds. However, running the testsuite is not enabled
by default. Also add the following upstream patch:
* 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch
-------------------------------------------------------------------
Thu May 26 15:40:04 UTC 2016 - mchandras@suse.de
- Build a DPDK-enabled Open vSwitch (fate#319170)
* Apply the following changes to the openvswitch.spec file
- Add support for building with DPDK capabilities
- Add conflicts between the two packages.
- Add new 'open_virtual_switch-*' capabilities for openvswitch,
openvswitch-switch, openvswitch-test packages which can be used
by reverse dependencies to select between the two openvswitch
implementations.
* Add pre_checkin.sh to generate the openvswitch_dpdk.spec file
based on the openvswitch.spec one.
* Add upstream openvswitch-2.5.0-detect-dpdk-installation.patch
patch to detect and link against a DPDK installation.
-------------------------------------------------------------------
Mon May 23 18:33:13 UTC 2016 - jengelh@inai.de

View File

@ -20,6 +20,12 @@
# Disable building the external kernel datapath by default
%bcond_with kmp
# DPDK build disabled by default. It's enabled in the
# openvswitch-dpdk.spec file (generated by pre_checkin.sh)
%bcond_with dpdk
# The testsuite is somewhat fragile for continuous testing in OBS
# but keep it here as an option
%bcond_with check
Name: openvswitch
Version: 2.5.0
@ -28,23 +34,38 @@ Summary: An open source, production quality, multilayer virtual switch
License: Apache-2.0
Group: Productivity/Networking/System
Url: http://openvswitch.org/
Source0: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
Source0: http://openvswitch.org/releases/openvswitch-%{version}.tar.gz
Source1: preamble
Source2: openvswitch-switch.logrotate
Source3: openvswitch.service
Source89: Module.supported.updates
# PATCH-FIX-UPSTREAM openvswitch-2.5.0-detect-dpdk-installation.patch
Patch0: openvswitch-%{version}-detect-dpdk-installation.patch
Patch1: 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch
BuildRequires: autoconf
BuildRequires: automake
%if %{with dpdk}
# We need to be a bit strict with the dpdk version since
# it's very possible for DPDK to change it's API between
# releases. OVS currently requires 2.2.0. We may have to
# provide multiple versions of dpdk if OVS and DPDK get
# out of sync too often.
BuildRequires: dpdk-devel = 2.2.0
ExclusiveArch: x86_64 %ix86
%endif
BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: glibc-devel
BuildRequires: graphviz
BuildRequires: libcap-ng-devel
BuildRequires: libopenssl-devel
BuildRequires: libtool
BuildRequires: make
BuildRequires: openssl
BuildRequires: perl
BuildRequires: pkg-config
# Needed by the testsuite
BuildRequires: procps
BuildRequires: python-devel
BuildRequires: python-xml
Requires: logrotate
@ -57,6 +78,10 @@ Obsoletes: openvswitch-controller < %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%py_requires
BuildRequires: valgrind-devel
# We can't have openvswitch and openvswitch-dpdk in parallel
%if %{with dpdk}
Conflicts: openvswitch
%endif
%description
Open vSwitch is a production quality, multilayer virtual switch licensed under
@ -66,6 +91,7 @@ and protocols (e.g. NetFlow, sFlow, RSPAN, ERSPAN, CLI, LACP, 802.1ag). In addit
it is designed to support distribution across multiple physical servers similar to
VMwares vNetwork distributed vswitch or Ciscos Nexus 1000V.
%if ! %{with dpdk}
%if %{with kmp}
%package kmp
Summary: Open vSwitch kernel modules
@ -74,15 +100,20 @@ Group: System/Kernel
BuildRequires: %{kernel_module_package_buildreqs}
%suse_kernel_module_package -p %{_sourcedir}/preamble ec2 xenpae vmi um
%description -n %{name}-kmp
%description kmp
Kernel modules supporting the openvswitch datapath.
%endif
%endif
%package devel
Summary: Open vSwitch Devel Libraries
License: Apache-2.0
Group: Productivity/Networking/System
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Provides: openvswitch-any-devel = %{version}
%if %{with dpdk}
Conflicts: openvswitch-devel
%endif
%description devel
Devel libraries and headers for Open vSwitch.
@ -91,15 +122,21 @@ Devel libraries and headers for Open vSwitch.
Summary: Open vSwitch switch implementations
License: Apache-2.0
Group: Productivity/Networking/System
Requires: %{name} = %{version}
Requires: modutils
Requires: openvswitch = %{version}
Requires: procps
Requires: python
# ovs-ctl / ovs-pki use /usr/bin/uuidgen:
Requires: util-linux
Requires(post): %fillup_prereq
Provides: openvswitch-any-switch = %{version}
%if %{with dpdk}
Conflicts: openvswitch-switch
%endif
Suggests: logrotate
%if %{with kmp}
Suggests: openvswitch-kmp
%endif
%{?systemd_requires}
%description switch
@ -112,9 +149,13 @@ Open vSwitch is a full-featured software-based Ethernet switch.
Summary: Open vSwitch - Open Virtual Network support
License: Apache-2.0
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
Requires: openvswitch-switch = %{version}
Requires: openvswitch-vtep = %{version}
Requires: %{name} = %{version}
Requires: %{name}-switch = %{version}
Requires: %{name}-vtep = %{version}
Provides: openvswitch-any-ovn = %{version}
%if %{with dpdk}
Conflicts: openvswitch-ovn
%endif
%description ovn
OVN, the Open Virtual Network, is a system to support virtual network
@ -126,7 +167,11 @@ overlays and security groups.
Summary: Open vSwitch public key infrastructure dependency package
License: Apache-2.0
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
Requires: %{name} = %{version}
Provides: openvswitch-any-pki = %{version}
%if %{with dpdk}
Conflicts: openvswitch-pki
%endif
%description pki
openvswitch-pki provides PKI (public key infrastructure) support for
@ -139,21 +184,27 @@ Open vSwitch is a full-featured software-based Ethernet switch.
Summary: Open vSwitch VTEP emulator
License: Apache-2.0
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
Requires: openvswitch-switch = %{version}
Requires: %{name} = %{version}
Requires: %{name}-switch = %{version}
# Since openvswitch/scripts/ovs-vtep requires various ovs python modules.
Requires: python-openvswitch = %{version}
Provides: openvswitch-any-vtep = %{version}
%if %{with dpdk}
Conflicts: openvswitch-vtep
%endif
%description vtep
A VTEP emulator that uses Open vSwitch for forwarding.
A VTEP (VXLAN Tunnel EndPoint) emulator that uses Open vSwitch for
forwarding.
Open vSwitch is a full-featured software-based Ethernet switch.
%if ! %{with dpdk}
%package -n python-openvswitch
Summary: Python bindings for Open vSwitch
License: Python-2.0
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
Requires: openvswitch-common = %{version}
Requires: python
%description -n python-openvswitch
@ -163,23 +214,28 @@ This package contains the full Python bindings for Open vSwitch database.
Summary: Python bindings for Open vSwitch
License: Python-2.0
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
Requires: openvswitch-common = %{version}
Requires: python
Requires: python-openvswitch = %{version}
Requires: python-twisted
%description -n python-openvswitch-test
This package contains the full Python bindings for Open vSwitch database.
%endif
%package test
Summary: Open vSwitch test package
License: Apache-2.0
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
Requires: %{name} = %{version}
Requires: python
Requires: python-argparse
Requires: python-openvswitch-test = %{version}
Requires: python-twisted
Provides: openvswitch-any-test = %{version}
%if %{with dpdk}
Conflicts: openvswitch-test
%endif
%description test
This package contains utilities that are useful to diagnose
@ -188,7 +244,9 @@ performance and connectivity issues in Open vSwitch setup.
Open vSwitch is a full-featured software-based Ethernet switch.
%prep
%setup -q
%setup -n openvswitch-%{version} -q
%patch0 -p1
%patch1 -p1
%build
set -- * .travis*
@ -201,6 +259,7 @@ perl -i -pe 's{__(DATE|TIME)__}{""}g' include/openvswitch/util.h
# only call boot.sh for distros with autoconf >= 2.64
bash -x boot.sh
popd
%if ! %{with dpdk}
%if %{with kmp}
export EXTRA_CFLAGS='-DVERSION=\"%{version}\"'
for flavor in %{flavors_to_build}; do
@ -217,16 +276,40 @@ for flavor in %{flavors_to_build}; do
popd
done
%endif
%endif
pushd source
%if %{with dpdk}
dpdk_opt="--with-dpdk"
%endif
%configure \
--disable-static \
--enable-libcapng \
--enable-shared \
${dpdk_opt} \
--with-logdir=%{_localstatedir}/log/openvswitch
make %{?_smp_mflags}
popd
%check
%if %{with check}
pushd source
# Recheck tests before we declare them broken. If that fails, dump
# the log and exit. >2.5.0 uses the RECHECK env variable so this
# needs to be taken into consideration for future releases.
if make check TESTSUITEFLAGS="%{_smp_mflags}" ||
make check TESTSUITEFLAGS='--recheck'; then :;
else
cat tests/testsuite.log
exit 1
fi
popd
%endif
%install
%if ! %{with dpdk}
%if %{with kmp}
export NO_BRP_STALE_LINK_ERROR=yes
export INSTALL_MOD_PATH=%{buildroot}
@ -238,6 +321,7 @@ for flavor in %{flavors_to_build}; do
popd
done
%endif
%endif
pushd source
@ -247,9 +331,9 @@ for service in ovn-controller ovn-controller-vtep ovn-northd; do
%{buildroot}%{_unitdir}/${service}.service
done
# We use our own openvswitch.service
install -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service
install -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/openvswitch.service
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcopenvswitch
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-controller
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-controller-vtep
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-northd
@ -261,20 +345,25 @@ install -d -m 755 %{buildroot}/%{_sysconfdir}/logrotate.d
install -d -m 755 %{buildroot}/%{_localstatedir}/log/openvswitch
install -m 644 %{SOURCE2} \
%{buildroot}/%{_sysconfdir}/logrotate.d/%{name}-switch
%{buildroot}/%{_sysconfdir}/logrotate.d/openvswitch-switch
install -d -m 755 %{buildroot}/%{_sysconfdir}/profile.d
install -m 644 vswitchd/vswitch.ovsschema \
%{buildroot}/%{_datadir}/%{name}/vswitch.ovsschema
%{buildroot}/%{_datadir}/openvswitch/vswitch.ovsschema
popd
mkdir -p %{buildroot}%{py_sitedir}
mv %{buildroot}%{_datadir}/%{name}/python/* %{buildroot}%{py_sitedir}
rmdir %{buildroot}%{_datadir}/%{name}/python
mv %{buildroot}%{_datadir}/openvswitch/python/* %{buildroot}%{py_sitedir}
rmdir %{buildroot}%{_datadir}/openvswitch/python
rm -f %buildroot/%_libdir/*.la
# Remove unpackaged files for the dpdk case
%if %{with dpdk}
rm -rf %{buildroot}%{py_sitedir}
%else
%fdupes %{buildroot}%{py_sitedir}
%endif
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@ -371,6 +460,7 @@ rm -f %buildroot/%_libdir/*.la
%{_datadir}/openvswitch/vtep.ovsschema
%{_libdir}/libvtep.so.*
%if ! %{with dpdk}
%files -n python-openvswitch
%defattr(-,root,root)
%{py_sitedir}/ovs/
@ -378,6 +468,7 @@ rm -f %buildroot/%_libdir/*.la
%files -n python-openvswitch-test
%defattr(-,root,root)
%{py_sitedir}/ovstest/
%endif
%files switch
%defattr(-,root,root)
@ -405,7 +496,7 @@ rm -f %buildroot/%_libdir/*.la
%{_mandir}/man1/ovsdb-server.1.gz
%{_mandir}/man5/ovs-vswitchd.conf.db.5.gz
%{_mandir}/man8/ovs-ctl.8.gz
%{_sbindir}/rc%{name}
%{_sbindir}/rcopenvswitch
%{_unitdir}/openvswitch.service
%{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch
%dir %{_localstatedir}/log/openvswitch

19
pre_checkin.sh Normal file
View File

@ -0,0 +1,19 @@
#!/bin/sh
# Start fresh
for f in spec changes; do
cp openvswitch.$f openvswitch-dpdk.$f || exit 1
done
#
#- Add comment about generated file
#- Fix {,sub-}package name, description, summary
#- Enable the dpdk conditional build
sed -i -e "/^Name:.*openvswitch$/i \
# Do NOT edit this auto generated file! Edit openvswitch.spec instead\n\
# and run 'pre_checkin.sh' before committing" \
-e "/^#\s*spec file/s/openvswitch$/&-dpdk/" \
-e "/^Name:/s/openvswitch/&-dpdk/g" \
-e "/^Summary:/s/^.*$/&\ \(DPDK\)/g" \
-e "/^%bcond_with\s*dpdk/s/with/&out/" \
openvswitch-dpdk.spec || exit 1