Accepting request 583259 from network

- Version bump to 2.9.0. Some of the changes are:
  * NSH implementation now conforms to latest draft (draft-ietf-sfc-nsh-28).
  * OVSDB:
    - ovsdb-client: New "get-schema-cksum" and "query" commands.
    - ovsdb-client: New "backup" and "restore" commands.
    - ovsdb-client: New --timeout option.
    - ovsdb-tool: New "db-name" and "schema-name" commands.
  * ovs-vsctl and other commands that display data in tables now support a
     --max-column-width option to limit column width.
  * No longer slow-path traffic that sends to a controller.  Applications,
    such as OVN ACL logging, want to send a copy of a packet to a
    controller while leaving the actual packet forwarding in the datapath.
  * OVN:
    - The "requested-chassis" option for a logical switch port now accepts a
      chassis "hostname" in addition to a chassis "name".
    - IPv6
      * Added support to send IPv6 Router Advertisement packets in response to
        the IPv6 Router Solicitation packets from  the VIF ports.
      * Added support to generate Neighbor Solicitation packets using the OVN
        action 'nd_ns' to resolve unknown next hop MAC addresses for the
        IPv6 packets.
    - ovn-ctl: New commands run_nb_ovsdb and run_sb_ovsdb.
  * OpenFlow:
    - ct_clear action is now backed by kernel datapath. Support is probed for
      when OVS starts.
   - ovs-dpctl and related ovs-appctl commands:
     * "flush-conntrack" now accept a 5-tuple to delete a specific
       connection tracking entry.
     * New "ct-set-maxconns", "ct-get-maxconns", and "ct-get-nconns" commands
       for userspace datapath.
   - No longer send packets to the Linux TAP device if it's DOWN unless it is
     in another networking namespace.
  * DPDK:
    - Add support for DPDK v17.11
    - Add support for vHost IOMMU
    - New debug appctl command 'netdev-dpdk/get-mempool-info'.
      * Custom statistics:
        - DPDK physical ports now return custom set of "dropped", "error" and
          "management" statistics.
        - ovs-ofctl dump-ports command now prints new of set custom statistics
          if available (for OpenFlow 1.4+).
    - New appctl command 'dpif-netdev/pmd-rxq-rebalance' to rebalance rxq to
      pmd assignments.
    - Add rxq utilization of pmd to appctl 'dpif-netdev/pmd-rxq-show'.
    - Add support for vHost dequeue zero copy (experimental)
  * Userspace datapath:
    - Output packet batching support.
  * vswitchd:
    - Datapath IDs may now be specified as 0x1 (etc.) instead of 16 digits.
    - Configuring a controller, or unconfiguring all controllers, now deletes
      all groups and meters (as well as all flows).
   - New --enable-sparse configure option enables "sparse" checking by default.
   - Added additional information to vhost-user status.
- For the complete list of changes, please refer to
  http://openvswitch.org/releases/NEWS-2.9.0
- Fix incorrect python3 dependencies for python2 subpackages
- Drop upstream patches for DPDK 17.11 support. They have been merged upstream
  * 0001-netdev-dpdk-replace-uint8_t-with-dpdk_port_t.patch
  * 0002-netdev-dpdk-DPDK-v17.11-upgrade.patch
  * 0003-netdev-dpdk-vHost-IOMMU-support.patch
- Get rid of the old openvswitch DPDK migration steps everybody should have
  migrated from <2.6 to latest releases by now.
  * 0001-utilities-Add-script-to-support-DPDK-option-migratio.patch

OBS-URL: https://build.opensuse.org/request/show/583259
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openvswitch?expand=0&rev=22
This commit is contained in:
Dominique Leuenberger 2018-03-07 09:37:30 +00:00 committed by Git OBS Bridge
commit e2b2a82fe3
8 changed files with 77 additions and 457 deletions

View File

@ -1,34 +0,0 @@
From 9a20eb387a578575400dd266cf64bebc323a5e7a Mon Sep 17 00:00:00 2001
From: Mark Kavanagh <mark.b.kavanagh@intel.com>
Date: Fri, 20 Oct 2017 13:37:00 +0100
Subject: [PATCH 1/3] netdev-dpdk: replace uint8_t with dpdk_port_t
netdev_dpdk_detach() declares a 'port_id' variable, of type uint8_t.
This variable should instead be of type dpdk_port_t.
Fixes: bb37956ac ("netdev-dpdk: Use uint8_t for port_id.")
CC: Ilya Maximets <i.maximets@samsung.com>
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Acked-by: Ilya Maximets <i.maximets@samsung.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Signed-off-by: Markos Chandras <mchandras@suse.de>
---
lib/netdev-dpdk.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 41acb5b62..dc96d7ce3 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -2521,7 +2521,7 @@ netdev_dpdk_detach(struct unixctl_conn *conn, int argc OVS_UNUSED,
{
int ret;
char *response;
- uint8_t port_id;
+ dpdk_port_t port_id;
char devname[RTE_ETH_NAME_MAX_LEN];
struct netdev_dpdk *dev;
--
2.15.1

View File

@ -1,128 +0,0 @@
From 4f543e486836e9e48fd771ce64808136ac9ce887 Mon Sep 17 00:00:00 2001
From: Markos Chandras <mchandras@suse.de>
Date: Fri, 10 Feb 2017 09:51:03 +0000
Subject: [PATCH] utilities: Add script to support DPDK option migration from
OvS<2.6
Open vSwitch 2.6 now requires DPDK options to be in the Open vSwitch
database so add a script to migration options from
/etc/sysconfig/openvswitch to the database.
Commit: bab6940971336510c1f4342cde0bc17da46b99f1 ("netdev-dpdk: Convert
initialization from cmdline to db")
Signed-off-by: Markos Chandras <mchandras@suse.de>
---
rhel/usr_lib_systemd_system_openvswitch.service | 1 +
utilities/ovs-dpdk-migrate-2.6.sh | 88 +++++++++++++++++++++++++
2 files changed, 89 insertions(+)
create mode 100644 utilities/ovs-dpdk-migrate-2.6.sh
diff --git a/rhel/usr_lib_systemd_system_openvswitch.service b/rhel/usr_lib_systemd_system_openvswitch.service
index e823c5454..4cdb8e75d 100644
--- a/rhel/usr_lib_systemd_system_openvswitch.service
+++ b/rhel/usr_lib_systemd_system_openvswitch.service
@@ -9,6 +9,7 @@ BindsTo=ovs-vswitchd.service
[Service]
Type=oneshot
ExecStart=/bin/true
+ExecStartPost=/usr/share/openvswitch/scripts/ovs-dpdk-migrate-2.6.sh
ExecReload=/bin/true
ExecStop=/bin/true
RemainAfterExit=yes
diff --git a/utilities/ovs-dpdk-migrate-2.6.sh b/utilities/ovs-dpdk-migrate-2.6.sh
new file mode 100644
index 000000000..6a3f1e08c
--- /dev/null
+++ b/utilities/ovs-dpdk-migrate-2.6.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+# Copyright (c) 2017 SUSE LINUX GmbH
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Author: Markos Chandras <mchandras@suse.de>
+# Maintainer: Markos Chandras <mchandras@suse.de>
+
+
+# The script will try its best to migrate the DPDK options from
+# /etc/sysconfig/openvswitch to the new Open vSwitch db options introduced
+# in Open vSwitch 2.6
+
+set -eu
+
+extra_string=''
+
+do_ovs_print() {
+ logger="$(which logger || false) -t $(basename $0) -- [dpdk options migration]"
+ echo "[dpdk options migration]" $@
+ eval $logger $@
+}
+
+do_ovs_db() {
+ field=$1; shift
+ args="$@"
+ ovsctl="ovs-vsctl set Open_vSwitch . other_config:$field='$args'"
+ do_ovs_print "Executing '$ovsctl'"
+ eval $ovsctl
+}
+
+OVS_SYSCONFIG=/etc/sysconfig/openvswitch
+
+# Exit if for whatever reason there is no sysconfig file
+[[ ! -e $OVS_SYSCONFIG ]] && exit 0
+
+source $OVS_SYSCONFIG
+
+# Exit if no DPDK_OPTIONS are set
+[[ "${DPDK_OPTIONS:-x__unset__x}" == "x__unset__x" ]] && exit 0
+
+# If other_config:dpdk-init exists in db then we don't need to do anything
+$(type -p ovs-vsctl) get Open_vSwitch . other_config:dpdk-init &> /dev/null && exit 0
+
+OPTIONS=$(getopt -u -o b:c:d:l:m:n:r:v:w: --long xen-dom0:,syslog,socket-mem:,lcores:,master-lcore:,huge-dir,proc-type,file-prefix,vmware-tsc-map,vdev:,base-virtaddr,create-uio-dev,no-shconf,no-pci,no-hpet,no-huge -n ${0} -- $DPDK_OPTIONS)
+
+set -- $OPTIONS
+
+do_ovs_db dpdk-init true
+
+while true; do
+ case $1 in
+ -c) do_ovs_db dpdk-lcore-mask $2; shift 2;;
+ --socket-mem) do_ovs_db dpdk-socket-mem $2; shift 2;;
+ --) shift; break ;;
+ *)
+ if [[ ${2:-x__unset__x} != x__unset__x ]]; then
+ extra_string+="$1 $2 " && shift 2
+ else
+ extra_string+="$1 " && shift 1
+ fi
+ ;;
+ esac
+done
+
+[[ -n "$extra_string" ]] && do_ovs_db dpdk-extra "$extra_string"
+
+# And now disable DPDK_OPTIONS
+sed -i -e '/^DPDK_OPTIONS=/i \
+# ------------------------ WARNING -------------------------- \
+# DPDK options now belong to the Open vSwitch database. See \
+# man ovs-vswitchd.conf.db(5)' -e 's/^DPDK_OPTIONS=/#&/' $OVS_SYSCONFIG
+
+# Restart it so new changes take effect
+systemctl -q restart openvswitch
+
+exit 0
--
2.11.0

View File

@ -1,40 +0,0 @@
From 48d294a05d4c0723aba6d7bae2e8a7bb56921736 Mon Sep 17 00:00:00 2001
From: Markos Chandras <mchandras@suse.de>
Date: Tue, 9 Jan 2018 15:55:34 +0000
Subject: [PATCH 2/3] netdev-dpdk: DPDK v17.11 upgrade
API changes for DPDK v17.11 (taken from upstream commit
5e925ccc2a6f569f1b32365e3660671b8e7d36b3 "netdev-dpdk: DPDK v17.11
upgrade")
Signed-off-by: Markos Chandras <mchandras@suse.de>
---
lib/netdev-dpdk.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index dc96d7ce3..b93aa2354 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -26,6 +26,7 @@
#include <sys/socket.h>
#include <linux/if.h>
+#include <rte_bus_pci.h>
#include <rte_config.h>
#include <rte_cycles.h>
#include <rte_errno.h>
@@ -150,8 +151,8 @@ BUILD_ASSERT_DECL((MAX_NB_MBUF / ROUND_DOWN_POW2(MAX_NB_MBUF/MIN_NB_MBUF))
#define DPDK_ETH_PORT_ID_INVALID RTE_MAX_ETHPORTS
-/* DPDK library uses uint8_t for port_id. */
-typedef uint8_t dpdk_port_t;
+/* DPDK library uses uint16_t for port_id. */
+typedef uint16_t dpdk_port_t;
#define VHOST_ENQ_RETRY_NUM 8
#define IF_NAME_SZ (PATH_MAX > IFNAMSIZ ? PATH_MAX : IFNAMSIZ)
--
2.15.1

View File

@ -1,217 +0,0 @@
From 99aa592dd03c15e9857cfc9c93cc31a8a660af7e Mon Sep 17 00:00:00 2001
From: Mark Kavanagh <mark.b.kavanagh@intel.com>
Date: Fri, 8 Dec 2017 10:53:47 +0000
Subject: [PATCH 3/3] netdev-dpdk: vHost IOMMU support
DPDK v17.11 introduces support for the vHost IOMMU feature.
This is a security feature, which restricts the vhost memory
that a virtio device may access.
This feature also enables the vhost REPLY_ACK protocol, the
implementation of which is known to work in newer versions of
QEMU (i.e. v2.10.0), but is buggy in older versions (v2.7.0 -
v2.9.0, inclusive). As such, the feature is disabled by default
in (and should remain so), for the aforementioned older QEMU
verions. Starting with QEMU v2.9.1, vhost-iommu-support can
safely be enabled, even without having an IOMMU device, with
no performance penalty.
This patch adds a new global config option, vhost-iommu-support,
that controls enablement of the vhost IOMMU feature:
ovs-vsctl set Open_vSwitch . other_config:vhost-iommu-support=true
This value defaults to false; to enable IOMMU support, this field
should be set to true when setting other global parameters on init
(such as "dpdk-socket-mem", for example). Changing the value at
runtime is not supported, and requires restarting the vswitch daemon.
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
Documentation/topics/dpdk/vhost-user.rst | 28 ++++++++++++++++++++++++++++
lib/dpdk-stub.c | 6 ++++++
lib/dpdk.c | 12 ++++++++++++
lib/dpdk.h | 3 +++
lib/netdev-dpdk.c | 14 ++++++++++----
vswitchd/vswitch.xml | 15 +++++++++++++++
6 files changed, 74 insertions(+), 4 deletions(-)
diff --git a/Documentation/topics/dpdk/vhost-user.rst b/Documentation/topics/dpdk/vhost-user.rst
index d383a16e3..9286f8ac6 100644
--- a/Documentation/topics/dpdk/vhost-user.rst
+++ b/Documentation/topics/dpdk/vhost-user.rst
@@ -273,6 +273,34 @@ One benefit of using this mode is the ability for vHost ports to 'reconnect' in
event of the switch crashing or being brought down. Once it is brought back up,
the vHost ports will reconnect automatically and normal service will resume.
+vhost-user-client IOMMU Support
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+vhost IOMMU is a feature which restricts the vhost memory that a virtio device
+can access, and as such is useful in deployments in which security is a
+concern.
+
+IOMMU support may be enabled via a global config value,
+```vhost-iommu-support```. Setting this to true enables vhost IOMMU support for
+all vhost ports when/where available::
+
+ $ ovs-vsctl set Open_vSwitch . other_config:vhost-iommu-support=true
+
+The default value is false.
+
+.. important::
+
+ Changing this value requires restarting the daemon.
+
+.. important::
+
+ Enabling the IOMMU feature also enables the vhost user reply-ack protocol;
+ this is known to work on QEMU v2.10.0, but is buggy on older versions
+ (2.7.0 - 2.9.0, inclusive). Consequently, the IOMMU feature is disabled by
+ default (and should remain so if using the aforementioned versions of
+ QEMU). Starting with QEMU v2.9.1, vhost-iommu-support can safely be
+ enabled, even without having an IOMMU device, with no performance penalty.
+
.. _dpdk-testpmd:
DPDK in the Guest
diff --git a/lib/dpdk-stub.c b/lib/dpdk-stub.c
index daef7291f..36021807c 100644
--- a/lib/dpdk-stub.c
+++ b/lib/dpdk-stub.c
@@ -48,3 +48,9 @@ dpdk_get_vhost_sock_dir(void)
{
return NULL;
}
+
+bool
+dpdk_vhost_iommu_enabled(void)
+{
+ return false;
+}
diff --git a/lib/dpdk.c b/lib/dpdk.c
index 8da6c3244..6710d10fc 100644
--- a/lib/dpdk.c
+++ b/lib/dpdk.c
@@ -41,6 +41,7 @@ VLOG_DEFINE_THIS_MODULE(dpdk);
static FILE *log_stream = NULL; /* Stream for DPDK log redirection */
static char *vhost_sock_dir = NULL; /* Location of vhost-user sockets */
+static bool vhost_iommu_enabled = false; /* Status of vHost IOMMU support */
static int
process_vhost_flags(char *flag, const char *default_val, int size,
@@ -345,6 +346,11 @@ dpdk_init__(const struct smap *ovs_other_config)
vhost_sock_dir = sock_dir_subcomponent;
}
+ vhost_iommu_enabled = smap_get_bool(ovs_other_config,
+ "vhost-iommu-support", false);
+ VLOG_INFO("IOMMU support for vhost-user-client %s.",
+ vhost_iommu_enabled ? "enabled" : "disabled");
+
argv = grow_argv(&argv, 0, 1);
argc = 1;
argv[0] = xstrdup(ovs_get_program_name());
@@ -482,6 +488,12 @@ dpdk_get_vhost_sock_dir(void)
return vhost_sock_dir;
}
+bool
+dpdk_vhost_iommu_enabled(void)
+{
+ return vhost_iommu_enabled;
+}
+
void
dpdk_set_lcore_id(unsigned cpu)
{
diff --git a/lib/dpdk.h b/lib/dpdk.h
index 673a1f17e..dc58d968a 100644
--- a/lib/dpdk.h
+++ b/lib/dpdk.h
@@ -17,6 +17,8 @@
#ifndef DPDK_H
#define DPDK_H
+#include <stdbool.h>
+
#ifdef DPDK_NETDEV
#include <rte_config.h>
@@ -35,5 +37,6 @@ struct smap;
void dpdk_init(const struct smap *ovs_other_config);
void dpdk_set_lcore_id(unsigned cpu);
const char *dpdk_get_vhost_sock_dir(void);
+bool dpdk_vhost_iommu_enabled(void);
#endif /* dpdk.h */
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index b93aa2354..3082fd668 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -3259,6 +3259,7 @@ netdev_dpdk_vhost_client_reconfigure(struct netdev *netdev)
{
struct netdev_dpdk *dev = netdev_dpdk_cast(netdev);
int err;
+ uint64_t vhost_flags = 0;
ovs_mutex_lock(&dev->mutex);
@@ -3269,16 +3270,21 @@ netdev_dpdk_vhost_client_reconfigure(struct netdev *netdev)
*/
if (!(dev->vhost_driver_flags & RTE_VHOST_USER_CLIENT)
&& strlen(dev->vhost_id)) {
- /* Register client-mode device */
- err = rte_vhost_driver_register(dev->vhost_id,
- RTE_VHOST_USER_CLIENT);
+ /* Register client-mode device. */
+ vhost_flags |= RTE_VHOST_USER_CLIENT;
+
+ /* Enable IOMMU support, if explicitly requested. */
+ if (dpdk_vhost_iommu_enabled()) {
+ vhost_flags |= RTE_VHOST_USER_IOMMU_SUPPORT;
+ }
+ err = rte_vhost_driver_register(dev->vhost_id, vhost_flags);
if (err) {
VLOG_ERR("vhost-user device setup failure for device %s\n",
dev->vhost_id);
goto unlock;
} else {
/* Configuration successful */
- dev->vhost_driver_flags |= RTE_VHOST_USER_CLIENT;
+ dev->vhost_driver_flags |= vhost_flags;
VLOG_INFO("vHost User device '%s' created in 'client' mode, "
"using client socket '%s'",
dev->up.name, dev->vhost_id);
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 074535b58..8f646059f 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -344,6 +344,21 @@
</p>
</column>
+ <column name="other_config" key="vhost-iommu-support"
+ type='{"type": "boolean"}'>
+ <p>
+ vHost IOMMU is a security feature, which restricts the vhost memory
+ that a virtio device may access. vHost IOMMU support is disabled by
+ default, due to a bug in QEMU implementations of the vhost REPLY_ACK
+ protocol, (on which vHost IOMMU relies) prior to v2.9.1. Setting this
+ value to <code>true</code> enables vHost IOMMU support for vHost User
+ Client ports in OvS-DPDK, starting from DPDK v17.11.
+ </p>
+ <p>
+ Changing this value requires restarting the daemon.
+ </p>
+ </column>
+
<column name="other_config" key="n-handler-threads"
type='{"type": "integer", "minInteger": 1}'>
<p>
--
2.15.1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8d1c439e26d7044f0ec823c7fef1b00b7c6465da0b83a7d0cf3191ed1dc43893
size 6746474

3
openvswitch-2.9.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3699ce579acd346e9aa2fba89514cdcc79b231f6227659eea6714917b398419d
size 6933057

View File

@ -1,3 +1,70 @@
-------------------------------------------------------------------
Thu Mar 1 10:39:54 UTC 2018 - mchandras@suse.de
- Version bump to 2.9.0. Some of the changes are:
* NSH implementation now conforms to latest draft (draft-ietf-sfc-nsh-28).
* OVSDB:
- ovsdb-client: New "get-schema-cksum" and "query" commands.
- ovsdb-client: New "backup" and "restore" commands.
- ovsdb-client: New --timeout option.
- ovsdb-tool: New "db-name" and "schema-name" commands.
* ovs-vsctl and other commands that display data in tables now support a
--max-column-width option to limit column width.
* No longer slow-path traffic that sends to a controller. Applications,
such as OVN ACL logging, want to send a copy of a packet to a
controller while leaving the actual packet forwarding in the datapath.
* OVN:
- The "requested-chassis" option for a logical switch port now accepts a
chassis "hostname" in addition to a chassis "name".
- IPv6
* Added support to send IPv6 Router Advertisement packets in response to
the IPv6 Router Solicitation packets from the VIF ports.
* Added support to generate Neighbor Solicitation packets using the OVN
action 'nd_ns' to resolve unknown next hop MAC addresses for the
IPv6 packets.
- ovn-ctl: New commands run_nb_ovsdb and run_sb_ovsdb.
* OpenFlow:
- ct_clear action is now backed by kernel datapath. Support is probed for
when OVS starts.
- ovs-dpctl and related ovs-appctl commands:
* "flush-conntrack" now accept a 5-tuple to delete a specific
connection tracking entry.
* New "ct-set-maxconns", "ct-get-maxconns", and "ct-get-nconns" commands
for userspace datapath.
- No longer send packets to the Linux TAP device if it's DOWN unless it is
in another networking namespace.
* DPDK:
- Add support for DPDK v17.11
- Add support for vHost IOMMU
- New debug appctl command 'netdev-dpdk/get-mempool-info'.
* Custom statistics:
- DPDK physical ports now return custom set of "dropped", "error" and
"management" statistics.
- ovs-ofctl dump-ports command now prints new of set custom statistics
if available (for OpenFlow 1.4+).
- New appctl command 'dpif-netdev/pmd-rxq-rebalance' to rebalance rxq to
pmd assignments.
- Add rxq utilization of pmd to appctl 'dpif-netdev/pmd-rxq-show'.
- Add support for vHost dequeue zero copy (experimental)
* Userspace datapath:
- Output packet batching support.
* vswitchd:
- Datapath IDs may now be specified as 0x1 (etc.) instead of 16 digits.
- Configuring a controller, or unconfiguring all controllers, now deletes
all groups and meters (as well as all flows).
- New --enable-sparse configure option enables "sparse" checking by default.
- Added additional information to vhost-user status.
- For the complete list of changes, please refer to
http://openvswitch.org/releases/NEWS-2.9.0
- Fix incorrect python3 dependencies for python2 subpackages
- Drop upstream patches for DPDK 17.11 support. They have been merged upstream
* 0001-netdev-dpdk-replace-uint8_t-with-dpdk_port_t.patch
* 0002-netdev-dpdk-DPDK-v17.11-upgrade.patch
* 0003-netdev-dpdk-vHost-IOMMU-support.patch
- Get rid of the old openvswitch DPDK migration steps everybody should have
migrated from <2.6 to latest releases by now.
* 0001-utilities-Add-script-to-support-DPDK-option-migratio.patch
-------------------------------------------------------------------
Tue Jan 9 16:25:48 UTC 2018 - mchandras@suse.de

View File

@ -22,7 +22,7 @@
%if ! %{defined _fillupdir}
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
%define lname libopenvswitch-2_8-0
%define lname libopenvswitch-2_9-0
%ifarch aarch64 x86_64 %{ix86}
# DPDK enabled by default
%bcond_without dpdk
@ -36,25 +36,18 @@
# Disable building the external kernel datapath by default
%bcond_with kmp
Name: openvswitch
Version: 2.8.1
Version: 2.9.0
Release: 0
Summary: A multilayer virtual network switch
# All code is Apache-2.0 except
# - lib/sflow* which is SISSL
# - utilities/bugtool which is LGPL-2.1
License: Apache-2.0 AND LGPL-2.1 AND SISSL
License: Apache-2.0 AND LGPL-2.1-only AND SISSL
Group: Productivity/Networking/System
Url: http://openvswitch.org/
Source0: http://openvswitch.org/releases/openvswitch-%{version}.tar.gz
Source1: preamble
Source89: Module.supported.updates
# PATCH-FIX-UPSTREAM: 0001-netdev-dpdk-replace-uint8_t-with-dpdk_port_t.patch
Patch0: 0001-netdev-dpdk-replace-uint8_t-with-dpdk_port_t.patch
# PATCH-FIX-UPSTREAM: 0002-netdev-dpdk-DPDK-v17.11-upgrade.patch
Patch1: 0002-netdev-dpdk-DPDK-v17.11-upgrade.patch
# PATCH-FIX-UPSTREAM: 0003-netdev-dpdk-vHost-IOMMU-support.patch
Patch2: 0003-netdev-dpdk-vHost-IOMMU-support.patch
Patch99: 0001-utilities-Add-script-to-support-DPDK-option-migratio.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module six}
BuildRequires: %{python_module xml}
@ -119,7 +112,7 @@ vNetwork distributed vswitch or Ciscos Nexus 1000V.
%if %{with kmp}
%package kmp
Summary: Open vSwitch kernel modules
License: GPL-2.0+
License: GPL-2.0-or-later
Group: System/Kernel
BuildRequires: %{kernel_module_package_buildreqs}
%suse_kernel_module_package -p %{_sourcedir}/preamble ec2 xenpae vmi um
@ -263,8 +256,8 @@ Summary: Python2 bindings for Open vSwitch
License: Apache-2.0
Group: Productivity/Networking/System
Requires: openvswitch-common = %{version}
Requires: python3
Requires: python3-six
Requires: python2
Requires: python2-six
Provides: python-openvswitch = %{version}
Obsoletes: python-openvswitch < 2.8.1
BuildArch: noarch
@ -329,10 +322,6 @@ performance and connectivity issues in Open vSwitch setup.
%prep
%setup -q -n openvswitch-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch99 -p1
%build
set -- * .travis* .mailmap
@ -367,7 +356,7 @@ pushd source
dpdk_opt="--with-dpdk"
%endif
%{_bindir}/perl build-aux/dpdkstrip.pl \
%{_bindir}/python build-aux/dpdkstrip.py \
%if %{with dpdk}
--dpdk \
%else
@ -456,9 +445,6 @@ mkdir -p %{buildroot}%{_docdir}/%{name}
cp -r Documentation/* %{buildroot}%{_docdir}/%{name}
find %{buildroot}%{_docdir}/%{name}/ -type f ! -name '*.rst' -delete
# DPDK migration script
install -m 755 utilities/ovs-dpdk-migrate-2.6.sh %{buildroot}/%{_datadir}/openvswitch/scripts/
popd
# python2
@ -482,19 +468,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%post
/sbin/ldconfig
%{fillup_only -n openvswitch}
if grep -q ^DPDK_OPTIONS= %{_sysconfdir}/sysconfig/openvswitch &> /dev/null; then
cat >> %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something << EOF
WARNING! DPDK options are now part of the Open vSwitch database. Please see
https://github.com/openvswitch/ovs/blob/branch-2.7/Documentation/intro/install/dpdk.rst
The Open vSwitch systemd service will try to migrate your %{_sysconfdir}/sysconfig/openvswitch
DPDK settings to the OvS database the next time it's restarted but you should check the result
using 'ovs-vsctl list Open_vSwitch' or something similar.
Please remember to remove the DPDK_OPTIONS variable from %{_sysconfdir}/sysconfig/openvswitch
to avoid seeing this warning again.
EOF
fi
if [ $1 -eq 1 ]; then
getent passwd openvswitch >/dev/null || \
@ -621,7 +594,6 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_datadir}/openvswitch/scripts/ovs-ctl
%{_datadir}/openvswitch/scripts/ovs-lib
%{_datadir}/openvswitch/scripts/ovs-save
%{_datadir}/openvswitch/scripts/ovs-dpdk-migrate-2.6.sh
%{_datadir}/openvswitch/vswitch.ovsschema
%{_mandir}/man1/ovsdb-client.1%{ext_man}
%{_mandir}/man1/ovsdb-server.1%{ext_man}