summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-misc/openvswitch/files
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-misc/openvswitch/files')
-rw-r--r--net-misc/openvswitch/files/atomic-test.patch14
-rw-r--r--net-misc/openvswitch/files/configure.patch15
-rw-r--r--net-misc/openvswitch/files/kernel-3.11-support.patch68
-rw-r--r--net-misc/openvswitch/files/kernel-3.12-support.patch19
-rw-r--r--net-misc/openvswitch/files/openvswitch.tmpfiles1
-rw-r--r--net-misc/openvswitch/files/ovs-controller-r123
-rw-r--r--net-misc/openvswitch/files/ovs-controller.service9
-rw-r--r--net-misc/openvswitch/files/ovs-controller_conf7
-rw-r--r--net-misc/openvswitch/files/ovs-vswitchd-r122
-rw-r--r--net-misc/openvswitch/files/ovs-vswitchd.service13
-rw-r--r--net-misc/openvswitch/files/ovs-vswitchd_conf6
-rw-r--r--net-misc/openvswitch/files/ovsdb-server-r135
-rw-r--r--net-misc/openvswitch/files/ovsdb-server.service14
-rw-r--r--net-misc/openvswitch/files/ovsdb-server_conf16
-rw-r--r--net-misc/openvswitch/files/ovsdb-server_conf216
-rw-r--r--net-misc/openvswitch/files/prevent-traceback.patch107
-rw-r--r--net-misc/openvswitch/files/xcp-interface-reconfigure-2.3.2.patch20
-rw-r--r--net-misc/openvswitch/files/xcp-interface-reconfigure.patch20
18 files changed, 425 insertions, 0 deletions
diff --git a/net-misc/openvswitch/files/atomic-test.patch b/net-misc/openvswitch/files/atomic-test.patch
new file mode 100644
index 00000000000..14de564de9c
--- /dev/null
+++ b/net-misc/openvswitch/files/atomic-test.patch
@@ -0,0 +1,14 @@
+Description: Link atomic test with -latomic for powerpc.
+Author: Adam Conrad <adconrad@ubuntu.com>
+
+--- openvswitch-2.0.0.orig/tests/automake.mk
++++ openvswitch-2.0.0/tests/automake.mk
+@@ -181,7 +181,7 @@ tests_test_aes128_LDADD = lib/libopenvsw
+
+ noinst_PROGRAMS += tests/test-atomic
+ tests_test_atomic_SOURCES = tests/test-atomic.c
+-tests_test_atomic_LDADD = lib/libopenvswitch.a $(SSL_LIBS)
++tests_test_atomic_LDADD = lib/libopenvswitch.a $(SSL_LIBS) -latomic
+
+ noinst_PROGRAMS += tests/test-bundle
+ tests_test_bundle_SOURCES = tests/test-bundle.c
diff --git a/net-misc/openvswitch/files/configure.patch b/net-misc/openvswitch/files/configure.patch
new file mode 100644
index 00000000000..47f5614d8ed
--- /dev/null
+++ b/net-misc/openvswitch/files/configure.patch
@@ -0,0 +1,15 @@
+--- configure.orig 2014-01-27 21:55:14.116272645 +0200
++++ configure 2014-01-27 21:55:40.687273108 +0200
+@@ -7949,10 +7949,10 @@
+ $as_echo "$kversion" >&6; }
+
+ if test "$version" -ge 3; then
+- if test "$version" = 3 && test "$patchlevel" -le 10; then
++ if test "$version" = 3 && test "$patchlevel" -le 12; then
+ : # Linux 3.x
+ else
+- as_fn_error $? "Linux kernel in $KBUILD is version $kversion, but version newer than 3.10.x is not supported" "$LINENO" 5
++ as_fn_error $? "Linux kernel in $KBUILD is version $kversion, but version newer than 3.12.x is not supported" "$LINENO" 5
+ fi
+ else
+ if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then
diff --git a/net-misc/openvswitch/files/kernel-3.11-support.patch b/net-misc/openvswitch/files/kernel-3.11-support.patch
new file mode 100644
index 00000000000..7ee53d83500
--- /dev/null
+++ b/net-misc/openvswitch/files/kernel-3.11-support.patch
@@ -0,0 +1,68 @@
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -134,10 +134,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [
+ AC_MSG_RESULT([$kversion])
+
+ if test "$version" -ge 3; then
+- if test "$version" = 3 && test "$patchlevel" -le 10; then
++ if test "$version" = 3 && test "$patchlevel" -le 11; then
+ : # Linux 3.x
+ else
+- AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.10.x is not supported])
++ AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.11.x is not supported])
+ fi
+ else
+ if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then
+--- a/datapath/dp_notify.c
++++ b/datapath/dp_notify.c
+@@ -79,7 +79,7 @@ static int dp_device_event(struct notifi
+ void *ptr)
+ {
+ struct ovs_net *ovs_net;
+- struct net_device *dev = ptr;
++ struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+ struct vport *vport = NULL;
+
+ if (!ovs_is_internal_dev(dev))
+--- a/datapath/linux/compat/include/linux/netdevice.h
++++ b/datapath/linux/compat/include/linux/netdevice.h
+@@ -120,4 +120,11 @@ static inline void netdev_upper_dev_unli
+ }
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
++static inline struct net_device *netdev_notifier_info_to_dev(void *info)
++{
++ return info;
++}
++#endif
++
+ #endif
+--- a/datapath/linux/compat/include/net/gre.h
++++ b/datapath/linux/compat/include/net/gre.h
+@@ -74,12 +74,17 @@ static inline __be16 tnl_flags_to_gre_fl
+ #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
+
+ #define MAX_GRE_PROTO_PRIORITY 255
++#define gre_cisco_protocol rpl_gre_cisco_protocol
++
+ struct gre_cisco_protocol {
+ int (*handler)(struct sk_buff *skb, const struct tnl_ptk_info *tpi);
+ u8 priority;
+ };
+
++#define gre_cisco_register rpl_gre_cisco_register
+ int gre_cisco_register(struct gre_cisco_protocol *proto);
++
++#define gre_cisco_unregister rpl_gre_cisco_unregister
+ int gre_cisco_unregister(struct gre_cisco_protocol *proto);
+
+ #define gre_build_header rpl_gre_build_header
+@@ -89,6 +94,7 @@ void gre_build_header(struct sk_buff *sk
+ #define gre_handle_offloads rpl_gre_handle_offloads
+ struct sk_buff *gre_handle_offloads(struct sk_buff *skb, bool gre_csum);
+
++#define ip_gre_calc_hlen rpl_ip_gre_calc_hlen
+ static inline int ip_gre_calc_hlen(__be16 o_flags)
+ {
+ int addend = 4;
diff --git a/net-misc/openvswitch/files/kernel-3.12-support.patch b/net-misc/openvswitch/files/kernel-3.12-support.patch
new file mode 100644
index 00000000000..85f19ecc2ab
--- /dev/null
+++ b/net-misc/openvswitch/files/kernel-3.12-support.patch
@@ -0,0 +1,19 @@
+Description: Enable support for 3.12 kernel
+Author: James Page <james.page@ubuntu.com>
+Forwarded: no
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -134,10 +134,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [
+ AC_MSG_RESULT([$kversion])
+
+ if test "$version" -ge 3; then
+- if test "$version" = 3 && test "$patchlevel" -le 11; then
++ if test "$version" = 3 && test "$patchlevel" -le 12; then
+ : # Linux 3.x
+ else
+- AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.11.x is not supported])
++ AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.12.x is not supported])
+ fi
+ else
+ if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then
diff --git a/net-misc/openvswitch/files/openvswitch.tmpfiles b/net-misc/openvswitch/files/openvswitch.tmpfiles
new file mode 100644
index 00000000000..58c583ee474
--- /dev/null
+++ b/net-misc/openvswitch/files/openvswitch.tmpfiles
@@ -0,0 +1 @@
+d /var/run/openvswitch 0770 root root -
diff --git a/net-misc/openvswitch/files/ovs-controller-r1 b/net-misc/openvswitch/files/ovs-controller-r1
new file mode 100644
index 00000000000..1fedaacf443
--- /dev/null
+++ b/net-misc/openvswitch/files/ovs-controller-r1
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="Open vSwitch OpenFlow controller"
+
+command="/usr/bin/ovs-controller"
+command_args="
+ --pidfile
+ --detach
+ --monitor
+ ${OPTIONS} ${METHODS}"
+pidfile="/var/run/openvswitch/ovs-controller.pid"
+
+depend() {
+ need net
+ use logger
+}
+
+start_pre() {
+ checkpath -d "/var/run/openvswitch" -m 0750
+}
diff --git a/net-misc/openvswitch/files/ovs-controller.service b/net-misc/openvswitch/files/ovs-controller.service
new file mode 100644
index 00000000000..723c5caa1f6
--- /dev/null
+++ b/net-misc/openvswitch/files/ovs-controller.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Open vSwitch OpenFlow controller
+Requires=network.target
+
+[Service]
+ExecStart=/usr/bin/ovs-controller --monitor ptcp:
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-misc/openvswitch/files/ovs-controller_conf b/net-misc/openvswitch/files/ovs-controller_conf
new file mode 100644
index 00000000000..1756c9b98bc
--- /dev/null
+++ b/net-misc/openvswitch/files/ovs-controller_conf
@@ -0,0 +1,7 @@
+
+# Space separated list of methods to listen for OpenFlow connections from switches
+# The default ist "ptcp:" which starts ovs-controller listening on port 6633 on all interfaces.
+METHODS="ptcp:"
+
+# Additional options
+# OPTIONS=""
diff --git a/net-misc/openvswitch/files/ovs-vswitchd-r1 b/net-misc/openvswitch/files/ovs-vswitchd-r1
new file mode 100644
index 00000000000..643d5fd0cc7
--- /dev/null
+++ b/net-misc/openvswitch/files/ovs-vswitchd-r1
@@ -0,0 +1,22 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="Open vSwitch virtual switch"
+
+command="/usr/sbin/ovs-vswitchd"
+command_args="
+ --pidfile
+ --detach
+ --monitor
+ ${OPTIONS} ${DATABASE}"
+pidfile="/var/run/openvswitch/ovs-vswitchd.pid"
+
+depend() {
+ use ovsdb-server logger
+}
+
+start_pre() {
+ checkpath -d "/var/run/openvswitch" -m 0750
+}
diff --git a/net-misc/openvswitch/files/ovs-vswitchd.service b/net-misc/openvswitch/files/ovs-vswitchd.service
new file mode 100644
index 00000000000..266bb0ace88
--- /dev/null
+++ b/net-misc/openvswitch/files/ovs-vswitchd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Open vSwitch Daemon
+Documentation=man:ovs-vswitchd
+Wants=network.target
+Before=network.target
+Requires=ovsdb-server.service
+After=ovsdb-server.service
+
+[Service]
+ExecStart=/usr/sbin/ovs-vswitchd --mlockall --monitor unix:/var/run/openvswitch/db.sock
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-misc/openvswitch/files/ovs-vswitchd_conf b/net-misc/openvswitch/files/ovs-vswitchd_conf
new file mode 100644
index 00000000000..c9eadb41862
--- /dev/null
+++ b/net-misc/openvswitch/files/ovs-vswitchd_conf
@@ -0,0 +1,6 @@
+
+# Connection string for the configuration database (usually a unix socket)
+DATABASE="unix:/var/run/openvswitch/db.sock"
+
+# Additional options
+OPTIONS="--mlockall"
diff --git a/net-misc/openvswitch/files/ovsdb-server-r1 b/net-misc/openvswitch/files/ovsdb-server-r1
new file mode 100644
index 00000000000..9a8ca016287
--- /dev/null
+++ b/net-misc/openvswitch/files/ovsdb-server-r1
@@ -0,0 +1,35 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="Open vSwitch database server"
+
+remote_punix=${DB_SOCKET:+"--remote=punix:${DB_SOCKET}"}
+remote_db=${REMOTE_DB:+"--remote=${REMOTE_DB}"}
+private_key=${PRIVATE_KEY:+"--private-key=${PRIVATE_KEY}"}
+certificate=${CERTIFICATE:+"--certificate=${CERTIFICATE}"}
+bootstrap_ca_cert=${BOOTSTRAP_CA_CERT:+"--bootstrap-ca-cert=${BOOTSTRAP_CA_CERT}"}
+
+command="/usr/sbin/ovsdb-server"
+command_args="
+ --pidfile
+ --detach
+ --monitor
+ ${remote_punix}
+ ${remote_db}
+ ${private_key}
+ ${certificate}
+ ${bootstrap_ca_cert}
+ ${DATABASE}
+ ${OPTIONS}"
+pidfile="/var/run/openvswitch/ovsdb-server.pid"
+
+depend() {
+ need localmount
+ use logger
+}
+
+start_pre() {
+ checkpath -d "/var/run/openvswitch" -m 0750
+}
diff --git a/net-misc/openvswitch/files/ovsdb-server.service b/net-misc/openvswitch/files/ovsdb-server.service
new file mode 100644
index 00000000000..9493c40755d
--- /dev/null
+++ b/net-misc/openvswitch/files/ovsdb-server.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Open vSwitch Database Server
+Documentation=man:ovsdb-server
+
+[Service]
+# The file can be shared for this as this values are prone to change
+# and that way we don't need to update them in two different places
+EnvironmentFile=/etc/conf.d/ovsdb-server
+ExecStart=/usr/sbin/ovsdb-server --monitor \
+ --remote=punix:${DB_SOCKET} \
+ --remote=${REMOTE_DB} \
+ --private-key=${PRIVATE_KEY} \
+ --certificate=${CERTIFICATE} \
+ --bootstrap-ca-cert=${BOOTSTRAP_CA_CERT}
diff --git a/net-misc/openvswitch/files/ovsdb-server_conf b/net-misc/openvswitch/files/ovsdb-server_conf
new file mode 100644
index 00000000000..1299b820640
--- /dev/null
+++ b/net-misc/openvswitch/files/ovsdb-server_conf
@@ -0,0 +1,16 @@
+# Socket for bringing the server up
+DB_SOCKET="/var/run/openvswitch/db.sock"
+
+# Remote sockets are defined in the database by default
+REMOTE_DB="db:Open_vSwitch,manager_options"
+
+# All certificates and keys are stored in the database (if any)
+PRIVATE_KEY="db:SSL,private_key"
+CERTIFICATE="db:SSL,certificate"
+BOOTSTRAP_CA_CERT="db:SSL,ca_cert"
+
+# Alternative path for the database (default is /etc/openvswitch/conf.db)
+# DATABASE="/etc/openvswitch/conf.db"
+
+# Additional options
+# OPTIONS=""
diff --git a/net-misc/openvswitch/files/ovsdb-server_conf2 b/net-misc/openvswitch/files/ovsdb-server_conf2
new file mode 100644
index 00000000000..97367b9717e
--- /dev/null
+++ b/net-misc/openvswitch/files/ovsdb-server_conf2
@@ -0,0 +1,16 @@
+# Socket for bringing the server up
+DB_SOCKET="/var/run/openvswitch/db.sock"
+
+# Remote sockets are defined in the database by default
+REMOTE_DB="db:Open_vSwitch,Open_vSwitch,manager_options"
+
+# All certificates and keys are stored in the database (if any)
+PRIVATE_KEY="db:Open_vSwitch,SSL,private_key"
+CERTIFICATE="db:Open_vSwitch,SSL,certificate"
+BOOTSTRAP_CA_CERT="db:Open_vSwitch,SSL,ca_cert"
+
+# Alternative path for the database (default is /etc/openvswitch/conf.db)
+# DATABASE="/etc/openvswitch/conf.db"
+
+# Additional options
+# OPTIONS=""
diff --git a/net-misc/openvswitch/files/prevent-traceback.patch b/net-misc/openvswitch/files/prevent-traceback.patch
new file mode 100644
index 00000000000..858f24c2f59
--- /dev/null
+++ b/net-misc/openvswitch/files/prevent-traceback.patch
@@ -0,0 +1,107 @@
+commit d4d1107c3a49a4dadf6dc8ac55d6fefa25a8e06a
+Author: Alexei Starovoitov <ast@plumgrid.com>
+Date: Wed Oct 16 15:28:23 2013 -0700
+
+ cherry-pick 8e04c6e10c28e42c715eb9fef749554c123bddbc
+
+diff --git a/AUTHORS b/AUTHORS
+index 2d29e66..7a62704 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -2,6 +2,8 @@ The following people, in alphabetical order, have either authored or
+ signed off on commits in the Open vSwitch version control repository.
+
+ Aaron Rosen arosen@clemson.edu
++Alexandru Copot alex.mihai.c@gmail.com
++Alexei Starovoitov ast@plumgrid.com
+ Alexey I. Froloff raorn@altlinux.org
+ Alex Wang alexw@nicira.com
+ Andrew Evans aevans@nicira.com
+diff --git a/datapath/dp_notify.c b/datapath/dp_notify.c
+index 847f611..a973623 100644
+--- a/datapath/dp_notify.c
++++ b/datapath/dp_notify.c
+@@ -66,8 +66,7 @@ void ovs_dp_notify_wq(struct work_struct *work)
+ continue;
+
+ netdev_vport = netdev_vport_priv(vport);
+- if (netdev_vport->dev->reg_state == NETREG_UNREGISTERED ||
+- netdev_vport->dev->reg_state == NETREG_UNREGISTERING)
++ if (!(ovs_netdev_get_vport(netdev_vport->dev)))
+ dp_detach_port_notify(vport);
+ }
+ }
+@@ -89,6 +88,10 @@ static int dp_device_event(struct notifier_block *unused, unsigned long event,
+ return NOTIFY_DONE;
+
+ if (event == NETDEV_UNREGISTER) {
++ /* upper_dev_unlink and decrement promisc immediately */
++ ovs_netdev_detach_dev(vport);
++
++ /* schedule vport destroy, dev_put and genl notification */
+ ovs_net = net_generic(dev_net(dev), ovs_net_id);
+ queue_work(&ovs_net->dp_notify_work);
+ }
+diff --git a/datapath/linux/compat/include/linux/netdevice.h b/datapath/linux/compat/include/linux/netdevice.h
+index 4e2b7f5..908ed86 100644
+--- a/datapath/linux/compat/include/linux/netdevice.h
++++ b/datapath/linux/compat/include/linux/netdevice.h
+@@ -118,6 +118,11 @@ static inline void netdev_upper_dev_unlink(struct net_device *dev,
+ struct net_device *upper_dev)
+ {
+ }
++
++static inline struct net_device *netdev_master_upper_dev_get(struct net_device *dev)
++{
++ return NULL;
++}
+ #endif
+
+ #endif
+diff --git a/datapath/vport-netdev.c b/datapath/vport-netdev.c
+index 215a47e..0c9f603 100644
+--- a/datapath/vport-netdev.c
++++ b/datapath/vport-netdev.c
+@@ -201,16 +201,27 @@ static void free_port_rcu(struct rcu_head *rcu)
+ ovs_vport_free(vport_from_priv(netdev_vport));
+ }
+
+-static void netdev_destroy(struct vport *vport)
++void ovs_netdev_detach_dev(struct vport *vport)
+ {
+ struct netdev_vport *netdev_vport = netdev_vport_priv(vport);
+
+- netdev_exit();
+- rtnl_lock();
++ ASSERT_RTNL();
+ netdev_vport->dev->priv_flags &= ~IFF_OVS_DATAPATH;
+ netdev_rx_handler_unregister(netdev_vport->dev);
+- netdev_upper_dev_unlink(netdev_vport->dev, get_dpdev(vport->dp));
++ netdev_upper_dev_unlink(netdev_vport->dev,
++ netdev_master_upper_dev_get(netdev_vport->dev));
+ dev_set_promiscuity(netdev_vport->dev, -1);
++}
++
++static void netdev_destroy(struct vport *vport)
++{
++ struct netdev_vport *netdev_vport = netdev_vport_priv(vport);
++
++ netdev_exit();
++
++ rtnl_lock();
++ if (ovs_netdev_get_vport(netdev_vport->dev))
++ ovs_netdev_detach_dev(vport);
+ rtnl_unlock();
+
+ call_rcu(&netdev_vport->rcu, free_port_rcu);
+diff --git a/datapath/vport-netdev.h b/datapath/vport-netdev.h
+index dd298b5..8df01c1 100644
+--- a/datapath/vport-netdev.h
++++ b/datapath/vport-netdev.h
+@@ -39,5 +39,6 @@ netdev_vport_priv(const struct vport *vport)
+ }
+
+ const char *ovs_netdev_get_name(const struct vport *);
++void ovs_netdev_detach_dev(struct vport *);
+
+ #endif /* vport_netdev.h */
diff --git a/net-misc/openvswitch/files/xcp-interface-reconfigure-2.3.2.patch b/net-misc/openvswitch/files/xcp-interface-reconfigure-2.3.2.patch
new file mode 100644
index 00000000000..e5f813b6755
--- /dev/null
+++ b/net-misc/openvswitch/files/xcp-interface-reconfigure-2.3.2.patch
@@ -0,0 +1,20 @@
+Description: Use xcp-xapi interface-reconfigure if found
+ Ubuntu/Debian provide the XCP interface-reconfigure hook in
+ a FHS compliant location; use this if found.
+Author: James Page <james.page@ubuntu.com>
+Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1195053
+Forwarded: no
+
+--- a/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update
++++ b/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update
+@@ -43,6 +43,10 @@ def delete_cacert():
+ def update(session, args):
+ # Refresh bridge network UUIDs in case this host joined or left a pool.
+ script = '/opt/xensource/libexec/interface-reconfigure'
++ # NOTE(jamespage): Override with distro xcp xapi locations
++ # if present
++ if os.path.exists('/usr/lib/xcp/lib/interface-reconfigure'):
++ script = '/usr/lib/xcp/lib/interface-reconfigure'
+ try:
+ retval = subprocess.call([script, 'rewrite'])
+ if retval != 0:
diff --git a/net-misc/openvswitch/files/xcp-interface-reconfigure.patch b/net-misc/openvswitch/files/xcp-interface-reconfigure.patch
new file mode 100644
index 00000000000..8f685b8157f
--- /dev/null
+++ b/net-misc/openvswitch/files/xcp-interface-reconfigure.patch
@@ -0,0 +1,20 @@
+Description: Use xcp-xapi interface-reconfigure if found
+ Ubuntu/Debian provide the XCP interface-reconfigure hook in
+ a FHS compliant location; use this if found.
+Author: James Page <james.page@ubuntu.com>
+Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1195053
+Forwarded: no
+
+--- a/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update
++++ b/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update
+@@ -43,6 +43,10 @@ def delete_cacert():
+ def update(session, args):
+ # Refresh bridge network UUIDs in case this host joined or left a pool.
+ script = "/opt/xensource/libexec/interface-reconfigure"
++ # NOTE(jamespage): Override with distro xcp xapi locations
++ # if present
++ if os.path.exists('/usr/lib/xcp/lib/interface-reconfigure'):
++ script = '/usr/lib/xcp/lib/interface-reconfigure'
+ try:
+ retval = subprocess.call([script, "rewrite"])
+ if retval != 0: