summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGreg Rose <gvrose8192@gmail.com>2022-08-08 13:36:02 -0700
committerIlya Maximets <i.maximets@ovn.org>2022-08-15 13:07:13 +0200
commit83c9518e7c67fb73ab17f6db50f398dc78403814 (patch)
tree7290abe2d043c4f30d55975f6f2d25608a9feadc /tests
parentac1332216eb3a1857b942457e1b44a22512b092d (diff)
downloadopenvswitch-83c9518e7c67fb73ab17f6db50f398dc78403814.tar.gz
xenserver: Remove xenserver.
Remove the current xenserver implementation - it is obsolete and since 3.0 we do not support kernel module builds [1]. 1. https://mail.openvswitch.org/pipermail/ovs-dev/2022-July/395789.html [i.maximets] Can be added back if people willing to maintain it will be found. Signed-off-by: Greg Rose <gvrose8192@gmail.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/MockXenAPI.py117
-rw-r--r--tests/automake.mk3
-rw-r--r--tests/interface-reconfigure.at1045
-rw-r--r--tests/ovs-xapi-sync.at74
-rw-r--r--tests/testsuite.at2
-rw-r--r--tests/tunnel.at18
6 files changed, 18 insertions, 1241 deletions
diff --git a/tests/MockXenAPI.py b/tests/MockXenAPI.py
deleted file mode 100644
index b8de4ee71..000000000
--- a/tests/MockXenAPI.py
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright (c) 2011, 2012 Nicira, Inc.
-#
-# 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.
-
-import re
-
-
-def xapi_local():
- return Session()
-
-
-class Session(object):
- def __init__(self):
- self.xenapi = XenAPI()
-
-
-class Failure(Exception):
- pass
-
-
-class XenAPI(object):
- def __init__(self):
- self.network = Network()
- self.pool = Pool()
- self.VIF = VIF()
- self.VM = VM()
-
- def login_with_password(self, unused_username, unused_password):
- pass
-
-
-class RecordRef(object):
- def __init__(self, attrs):
- self.attrs = attrs
-
-
-class Table(object):
- def __init__(self, records):
- self.records = records
-
- def get_all(self):
- return [RecordRef(rec) for rec in self.records]
-
- def get_all_records_where(self, condition):
- k, v = re.match(r'field "([^"]*)"="([^"]*)"$', condition).groups()
- d = {}
-
- # I'm sure that the keys used in the dictionary below are wrong
- # but I can't find any documentation on get_all_records_where
- # and this satisfies the current test case.
- i = 0
- for rec in self.records:
- if rec[k] == v:
- d[i] = rec
- i += 1
- return d
-
- def get_by_uuid(self, uuid):
- recs = [rec for rec in self.records if rec["uuid"] == uuid]
- if len(recs) != 1:
- raise Failure("No record with UUID %s" % uuid)
- return RecordRef(recs[0])
-
- def get_record(self, record_ref):
- return record_ref.attrs
-
-
-class Network(Table):
- __records = ({"uuid": "9b66c68b-a74e-4d34-89a5-20a8ab352d1e",
- "bridge": "xenbr0",
- "other_config":
- {"vswitch-controller-fail-mode": "secure",
- "nicira-bridge-id": "custom bridge ID"}},
- {"uuid": "e1c9019d-375b-45ac-a441-0255dd2247de",
- "bridge": "xenbr1",
- "other_config":
- {"vswitch-disable-in-band": "true"}})
-
- def __init__(self):
- Table.__init__(self, Network.__records)
-
-
-class Pool(Table):
- __records = ({"uuid": "7a793edf-e5f4-4994-a0f9-cee784c0cda3",
- "other_config":
- {"vswitch-controller-fail-mode": "secure"}},)
-
- def __init__(self):
- Table.__init__(self, Pool.__records)
-
-
-class VIF(Table):
- __records = ({"uuid": "6ab1b260-398e-49ba-827b-c7696108964c",
- "other_config":
- {"nicira-iface-id": "custom iface ID"}},)
-
- def __init__(self):
- Table.__init__(self, VIF.__records)
-
-
-class VM(Table):
- __records = ({"uuid": "fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8",
- "other_config":
- {"nicira-vm-id": "custom vm ID"}},)
-
- def __init__(self):
- Table.__init__(self, VM.__records)
diff --git a/tests/automake.mk b/tests/automake.mk
index d35dc7c4f..4b6dfd341 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -99,11 +99,9 @@ TESTSUITE_AT = \
tests/ovsdb-lock.at \
tests/ovsdb-rbac.at \
tests/ovs-vsctl.at \
- tests/ovs-xapi-sync.at \
tests/pytest.at \
tests/stp.at \
tests/rstp.at \
- tests/interface-reconfigure.at \
tests/vlog.at \
tests/vtep-ctl.at \
tests/auto-attach.at \
@@ -526,7 +524,6 @@ CHECK_PYFILES = \
tests/test-ovsdb.py \
tests/test-reconnect.py \
tests/test-stream.py \
- tests/MockXenAPI.py \
tests/test-unix-socket.py \
tests/test-unixctl.py \
tests/test-vlog.py \
diff --git a/tests/interface-reconfigure.at b/tests/interface-reconfigure.at
deleted file mode 100644
index 12b66dc0f..000000000
--- a/tests/interface-reconfigure.at
+++ /dev/null
@@ -1,1045 +0,0 @@
-m4_divert_push([PREPARE_TESTS])
-[
-# Creates a directory tree for use with "interface-reconfigure --root-dir".
-ifr_setup () {
- for script in \
- interface-reconfigure \
- InterfaceReconfigure.py \
- InterfaceReconfigureBridge.py \
- InterfaceReconfigureVswitch.py
- do
- cp $top_srcdir/xenserver/opt_xensource_libexec_$script $script
- done
-
- mkdir -p etc
- cat > etc/xensource-inventory <<EOF
-PRODUCT_BRAND='XenServer'
-PRODUCT_NAME='xenenterprise'
-PRODUCT_VERSION='5.5.0'
-BUILD_NUMBER='24648p'
-KERNEL_VERSION='2.6.18-128.1.6.el5.xs5.5.0.505.1024xen'
-XEN_VERSION='3.3.1'
-INSTALLATION_DATE='2010-02-10 16:45:28.748345'
-PRIMARY_DISK='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c'
-BACKUP_PARTITION='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c-part2'
-INSTALLATION_UUID='852ee692-71b4-439e-abfb-0eba72dc85f0'
-CONTROL_DOMAIN_UUID='44e6b66e-3074-4a3c-bbcd-756d845a3b56'
-DEFAULT_SR_PHYSDEVS='/dev/sda3'
-DOM0_MEM='752'
-MANAGEMENT_INTERFACE='xenbr2'
-EOF
-
- mkdir -p etc/xensource
- echo vswitch > etc/xensource/network.conf
-
- for utility in \
- sbin/ethtool \
- sbin/ifdown \
- sbin/ifup \
- sbin/ip \
- sbin/update-issue \
- sbin/vconfig \
- usr/sbin/brctl
- do
- mkdir -p `dirname $utility`
- cat > $utility <<'EOF'
-#! /bin/sh
-echo ${0} ${*} >&2
-EOF
- chmod +x $utility
- done
-
- mkdir -p usr/bin
- cat > usr/bin/ovs-vsctl <<'EOF'
-#! /bin/sh
-echo ${0} ${*} >&2
-
-while test ${#} -ge 4; do
- if test X"${1}" = Xget && \
- test X"${2}" = Xinterface && \
- test X"${4}" = Xofport; then
- if test X"${3}" = Xeth2; then
- echo 5
- else
- echo -1
- fi
- fi
-
- shift
-done
-EOF
- chmod +x usr/bin/ovs-vsctl
-
- cat > usr/bin/ovs-ofctl <<'EOF'
-#! /bin/sh
-echo ${0} ${*} >&2
-
-# Check that the flow is properly formed.
-ovs-ofctl parse-flow "${3}" >/dev/null
-EOF
- chmod +x usr/bin/ovs-ofctl
-
- mkdir -p etc/sysconfig/network-scripts
- configure_netdev () {
- mkdir -p sys/class/net/${1}
- echo ${2} > sys/class/net/${1}/address
- echo ${3} > sys/class/net/${1}/tx_queue_len
- if test ${1} = eth1; then
- # No VLAN acceleration.
- echo 0x829 > sys/class/net/${1}/features
- else
- # Supports VLAN acceleration.
- echo 0x10b89 > sys/class/net/${1}/features
- fi
- mkdir sys/class/net/${1}/device
- ln -s ../../../bus/pci/drivers/e1000 sys/class/net/${1}/device/driver
-
- : >> etc/sysconfig/network-scripts/ifcfg-${1}
- }
-
- configure_netdev lo 00:00:00:00:00:00 0
- configure_netdev eth0 00:22:19:22:4b:af 1000
- configure_netdev eth1 00:22:19:22:4b:b1 1000
- configure_netdev eth2 00:15:17:a0:29:80 1000
- configure_netdev eth3 00:15:17:a0:29:81 1000
- configure_netdev eth4 00:1b:21:29:ce:51 1000
-
- mkdir -p var/xapi
- cat > var/xapi/network.dbcache <<'EOF'
-<?xml version="1.0" ?>
-<xenserver-network-configuration>
- <pif ref="OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6">
- <VLAN_slave_of/>
- <tunnel_access_PIF_of/>
- <management>
- False
- </management>
- <bond_slave_of>
- OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
- </bond_slave_of>
- <uuid>
- bd62a141-091f-3909-e334-0334f67ff3be
- </uuid>
- <IP>
-
- </IP>
- <VLAN_master_of>
- OpaqueRef:NULL
- </VLAN_master_of>
- <VLAN>
- -1
- </VLAN>
- <netmask>
-
- </netmask>
- <other_config/>
- <MAC>
- 00:22:19:22:4b:af
- </MAC>
- <ip_configuration_mode>
- None
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- eth0
- </device>
- <bond_master_of/>
- <currently_attached>
- False
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5
- </network>
- </pif>
- <pif ref="OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806">
- <VLAN_slave_of/>
- <tunnel_access_PIF_of/>
- <management>
- False
- </management>
- <bond_slave_of>
- OpaqueRef:NULL
- </bond_slave_of>
- <uuid>
- df8d35c2-cc3a-a623-7065-d987a29feb75
- </uuid>
- <IP>
-
- </IP>
- <VLAN_master_of>
- OpaqueRef:NULL
- </VLAN_master_of>
- <VLAN>
- -1
- </VLAN>
- <netmask>
-
- </netmask>
- <other_config/>
- <MAC>
- 00:1b:21:29:ce:51
- </MAC>
- <ip_configuration_mode>
- None
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- eth4
- </device>
- <bond_master_of/>
- <currently_attached>
- False
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531
- </network>
- </pif>
- <pif ref="OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768">
- <VLAN_slave_of/>
- <tunnel_access_PIF_of/>
- <management>
- False
- </management>
- <bond_slave_of>
- OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
- </bond_slave_of>
- <uuid>
- 2f87fc95-5ab4-571a-2487-3f4ac1985663
- </uuid>
- <IP>
-
- </IP>
- <VLAN_master_of>
- OpaqueRef:NULL
- </VLAN_master_of>
- <VLAN>
- -1
- </VLAN>
- <netmask>
-
- </netmask>
- <other_config/>
- <MAC>
- 00:22:19:22:4b:b1
- </MAC>
- <ip_configuration_mode>
- None
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- eth1
- </device>
- <bond_master_of/>
- <currently_attached>
- False
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d
- </network>
- </pif>
- <pif ref="OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e">
- <VLAN_slave_of/>
- <tunnel_access_PIF_of/>
- <management>
- False
- </management>
- <bond_slave_of>
- OpaqueRef:NULL
- </bond_slave_of>
- <uuid>
- d2dfdab3-daf4-afea-f055-a25a0d24d714
- </uuid>
- <IP>
-
- </IP>
- <VLAN_master_of>
- OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
- </VLAN_master_of>
- <VLAN>
- 4
- </VLAN>
- <netmask>
-
- </netmask>
- <other_config/>
- <MAC>
- fe:ff:ff:ff:ff:ff
- </MAC>
- <ip_configuration_mode>
- None
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- bond0
- </device>
- <bond_master_of/>
- <currently_attached>
- True
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47
- </network>
- </pif>
- <pif ref="OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc">
- <VLAN_slave_of>
- <master>
- OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
- </master>
- </VLAN_slave_of>
- <tunnel_access_PIF_of/>
- <management>
- False
- </management>
- <bond_slave_of>
- OpaqueRef:NULL
- </bond_slave_of>
- <uuid>
- f4ba396e-a993-a592-5fbc-a1d566afb59e
- </uuid>
- <IP>
- 10.0.0.188
- </IP>
- <VLAN_master_of>
- OpaqueRef:NULL
- </VLAN_master_of>
- <VLAN>
- -1
- </VLAN>
- <netmask>
- 255.0.0.0
- </netmask>
- <other_config/>
- <MAC>
- 00:15:17:a0:29:81
- </MAC>
- <ip_configuration_mode>
- Static
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- eth3
- </device>
- <bond_master_of/>
- <currently_attached>
- True
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32
- </network>
- </pif>
- <pif ref="OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15">
- <VLAN_slave_of/>
- <tunnel_access_PIF_of/>
- <management>
- True
- </management>
- <bond_slave_of>
- OpaqueRef:NULL
- </bond_slave_of>
- <uuid>
- 646ca9a1-36ad-e2f9-3ecc-1e5622c201c2
- </uuid>
- <IP>
- 172.18.3.188
- </IP>
- <VLAN_master_of>
- OpaqueRef:NULL
- </VLAN_master_of>
- <VLAN>
- -1
- </VLAN>
- <netmask>
- 255.255.0.0
- </netmask>
- <other_config/>
- <MAC>
- 00:15:17:a0:29:80
- </MAC>
- <ip_configuration_mode>
- DHCP
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- eth2
- </device>
- <bond_master_of/>
- <currently_attached>
- True
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe
- </network>
- </pif>
- <pif ref="OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3">
- <VLAN_slave_of/>
- <tunnel_access_PIF_of/>
- <management>
- False
- </management>
- <bond_slave_of>
- OpaqueRef:NULL
- </bond_slave_of>
- <uuid>
- 3941edd2-865b-8dd8-61f0-199f5e1fa652
- </uuid>
- <IP>
-
- </IP>
- <VLAN_master_of>
- OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
- </VLAN_master_of>
- <VLAN>
- 123
- </VLAN>
- <netmask>
-
- </netmask>
- <other_config/>
- <MAC>
- fe:ff:ff:ff:ff:ff
- </MAC>
- <ip_configuration_mode>
- None
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- eth3
- </device>
- <bond_master_of/>
- <currently_attached>
- True
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17
- </network>
- </pif>
- <pif ref="OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11">
- <VLAN_slave_of>
- <master>
- OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
- </master>
- </VLAN_slave_of>
- <tunnel_access_PIF_of/>
- <management>
- False
- </management>
- <bond_slave_of>
- OpaqueRef:NULL
- </bond_slave_of>
- <uuid>
- 6c0327a9-afa3-fc19-6798-a1bfe20095ed
- </uuid>
- <IP>
-
- </IP>
- <VLAN_master_of>
- OpaqueRef:NULL
- </VLAN_master_of>
- <VLAN>
- -1
- </VLAN>
- <netmask>
-
- </netmask>
- <other_config/>
- <MAC>
- 00:22:19:22:4b:af
- </MAC>
- <ip_configuration_mode>
- None
- </ip_configuration_mode>
- <DNS>
-
- </DNS>
- <device>
- bond0
- </device>
- <bond_master_of>
- <slave>
- OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
- </slave>
- </bond_master_of>
- <currently_attached>
- True
- </currently_attached>
- <gateway>
-
- </gateway>
- <network>
- OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a
- </network>
- </pif>
- <bond ref="OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e">
- <master>
- OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
- </master>
- <uuid>
- dad825f1-6d81-386e-849c-5589281e53e1
- </uuid>
- <slaves>
- <slave>
- OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
- </slave>
- <slave>
- OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
- </slave>
- </slaves>
- </bond>
- <vlan ref="OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c">
- <tagged_PIF>
- OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
- </tagged_PIF>
- <uuid>
- 841814da-d0d2-9da4-0b2e-b6143480bbfb
- </uuid>
- <untagged_PIF>
- OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
- </untagged_PIF>
- </vlan>
- <vlan ref="OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297">
- <tagged_PIF>
- OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
- </tagged_PIF>
- <uuid>
- 399279a2-5ccd-5368-9af3-8622a1f1ac82
- </uuid>
- <untagged_PIF>
- OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
- </untagged_PIF>
- </vlan>
- <network ref="OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47">
- <PIFs>
- <PIF>
- OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
- </PIF>
- </PIFs>
- <bridge>
- xapi2
- </bridge>
- <other_config/>
- <uuid>
- 99be2da4-6c33-6f8e-49ea-3bc592fe3c85
- </uuid>
- </network>
- <network ref="OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32">
- <PIFs>
- <PIF>
- OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
- </PIF>
- </PIFs>
- <bridge>
- xenbr3
- </bridge>
- <other_config/>
- <uuid>
- 2902ae1b-8013-897a-b697-0b200ea3aaa5
- </uuid>
- </network>
- <network ref="OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a">
- <PIFs>
- <PIF>
- OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
- </PIF>
- </PIFs>
- <bridge>
- xapi1
- </bridge>
- <other_config/>
- <uuid>
- 45cbbb43-113d-a712-3231-c6463f253cef
- </uuid>
- </network>
- <network ref="OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d">
- <PIFs>
- <PIF>
- OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
- </PIF>
- </PIFs>
- <bridge>
- xenbr1
- </bridge>
- <other_config/>
- <uuid>
- 99f8771a-645a-26a3-e06c-30a401f1d009
- </uuid>
- </network>
- <network ref="OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe">
- <PIFs>
- <PIF>
- OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15
- </PIF>
- </PIFs>
- <bridge>
- xenbr2
- </bridge>
- <other_config/>
- <uuid>
- d08c8749-0c8f-9e8d-ce25-fd364661ee99
- </uuid>
- </network>
- <network ref="OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5">
- <PIFs>
- <PIF>
- OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
- </PIF>
- </PIFs>
- <bridge>
- xenbr0
- </bridge>
- <other_config>
- <vswitch-disable-in-band>
- true
- </vswitch-disable-in-band>
- </other_config>
- <uuid>
- c9eecb03-560d-61de-b6a8-56dfc766f67e
- </uuid>
- </network>
- <network ref="OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531">
- <PIFs>
- <PIF>
- OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806
- </PIF>
- </PIFs>
- <bridge>
- xenbr4
- </bridge>
- <other_config/>
- <uuid>
- d2c14c89-29cc-51d4-7664-633eff02b2ad
- </uuid>
- </network>
- <network ref="OpaqueRef:0b7354a4-8f4b-aa08-2f16-a22c117e4211">
- <PIFs/>
- <bridge>
- xapi0
- </bridge>
- <other_config/>
- <uuid>
- dc0f0632-c2aa-1b78-2fea-0d3a23c51740
- </uuid>
- </network>
- <network ref="OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17">
- <PIFs>
- <PIF>
- OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
- </PIF>
- </PIFs>
- <bridge>
- xapi3
- </bridge>
- <other_config/>
- <uuid>
- db7bdc03-074d-42ae-fc73-9b06de1d57f6
- </uuid>
- </network>
- <pool ref="OpaqueRef:a765d06c-fc82-cc67-8f6c-fd8db45f6a84">
- <other_config>
- <vswitch-controller-fail-mode>
- secure
- </vswitch-controller-fail-mode>
- </other_config>
- </pool>
-</xenserver-network-configuration>
-EOF
-}
-
-ifr_run () {
- $PYTHON3 ./interface-reconfigure --root-prefix="`pwd`" --no-syslog "$@"
-}
-
-ifr_filter () {
- sed -n -e "s,`pwd`,,g" -e 's/ -- /\
- /g' -e '/^Running command:/!p' stderr
-}]
-m4_divert_pop([PREPARE_TESTS])
-
-
-AT_BANNER([interface-reconfigure])
-
-AT_SETUP([non-VLAN, non-bond])
-AT_KEYWORDS([interface-reconfigure])
-AT_SKIP_IF([$non_ascii_cwd])
-AT_SKIP_IF([test "$IS_WIN32" = "yes"])
-ifr_setup
-
-AT_CHECK([ifr_run --force xenbr2 up], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xenbr2 up
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_up: xenbr2
-Writing network configuration for xenbr2
-Configuring xenbr2 using DHCP configuration
-configure_datapath: bridge - xenbr2
-configure_datapath: physical - ['eth2']
-configure_datapath: extra ports - []
-configure_datapath: extra bonds - []
-/usr/bin/ovs-vsctl -vconsole:off get-fail-mode xenbr2
-Applying changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
-Applying changes to /etc/sysconfig/network configuration
-Applying changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
-/sbin/ip link set eth2 up mtu 1500
-/sbin/ethtool -K eth2 gro off lro off
-/usr/bin/ovs-vsctl --timeout=20
- --with-iface --if-exists del-port eth2
- --may-exist add-br xenbr2
- --may-exist add-port xenbr2 eth2
- set Bridge xenbr2 other-config:hwaddr="00:15:17:a0:29:80"
- set Bridge xenbr2 fail_mode=secure
- remove Bridge xenbr2 other_config disable-in-band
- br-set-external-id xenbr2 xs-network-uuids d08c8749-0c8f-9e8d-ce25-fd364661ee99
-/usr/bin/ovs-vsctl -vconsole:off get interface eth2 ofport
-/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=5,arp,nw_proto=1,actions=local
-/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=local,arp,dl_src=00:15:17:a0:29:80,actions=5
-/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=5,dl_dst=00:15:17:a0:29:80,actions=local
-/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=local,dl_src=00:15:17:a0:29:80,actions=5
-/sbin/ifup xenbr2
-/sbin/update-issue
-Committing changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
-Committing changes to /etc/sysconfig/network configuration
-Committing changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
-]])
-
-AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xenbr2], [0],
- [# DO NOT EDIT: This file (ifcfg-xenbr2) was autogenerated by interface-reconfigure
-XEMANAGED=yes
-DEVICE=xenbr2
-ONBOOT=no
-NOZEROCONF=yes
-TYPE=Ethernet
-BOOTPROTO=dhcp
-PERSISTENT_DHCLIENT=yes
-MTU=1500
-])
-
-# Simulate interface-reconfigure creating xenbr2, so that we can tell
-# interface-reconfigure to take it back down.
-AT_CHECK([configure_netdev xenbr2 00:15:17:a0:29:80 0])
-
-AT_CHECK([ifr_run --force xenbr2 down], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xenbr2 down
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_down: xenbr2
-/sbin/ifdown xenbr2
-deconfigure ipdev xenbr2 on xenbr2
-deconfigure_bridge: bridge - xenbr2
-action_down: bring down physical devices - ['eth2']
-/sbin/ip link set eth2 down
-/usr/bin/ovs-vsctl --timeout=20
- --with-iface --if-exists del-port xenbr2
- --if-exists del-br xenbr2
-]])
-
-AT_CLEANUP
-
-AT_SETUP([VLAN, non-bond])
-AT_KEYWORDS([interface-reconfigure])
-AT_SKIP_IF([$non_ascii_cwd])
-AT_SKIP_IF([test "$IS_WIN32" = "yes"])
-ifr_setup
-
-AT_CHECK([ifr_run --force xapi3 up], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xapi3 up
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_up: xapi3
-Writing network configuration for xapi3
-Configuring xapi3 using None configuration
-configure_datapath: bridge - xenbr3
-configure_datapath: physical - ['eth3']
-configure_datapath: extra ports - []
-configure_datapath: extra bonds - []
-Applying changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
-Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
-/sbin/ip link set eth3 up mtu 1500
-/sbin/ethtool -K eth3 gro off lro off
-/usr/bin/ovs-vsctl --timeout=20
- --with-iface --if-exists del-port eth3
- --may-exist add-br xenbr3
- --may-exist add-port xenbr3 eth3
- set Bridge xenbr3 other-config:hwaddr="00:15:17:a0:29:81"
- set Bridge xenbr3 fail_mode=secure
- remove Bridge xenbr3 other_config disable-in-band
- br-set-external-id xenbr3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
- --if-exists del-br xapi3
- --may-exist add-br xapi3 xenbr3 123
- br-set-external-id xapi3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
- set Interface xapi3 MAC="00:15:17:a0:29:81"
-/sbin/ifup xapi3
-/sbin/update-issue
-Committing changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
-Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
-]])
-
-AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi3], [0],
- [# DO NOT EDIT: This file (ifcfg-xapi3) was autogenerated by interface-reconfigure
-XEMANAGED=yes
-DEVICE=xapi3
-ONBOOT=no
-NOZEROCONF=yes
-TYPE=Ethernet
-BOOTPROTO=none
-MTU=1500
-])
-
-# Simulate interface-reconfigure creating xapi3, so that we can tell
-# interface-reconfigure to take it back down.
-AT_CHECK([configure_netdev xapi3 00:23:20:AC:AF:02 0])
-
-AT_CHECK([ifr_run --force xapi3 down], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xapi3 down
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_down: xapi3
-/sbin/ifdown xapi3
-deconfigure ipdev xapi3 on xenbr3
-deconfigure_bridge: bridge - xapi3
-action_down: no more masters, bring down slave xenbr3
-deconfigure_bridge: bridge - xenbr3
-action_down: bring down physical devices - ['eth3']
-/sbin/ip link set eth3 down
-/usr/bin/ovs-vsctl --timeout=20
- --with-iface --if-exists del-port xapi3
- --if-exists del-br xapi3
- --if-exists del-br xenbr3
-]])
-
-AT_CLEANUP
-
-AT_SETUP([Bond, non-VLAN])
-AT_KEYWORDS([interface-reconfigure])
-AT_SKIP_IF([$non_ascii_cwd])
-AT_SKIP_IF([test "$IS_WIN32" = "yes"])
-ifr_setup
-
-# Pretend that bond0 exists, even though it would really be created by
-# a "create-bond" call in an ovs-vsctl invocation within
-# interface-reconfigure, because otherwise interface-reconfigure will
-# die with "failed to apply changes: netdev: up: device bond0 does not
-# exist" after it thinks it created bond0.
-AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
-
-AT_CHECK([ifr_run --force xapi1 up], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xapi1 up
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_up: xapi1
-Writing network configuration for xapi1
-Configuring xapi1 using None configuration
-configure_datapath: leaving bond bond0 up
-configure_datapath: leaving bond bond0 up
-configure_datapath: bridge - xapi1
-configure_datapath: physical - ['eth0', 'eth1']
-configure_datapath: extra ports - []
-configure_datapath: extra bonds - []
-netdev: down: device xenbr0 does not exist, ignoring
-netdev: down: device xenbr1 does not exist, ignoring
-Applying changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
-Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
-/sbin/ip link set eth0 up mtu 1500
-/sbin/ethtool -K eth0 gro off lro off
-/sbin/ip link set eth1 up mtu 1500
-/sbin/ethtool -K eth1 gro off lro off
-/usr/bin/ovs-vsctl --timeout=20
- --if-exists del-br xenbr0
- --if-exists del-br xenbr1
- --with-iface --if-exists del-port eth0
- --with-iface --if-exists del-port eth1
- --may-exist add-br xapi1
- --with-iface --if-exists del-port bond0
- --fake-iface add-bond xapi1 bond0 eth0 eth1
- set Port bond0 MAC="00:22:19:22:4b:af" bond_downdelay=200 other-config:bond-miimon-interval=100 bond_updelay=31000 other-config:bond-detect-mode=carrier lacp=off bond_mode=balance-slb
- set Bridge xapi1 other-config:hwaddr="00:22:19:22:4b:af"
- set Bridge xapi1 fail_mode=secure
- remove Bridge xapi1 other_config disable-in-band
- br-set-external-id xapi1 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
-/sbin/ifup xapi1
-action_up: bring up bond0
-/sbin/ip link set bond0 up
-/sbin/update-issue
-Committing changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
-Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
-]])
-
-AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi1], [0],
- [# DO NOT EDIT: This file (ifcfg-xapi1) was autogenerated by interface-reconfigure
-XEMANAGED=yes
-DEVICE=xapi1
-ONBOOT=no
-NOZEROCONF=yes
-TYPE=Ethernet
-BOOTPROTO=none
-MTU=1500
-])
-
-# Simulate interface-reconfigure creating xapi1, so that we can tell
-# interface-reconfigure to take it back down.
-AT_CHECK([configure_netdev xapi1 00:22:19:22:4B:AF 0])
-
-AT_CHECK([ifr_run --force xapi1 down], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xapi1 down
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_down: xapi1
-/sbin/ifdown xapi1
-deconfigure ipdev xapi1 on xapi1
-deconfigure_bridge: bridge - xapi1
-action_down: bring down physical devices - ['eth0', 'eth1']
-/sbin/ip link set eth0 down
-/sbin/ip link set eth1 down
-/usr/bin/ovs-vsctl --timeout=20
- --with-iface --if-exists del-port xapi1
- --if-exists del-br xapi1
-]])
-
-AT_CLEANUP
-
-AT_SETUP([VLAN on bond])
-AT_KEYWORDS([interface-reconfigure])
-AT_SKIP_IF([$non_ascii_cwd])
-AT_SKIP_IF([test "$IS_WIN32" = "yes"])
-ifr_setup
-
-# Pretend that bond0 exists, even though it would really be created by
-# a "create-bond" call in an ovs-vsctl invocation within
-# interface-reconfigure, because otherwise interface-reconfigure will
-# die with "failed to apply changes: netdev: up: device bond0 does not
-# exist" after it thinks it created bond0.
-AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
-
-AT_CHECK([ifr_run --force xapi2 up], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xapi2 up
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_up: xapi2
-Writing network configuration for xapi2
-Configuring xapi2 using None configuration
-configure_datapath: leaving bond bond0 up
-configure_datapath: leaving bond bond0 up
-configure_datapath: bridge - xapi1
-configure_datapath: physical - ['eth0', 'eth1']
-configure_datapath: extra ports - []
-configure_datapath: extra bonds - []
-netdev: down: device xenbr0 does not exist, ignoring
-netdev: down: device xenbr1 does not exist, ignoring
-Applying changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
-Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
-/sbin/ip link set eth0 up mtu 1500
-/sbin/ethtool -K eth0 gro off lro off
-/sbin/ip link set eth1 up mtu 1500
-/sbin/ethtool -K eth1 gro off lro off
-/usr/bin/ovs-vsctl --timeout=20
- --if-exists del-br xenbr0
- --if-exists del-br xenbr1
- --with-iface --if-exists del-port eth0
- --with-iface --if-exists del-port eth1
- --may-exist add-br xapi1
- --with-iface --if-exists del-port bond0
- --fake-iface add-bond xapi1 bond0 eth0 eth1
- set Port bond0 MAC="00:22:19:22:4b:af" bond_downdelay=200 other-config:bond-miimon-interval=100 bond_updelay=31000 other-config:bond-detect-mode=carrier lacp=off bond_mode=balance-slb
- set Bridge xapi1 other-config:hwaddr="00:22:19:22:4b:af"
- set Bridge xapi1 fail_mode=secure
- remove Bridge xapi1 other_config disable-in-band
- br-set-external-id xapi1 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
- --if-exists del-br xapi2
- --may-exist add-br xapi2 xapi1 4
- br-set-external-id xapi2 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
- set Interface xapi2 MAC="00:22:19:22:4b:af"
-/sbin/ifup xapi2
-action_up: bring up bond0
-/sbin/ip link set bond0 up
-/sbin/update-issue
-Committing changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
-Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
-]])
-
-AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi2], [0],
- [# DO NOT EDIT: This file (ifcfg-xapi2) was autogenerated by interface-reconfigure
-XEMANAGED=yes
-DEVICE=xapi2
-ONBOOT=no
-NOZEROCONF=yes
-TYPE=Ethernet
-BOOTPROTO=none
-MTU=1500
-])
-
-# Simulate interface-reconfigure creating xapi2, so that we can tell
-# interface-reconfigure to take it back down.
-AT_CHECK([configure_netdev xapi2 00:23:20:A4:71:C2 0])
-
-AT_CHECK([ifr_run --force xapi2 down], [0], [], [stderr])
-AT_CHECK([ifr_filter], [0], [[Force interface xapi2 down
-Loading xapi database cache from /var/xapi/network.dbcache
-Configured for Vswitch datapath
-action_down: xapi2
-/sbin/ifdown xapi2
-deconfigure ipdev xapi2 on xapi1
-deconfigure_bridge: bridge - xapi2
-action_down: no more masters, bring down slave xapi1
-deconfigure_bridge: bridge - xapi1
-action_down: bring down physical devices - ['eth0', 'eth1']
-/sbin/ip link set eth0 down
-/sbin/ip link set eth1 down
-/usr/bin/ovs-vsctl --timeout=20
- --with-iface --if-exists del-port xapi2
- --if-exists del-br xapi2
- --if-exists del-br xapi1
-]])
-
-AT_CLEANUP
-
-dnl This test configures two tunnels, then deletes the second and re-uses its
-dnl name for different types of ports. This was introduced to detect errors
-dnl where port configuration persists even when the port is deleted and
-dnl readded.
-AT_SETUP([Re-create port with different types])
-AT_KEYWORDS([interface-reconfigure])
-OVS_VSWITCHD_START(
- [add-port br0 p0 -- set int p0 type=gre options:remote_ip=127.0.0.1 -- \
- add-port br0 p1 -- set int p1 type=dummy -- \
- add-port br0 p2 -- set int p2 type=dummy])
-
-AT_CHECK([ovs-vsctl set int p1 type=gre options:remote_ip=127.0.0.1])
-AT_CHECK([ovs-vsctl del-port p1])
-AT_CHECK([ovs-vsctl add-port br0 p1 -- set int p1 type=dummy])
-
-OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])
-OVS_APP_EXIT_AND_WAIT([ovsdb-server])
-AT_CLEANUP
diff --git a/tests/ovs-xapi-sync.at b/tests/ovs-xapi-sync.at
deleted file mode 100644
index ab96c4d53..000000000
--- a/tests/ovs-xapi-sync.at
+++ /dev/null
@@ -1,74 +0,0 @@
-AT_BANNER([ovs-xapi-sync])
-
-AT_SETUP([ovs-xapi-sync])
-
-# Mock up the XenAPI.
-cp "$top_srcdir/tests/MockXenAPI.py" XenAPI.py
-PYTHONPATH=`pwd`:$PYTHONPATH
-export PYTHONPATH
-
-cp "$top_srcdir/vswitchd/vswitch.ovsschema" .
-
-cp "$top_srcdir/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync" \
- ovs-xapi-sync
-
-on_exit 'kill `cat pid ovs-xapi-sync.pid`'
-
-mkdir var var/run
-touch var/run/xapi_init_complete.cookie
-
-ovs_vsctl () {
- ovs-vsctl --no-wait -vreconnect:emer "$@"
-}
-
-# Start ovsdb-server.
-OVS_VSCTL_SETUP
-
-# Start ovs-xapi-sync.
-AT_CHECK([$PYTHON3 ./ovs-xapi-sync "--pidfile=ovs-xapi-sync.pid" \
- "--root-prefix=`pwd`" unix:db.sock >log 2>&1 &])
-AT_CAPTURE_FILE([log])
-
-# Add bridges and check ovs-xapi-sync's work.
-AT_CHECK([ovs_vsctl -- add-br xenbr0 -- add-br xenbr1])
-OVS_WAIT_UNTIL([test "X`ovs_vsctl get bridge xenbr0 fail-mode`" != "X[[]]"])
-AT_CHECK([ovs_vsctl \
- -- get bridge xenbr0 fail-mode other-config external-ids \
- -- get bridge xenbr1 fail-mode other-config external-ids], [0],
- [[secure
-{}
-{bridge-id="custom bridge ID"}
-secure
-{disable-in-band="true"}
-{}
-]])
-
-# Add vif and check daemon's work.
-AT_CHECK([ovs_vsctl \
- -- add-port xenbr0 vif1.0 \
- -- set Interface vif1.0 'external-ids={attached-mac="00:11:22:33:44:55", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"'}])
-OVS_WAIT_UNTIL([ovs_vsctl get interface vif1.0 external-ids:iface-id >/dev/null 2>&1])
-AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0],
- [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
-])
-
-# Add corresponding tap and check daemon's work.
-AT_CHECK([ovs_vsctl add-port xenbr0 tap1.0])
-OVS_WAIT_UNTIL([ovs_vsctl get interface tap1.0 external-ids:iface-id >/dev/null 2>&1])
-AT_CHECK([ovs_vsctl \
- -- get interface vif1.0 external-ids \
- -- get interface tap1.0 external-ids], [0],
- [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=inactive, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
-{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
-])
-
-# Remove corresponding tap and check daemon's work.
-AT_CHECK([ovs_vsctl del-port tap1.0])
-OVS_WAIT_UNTIL([test `ovs_vsctl get interface vif1.0 external-ids:iface-status` = active])
-AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0],
- [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
-])
-
-OVSDB_SERVER_SHUTDOWN
-
-AT_CLEANUP
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 14a28b517..cf4e3eadf 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -67,8 +67,6 @@ m4_include([tests/bridge.at])
m4_include([tests/netdev-type.at])
m4_include([tests/ovsdb.at])
m4_include([tests/ovs-vsctl.at])
-m4_include([tests/ovs-xapi-sync.at])
-m4_include([tests/interface-reconfigure.at])
m4_include([tests/stp.at])
m4_include([tests/rstp.at])
m4_include([tests/vlog.at])
diff --git a/tests/tunnel.at b/tests/tunnel.at
index fd482aa87..037b4c390 100644
--- a/tests/tunnel.at
+++ b/tests/tunnel.at
@@ -1205,3 +1205,21 @@ Datapath actions: push_eth(src=00:00:00:00:00:00,dst=00:00:00:00:00:00),1
OVS_VSWITCHD_STOP
AT_CLEANUP
+
+dnl This test configures two tunnels, then deletes the second and re-uses its
+dnl name for different types of ports. This was introduced to detect errors
+dnl where port configuration persists even when the port is deleted and
+dnl readded.
+AT_SETUP([tunnel - re-create port with different types])
+OVS_VSWITCHD_START(
+ [add-port br0 p0 -- set int p0 type=gre options:remote_ip=127.0.0.1 -- \
+ add-port br0 p1 -- set int p1 type=dummy -- \
+ add-port br0 p2 -- set int p2 type=dummy])
+
+AT_CHECK([ovs-vsctl set int p1 type=gre options:remote_ip=127.0.0.1])
+AT_CHECK([ovs-vsctl del-port p1])
+AT_CHECK([ovs-vsctl add-port br0 p1 -- set int p1 type=dummy])
+
+OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])
+OVS_APP_EXIT_AND_WAIT([ovsdb-server])]
+AT_CLEANUP