Accepting request 582588 from home:markoschandras: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. OBS-URL: https://build.opensuse.org/request/show/582588 OBS-URL: https://build.opensuse.org/package/show/network/openvswitch?expand=0&rev=139
This commit is contained in:
parent
6d5d3ab04a
commit
c0316badd8
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
3
openvswitch-2.9.0.tar.gz
Normal file
3
openvswitch-2.9.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:3699ce579acd346e9aa2fba89514cdcc79b231f6227659eea6714917b398419d
|
||||||
|
size 6933057
|
@ -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
|
Tue Jan 9 16:25:48 UTC 2018 - mchandras@suse.de
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
%if ! %{defined _fillupdir}
|
%if ! %{defined _fillupdir}
|
||||||
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
||||||
%endif
|
%endif
|
||||||
%define lname libopenvswitch-2_8-0
|
%define lname libopenvswitch-2_9-0
|
||||||
%ifarch aarch64 x86_64 %{ix86}
|
%ifarch aarch64 x86_64 %{ix86}
|
||||||
# DPDK enabled by default
|
# DPDK enabled by default
|
||||||
%bcond_without dpdk
|
%bcond_without dpdk
|
||||||
@ -36,25 +36,18 @@
|
|||||||
# Disable building the external kernel datapath by default
|
# Disable building the external kernel datapath by default
|
||||||
%bcond_with kmp
|
%bcond_with kmp
|
||||||
Name: openvswitch
|
Name: openvswitch
|
||||||
Version: 2.8.1
|
Version: 2.9.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A multilayer virtual network switch
|
Summary: A multilayer virtual network switch
|
||||||
# All code is Apache-2.0 except
|
# All code is Apache-2.0 except
|
||||||
# - lib/sflow* which is SISSL
|
# - lib/sflow* which is SISSL
|
||||||
# - utilities/bugtool which is LGPL-2.1
|
# - 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
|
Group: Productivity/Networking/System
|
||||||
Url: http://openvswitch.org/
|
Url: http://openvswitch.org/
|
||||||
Source0: http://openvswitch.org/releases/openvswitch-%{version}.tar.gz
|
Source0: http://openvswitch.org/releases/openvswitch-%{version}.tar.gz
|
||||||
Source1: preamble
|
Source1: preamble
|
||||||
Source89: Module.supported.updates
|
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 devel}
|
||||||
BuildRequires: %{python_module six}
|
BuildRequires: %{python_module six}
|
||||||
BuildRequires: %{python_module xml}
|
BuildRequires: %{python_module xml}
|
||||||
@ -119,7 +112,7 @@ vNetwork distributed vswitch or Cisco’s Nexus 1000V.
|
|||||||
%if %{with kmp}
|
%if %{with kmp}
|
||||||
%package kmp
|
%package kmp
|
||||||
Summary: Open vSwitch kernel modules
|
Summary: Open vSwitch kernel modules
|
||||||
License: GPL-2.0+
|
License: GPL-2.0-or-later
|
||||||
Group: System/Kernel
|
Group: System/Kernel
|
||||||
BuildRequires: %{kernel_module_package_buildreqs}
|
BuildRequires: %{kernel_module_package_buildreqs}
|
||||||
%suse_kernel_module_package -p %{_sourcedir}/preamble ec2 xenpae vmi um
|
%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
|
License: Apache-2.0
|
||||||
Group: Productivity/Networking/System
|
Group: Productivity/Networking/System
|
||||||
Requires: openvswitch-common = %{version}
|
Requires: openvswitch-common = %{version}
|
||||||
Requires: python3
|
Requires: python2
|
||||||
Requires: python3-six
|
Requires: python2-six
|
||||||
Provides: python-openvswitch = %{version}
|
Provides: python-openvswitch = %{version}
|
||||||
Obsoletes: python-openvswitch < 2.8.1
|
Obsoletes: python-openvswitch < 2.8.1
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -329,10 +322,6 @@ performance and connectivity issues in Open vSwitch setup.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n openvswitch-%{version}
|
%setup -q -n openvswitch-%{version}
|
||||||
%patch0 -p1
|
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch99 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
set -- * .travis* .mailmap
|
set -- * .travis* .mailmap
|
||||||
@ -367,7 +356,7 @@ pushd source
|
|||||||
dpdk_opt="--with-dpdk"
|
dpdk_opt="--with-dpdk"
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%{_bindir}/perl build-aux/dpdkstrip.pl \
|
%{_bindir}/python build-aux/dpdkstrip.py \
|
||||||
%if %{with dpdk}
|
%if %{with dpdk}
|
||||||
--dpdk \
|
--dpdk \
|
||||||
%else
|
%else
|
||||||
@ -456,9 +445,6 @@ mkdir -p %{buildroot}%{_docdir}/%{name}
|
|||||||
cp -r Documentation/* %{buildroot}%{_docdir}/%{name}
|
cp -r Documentation/* %{buildroot}%{_docdir}/%{name}
|
||||||
find %{buildroot}%{_docdir}/%{name}/ -type f ! -name '*.rst' -delete
|
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
|
popd
|
||||||
|
|
||||||
# python2
|
# python2
|
||||||
@ -482,19 +468,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
|
|||||||
%post
|
%post
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%{fillup_only -n openvswitch}
|
%{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
|
if [ $1 -eq 1 ]; then
|
||||||
getent passwd openvswitch >/dev/null || \
|
getent passwd openvswitch >/dev/null || \
|
||||||
@ -621,7 +594,6 @@ export DISABLE_RESTART_ON_UPDATE=yes
|
|||||||
%{_datadir}/openvswitch/scripts/ovs-ctl
|
%{_datadir}/openvswitch/scripts/ovs-ctl
|
||||||
%{_datadir}/openvswitch/scripts/ovs-lib
|
%{_datadir}/openvswitch/scripts/ovs-lib
|
||||||
%{_datadir}/openvswitch/scripts/ovs-save
|
%{_datadir}/openvswitch/scripts/ovs-save
|
||||||
%{_datadir}/openvswitch/scripts/ovs-dpdk-migrate-2.6.sh
|
|
||||||
%{_datadir}/openvswitch/vswitch.ovsschema
|
%{_datadir}/openvswitch/vswitch.ovsschema
|
||||||
%{_mandir}/man1/ovsdb-client.1%{ext_man}
|
%{_mandir}/man1/ovsdb-client.1%{ext_man}
|
||||||
%{_mandir}/man1/ovsdb-server.1%{ext_man}
|
%{_mandir}/man1/ovsdb-server.1%{ext_man}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user