diff --git a/neutron_tempest_plugin/api/admin/test_ports.py b/neutron_tempest_plugin/api/admin/test_ports.py
index e26e122..88c35c6 100644
--- a/neutron_tempest_plugin/api/admin/test_ports.py
+++ b/neutron_tempest_plugin/api/admin/test_ports.py
@@ -65,6 +65,42 @@
         self.assertNotEqual(current_mac, new_mac)
         self.assertTrue(netaddr.valid_mac(new_mac))
 
+    @decorators.idempotent_id('4d75cc60-99d0-4949-b3ce-5826b81aa0a9')
+    @utils.requires_ext(extension="port-trusted-vif",
+                        service="network")
+    def test_port_create_with_trusted_attr_set(self):
+        port = self.admin_client.create_port(
+            network_id=self.network['id'], trusted=True)['port']
+        self.ports.append(port)
+        self.assertTrue(port['trusted'])
+        self.assertTrue(port['binding:profile']['trusted'])
+
+        port = self.admin_client.create_port(
+            network_id=self.network['id'], trusted=False)['port']
+        self.ports.append(port)
+        self.assertFalse(port['trusted'])
+        self.assertFalse(port['binding:profile']['trusted'])
+
+    @decorators.idempotent_id('26c15e2a-55b2-410f-8ed3-84db9406ff3f')
+    @utils.requires_ext(extension="port-trusted-vif",
+                        service="network")
+    def test_port_set_trusted_attr(self):
+        port = self.admin_client.create_port(
+            network_id=self.network['id'])['port']
+        self.ports.append(port)
+        self.assertIsNone(port['trusted'])
+        self.assertNotIn('trusted', port['binding:profile'])
+
+        updated_port = self.admin_client.update_port(
+            port['id'], trusted=True)['port']
+        self.assertTrue(updated_port['trusted'])
+        self.assertTrue(updated_port['binding:profile']['trusted'])
+
+        updated_port = self.admin_client.update_port(
+            port['id'], trusted=False)['port']
+        self.assertFalse(updated_port['trusted'])
+        self.assertFalse(updated_port['binding:profile']['trusted'])
+
 
 class PortTestCasesResourceRequest(base.BaseAdminNetworkTest):
 
diff --git a/neutron_tempest_plugin/api/admin/test_quotas.py b/neutron_tempest_plugin/api/admin/test_quotas.py
index 0cf474e..eb47fa5 100644
--- a/neutron_tempest_plugin/api/admin/test_quotas.py
+++ b/neutron_tempest_plugin/api/admin/test_quotas.py
@@ -87,7 +87,7 @@
         new_quotas = {'network': 0, 'security_group': 0}
 
         # Change quotas for tenant
-        quota_set = self._setup_quotas(tenant_id, **new_quotas)
+        quota_set = self._setup_quotas(tenant_id, force=True, **new_quotas)
         for key, value in new_quotas.items():
             self.assertEqual(value, quota_set[key])
 
@@ -112,6 +112,23 @@
         for q in non_default_quotas['quotas']:
             self.assertNotEqual(tenant_id, q['tenant_id'])
 
+    @decorators.idempotent_id('43d01327-d8be-4773-a8f0-1d2e9664fda2')
+    @decorators.attr(type='gate')
+    @utils.requires_ext(extension='quota-check-limit-default',
+                        service='network')
+    def test_quotas_force_false(self):
+        project_id = self.create_project()['id']
+        self._create_network(project_id)
+
+        new_quotas = {'network': 0}
+        # force=false (by default)
+        self.assertRaises(lib_exc.BadRequest, self.admin_client.update_quotas,
+                          project_id, **new_quotas)
+
+        new_quotas['network'] = 100
+        quota_set = self._setup_quotas(project_id, **new_quotas)
+        self.assertEqual(new_quotas['network'], quota_set['network'])
+
     @decorators.idempotent_id('e974b5ba-090a-452c-a578-f9710151d9fc')
     @decorators.attr(type='gate')
     @utils.requires_ext(extension="quota_details", service="network")
diff --git a/neutron_tempest_plugin/api/admin/test_tag.py b/neutron_tempest_plugin/api/admin/test_tag.py
index eae7977..31b2b96 100644
--- a/neutron_tempest_plugin/api/admin/test_tag.py
+++ b/neutron_tempest_plugin/api/admin/test_tag.py
@@ -26,53 +26,55 @@
         super(TagTestJSON, cls).resource_setup()
         cls.res_id = cls._create_resource()
 
-    def _get_and_compare_tags(self, tags):
-        res_body = self.client.get_tags(self.resource, self.res_id)
+    def _get_and_compare_tags(self, tags, client):
+        res_body = client.get_tags(self.resource, self.res_id)
         self.assertCountEqual(tags, res_body['tags'])
 
-    def _test_tag_operations(self):
+    def _test_tag_operations(self, client=None):
+        client = client or self.client
         # create and get tags
         tags = ['red', 'blue']
-        res_body = self.client.update_tags(self.resource, self.res_id, tags)
+        res_body = client.update_tags(self.resource, self.res_id, tags)
         self.assertCountEqual(tags, res_body['tags'])
-        self._get_and_compare_tags(tags)
+        self._get_and_compare_tags(tags, client)
 
         # add a tag
-        self.client.update_tag(self.resource, self.res_id, 'green')
-        self._get_and_compare_tags(['red', 'blue', 'green'])
+        client.update_tag(self.resource, self.res_id, 'green')
+        self._get_and_compare_tags(['red', 'blue', 'green'], client)
 
         # update tag exist
-        self.client.update_tag(self.resource, self.res_id, 'red')
-        self._get_and_compare_tags(['red', 'blue', 'green'])
+        client.update_tag(self.resource, self.res_id, 'red')
+        self._get_and_compare_tags(['red', 'blue', 'green'], client)
 
         # add a tag with a dot
-        self.client.update_tag(self.resource, self.res_id, 'black.or.white')
-        self._get_and_compare_tags(['red', 'blue', 'green', 'black.or.white'])
+        client.update_tag(self.resource, self.res_id, 'black.or.white')
+        self._get_and_compare_tags(['red', 'blue', 'green', 'black.or.white'],
+                                   client)
 
         # replace tags
         tags = ['red', 'yellow', 'purple']
-        res_body = self.client.update_tags(self.resource, self.res_id, tags)
+        res_body = client.update_tags(self.resource, self.res_id, tags)
         self.assertCountEqual(tags, res_body['tags'])
-        self._get_and_compare_tags(tags)
+        self._get_and_compare_tags(tags, client)
 
         # get tag
-        self.client.get_tag(self.resource, self.res_id, 'red')
+        client.get_tag(self.resource, self.res_id, 'red')
 
         # get tag not exist
-        self.assertRaises(lib_exc.NotFound, self.client.get_tag,
+        self.assertRaises(lib_exc.NotFound, client.get_tag,
                           self.resource, self.res_id, 'green')
 
         # delete tag
-        self.client.delete_tag(self.resource, self.res_id, 'red')
-        self._get_and_compare_tags(['yellow', 'purple'])
+        client.delete_tag(self.resource, self.res_id, 'red')
+        self._get_and_compare_tags(['yellow', 'purple'], client)
 
         # delete tag not exist
-        self.assertRaises(lib_exc.NotFound, self.client.delete_tag,
+        self.assertRaises(lib_exc.NotFound, client.delete_tag,
                           self.resource, self.res_id, 'green')
 
         # delete tags
-        self.client.delete_tags(self.resource, self.res_id)
-        self._get_and_compare_tags([])
+        client.delete_tags(self.resource, self.res_id)
+        self._get_and_compare_tags([], client)
 
 
 class TagNetworkTestJSON(TagTestJSON):
@@ -198,7 +200,7 @@
     @decorators.idempotent_id('e9bac15e-c8bc-4317-8295-4bf1d8d522b8')
     @utils.requires_ext(extension="standard-attr-tag", service="network")
     def test_qos_policy_tags(self):
-        self._test_tag_operations()
+        self._test_tag_operations(client=self.admin_client)
 
 
 class TagTrunkTestJSON(TagTestJSON):
@@ -225,16 +227,20 @@
     @classmethod
     def resource_setup(cls):
         super(TagFilterTestJSON, cls).resource_setup()
+        try:
+            client = cls.tag_client
+        except AttributeError:
+            client = cls.client
 
         cls.res_ids = []
         for i in range(5):
             cls.res_ids.append(cls._create_resource())
 
-        cls.client.update_tags(cls.resource, cls.res_ids[0], ['red'])
-        cls.client.update_tags(cls.resource, cls.res_ids[1], ['red', 'blue'])
-        cls.client.update_tags(cls.resource, cls.res_ids[2],
-                               ['red', 'blue', 'green'])
-        cls.client.update_tags(cls.resource, cls.res_ids[3], ['green'])
+        client.update_tags(cls.resource, cls.res_ids[0], ['red'])
+        client.update_tags(cls.resource, cls.res_ids[1], ['red', 'blue'])
+        client.update_tags(cls.resource, cls.res_ids[2],
+                           ['red', 'blue', 'green'])
+        client.update_tags(cls.resource, cls.res_ids[3], ['green'])
         # 5th resource: no tags
 
     @classmethod
@@ -441,6 +447,11 @@
         res = self.client.list_qos_policies(**filters)
         return res[self.resource]
 
+    @classmethod
+    def resource_setup(cls):
+        cls.tag_client = cls.admin_client
+        super().resource_setup()
+
     @decorators.attr(type='smoke')
     @decorators.idempotent_id('c2f9a6ae-2529-4cb9-a44b-b16f8ba27832')
     @utils.requires_ext(extension="standard-attr-tag", service="network")
diff --git a/neutron_tempest_plugin/api/base.py b/neutron_tempest_plugin/api/base.py
index 99fa946..4bcc6d2 100644
--- a/neutron_tempest_plugin/api/base.py
+++ b/neutron_tempest_plugin/api/base.py
@@ -595,15 +595,11 @@
             # Generate subnet CIDRs starting from configured values
             ip_version = ip_version or cls._ip_version
             if ip_version == const.IP_VERSION_4:
-                mask_bits = mask_bits or config.safe_get_config_value(
-                    'network', 'project_network_mask_bits')
-                cidr = netaddr.IPNetwork(config.safe_get_config_value(
-                    'network', 'project_network_cidr'))
+                mask_bits = mask_bits or CONF.network.project_network_mask_bits
+                cidr = netaddr.IPNetwork(CONF.network.project_network_cidr)
             elif ip_version == const.IP_VERSION_6:
-                mask_bits = config.safe_get_config_value(
-                    'network', 'project_network_v6_mask_bits')
-                cidr = netaddr.IPNetwork(config.safe_get_config_value(
-                    'network', 'project_network_v6_cidr'))
+                mask_bits = CONF.network.project_network_v6_mask_bits
+                cidr = netaddr.IPNetwork(CONF.network.project_network_v6_cidr)
             else:
                 raise ValueError('Invalid IP version: {!r}'.format(ip_version))
 
@@ -1466,6 +1462,10 @@
     def _extract_resources(cls, body):
         return body[cls.plural_name]
 
+    @classmethod
+    def _test_resources(cls, resources):
+        return [res for res in resources if res["name"] in cls.resource_names]
+
     def _test_list_sorts(self, direction):
         sort_args = {
             'sort_dir': direction,
@@ -1517,11 +1517,12 @@
             'sort_key': self.field
         }
         body = self.list_method(**sort_args)
-        expected_resources = self._extract_resources(body)
+        total_resources = self._extract_resources(body)
+        expected_resources = self._test_resources(total_resources)
         self.assertNotEmpty(expected_resources)
 
         resources = lister(
-            len(expected_resources), sort_args
+            len(total_resources), sort_args
         )
 
         # finally, compare that the list retrieved in one go is identical to
@@ -1539,9 +1540,11 @@
                 pagination_args['marker'] = resources[-1]['id']
             body = self.list_method(**pagination_args)
             resources_ = self._extract_resources(body)
-            self.assertEqual(1, len(resources_))
+            # Empty resource list can be returned when any concurrent
+            # tests delete them
+            self.assertGreaterEqual(1, len(resources_))
             resources.extend(resources_)
-        return resources
+        return self._test_resources(resources)
 
     @_require_pagination
     @_require_sorting
@@ -1564,8 +1567,10 @@
                 self.plural_name, uri
             )
             resources_ = self._extract_resources(body)
-            self.assertEqual(1, len(resources_))
-            resources.extend(resources_)
+            # Empty resource list can be returned when any concurrent
+            # tests delete them
+            self.assertGreaterEqual(1, len(resources_))
+            resources.extend(self._test_resources(resources_))
 
         # The last element is empty and does not contain 'next' link
         uri = self.get_bare_url(prev_links['next'])
@@ -1582,8 +1587,10 @@
                 self.plural_name, uri
             )
             resources_ = self._extract_resources(body)
-            self.assertEqual(1, len(resources_))
-            resources2.extend(resources_)
+            # Empty resource list can be returned when any concurrent
+            # tests delete them
+            self.assertGreaterEqual(1, len(resources_))
+            resources2.extend(self._test_resources(resources_))
 
         self.assertSameOrder(resources, reversed(resources2))
 
@@ -1603,14 +1610,15 @@
             'sort_key': self.field,
         }
         body = self.list_method(**pagination_args)
-        expected_resources = self._extract_resources(body)
+        total_resources = self._extract_resources(body)
+        expected_resources = self._test_resources(total_resources)
 
         page_size = 2
         pagination_args['limit'] = page_size
 
         prev_links = {}
         resources = []
-        num_resources = len(expected_resources)
+        num_resources = len(total_resources)
         niterations = int(math.ceil(float(num_resources) / page_size))
         for i in range(niterations):
             if prev_links:
@@ -1622,7 +1630,7 @@
             prev_links, body = self.list_client.get_uri_with_links(
                 self.plural_name, uri
             )
-            resources_ = self._extract_resources(body)
+            resources_ = self._test_resources(self._extract_resources(body))
             self.assertGreaterEqual(page_size, len(resources_))
             resources.extend(reversed(resources_))
 
diff --git a/neutron_tempest_plugin/api/base_routers.py b/neutron_tempest_plugin/api/base_routers.py
index 94db116..37a84b8 100644
--- a/neutron_tempest_plugin/api/base_routers.py
+++ b/neutron_tempest_plugin/api/base_routers.py
@@ -31,10 +31,14 @@
             pass
 
     def _create_router(self, name, admin_state_up=False,
-                       external_network_id=None, enable_snat=None, **kwargs):
+                       external_network_id=None, enable_snat=None,
+                       client=None, **kwargs):
         # associate a cleanup with created routers to avoid quota limits
-        router = self.create_router(name, admin_state_up,
-                                    external_network_id, enable_snat, **kwargs)
+        client = client or self.client
+        router = self._create_router_with_client(
+            client, router_name=name, admin_state_up=admin_state_up,
+            external_network_id=external_network_id, enable_snat=enable_snat,
+            **kwargs)
         self.addCleanup(self._cleanup_router, router)
         return router
 
diff --git a/neutron_tempest_plugin/api/test_routers.py b/neutron_tempest_plugin/api/test_routers.py
index 7758b1a..1470a7b 100644
--- a/neutron_tempest_plugin/api/test_routers.py
+++ b/neutron_tempest_plugin/api/test_routers.py
@@ -38,9 +38,9 @@
     def resource_setup(cls):
         super(RoutersTest, cls).resource_setup()
         cls.tenant_cidr = (
-            config.safe_get_config_value('network', 'project_network_cidr')
+            CONF.network.project_network_cidr
             if cls._ip_version == 4 else
-            config.safe_get_config_value('network', 'project_network_v6_cidr'))
+            CONF.network.project_network_v6_cidr)
 
     @decorators.idempotent_id('c72c1c0c-2193-4aca-eeee-b1442640eeee')
     @tutils.requires_ext(extension="standard-attr-description",
@@ -377,7 +377,7 @@
         router = self._create_router(data_utils.rand_name('router'))
         self.assertEqual(len(router['external_gateways']), 0)
 
-        res = self.client.router_add_external_gateways(
+        res = self.admin_client.router_add_external_gateways(
             router['id'],
             [{'network_id': CONF.network.public_network_id,
               'enable_snat': False}])
@@ -391,7 +391,7 @@
         router = self._create_router(data_utils.rand_name('router'))
         self.assertEqual(len(router['external_gateways']), 0)
 
-        res = self.client.router_add_external_gateways(
+        res = self.admin_client.router_add_external_gateways(
             router['id'],
             [
                 {'network_id': CONF.network.public_network_id,
@@ -424,9 +424,11 @@
         router = self._create_router(
             data_utils.rand_name('router'),
             external_network_id=CONF.network.public_network_id,
-            enable_snat=False)
+            enable_snat=False,
+            client=self.admin_client,
+        )
         self.assertEqual(len(router['external_gateways']), 1)
-        res = self.client.router_add_external_gateways(
+        res = self.admin_client.router_add_external_gateways(
             router['id'],
             [{'network_id': CONF.network.public_network_id,
               'enable_snat': False}])
@@ -437,9 +439,10 @@
         router = self._create_router(
             data_utils.rand_name('router'),
             external_network_id=CONF.network.public_network_id,
-            enable_snat=False)
+            enable_snat=False,
+            client=self.admin_client)
         self.assertEqual(len(router['external_gateways']), 1)
-        res = self.client.router_remove_external_gateways(
+        res = self.admin_client.router_remove_external_gateways(
             router['id'],
             [{'network_id': CONF.network.public_network_id}])
         self.assertEqual(len(res['router']['external_gateways']), 0)
@@ -449,7 +452,7 @@
         router = self._create_router(data_utils.rand_name('router'))
         self.assertEqual(len(router['external_gateways']), 0)
 
-        res = self.client.router_add_external_gateways(
+        res = self.admin_client.router_add_external_gateways(
             router['id'],
             [
                 {'network_id': CONF.network.public_network_id,
@@ -480,7 +483,7 @@
         router = self._create_router(data_utils.rand_name('router'))
         self.assertEqual(len(router['external_gateways']), 0)
 
-        res = self.client.router_add_external_gateways(
+        res = self.admin_client.router_add_external_gateways(
             router['id'],
             [
                 {'network_id': CONF.network.public_network_id,
@@ -503,7 +506,7 @@
                     remove_gateways[0])
 
         external_gateways[1] = remove_gateways[0]
-        res_update_gws = self.client.router_update_external_gateways(
+        res_update_gws = self.admin_client.router_update_external_gateways(
             router['id'],
             external_gateways)
 
diff --git a/neutron_tempest_plugin/api/test_security_groups.py b/neutron_tempest_plugin/api/test_security_groups.py
index 5e8b18e..37cd80b 100644
--- a/neutron_tempest_plugin/api/test_security_groups.py
+++ b/neutron_tempest_plugin/api/test_security_groups.py
@@ -281,9 +281,10 @@
     def _set_quota(self, val, resource):
         res_quota = self._get_quota(resource)
         project_id = self.client.project_id
-        self.admin_client.update_quotas(project_id, **{resource: val})
+        self.admin_client.update_quotas(project_id, **{resource: val,
+                                                       'force': True})
         self.addCleanup(self.admin_client.update_quotas,
-                        project_id, **{resource: res_quota})
+                        project_id, **{resource: res_quota, 'force': True})
 
     def _get_quota(self, resource):
         project_id = self.client.project_id
@@ -383,8 +384,9 @@
     def _set_sg_rules_quota(self, val):
         project_id = self.client.project_id
         self.admin_client.update_quotas(project_id,
-                                        **{'security_group_rule': val})
-        LOG.info('Trying to update security group rule quota {} '.format(val))
+                                        **{'security_group_rule': val,
+                                           'force': True})
+        LOG.info('Trying to update security group rule quota %r', val)
 
     def _get_sg_rules_quota(self):
         project_id = self.client.project_id
@@ -435,7 +437,8 @@
         sg_rules_quota = self._get_sg_rules_quota()
         project_id = self.client.project_id
         self.addCleanup(self.admin_client.update_quotas,
-                        project_id, **{'security_group_rule': sg_rules_quota})
+                        project_id, **{'security_group_rule': sg_rules_quota,
+                                       'force': True})
         values = [-1, 0, 10, 2147483647]
         for value in values:
             self._set_sg_rules_quota(value)
diff --git a/neutron_tempest_plugin/common/constants.py b/neutron_tempest_plugin/common/constants.py
index f695f6c..36fb865 100644
--- a/neutron_tempest_plugin/common/constants.py
+++ b/neutron_tempest_plugin/common/constants.py
@@ -87,7 +87,7 @@
 
 ATTRIBUTES_TO_UPDATE = 'attributes_to_update'
 
-# Maximum value integer can take in MySQL and PostgreSQL
+# Maximum value integer can take in MySQL.
 # In SQLite integer can be stored in 1, 2, 3, 4, 6, or 8 bytes,
 # but here it will be limited by this value for consistency.
 DB_INTEGER_MAX_VALUE = 2 ** 31 - 1
diff --git a/neutron_tempest_plugin/common/ip.py b/neutron_tempest_plugin/common/ip.py
index 07bbe69..5335219 100644
--- a/neutron_tempest_plugin/common/ip.py
+++ b/neutron_tempest_plugin/common/ip.py
@@ -96,7 +96,7 @@
         return self.configure_vlan(addresses, port, vlan_tag, subport_ips,
                                    subport['mac_address'])
 
-    def configure_vlan_transparent(self, port, vlan_tag, ip_addresses):
+    def configure_inner_vlan(self, port, vlan_tag, ip_addresses):
         addresses = self.list_addresses()
         try:
             subport_device = get_vlan_device_name(addresses, ip_addresses)
@@ -108,6 +108,11 @@
 
         return self.configure_vlan(addresses, port, vlan_tag, ip_addresses)
 
+    # NOTE(ralonsoh): some projects, like whitebox-neutron-tempest-plugin, are
+    # using ``configure_vlan_transparent`` method. The concept of "inner VLAN"
+    # does not exist in the VLAN transparency feature.
+    configure_vlan_transparent = configure_inner_vlan
+
     def list_namespaces(self):
         namespaces_output = self.execute("netns")
         ns_list = []
diff --git a/neutron_tempest_plugin/common/utils.py b/neutron_tempest_plugin/common/utils.py
index c62aa78..62191bf 100644
--- a/neutron_tempest_plugin/common/utils.py
+++ b/neutron_tempest_plugin/common/utils.py
@@ -132,17 +132,6 @@
         return False
 
 
-def spawn_http_server(ssh_client, port, message):
-    cmd = ("(echo -e 'HTTP/1.1 200 OK\r\n'; echo '%(msg)s') "
-           "| sudo nc -lp %(port)d &" % {'msg': message, 'port': port})
-    ssh_client.exec_command(cmd)
-
-
-def call_url_remote(ssh_client, url):
-    cmd = "curl %s --retry 3 --connect-timeout 2" % url
-    return ssh_client.exec_command(cmd)
-
-
 class StatefulConnection:
     """Class to test connection that should remain opened
 
@@ -205,29 +194,29 @@
                         sleep=self.test_sleep)
         try:
             LOG.info("Checking connectivity between server and client -"
-                    " attempt {}".format(self.test_attempt))
+                    " attempt %d", self.test_attempt)
             self.server_ssh.exec_command(
                     'grep {} output.txt'.format(self.test_str))
             self.client_ssh.exec_command(
                     'grep {} output.txt'.format(self.test_str))
             if not self.should_pass:
-                LOG.warning("attempt {} succeed while it should fail".format(
-                    self.test_attempt))
+                LOG.warning("attempt %d succeed while it should fail",
+                            self.test_attempt)
                 return False
             else:
                 if not self.connection_started:
                     self.connection_started = True
-                LOG.info("attempt {} succeed as it expected".format(
-                    self.test_attempt))
+                LOG.info("attempt %d succeed as it expected",
+                         self.test_attempt)
                 return True
         except exceptions.SSHExecCommandFailed:
             if self.should_pass:
-                LOG.warning("attempt {} failed while it should pass".format(
-                    self.test_attempt))
+                LOG.warning("attempt %d failed while it should pass",
+                            self.test_attempt)
                 return False
             else:
-                LOG.info("attempt {} failed as it expected".format(
-                    self.test_attempt))
+                LOG.info("attempt %d failed as it expected",
+                         self.test_attempt)
                 return True
         finally:
             self.test_attempt += 1
diff --git a/neutron_tempest_plugin/config.py b/neutron_tempest_plugin/config.py
index a6d5c09..38d6ac6 100644
--- a/neutron_tempest_plugin/config.py
+++ b/neutron_tempest_plugin/config.py
@@ -77,6 +77,12 @@
                default='openstackgate.local',
                help='dns_domain value configured at neutron.conf, which will '
                     'be used for the DNS configuration of the instances'),
+    cfg.BoolOpt('snat_rules_apply_to_nested_networks',
+                default=False,
+                help='Whether SNAT rules apply recursively to all connected '
+                'networks. This is the default behavior for ovs and '
+                'linuxbridge drivers. OVN requires '
+                'ovn_router_indirect_snat=True setting to implement it.'),
 
     # Multicast tests settings
     cfg.StrOpt('multicast_group_range',
@@ -158,16 +164,16 @@
 for opt in NeutronPluginOptions:
     CONF.register_opt(opt, 'neutron_plugin_options')
 
-# TODO(slaweq): This config option is added to avoid running bgpvpn tests twice
-# on stable branches till stable/stein. We need to remove this config option
-# once stable/stein is EOL. Bgpvpn tempest plugin has been merged into
-# neutron-tempest-plugin from Train. Train onwards bgpvpn tests will run from
-# neutron-tempest-plugins.
 BgpvpnGroup = [
+    # TODO(tkajinam): This has been required since the plugin tests was merged
+    # into neutron-tempest-plugin in Train. Remove this after 2025.1 release.
     cfg.BoolOpt('run_bgpvpn_tests',
                 default=True,
                 help=("If it is set to False bgpvpn api and scenario tests "
-                      "will be skipped")),
+                      "will be skipped"),
+                deprecated_for_removal=True,
+                deprecated_reason='Tests are skipped according to '
+                                  'the available extensions.'),
     cfg.IntOpt('min_asn',
                default=100,
                help=("Minimum number for the range of "
@@ -191,16 +197,20 @@
 CONF.register_group(bgpvpn_group)
 CONF.register_opts(BgpvpnGroup, group="bgpvpn")
 
-# TODO(slaweq): This config option is added to avoid running fwaas tests twice
-# on stable branches till stable/stein. We need to remove this config option
-# once stable/stein is EOL. Fwaas tempest plugin has been merged into
-# neutron-tempest-plugin from Train. Train onwards fwaas tests will run from
-# neutron-tempest-plugins.
 FwaasGroup = [
+    # TODO(tkajinam): This has been required since the plugin tests was merged
+    # into neutron-tempest-plugin in Train. Remove this after 2025.1 release.
     cfg.BoolOpt('run_fwaas_tests',
                 default=True,
                 help=("If it is set to False fwaas api and scenario tests "
-                      "will be skipped")),
+                      "will be skipped"),
+                deprecated_for_removal=True,
+                deprecated_reason='Tests are skipped according to '
+                                  'the available extensions.'),
+    cfg.StrOpt('driver',
+               default=None,
+               choices=['openvswitch', 'ovn'],
+               help='Driver used by the FWaaS plugin.'),
 ]
 
 fwaas_group = cfg.OptGroup(
@@ -208,16 +218,16 @@
 CONF.register_group(fwaas_group)
 CONF.register_opts(FwaasGroup, group="fwaas")
 
-# TODO(slaweq): This config option is added to avoid running SFC tests twice
-# on stable branches till stable/stein. We need to remove this config option
-# once stable/stein is EOL. SFC tempest plugin has been merged into
-# neutron-tempest-plugin from Train. Train onwards SFC tests will run from
-# neutron-tempest-plugins.
 SfcGroup = [
+    # TODO(tkajinam): This has been required since the plugin tests was merged
+    # into neutron-tempest-plugin in Train. Remove this after 2025.1 release.
     cfg.BoolOpt('run_sfc_tests',
                 default=True,
                 help=("If it is set to False SFC api and scenario tests "
-                      "will be skipped")),
+                      "will be skipped"),
+                deprecated_for_removal=True,
+                deprecated_reason='Tests are skipped according to '
+                                  'the available extensions.'),
 ]
 
 sfc_group = cfg.OptGroup(name="sfc", title=("Networking-sfc Service Options"))
@@ -242,6 +252,21 @@
 CONF.register_group(taas_group)
 CONF.register_opts(TaasGroup, group="taas")
 
+
+DynamicRoutingGroup = [
+    cfg.StrOpt('base_image',
+               default='quay.io/nf-core/ubuntu:20.04',
+               help=('Base image used to build the image for connectivity '
+                     'check')),
+]
+
+dynamic_routing_group = cfg.OptGroup(
+    name="dynamic_routing",
+    title=("Neutron-Dynamic-Routing Service Options"))
+CONF.register_group(dynamic_routing_group)
+CONF.register_opts(DynamicRoutingGroup, group="dynamic_routing")
+
+
 # DNS Integration with an External Service
 DnsFeatureGroup = [
     cfg.IntOpt(
@@ -253,19 +278,3 @@
     name='designate_feature_enabled', title='Enabled Designate Features')
 CONF.register_group(dns_feature_group)
 CONF.register_opts(DnsFeatureGroup, group="designate_feature_enabled")
-
-config_opts_translator = {
-    'project_network_cidr': 'tenant_network_cidr',
-    'project_network_v6_cidr': 'tenant_network_v6_cidr',
-    'project_network_mask_bits': 'tenant_network_mask_bits',
-    'project_network_v6_mask_bits': 'tenant_network_v6_mask_bits'}
-
-
-def safe_get_config_value(group, name):
-    """Safely get Oslo config opts from Tempest, using old and new names."""
-    conf_group = getattr(CONF, group)
-
-    try:
-        return getattr(conf_group, name)
-    except cfg.NoSuchOptError:
-        return getattr(conf_group, config_opts_translator[name])
diff --git a/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py b/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
index 9896073..6af27fc 100644
--- a/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
+++ b/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
@@ -89,9 +89,9 @@
                                 (ssh_source, remote_ip, should_connect),
                                 msg)
             except Exception:
-                LOG.exception("Unable to access {dest} via ssh to "
-                              "floating-ip {src}".format(dest=remote_ip,
-                                                         src=floating_ip))
+                LOG.exception("Unable to access %s via ssh to "
+                              "floating-ip %s",
+                              remote_ip, floating_ip)
                 raise
 
     def _check_remote_connectivity(self, source, dest, should_succeed=True,
@@ -269,12 +269,11 @@
 
         # Scenario 3: Create a rule allowing ICMP only from server_fixed_ip_1
         # to server_fixed_ip_2 and check that traffic from opposite direction
-        # is blocked.
+        # is blocked (for ovs driver where rules are stateful).
         fw_allow_unidirectional_icmp_rule = self.create_firewall_rule(
             action="allow", protocol="icmp",
             source_ip_address=topology['server_fixed_ip_1'],
             destination_ip_address=topology['server_fixed_ip_2'])
-
         self.remove_firewall_rule_from_policy_and_wait(
             firewall_group_id=fw_group['id'],
             firewall_rule_id=fw_deny_icmp_rule['id'],
@@ -284,6 +283,20 @@
             firewall_rule_id=fw_allow_unidirectional_icmp_rule['id'],
             firewall_policy_id=fw_policy['id'])
 
+        if CONF.fwaas.driver == 'ovn':
+            # NOTE(slaweq): OVN driver in FWaaS implements only stateless rules
+            # so allowing only unidirectional traffic is not enough as ICMP
+            # replies are still blocked and to make it working additional rule
+            # for the opposite direction is required also:
+            fw_allow_icmp_reply_rule = self.create_firewall_rule(
+                action="allow", protocol="icmp",
+                source_ip_address=topology['server_fixed_ip_2'],
+                destination_ip_address=topology['server_fixed_ip_1'])
+            self.insert_firewall_rule_in_policy_and_wait(
+                firewall_group_id=fw_group['id'],
+                firewall_rule_id=fw_allow_icmp_reply_rule['id'],
+                firewall_policy_id=fw_policy['id'])
+
         self._check_server_connectivity(
             topology['server_floating_ip_1'],
             topology['private_key1'],
@@ -293,7 +306,7 @@
             topology['server_floating_ip_2'],
             topology['private_key2'],
             address_list=[topology['server_fixed_ip_1']],
-            should_connect=False)
+            should_connect=CONF.fwaas.driver == 'ovn')
 
         # Disassociate ports of this firewall group for cleanup resources
         self.update_firewall_group_and_wait(fw_group['id'], ports=[])
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
index 5cdd524..1d089f6 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
@@ -177,7 +177,7 @@
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         bgp_peers_list = bgp_speaker['peers']
         self.assertEqual(1, len(bgp_peers_list))
-        self.assertTrue(bgp_peer_id in bgp_peers_list)
+        self.assertIn(bgp_peer_id, bgp_peers_list)
 
     @decorators.idempotent_id('f9737708-1d79-440b-8350-779f97d882ee')
     def test_remove_bgp_peer(self):
@@ -188,7 +188,7 @@
         self.add_bgp_peer(bgp_speaker_id, bgp_peer_id)
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         bgp_peers_list = bgp_speaker['peers']
-        self.assertTrue(bgp_peer_id in bgp_peers_list)
+        self.assertIn(bgp_peer_id, bgp_peers_list)
 
         bgp_speaker = self.remove_bgp_peer(bgp_speaker_id, bgp_peer_id)
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
@@ -206,7 +206,7 @@
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         network_list = bgp_speaker['networks']
         self.assertEqual(1, len(network_list))
-        self.assertTrue(self.ext_net_id in network_list)
+        self.assertIn(self.ext_net_id, network_list)
 
     @decorators.idempotent_id('6cfc7137-0d99-4a3d-826c-9d1a3a1767b0')
     def test_remove_gateway_network(self):
@@ -218,7 +218,7 @@
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         networks = bgp_speaker['networks']
 
-        self.assertTrue(self.ext_net_id in networks)
+        self.assertIn(self.ext_net_id, networks)
         self.bgp_adm_client.remove_bgp_gateway_network(bgp_speaker_id,
                                                        self.ext_net_id)
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py
index c7023af..3f799bb 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py
@@ -65,6 +65,7 @@
 
 
 class BgpSpeakerScenarioTestJSONBase(base.BaseAdminNetworkTest):
+    baseimage = CONF.dynamic_routing.base_image
 
     def setUp(self):
         self.addCleanup(self.net_resource_cleanup)
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/base.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/base.py
index dd170e7..3719dd6 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/base.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/base.py
@@ -84,7 +84,7 @@
                                        router_id=cls.L_AS.router_id)
         cls.dr.set_addr_info(bridge='br-docker-basic', ipv4=cls.public_gw)
         # quagga container
-        cls.dockerimg = ctn_base.DockerImage()
+        cls.dockerimg = ctn_base.DockerImage(baseimage=cls.baseimage)
         cls.q_img = cls.dockerimg.create_quagga(check_exist=True)
         cls.images.append(cls.q_img)
         for i in range(cls.RAS_MAX):
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_4byte_asn.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_4byte_asn.py
index f492ede..1421734 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_4byte_asn.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_4byte_asn.py
@@ -91,7 +91,7 @@
                                        router_id=cls.L_AS.router_id)
         cls.dr.set_addr_info(bridge='br-docker-4byte-asn', ipv4=cls.public_gw)
         # quagga container
-        cls.dockerimg = ctn_base.DockerImage()
+        cls.dockerimg = ctn_base.DockerImage(baseimage=cls.baseimage)
         cls.q_img = cls.dockerimg.create_quagga(check_exist=True)
         cls.images.append(cls.q_img)
         for i in range(cls.RAS_MAX):
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv4/test_ipv4.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv4/test_ipv4.py
index 158b7ad..57c9018 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv4/test_ipv4.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv4/test_ipv4.py
@@ -91,7 +91,7 @@
                                        router_id=cls.L_AS.router_id)
         cls.dr.set_addr_info(bridge='br-docker-ipv4', ipv4=cls.public_gw)
         # quagga container
-        cls.dockerimg = ctn_base.DockerImage()
+        cls.dockerimg = ctn_base.DockerImage(baseimage=cls.baseimage)
         cls.q_img = cls.dockerimg.create_quagga(check_exist=True)
         cls.images.append(cls.q_img)
         for i in range(cls.RAS_MAX):
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv6/test_ipv6.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv6/test_ipv6.py
index 937b38d..9bd4c8d 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv6/test_ipv6.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/ipv6/test_ipv6.py
@@ -91,7 +91,7 @@
                                        router_id=cls.L_AS.router_id)
         cls.dr.set_addr_info(bridge='br-docker-ipv6', ipv6=cls.public_gw)
         # quagga container
-        cls.dockerimg = ctn_base.DockerImage()
+        cls.dockerimg = ctn_base.DockerImage(baseimage=cls.baseimage)
         cls.q_img = cls.dockerimg.create_quagga(check_exist=True)
         cls.images.append(cls.q_img)
         for i in range(cls.RAS_MAX):
diff --git a/neutron_tempest_plugin/scenario/base.py b/neutron_tempest_plugin/scenario/base.py
index 6149b06..70cb2dc 100644
--- a/neutron_tempest_plugin/scenario/base.py
+++ b/neutron_tempest_plugin/scenario/base.py
@@ -337,7 +337,7 @@
         if create_fip:
             self.fip = self.create_floatingip(port=self.port)
 
-    def check_connectivity(self, host, ssh_user=None, ssh_key=None,
+    def check_connectivity(self, host=None, ssh_user=None, ssh_key=None,
                            servers=None, ssh_timeout=None, ssh_client=None):
         # Either ssh_client or ssh_user+ssh_key is mandatory.
         if ssh_client is None:
diff --git a/neutron_tempest_plugin/scenario/test_dns_integration.py b/neutron_tempest_plugin/scenario/test_dns_integration.py
index d520aa2..d6bafef 100644
--- a/neutron_tempest_plugin/scenario/test_dns_integration.py
+++ b/neutron_tempest_plugin/scenario/test_dns_integration.py
@@ -39,6 +39,8 @@
 # when designate_tempest_plugin is not available
 dns_base = testtools.try_import('designate_tempest_plugin.tests.base')
 dns_waiters = testtools.try_import('designate_tempest_plugin.common.waiters')
+dns_data_utils = testtools.try_import('designate_tempest_plugin.data_utils')
+
 if dns_base:
     DNSMixin = dns_base.BaseDnsV2Test
 else:
@@ -53,7 +55,7 @@
         super(BaseDNSIntegrationTests, cls).setup_clients()
         cls.zone_client = cls.os_tempest.dns_v2.ZonesClient()
         cls.recordset_client = cls.os_tempest.dns_v2.RecordsetClient()
-        cls.query_client.build_timeout = 30
+        cls.query_client.build_timeout = 60
 
     @classmethod
     def skip_checks(cls):
@@ -68,12 +70,13 @@
     @utils.requires_ext(extension="dns-integration", service="network")
     def resource_setup(cls):
         super(BaseDNSIntegrationTests, cls).resource_setup()
-        cls.zone = cls.zone_client.create_zone()[1]
-        cls.addClassResourceCleanup(cls.zone_client.delete_zone,
-            cls.zone['id'], ignore_errors=lib_exc.NotFound)
-        dns_waiters.wait_for_zone_status(
-            cls.zone_client, cls.zone['id'], 'ACTIVE')
-
+        cls.zone_name = dns_data_utils.rand_zone_name(
+            name="basednsintegrationtests")
+        cls.zone = cls.zone_client.create_zone(
+            name=cls.zone_name, wait_until='ACTIVE')[1]
+        cls.addClassResourceCleanup(
+            cls.zone_client.delete_zone, cls.zone['id'],
+            ignore_errors=lib_exc.NotFound)
         cls.network = cls.create_network(dns_domain=cls.zone['name'])
         cls.subnet = cls.create_subnet(cls.network)
         cls.subnet_v6 = cls.create_subnet(cls.network, ip_version=6)
@@ -250,8 +253,9 @@
     @classmethod
     def resource_setup(cls):
         super(DNSIntegrationExtraTests, cls).resource_setup()
-        cls.network2 = cls.create_network()
-        cls.subnet2 = cls.create_subnet(cls.network2)
+        cls.network2 = cls.create_network(
+            name=data_utils.rand_name('dns_integration_net'))
+        cls.subnet2 = cls.create_subnet(cls.network2, cidr='10.123.151.0/24')
         cls.subnet2_v6 = cls.create_subnet(cls.network2,
                                            ip_version=6,
                                            dns_publish_fixed_ip=True)
@@ -274,6 +278,16 @@
         self.client.delete_port(port['id'])
         self._verify_dns_records(addr_v6, name, record_type='AAAA',
                                  found=False)
+        self.client.update_subnet(
+            self.subnet2['id'], dns_publish_fixed_ip=True)
+        port = self.create_port(self.network2,
+                                dns_domain=self.zone['name'],
+                                dns_name=name)
+        addr_v4 = port['fixed_ips'][1 - v6_index]['ip_address']
+        self._verify_dns_records(addr_v4, name, record_type='A')
+        self.client.delete_port(port['id'])
+        self._verify_dns_records(addr_v4, name, record_type='A',
+                                 found=False)
 
 
 class DNSIntegrationDomainPerProjectTests(BaseDNSIntegrationTests):
@@ -286,19 +300,15 @@
     @classmethod
     def resource_setup(cls):
         super(BaseDNSIntegrationTests, cls).resource_setup()
-
-        name = data_utils.rand_name('test-domain')
-        zone_name = "%s.%s.%s.zone." % (cls.client.user_id,
+        cls.name = data_utils.rand_name('test-domain')
+        cls.zone_name = "%s.%s.%s.zone." % (cls.client.user_id,
                                         cls.client.project_id,
-                                        name)
-        dns_domain_template = "<user_id>.<project_id>.%s.zone." % name
-
-        cls.zone = cls.zone_client.create_zone(name=zone_name)[1]
+                                        cls.name)
+        dns_domain_template = "<user_id>.<project_id>.%s.zone." % cls.name
+        cls.zone = cls.zone_client.create_zone(
+            name=cls.zone_name, wait_until='ACTIVE')[1]
         cls.addClassResourceCleanup(cls.zone_client.delete_zone,
             cls.zone['id'], ignore_errors=lib_exc.NotFound)
-        dns_waiters.wait_for_zone_status(
-            cls.zone_client, cls.zone['id'], 'ACTIVE')
-
         cls.network = cls.create_network(dns_domain=dns_domain_template)
         cls.subnet = cls.create_subnet(cls.network,
                                        dns_publish_fixed_ip=True)
diff --git a/neutron_tempest_plugin/scenario/test_floatingip.py b/neutron_tempest_plugin/scenario/test_floatingip.py
index f222396..f3d03e6 100644
--- a/neutron_tempest_plugin/scenario/test_floatingip.py
+++ b/neutron_tempest_plugin/scenario/test_floatingip.py
@@ -18,7 +18,6 @@
 import ddt
 from neutron_lib import constants as lib_constants
 from neutron_lib.services.qos import constants as qos_consts
-from neutron_lib.utils import test
 from oslo_log import log
 from tempest.common import utils
 from tempest.common import waiters
@@ -147,7 +146,6 @@
 
     same_network = True
 
-    @test.unstable_test("bug 1717302")
     @decorators.idempotent_id('05c4e3b3-7319-4052-90ad-e8916436c23b')
     @ddt.unpack
     @ddt.data({'src_has_fip': True, 'dest_has_fip': True},
@@ -165,7 +163,6 @@
 
     same_network = False
 
-    @test.unstable_test("bug 1717302")
     @decorators.idempotent_id('f18f0090-3289-4783-b956-a0f8ac511e8b')
     @ddt.unpack
     @ddt.data({'src_has_fip': True, 'dest_has_fip': True},
@@ -204,6 +201,64 @@
                                        gateway_external_ip,
                                        servers=[proxy, src_server])
 
+    def _test_nested_snat_external_ip(self, feature_enabled_bool):
+        """Check connectivity to an external IP from a nested network."""
+        gateway_external_ip = self._get_external_gateway()
+
+        if not gateway_external_ip:
+            raise self.skipTest("IPv4 gateway is not configured for public "
+                                "network or public_network_id is not "
+                                "configured")
+        proxy = self._create_server()
+        proxy_client = ssh.Client(proxy['fip']['floating_ip_address'],
+                                  CONF.validation.image_ssh_user,
+                                  pkey=self.keypair['private_key'])
+
+        # Create a nested router
+        router = self.create_router(
+            router_name=data_utils.rand_name('router'),
+            admin_state_up=True)
+
+        # Attach outer subnet to it
+        outer_port = self.create_port(self.network)
+        self.client.add_router_interface_with_port_id(router['id'],
+                                                      outer_port['id'])
+
+        # Attach a nested subnet to it
+        network = self.create_network()
+        subnet = self.create_subnet(network)
+        self.create_router_interface(router['id'], subnet['id'])
+
+        # Set up static routes in both directions
+        self.client.update_extra_routes(
+            self.router['id'],
+            outer_port['fixed_ips'][0]['ip_address'], subnet['cidr'])
+        self.client.update_extra_routes(
+            router['id'], self.subnet['gateway_ip'], '0.0.0.0/0')
+
+        # Create a server inside the nested network
+        src_server = self._create_server(create_floating_ip=False,
+                                         network=network)
+
+        # Check connectivity if nested SNAT is enabled, else no connectivity
+        src_server_ip = src_server['port']['fixed_ips'][0]['ip_address']
+        ssh_client = ssh.Client(src_server_ip,
+                                CONF.validation.image_ssh_user,
+                                pkey=self.keypair['private_key'],
+                                proxy_client=proxy_client)
+        self.check_remote_connectivity(ssh_client,
+                                       gateway_external_ip,
+                                       should_succeed=feature_enabled_bool,
+                                       servers=[proxy, src_server])
+
+    @decorators.idempotent_id('b911b124-b6cb-449d-83d9-b34f3665741d')
+    @utils.requires_ext(extension='extraroute', service='network')
+    def test_nested_snat_external_ip(self):
+        feature_enabled_bool = (
+            CONF.neutron_plugin_options.snat_rules_apply_to_nested_networks
+        )
+        self._test_nested_snat_external_ip(feature_enabled_bool)
+
 
 class FloatingIPPortDetailsTest(FloatingIpTestCasesMixin,
                                 base.BaseTempestTestCase):
diff --git a/neutron_tempest_plugin/scenario/test_metadata.py b/neutron_tempest_plugin/scenario/test_metadata.py
index af6bd09..34b9b88 100644
--- a/neutron_tempest_plugin/scenario/test_metadata.py
+++ b/neutron_tempest_plugin/scenario/test_metadata.py
@@ -12,7 +12,10 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+import base64
 import collections
+import textwrap
+import time
 
 from neutron_lib import constants as nlib_const
 from oslo_log import log as logging
@@ -32,6 +35,8 @@
 Server = collections.namedtuple(
     'Server', ['floating_ip', 'server', 'ssh_client'])
 
+QUERY_MSG = 'Queried the metadata service over IPv6'
+
 
 class MetadataTest(base.BaseTempestTestCase):
 
@@ -86,19 +91,49 @@
                                 security_groups=[self.security_group['id']],
                                 **params)
 
-    def _create_server(self, port, use_advanced_image=False, **params):
+    def _create_server(self, port=None, network_id=None,
+                       use_advanced_image=False, **params):
         if use_advanced_image:
             flavor_ref = CONF.neutron_plugin_options.advanced_image_flavor_ref
             image_ref = CONF.neutron_plugin_options.advanced_image_ref
         else:
             flavor_ref = CONF.compute.flavor_ref
             image_ref = CONF.compute.image_ref
+        if port:
+            networks = [{'port': port['id']}]
+        else:
+            networks = [{'uuid': network_id}]
         return self.create_server(flavor_ref=flavor_ref,
                                   image_ref=image_ref,
                                   key_name=self.keypair['name'],
-                                  networks=[{'port': port['id']}],
+                                  networks=networks,
                                   **params)['server']
 
+    def _get_metadata_query_script(self):
+        sheebang_line = '\n#!/bin/bash -x'
+        curl_cmd = '\ncurl http://[%(address)s' % {'address':
+                                                   nlib_const.METADATA_V6_IP}
+        ip_cmd = ("%25$(ip -6 -br address show scope link up | head -1 | "
+                  "cut -d ' ' -f1)]/openstack/")
+        echo_cmd = '\necho %s' % QUERY_MSG
+        script = '%s%s%s%s' % (sheebang_line, curl_cmd, ip_cmd, echo_cmd)
+        script_clean = textwrap.dedent(script).lstrip().encode('utf8')
+        script_b64 = base64.b64encode(script_clean)
+        return {'user_data': script_b64}
+
+    def _wait_for_metadata_query_msg(self, vm):
+        timeout = 300
+        start_time = int(time.time())
+        while int(time.time()) - start_time < timeout:
+            console_output = self.os_primary.servers_client.get_console_output(
+                vm['id'])['output']
+            pos = console_output.find(QUERY_MSG)
+            if pos > -1:
+                return console_output, pos
+            time.sleep(30)
+        self.fail('Failed to find metadata query message in console log %s' %
+                  console_output)
+
     def _create_ssh_client(self, floating_ip, use_advanced_image=False):
         if use_advanced_image:
             username = CONF.neutron_plugin_options.advanced_image_ssh_user
@@ -134,8 +169,7 @@
             self.network, use_advanced_image=use_advanced_image)
         self.wait_for_server_active(server=vm.server)
         self.wait_for_guest_os_ready(vm.server)
-        self.check_connectivity(host=vm.floating_ip['floating_ip_address'],
-                                ssh_client=vm.ssh_client)
+        self.check_connectivity(ssh_client=vm.ssh_client)
         interface = self._get_primary_interface(vm.ssh_client)
 
         try:
@@ -153,3 +187,26 @@
         except exceptions.SSHExecCommandFailed:
             self._log_console_output()
             self._log_local_network_status()
+
+    @testtools.skipUnless(
+        CONF.neutron_plugin_options.advanced_image_ref or
+        CONF.neutron_plugin_options.default_image_is_advanced,
+        'Advanced image is required to run this test.')
+    @decorators.idempotent_id('7542892a-d132-471c-addb-172dcf888ff6')
+    def test_metadata_ipv6_only_network(self):
+        ipv6_network = self.create_network()
+        ipv6_subnet = self.create_subnet(network=ipv6_network, ip_version=6,
+                                         ipv6_ra_mode="slaac",
+                                         ipv6_address_mode="slaac")
+        self.create_router_interface(self.router['id'], ipv6_subnet['id'])
+        use_advanced_image = (
+            not CONF.neutron_plugin_options.default_image_is_advanced)
+        params = self._get_metadata_query_script()
+        params['config_drive'] = True
+        vm = self._create_server(
+            network_id=ipv6_network['id'],
+            use_advanced_image=use_advanced_image, **params)
+        self.wait_for_server_active(server=vm)
+        self.wait_for_guest_os_ready(vm)
+        console_output, pos = self._wait_for_metadata_query_msg(vm)
+        self.assertIn('latest', console_output[pos - 100:])
diff --git a/neutron_tempest_plugin/scenario/test_mtu.py b/neutron_tempest_plugin/scenario/test_mtu.py
index ea62fcf..29ccb01 100644
--- a/neutron_tempest_plugin/scenario/test_mtu.py
+++ b/neutron_tempest_plugin/scenario/test_mtu.py
@@ -170,18 +170,12 @@
     networks = []
 
     @classmethod
-    def skip_checks(cls):
-        super(NetworkWritableMtuTest, cls).skip_checks()
-        supported_type_drivers = ['vxlan', 'geneve']
-        if not any(type_driver in supported_type_drivers for type_driver in
-                   config.CONF.neutron_plugin_options.available_type_drivers):
-            raise cls.skipException(
-                "Neither VXLAN nor GENEVE type_driver is enabled")
-
-    @classmethod
     @utils.requires_ext(extension="net-mtu-writable", service="network")
     def resource_setup(cls):
         super(NetworkWritableMtuTest, cls).resource_setup()
+        if cls.is_driver_ovn:
+            raise cls.skipException("East/west icmp fragmentation is not "
+                                    "supported with ML2/OVN")
 
     def _create_setup(self):
         self.admin_client = self.os_admin.network_client
@@ -233,37 +227,37 @@
     @decorators.idempotent_id('bc470200-d8f4-4f07-b294-1b4cbaaa35b9')
     def test_connectivity_min_max_mtu(self):
         server_ssh_client, _, _, fip2 = self._create_setup()
-        log_msg = ("Ping with {mtu_size} MTU of 2 networks. Fragmentation is "
-                   "{fragmentation_state}. Expected result: ping "
-                   "{ping_status}")
+        log_msg = ("Ping with %(mtu_size)s MTU of 2 networks. "
+                   "Fragmentation is %(fragmentation_state)s. "
+                   "Expected result: ping %(ping_status)s")
 
         # ping with min mtu of 2 networks succeeds even when
         # fragmentation is disabled
-        LOG.debug(log_msg.format(mtu_size='minimal',
-                  fragmentation_state='disabled', ping_status='succeeded'))
+        LOG.debug(log_msg, mtu_size='minimal',
+                  fragmentation_state='disabled', ping_status='succeeded')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'],
             mtu=self.networks[0]['mtu'], fragmentation=False)
 
         # ping with the size above min mtu of 2 networks
         # fails when fragmentation is disabled
-        LOG.debug(log_msg.format(mtu_size='size above minimal',
-                  fragmentation_state='disabled', ping_status='failed'))
+        LOG.debug(log_msg, mtu_size='size above minimal',
+                  fragmentation_state='disabled', ping_status='failed')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'], should_succeed=False,
             mtu=self.networks[0]['mtu'] + 2, fragmentation=False)
 
         # ping with max mtu of 2 networks succeeds when
         # fragmentation is enabled
-        LOG.debug(log_msg.format(mtu_size='maximal',
-                  fragmentation_state='enabled', ping_status='succeeded'))
+        LOG.debug(log_msg, mtu_size='maximal',
+                  fragmentation_state='enabled', ping_status='succeeded')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'],
             mtu=self.networks[1]['mtu'])
 
         # ping with max mtu of 2 networks fails when fragmentation is disabled
-        LOG.debug(log_msg.format(mtu_size='maximal',
-                  fragmentation_state='disabled', ping_status='failed'))
+        LOG.debug(log_msg, mtu_size='maximal',
+                  fragmentation_state='disabled', ping_status='failed')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'], should_succeed=False,
             mtu=self.networks[1]['mtu'], fragmentation=False)
diff --git a/neutron_tempest_plugin/scenario/test_multiple_gws.py b/neutron_tempest_plugin/scenario/test_multiple_gws.py
index 686457d..e4f1d3d 100644
--- a/neutron_tempest_plugin/scenario/test_multiple_gws.py
+++ b/neutron_tempest_plugin/scenario/test_multiple_gws.py
@@ -38,6 +38,7 @@
 
 CONF = config.CONF
 LOG = log.getLogger(__name__)
+FRR_BASE_IMAGE = 'quay.io/nf-core/ubuntu:22.04'
 
 
 class FRROCIImage(ctn_base.DockerImage):
@@ -47,7 +48,7 @@
         baseimage: typing.Optional[str] = None,
         use_existing: bool = False,
     ):
-        super().__init__(baseimage=baseimage or 'ubuntu:22.04')
+        super().__init__(baseimage=baseimage or FRR_BASE_IMAGE)
         self.daemons = daemons
         self.tagname = 'frr-' + '-'.join(daemons)
         if use_existing and self.exist(self.tagname):
@@ -629,7 +630,8 @@
     def test_update_router_single_gw_bfd(self):
         ext_network_id = self.ext_networks[0][0]['id']
         bfd_container = self.containers[0]
-        router = self.create_router(
+        router = self._create_router_with_client(
+            self.admin_client,
             router_name=data_utils.rand_name('router'),
             admin_state_up=True,
             enable_snat=False,
diff --git a/neutron_tempest_plugin/scenario/test_ports.py b/neutron_tempest_plugin/scenario/test_ports.py
index c661d39..56cedde 100644
--- a/neutron_tempest_plugin/scenario/test_ports.py
+++ b/neutron_tempest_plugin/scenario/test_ports.py
@@ -107,8 +107,8 @@
                 if port is not None:
                     break
             except Exception as e:
-                LOG.warning('Failed to create Port, using Fixed_IP:{}, '
-                            'the Error was:{}'.format(ip, e))
+                LOG.warning('Failed to create Port, using Fixed_IP:%s, '
+                            'the Error was:%s', ip, e)
         fip, server = self._create_instance_with_port(port)
         self.check_connectivity(fip[0]['floating_ip_address'],
                                 CONF.validation.image_ssh_user,
diff --git a/neutron_tempest_plugin/scenario/test_security_groups.py b/neutron_tempest_plugin/scenario/test_security_groups.py
index 03156c7..dc0f5ef 100644
--- a/neutron_tempest_plugin/scenario/test_security_groups.py
+++ b/neutron_tempest_plugin/scenario/test_security_groups.py
@@ -51,37 +51,13 @@
     credentials = ['primary', 'admin']
     required_extensions = ['router', 'security-group']
 
-    def _verify_http_connection(self, ssh_client, ssh_server,
-                                test_ip, test_port, servers, should_pass=True):
-        """Verify if HTTP connection works using remote hosts.
-
-        :param ssh.Client ssh_client: The client host active SSH client.
-        :param ssh.Client ssh_server: The HTTP server host active SSH client.
-        :param string test_ip: IP address of HTTP server
-        :param string test_port: Port of HTTP server
-        :param list servers: List of servers for which console output will be
-                             logged in case when test case
-        :param bool should_pass: Wheter test should pass or not.
-
-        :return: if passed or not
-        :rtype: bool
-        """
-        utils.kill_nc_process(ssh_server)
-        url = 'http://%s:%d' % (test_ip, test_port)
-        utils.spawn_http_server(ssh_server, port=test_port, message='foo_ok')
-        utils.process_is_running(ssh_server, 'nc')
+    def _test_connection_and_log(self, con, *args, **kwargs):
         try:
-            ret = utils.call_url_remote(ssh_client, url)
-            if should_pass:
-                self.assertIn('foo_ok', ret)
-                return
-            self.assertNotIn('foo_ok', ret)
-        except Exception as e:
-            if not should_pass:
-                return
-            self._log_console_output(servers)
+            con.test_connection(*args, **kwargs)
+        except utils.WaitTimeout:
+            self._log_console_output()
             self._log_local_network_status()
-            raise e
+            raise
 
     @classmethod
     def setup_credentials(cls):
@@ -601,7 +577,7 @@
         for port in range(80, 84):
             with utils.StatefulConnection(
                     ssh_clients[0], ssh_clients[2], test_ip, port) as con:
-                con.test_connection(should_pass=False)
+                self._test_connection_and_log(con, should_pass=False)
 
         # add two remote-group rules with port-ranges
         rule_list = [{'protocol': constants.PROTO_NUM_TCP,
@@ -636,7 +612,7 @@
         for port in range(80, 84):
             with utils.StatefulConnection(
                     ssh_clients[0], ssh_clients[2], test_ip, port) as con:
-                con.test_connection()
+                self._test_connection_and_log(con)
 
         # list the tcp rule id by SG id and port-range
         sg_rule_id = self.os_primary.network_client.list_security_group_rules(
@@ -650,7 +626,7 @@
         for port in range(80, 82):
             with utils.StatefulConnection(
                     ssh_clients[0], ssh_clients[2], test_ip, port) as con:
-                con.test_connection(should_pass=False)
+                self._test_connection_and_log(con, should_pass=False)
 
     def _test_overlapping_sec_grp_rules(self):
         """Test security group rules with overlapping port ranges"""
@@ -714,11 +690,11 @@
         for _ in range(2):
             with utils.StatefulConnection(
                     client_ssh[0], srv_ssh, srv_ip, tcp_port) as con:
-                con.test_connection()
+                self._test_connection_and_log(con)
             for port in range(tcp_port, tcp_port + 3):
                 with utils.StatefulConnection(
                         client_ssh[1], srv_ssh, srv_ip, port) as con:
-                    con.test_connection()
+                    self._test_connection_and_log(con)
 
     def _test_remove_sec_grp_from_active_vm(self):
         """Tests the following:
@@ -906,23 +882,23 @@
                 vm_ssh[0], vm_ssh[1], srv_ip, 6666) as con:
             self.client.update_port(srv_port['id'],
                     security_groups=[ssh_sg['id'], sg['id']])
-            con.test_connection()
+            self._test_connection_and_log(con)
         with utils.StatefulConnection(
                 vm_ssh[0], vm_ssh[1], srv_ip, 6666) as con:
             self.client.update_port(
                     srv_port['id'], security_groups=[ssh_sg['id']])
-            con.test_connection(should_pass=False)
+            self._test_connection_and_log(con, should_pass=False)
         with utils.StatefulConnection(
                 vm_ssh[0], vm_ssh[1], srv_ip, 6666) as con:
             self.client.update_port(srv_port['id'],
                     security_groups=[ssh_sg['id'], sg['id']])
-            con.test_connection()
+            self._test_connection_and_log(con)
             self.client.update_port(srv_port['id'],
                     security_groups=[ssh_sg['id']])
-            con.test_connection(should_pass=False)
+            self._test_connection_and_log(con, should_pass=False)
             self.client.update_port(srv_port['id'],
                     security_groups=[ssh_sg['id'], sg['id']])
-            con.test_connection()
+            self._test_connection_and_log(con)
 
     @decorators.idempotent_id('4a724164-bbc0-4029-a844-644ece66c026')
     def test_connectivity_between_vms_using_different_sec_groups(self):
diff --git a/neutron_tempest_plugin/scenario/test_trunk.py b/neutron_tempest_plugin/scenario/test_trunk.py
index 2ba8f13..66e6254 100644
--- a/neutron_tempest_plugin/scenario/test_trunk.py
+++ b/neutron_tempest_plugin/scenario/test_trunk.py
@@ -164,14 +164,14 @@
         utils.wait_until_true(
             lambda: self._is_port_status(port, status),
             exception=RuntimeError(
-                "Timed out waiting for port {!r} to transition to get "
+                "Timed out waiting for port {!r} to transition to "
                 "status {!r}.".format(port['id'], status)))
 
     def _wait_for_trunk(self, trunk, status=constants.ACTIVE):
         utils.wait_until_true(
             lambda: self._is_trunk_status(trunk, status),
             exception=RuntimeError(
-                "Timed out waiting for trunk {!r} to transition to get "
+                "Timed out waiting for trunk {!r} to transition to "
                 "status {!r}.".format(trunk['id'], status)))
 
     def _create_ssh_client(self, floating_ip, use_advanced_image=False):
@@ -193,7 +193,6 @@
         self._wait_for_port(port=vm.port)
         self._wait_for_port(port=vm.subport)
         self.check_connectivity(
-            host=vm.floating_ip['floating_ip_address'],
             ssh_client=vm.ssh_client,
             servers=[vm.server])
 
@@ -317,7 +316,6 @@
                                          vlan_subnet=vlan_subnet)
             self._check_servers_remote_connectivity(vms=vms)
 
-    @test.unstable_test("bug 1897796")
     @testtools.skipUnless(
         (CONF.neutron_plugin_options.advanced_image_ref or
          CONF.neutron_plugin_options.default_image_is_advanced),
diff --git a/neutron_tempest_plugin/scenario/test_vlan_transparency.py b/neutron_tempest_plugin/scenario/test_vlan_transparency.py
index d9a529c..85648bc 100644
--- a/neutron_tempest_plugin/scenario/test_vlan_transparency.py
+++ b/neutron_tempest_plugin/scenario/test_vlan_transparency.py
@@ -30,20 +30,27 @@
 MAX_VLAN_ID = 4094
 
 
-class VlanTransparencyTest(base.BaseTempestTestCase):
-    credentials = ['primary', 'admin']
-    force_tenant_isolation = False
+class BaseVlanTest(base.BaseAdminTempestTestCase):
 
-    required_extensions = ['vlan-transparent', 'allowed-address-pairs']
+    """Base class common for the tests for the "vlan_transparent" and "qinq".
+
+    This base class covers common things for the tests for networks with
+    enabled either `qinq` or `vlan_transparent` attributes. Those 2 attributes
+    are functionally the same even from the end user's point of view. The only
+    difference between them is ethtype used for the outer VLAN tag but this
+    can't really be tested in the neutron-tempest-plugin tests.
+    """
+
+    network_kwargs = {}
 
     @classmethod
     def resource_setup(cls):
-        super(VlanTransparencyTest, cls).resource_setup()
+        super(BaseVlanTest, cls).resource_setup()
         # setup basic topology for servers we can log into
         cls.rand_name = data_utils.rand_name(
             cls.__name__.rsplit('.', 1)[-1])
         cls.network = cls.create_network(name=cls.rand_name,
-                                         vlan_transparent=True)
+                                         **cls.network_kwargs)
         cls.subnet = cls.create_subnet(network=cls.network,
                                        name=cls.rand_name)
         cls.router = cls.create_router_by_client()
@@ -63,7 +70,7 @@
 
     @classmethod
     def skip_checks(cls):
-        super(VlanTransparencyTest, cls).skip_checks()
+        super().skip_checks()
         if not (CONF.neutron_plugin_options.advanced_image_ref or
                 CONF.neutron_plugin_options.default_image_is_advanced):
             raise cls.skipException(
@@ -89,12 +96,11 @@
                                   networks=[{'port': self.vm_ports[-1]['id']}],
                                   name=server_name)['server']
 
-    def _configure_vlan_transparent(self, port, ssh_client,
-                                    vlan_tag, vlan_ip):
+    def _configure_inner_vlan(self, port, ssh_client, vlan_tag, vlan_ip):
         ip_command = ip.IPCommand(ssh_client=ssh_client)
         addresses = ip_command.list_addresses(port=port)
         port_iface = ip.get_port_device_name(addresses, port)
-        subport_iface = ip_command.configure_vlan_transparent(
+        subport_iface = ip_command.configure_inner_vlan(
             port=port, vlan_tag=vlan_tag, ip_addresses=[vlan_ip])
 
         for address in ip_command.list_addresses(ip_addresses=vlan_ip):
@@ -113,8 +119,9 @@
                           username=username,
                           pkey=self.keypair['private_key'])
 
-    def _test_basic_vlan_transparency_connectivity(
+    def _test_basic_inner_vlan_connectivity(
             self, port_security=True, use_allowed_address_pairs=False):
+        self._ensure_ethtype()
         vlan_tag = data_utils.rand_int_id(start=MIN_VLAN_ID, end=MAX_VLAN_ID)
         vlan_ipmask_template = '192.168.%d.{ip_last_byte}/24' % (vlan_tag %
                                                                  256)
@@ -138,13 +145,11 @@
             ssh_clients.append(
                 self._create_ssh_client(floating_ip=floating_ips[i]))
 
-            self.check_connectivity(
-                host=floating_ips[i]['floating_ip_address'],
-                ssh_client=ssh_clients[i])
-            self._configure_vlan_transparent(port=self.vm_ports[-1],
-                                             ssh_client=ssh_clients[i],
-                                             vlan_tag=vlan_tag,
-                                             vlan_ip=vlan_ipmasks[i])
+            self.check_connectivity(ssh_client=ssh_clients[i])
+            self._configure_inner_vlan(port=self.vm_ports[-1],
+                                       ssh_client=ssh_clients[i],
+                                       vlan_tag=vlan_tag,
+                                       vlan_ip=vlan_ipmasks[i])
 
         if port_security:
             # Ping from vm0 to vm1 via VLAN interface should fail because
@@ -175,12 +180,63 @@
             self.vm_ports[-2]['fixed_ips'][0]['ip_address'],
             servers=vms)
 
+
+class VlanTransparencyTest(BaseVlanTest):
+    credentials = ['primary', 'admin']
+    force_tenant_isolation = False
+
+    required_extensions = ['vlan-transparent', 'allowed-address-pairs']
+
+    network_kwargs = {'vlan_transparent': True}
+
+    def _ensure_ethtype(self):
+        self.assertTrue(self.network.get('vlan_transparent'))
+        self.assertFalse(self.network.get('qinq'))
+
     @decorators.idempotent_id('a2694e3a-6d4d-4a23-9fcc-c3ed3ef37b16')
     def test_vlan_transparent_port_sec_disabled(self):
-        self._test_basic_vlan_transparency_connectivity(
+        self._test_basic_inner_vlan_connectivity(
             port_security=False, use_allowed_address_pairs=False)
 
     @decorators.idempotent_id('2dd03b4f-9c20-4cda-8c6a-40fa453ec69a')
     def test_vlan_transparent_allowed_address_pairs(self):
-        self._test_basic_vlan_transparency_connectivity(
+        self._test_basic_inner_vlan_connectivity(
+            port_security=True, use_allowed_address_pairs=True)
+
+
+class VlanQinqTest(BaseVlanTest):
+    credentials = ['primary', 'admin']
+    force_tenant_isolation = False
+
+    required_extensions = ['qinq', 'allowed-address-pairs']
+
+    network_kwargs = {
+        'qinq': True,
+        'provider_network_type': 'vlan'}
+
+    @classmethod
+    def resource_setup(cls):
+        cls.network_kwargs['provider_physical_network'] = (
+            CONF.neutron_plugin_options.provider_vlans[0])
+        super().resource_setup()
+
+    @classmethod
+    def skip_checks(cls):
+        super().skip_checks()
+        if not CONF.neutron_plugin_options.provider_vlans:
+            raise cls.skipException(
+                'Physical network is required to run these tests.')
+
+    def _ensure_ethtype(self):
+        self.assertFalse(self.network.get('vlan_transparent'))
+        self.assertTrue(self.network.get('qinq'))
+
+    @decorators.idempotent_id('ae78398e-9242-46b4-a5fc-227581821fca')
+    def test_vlan_transparent_port_sec_disabled(self):
+        self._test_basic_inner_vlan_connectivity(
+            port_security=False, use_allowed_address_pairs=False)
+
+    @decorators.idempotent_id('6ca983cd-b1c5-4e2c-949e-4be8ffa22a9c')
+    def test_vlan_transparent_allowed_address_pairs(self):
+        self._test_basic_inner_vlan_connectivity(
             port_security=True, use_allowed_address_pairs=True)
diff --git a/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py b/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
index e70eb03..904335d 100644
--- a/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
+++ b/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
@@ -14,16 +14,15 @@
 #    under the License.
 
 from contextlib import contextmanager
-from oslo_log import log
-import testtools
 
+from oslo_log import log
 from tempest.common import utils
 from tempest import config
 from tempest.lib.common.utils import data_utils
 from tempest.lib.common.utils.linux import remote_client
 from tempest.lib.common.utils import test_utils
-
 from tempest.lib import decorators
+import testtools
 
 from neutron_tempest_plugin.tap_as_a_service.scenario import manager
 
@@ -151,7 +150,7 @@
 
         # Ensure tcpdump is up and running
         psax = self.monitor_client.exec_command("ps -ax")
-        self.assertTrue("tcpdump" in psax)
+        self.assertIn("tcpdump", psax)
 
         # Run traffic from left_vm to right_vm
         LOG.debug('Check ICMP traffic: ping %s ', right_ip)
diff --git a/releasenotes/notes/deprecate-run-tests-opts-cdf54c17e72d80ac.yaml b/releasenotes/notes/deprecate-run-tests-opts-cdf54c17e72d80ac.yaml
new file mode 100644
index 0000000..a36b333
--- /dev/null
+++ b/releasenotes/notes/deprecate-run-tests-opts-cdf54c17e72d80ac.yaml
@@ -0,0 +1,9 @@
+---
+deprecations:
+  - |
+    The following options have been deprecated, in favor of the mechanism to
+    enable/disable tests according to the available extensions.
+
+    - ``[bgpvpn] run_bgpvpn_tests``
+    - ``[fwaas] run_fwaas_tests``
+    - ``[sfc] run_sfc_tests``
diff --git a/releasenotes/notes/dynamic-routing-base-image-12e76a6d85411a6d.yaml b/releasenotes/notes/dynamic-routing-base-image-12e76a6d85411a6d.yaml
new file mode 100644
index 0000000..303e095
--- /dev/null
+++ b/releasenotes/notes/dynamic-routing-base-image-12e76a6d85411a6d.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - |
+    The new ``[dynamic_routing] base_image`` option has been added. This option
+    allows customizing the reference of the base container image used for
+    connectivity check in dynamic routing plugin tests.
diff --git a/roles/docker-setup/tasks/main.yml b/roles/docker-setup/tasks/main.yml
index 19d8bfb..1b0e2d7 100644
--- a/roles/docker-setup/tasks/main.yml
+++ b/roles/docker-setup/tasks/main.yml
@@ -4,6 +4,14 @@
     name: docker.io
     state: present
 
+- name: Install docker-buildx (only for Ubuntu and Debian)
+  become: yes
+  package:
+    name: docker-buildx
+    state: present
+  when:
+    - (ansible_facts['distribution'] | lower) in ['ubuntu', 'debian']
+
 - name: Copy 52_docker_for_tempest to /etc/sudoers.d
   copy:
     src: 52_docker_for_tempest
diff --git a/setup.cfg b/setup.cfg
index 3e352a0..0962924 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -6,7 +6,7 @@
 author = OpenStack
 author_email = openstack-discuss@lists.openstack.org
 home_page = https://opendev.org/openstack/neutron-tempest-plugin
-python_requires = >=3.6
+python_requires = >=3.9
 classifier =
     Environment :: OpenStack
     Intended Audience :: Information Technology
@@ -15,10 +15,10 @@
     Operating System :: POSIX :: Linux
     Programming Language :: Python
     Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.6
-    Programming Language :: Python :: 3.7
-    Programming Language :: Python :: 3.8
     Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Programming Language :: Python :: 3.11
+    Programming Language :: Python :: 3.12
 
 [files]
 packages =
diff --git a/test-requirements.txt b/test-requirements.txt
index 0151f21..ebde755 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,7 +1,7 @@
-hacking>=3.2.0,<3.3.0 # Apache-2.0
+hacking>=6.1.0,<6.2.0 # Apache-2.0
 
 coverage>=4.4.1 # Apache-2.0
-flake8-import-order==0.12 # LGPLv3
+flake8-import-order>=0.18.0,<0.19.0 # LGPLv3
 python-subunit>=1.0.0 # Apache-2.0/BSD
 oslotest>=3.2.0 # Apache-2.0
 stestr>=1.0.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index 2f7da5c..c8add2c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -62,9 +62,10 @@
 # E126 continuation line over-indented for hanging indent
 # E128 continuation line under-indented for visual indent
 # E129 visually indented line with same indent as next logical line
+# I202 Additional newline in a group of imports.
 # N530 direct neutron imports not allowed
 # W504 line break after binary operator
-ignore = E126,E128,E129,N530,W504
+ignore = E126,E128,E129,I202,N530,W504
 # H106: Don't put vim configuration in source files
 # H203: Use assertIs(Not)None to check for None
 # H204: Use assert(Not)Equal to check for equality
diff --git a/zuul.d/2023_1_jobs.yaml b/zuul.d/2023_1_jobs.yaml
index 4325b83..cedbc67 100644
--- a/zuul.d/2023_1_jobs.yaml
+++ b/zuul.d/2023_1_jobs.yaml
@@ -1,6 +1,7 @@
 - job:
     name: neutron-tempest-plugin-openvswitch-2023-1
     parent: neutron-tempest-plugin-openvswitch
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2023.1
     vars:
       network_api_extensions_openvswitch:
@@ -105,6 +106,7 @@
 - job:
     name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2023-1
     parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2023.1
     vars:
       network_api_extensions_common: *api_extensions
@@ -143,6 +145,7 @@
 - job:
     name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2023-1
     parent: neutron-tempest-plugin-openvswitch-2023-1
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2023.1
     vars:
       devstack_localrc:
@@ -160,6 +163,7 @@
 - job:
     name: neutron-tempest-plugin-linuxbridge-2023-1
     parent: neutron-tempest-plugin-linuxbridge
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2023.1
     vars:
       network_api_extensions_common: *api_extensions
@@ -188,6 +192,7 @@
           (^neutron_tempest_plugin.scenario.test_floatingip.FloatingIPPortDetailsTest.test_floatingip_port_details)"
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_linuxbridge) | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -201,6 +206,7 @@
 - job:
     name: neutron-tempest-plugin-ovn-2023-1
     parent: neutron-tempest-plugin-ovn
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2023.1
     vars:
       network_api_extensions_ovn:
@@ -210,12 +216,9 @@
           (^neutron_tempest_plugin.scenario)|\
           (^tempest.api.compute.servers.test_attach_interfaces)|\
           (^tempest.api.compute.servers.test_multiple_create)"
-      # TODO(jlibosva): Remove the NetworkWritableMtuTest test from the list
-      # once east/west fragmentation is supported in core OVN
-      tempest_exclude_regex: "\
-          (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_services:
         q-ovn-metadata-agent: true
         q-ovn-agent: false
@@ -232,6 +235,7 @@
 - job:
     name: neutron-tempest-plugin-dvr-multinode-scenario-2023-1
     parent: neutron-tempest-plugin-dvr-multinode-scenario
+    nodeset: openstack-two-node-jammy
     override-checkout: stable/2023.1
     vars:
       network_api_extensions_common: *api_extensions
@@ -245,13 +249,17 @@
 - job:
     name: neutron-tempest-plugin-designate-scenario-2023-1
     parent: neutron-tempest-plugin-designate-scenario
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2023.1
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-sfc-2023-1
     parent: neutron-tempest-plugin-sfc
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2023.1
     vars:
       devstack_localrc:
@@ -260,6 +268,7 @@
 - job:
     name: neutron-tempest-plugin-bgpvpn-bagpipe-2023-1
     parent: neutron-tempest-plugin-bgpvpn-bagpipe
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2023.1
     vars:
       devstack_localrc:
@@ -268,11 +277,22 @@
 - job:
     name: neutron-tempest-plugin-dynamic-routing-2023-1
     parent: neutron-tempest-plugin-dynamic-routing
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2023.1
+    vars:
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
+      # NOTE(haleyb): Scenario tests are disabled since they are failing trying
+      # to create the unmaintained/2023.1 branch due to an os-ken issue. See
+      # https://review.opendev.org/c/openstack/neutron-dynamic-routing/+/935090
+      # for more details.
+      tempest_exclude_regex: "\
+          (^neutron_tempest_plugin.neutron_dynamic_routing.scenario)"
 
 - job:
     name: neutron-tempest-plugin-fwaas-2023-1
-    parent: neutron-tempest-plugin-fwaas
+    parent: neutron-tempest-plugin-fwaas-openvswitch
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2023.1
     vars:
       devstack_localrc:
@@ -281,6 +301,7 @@
 - job:
     name: neutron-tempest-plugin-vpnaas-2023-1
     parent: neutron-tempest-plugin-vpnaas
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2023.1
     vars:
       devstack_localrc:
@@ -289,6 +310,7 @@
 - job:
     name: neutron-tempest-plugin-tap-as-a-service-2023-1
     parent: neutron-tempest-plugin-tap-as-a-service
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2023.1
     vars:
       devstack_localrc:
diff --git a/zuul.d/2024_1_jobs.yaml b/zuul.d/2024_1_jobs.yaml
index f0a182b..674d1ab 100644
--- a/zuul.d/2024_1_jobs.yaml
+++ b/zuul.d/2024_1_jobs.yaml
@@ -1,6 +1,7 @@
 - job:
     name: neutron-tempest-plugin-openvswitch-2024-1
     parent: neutron-tempest-plugin-openvswitch
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2024.1
     vars:
       network_api_extensions_openvswitch: &api_extensions_openvswitch
@@ -107,6 +108,7 @@
 - job:
     name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2024-1
     parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2024.1
     vars:
       network_api_extensions_common: *api_extensions
@@ -140,6 +142,7 @@
 - job:
     name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2024-1
     parent: neutron-tempest-plugin-openvswitch-2024-1
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2024.1
     vars:
       devstack_localrc:
@@ -157,6 +160,7 @@
 - job:
     name: neutron-tempest-plugin-linuxbridge-2024-1
     parent: neutron-tempest-plugin-linuxbridge
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2024.1
     vars:
       network_api_extensions_common: *api_extensions
@@ -185,6 +189,7 @@
           (^neutron_tempest_plugin.scenario.test_floatingip.FloatingIPPortDetailsTest.test_floatingip_port_details)"
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_linuxbridge) | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -198,6 +203,7 @@
 - job:
     name: neutron-tempest-plugin-ovn-2024-1
     parent: neutron-tempest-plugin-ovn
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2024.1
     vars:
       network_api_extensions_ovn:
@@ -207,12 +213,9 @@
           (^neutron_tempest_plugin.scenario)|\
           (^tempest.api.compute.servers.test_attach_interfaces)|\
           (^tempest.api.compute.servers.test_multiple_create)"
-      # TODO(jlibosva): Remove the NetworkWritableMtuTest test from the list
-      # once east/west fragmentation is supported in core OVN
-      tempest_exclude_regex: "\
-          (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -226,6 +229,7 @@
 - job:
     name: neutron-tempest-plugin-dvr-multinode-scenario-2024-1
     parent: neutron-tempest-plugin-dvr-multinode-scenario
+    nodeset: openstack-two-node-jammy
     override-checkout: stable/2024.1
     vars:
       network_api_extensions_common: *api_extensions
@@ -239,13 +243,17 @@
 - job:
     name: neutron-tempest-plugin-designate-scenario-2024-1
     parent: neutron-tempest-plugin-designate-scenario
+    nodeset: neutron-nested-virt-ubuntu-jammy
     override-checkout: stable/2024.1
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-sfc-2024-1
     parent: neutron-tempest-plugin-sfc
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2024.1
     vars:
       devstack_localrc:
@@ -254,6 +262,7 @@
 - job:
     name: neutron-tempest-plugin-bgpvpn-bagpipe-2024-1
     parent: neutron-tempest-plugin-bgpvpn-bagpipe
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2024.1
     vars:
       devstack_localrc:
@@ -262,11 +271,16 @@
 - job:
     name: neutron-tempest-plugin-dynamic-routing-2024-1
     parent: neutron-tempest-plugin-dynamic-routing
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2024.1
+    vars:
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-fwaas-2024-1
-    parent: neutron-tempest-plugin-fwaas
+    parent: neutron-tempest-plugin-fwaas-openvswitch
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2024.1
     vars:
       devstack_localrc:
@@ -275,6 +289,7 @@
 - job:
     name: neutron-tempest-plugin-vpnaas-2024-1
     parent: neutron-tempest-plugin-vpnaas
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2024.1
     vars:
       devstack_localrc:
@@ -283,6 +298,7 @@
 - job:
     name: neutron-tempest-plugin-tap-as-a-service-2024-1
     parent: neutron-tempest-plugin-tap-as-a-service
+    nodeset: openstack-single-node-jammy
     override-checkout: stable/2024.1
     vars:
       devstack_localrc:
diff --git a/zuul.d/2023_2_jobs.yaml b/zuul.d/2024_2_jobs.yaml
similarity index 83%
rename from zuul.d/2023_2_jobs.yaml
rename to zuul.d/2024_2_jobs.yaml
index 7406440..f42bdbf 100644
--- a/zuul.d/2023_2_jobs.yaml
+++ b/zuul.d/2024_2_jobs.yaml
@@ -1,7 +1,8 @@
 - job:
-    name: neutron-tempest-plugin-openvswitch-2023-2
+    name: neutron-tempest-plugin-openvswitch-2024-2
     parent: neutron-tempest-plugin-openvswitch
-    override-checkout: stable/2023.2
+    nodeset: neutron-nested-virt-ubuntu-jammy
+    override-checkout: stable/2024.2
     vars:
       network_api_extensions_openvswitch: &api_extensions_openvswitch
         - dhcp_agent_scheduler
@@ -57,6 +58,7 @@
         - pagination
         - port-device-profile
         - port-mac-address-regenerate
+        - port-trusted-vif
         - port-resource-request
         - port-resource-request-groups
         - port-security
@@ -75,6 +77,8 @@
         - router
         - router_availability_zone
         - security-group
+        - security-groups-default-rules
+        - security-groups-normalized-cidr
         - security-groups-remote-address-group
         - segment
         - service-type
@@ -95,7 +99,6 @@
         - uplink-status-propagation
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
-        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -103,9 +106,10 @@
               available_features: "{{ network_available_features | join(',') }}"
 
 - job:
-    name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2023-2
+    name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2024-2
     parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
-    override-checkout: stable/2023.2
+    nodeset: neutron-nested-virt-ubuntu-jammy
+    override-checkout: stable/2024.2
     vars:
       network_api_extensions_common: *api_extensions
       network_api_extensions_openvswitch: *api_extensions_openvswitch
@@ -125,7 +129,6 @@
           (^neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)"
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
-        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -136,9 +139,10 @@
               firewall_driver: iptables_hybrid
 
 - job:
-    name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2023-2
-    parent: neutron-tempest-plugin-openvswitch-2023-2
-    override-checkout: stable/2023.2
+    name: neutron-tempest-plugin-openvswitch-enforce-scope-new-defaults-2024-2
+    parent: neutron-tempest-plugin-openvswitch-2024-2
+    nodeset: neutron-nested-virt-ubuntu-jammy
+    override-checkout: stable/2024.2
     vars:
       devstack_localrc:
         # Enabeling the scope and new defaults for services.
@@ -153,9 +157,10 @@
         NEUTRON_ENFORCE_SCOPE: true
 
 - job:
-    name: neutron-tempest-plugin-linuxbridge-2023-2
+    name: neutron-tempest-plugin-linuxbridge-2024-2
     parent: neutron-tempest-plugin-linuxbridge
-    override-checkout: stable/2023.2
+    nodeset: neutron-nested-virt-ubuntu-jammy
+    override-checkout: stable/2024.2
     vars:
       network_api_extensions_common: *api_extensions
       network_api_extensions_linuxbridge:
@@ -194,9 +199,10 @@
               firewall_driver: iptables
 
 - job:
-    name: neutron-tempest-plugin-ovn-2023-2
+    name: neutron-tempest-plugin-ovn-2024-2
     parent: neutron-tempest-plugin-ovn
-    override-checkout: stable/2023.2
+    nodeset: neutron-nested-virt-ubuntu-jammy
+    override-checkout: stable/2024.2
     vars:
       network_api_extensions_ovn:
         - vlan-transparent
@@ -211,9 +217,7 @@
           (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
-      devstack_services:
-        q-ovn-metadata-agent: true
-        q-ovn-agent: false
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -225,9 +229,10 @@
               firewall_driver: ovn
 
 - job:
-    name: neutron-tempest-plugin-dvr-multinode-scenario-2023-2
+    name: neutron-tempest-plugin-dvr-multinode-scenario-2024-2
     parent: neutron-tempest-plugin-dvr-multinode-scenario
-    override-checkout: stable/2023.2
+    nodeset: openstack-two-node-jammy
+    override-checkout: stable/2024.2
     vars:
       network_api_extensions_common: *api_extensions
       network_api_extensions_dvr:
@@ -235,56 +240,49 @@
         - dvr
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_dvr) | join(',') }}"
-        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
-    name: neutron-tempest-plugin-designate-scenario-2023-2
+    name: neutron-tempest-plugin-designate-scenario-2024-2
     parent: neutron-tempest-plugin-designate-scenario
-    override-checkout: stable/2023.2
+    nodeset: neutron-nested-virt-ubuntu-jammy
+    override-checkout: stable/2024.2
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
-    name: neutron-tempest-plugin-sfc-2023-2
+    name: neutron-tempest-plugin-sfc-2024-2
     parent: neutron-tempest-plugin-sfc
-    override-checkout: stable/2023.2
-    vars:
-      devstack_localrc:
-        NEUTRON_DEPLOY_MOD_WSGI: false
+    nodeset: openstack-single-node-jammy
+    override-checkout: stable/2024.2
 
 - job:
-    name: neutron-tempest-plugin-bgpvpn-bagpipe-2023-2
+    name: neutron-tempest-plugin-bgpvpn-bagpipe-2024-2
     parent: neutron-tempest-plugin-bgpvpn-bagpipe
-    override-checkout: stable/2023.2
-    vars:
-      devstack_localrc:
-        NEUTRON_DEPLOY_MOD_WSGI: false
+    nodeset: openstack-single-node-jammy
+    override-checkout: stable/2024.2
 
 - job:
-    name: neutron-tempest-plugin-dynamic-routing-2023-2
+    name: neutron-tempest-plugin-dynamic-routing-2024-2
     parent: neutron-tempest-plugin-dynamic-routing
-    override-checkout: stable/2023.2
+    nodeset: openstack-single-node-jammy
+    override-checkout: stable/2024.2
 
 - job:
-    name: neutron-tempest-plugin-fwaas-2023-2
-    parent: neutron-tempest-plugin-fwaas
-    override-checkout: stable/2023.2
-    vars:
-      devstack_localrc:
-        NEUTRON_DEPLOY_MOD_WSGI: false
+    name: neutron-tempest-plugin-fwaas-2024-2
+    parent: neutron-tempest-plugin-fwaas-openvswitch
+    nodeset: openstack-single-node-jammy
+    override-checkout: stable/2024.2
 
 - job:
-    name: neutron-tempest-plugin-vpnaas-2023-2
+    name: neutron-tempest-plugin-vpnaas-2024-2
     parent: neutron-tempest-plugin-vpnaas
-    override-checkout: stable/2023.2
-    vars:
-      devstack_localrc:
-        NEUTRON_DEPLOY_MOD_WSGI: false
+    nodeset: openstack-single-node-jammy
+    override-checkout: stable/2024.2
 
 - job:
-    name: neutron-tempest-plugin-tap-as-a-service-2023-2
+    name: neutron-tempest-plugin-tap-as-a-service-2024-2
     parent: neutron-tempest-plugin-tap-as-a-service
-    override-checkout: stable/2023.2
-    vars:
-      devstack_localrc:
-        NEUTRON_DEPLOY_MOD_WSGI: false
+    nodeset: openstack-single-node-jammy
+    override-checkout: stable/2024.2
diff --git a/zuul.d/2025_1_jobs.yaml b/zuul.d/2025_1_jobs.yaml
new file mode 100644
index 0000000..b34db9f
--- /dev/null
+++ b/zuul.d/2025_1_jobs.yaml
@@ -0,0 +1,242 @@
+- job:
+    name: neutron-tempest-plugin-openvswitch-2025-1
+    parent: neutron-tempest-plugin-openvswitch
+    nodeset: neutron-nested-virt-ubuntu-noble
+    override-checkout: stable/2025.1
+    vars:
+      network_api_extensions_openvswitch: &api_extensions_openvswitch
+        - dhcp_agent_scheduler
+        - local_ip
+        - qos-bw-minimum-ingress
+      tempest_test_regex: "\
+          (^neutron_tempest_plugin.api)|\
+          (^neutron_tempest_plugin.scenario)|\
+          (^tempest.api.compute.servers.test_attach_interfaces)|\
+          (^tempest.api.compute.servers.test_multiple_create)"
+      network_available_features: &available_features
+        - ipv6_metadata
+      network_api_extensions_common: &api_extensions
+        - address-group
+        - address-scope
+        - agent
+        - allowed-address-pairs
+        - auto-allocated-topology
+        - availability_zone
+        - binding
+        - default-subnetpools
+        - dns-domain-ports
+        - dns-integration
+        - dns-integration-domain-keywords
+        - empty-string-filtering
+        - expose-port-forwarding-in-fip
+        - expose-l3-conntrack-helper
+        - ext-gw-mode
+        - external-net
+        - extra_dhcp_opt
+        - extraroute
+        - extraroute-atomic
+        - filter-validation
+        - fip-port-details
+        - flavors
+        - floating-ip-port-forwarding
+        - floating-ip-port-forwarding-detail
+        - floatingip-pools
+        - ip-substring-filtering
+        - l3-conntrack-helper
+        - l3-ext-ndp-proxy
+        - l3-flavors
+        - l3-ha
+        - l3-ndp-proxy
+        - l3_agent_scheduler
+        - metering
+        - multi-provider
+        - net-mtu
+        - net-mtu-writable
+        - network-ip-availability
+        - network_availability_zone
+        - network-segment-range
+        - pagination
+        - port-device-profile
+        - port-mac-address-regenerate
+        - port-trusted-vif
+        - port-resource-request
+        - port-resource-request-groups
+        - port-security
+        - port-security-groups-filtering
+        - project-id
+        - provider
+        - qos
+        - qos-fip
+        - quotas
+        - quota_details
+        - rbac-address-group
+        - rbac-address-scope
+        - rbac-policies
+        - rbac-security-groups
+        - rbac-subnetpool
+        - router
+        - router_availability_zone
+        - security-group
+        - security-groups-default-rules
+        - security-groups-normalized-cidr
+        - security-groups-remote-address-group
+        - segment
+        - service-type
+        - sorting
+        - standard-attr-description
+        - standard-attr-revisions
+        - standard-attr-segment
+        - standard-attr-tag
+        - standard-attr-timestamp
+        - stateful-security-group
+        - subnet_allocation
+        - subnet-dns-publish-fixed-ip
+        - subnet-service-types
+        - subnetpool-prefix-ops
+        - tag-ports-during-bulk-creation
+        - trunk
+        - trunk-details
+        - uplink-status-propagation
+      devstack_localrc:
+        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
+      devstack_local_conf:
+        test-config:
+          $TEMPEST_CONFIG:
+            network-feature-enabled:
+              available_features: "{{ network_available_features | join(',') }}"
+
+- job:
+    name: neutron-tempest-plugin-openvswitch-ubuntu-jammy-2025-1
+    parent: neutron-tempest-plugin-openvswitch-2025-1
+    nodeset: neutron-nested-virt-ubuntu-jammy
+
+- job:
+    name: neutron-tempest-plugin-openvswitch-iptables_hybrid-2025-1
+    parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
+    nodeset: neutron-nested-virt-ubuntu-noble
+    override-checkout: stable/2025.1
+    vars:
+      network_api_extensions_common: *api_extensions
+      network_api_extensions_openvswitch: *api_extensions_openvswitch
+      network_available_features: *available_features
+      tempest_test_regex: "\
+          (^neutron_tempest_plugin.api)|\
+          (^neutron_tempest_plugin.scenario)|\
+          (^tempest.api.compute.servers.test_attach_interfaces)|\
+          (^tempest.api.compute.servers.test_multiple_create)"
+      # TODO(slaweq): remove trunks subport_connectivity test from blacklist
+      # when bug https://bugs.launchpad.net/neutron/+bug/1838760 will be fixed
+      # TODO(akatz): remove established tcp session verification test when the
+      # bug https://bugzilla.redhat.com/show_bug.cgi?id=1965036 will be fixed
+      tempest_exclude_regex: "\
+          (^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_subport_connectivity)|\
+          (^neutron_tempest_plugin.scenario.test_security_groups.StatefulNetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)|\
+          (^neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)"
+      devstack_localrc:
+        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
+      devstack_local_conf:
+        test-config:
+          $TEMPEST_CONFIG:
+            network-feature-enabled:
+              available_features: "{{ network_available_features | join(',') }}"
+            neutron_plugin_options:
+              available_type_drivers: flat,vlan,local,vxlan
+              firewall_driver: iptables_hybrid
+
+- job:
+    name: neutron-tempest-plugin-ovn-enforce-scope-old-defaults-2025-1
+    parent: neutron-tempest-plugin-ovn-2025-1
+    nodeset: neutron-nested-virt-ubuntu-noble
+    override-checkout: stable/2025.1
+    vars:
+      devstack_localrc:
+        NEUTRON_ENFORCE_SCOPE: false
+
+- job:
+    name: neutron-tempest-plugin-ovn-2025-1
+    parent: neutron-tempest-plugin-ovn
+    nodeset: neutron-nested-virt-ubuntu-noble
+    override-checkout: stable/2025.1
+    vars:
+      network_api_extensions_ovn:
+        - vlan-transparent
+        - qinq
+        - external-gateway-multihoming
+      tempest_test_regex: "\
+          (^neutron_tempest_plugin.api)|\
+          (^neutron_tempest_plugin.scenario)|\
+          (^tempest.api.compute.servers.test_attach_interfaces)|\
+          (^tempest.api.compute.servers.test_multiple_create)"
+      devstack_localrc:
+        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
+      devstack_local_conf:
+        test-config:
+          $TEMPEST_CONFIG:
+            network-feature-enabled:
+              available_features: ""
+            neutron_plugin_options:
+              available_type_drivers: local,flat,vlan,geneve
+              is_igmp_snooping_enabled: True
+              firewall_driver: ovn
+
+- job:
+    name: neutron-tempest-plugin-ovn-ubuntu-jammy-2025-1
+    parent: neutron-tempest-plugin-ovn-2025-1
+    nodeset: neutron-nested-virt-ubuntu-jammy
+
+- job:
+    name: neutron-tempest-plugin-dvr-multinode-scenario-2025-1
+    parent: neutron-tempest-plugin-dvr-multinode-scenario
+    nodeset: openstack-two-node-noble
+    override-checkout: stable/2025.1
+    vars:
+      network_api_extensions_common: *api_extensions
+      network_api_extensions_dvr:
+        - dhcp_agent_scheduler
+        - dvr
+      devstack_localrc:
+        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_dvr) | join(',') }}"
+
+- job:
+    name: neutron-tempest-plugin-designate-scenario-2025-1
+    parent: neutron-tempest-plugin-designate-scenario
+    nodeset: neutron-nested-virt-ubuntu-noble
+    override-checkout: stable/2025.1
+    vars:
+      network_api_extensions_common: *api_extensions
+
+- job:
+    name: neutron-tempest-plugin-sfc-2025-1
+    parent: neutron-tempest-plugin-sfc
+    nodeset: openstack-single-node-noble
+    override-checkout: stable/2025.1
+
+- job:
+    name: neutron-tempest-plugin-bgpvpn-bagpipe-2025-1
+    parent: neutron-tempest-plugin-bgpvpn-bagpipe
+    nodeset: openstack-single-node-noble
+    override-checkout: stable/2025.1
+
+- job:
+    name: neutron-tempest-plugin-dynamic-routing-2025-1
+    parent: neutron-tempest-plugin-dynamic-routing
+    nodeset: openstack-single-node-noble
+    override-checkout: stable/2025.1
+
+- job:
+    name: neutron-tempest-plugin-fwaas-2025-1
+    parent: neutron-tempest-plugin-fwaas-openvswitch
+    nodeset: openstack-single-node-noble
+    override-checkout: stable/2025.1
+
+- job:
+    name: neutron-tempest-plugin-vpnaas-2025-1
+    parent: neutron-tempest-plugin-vpnaas
+    nodeset: openstack-single-node-noble
+    override-checkout: stable/2025.1
+
+- job:
+    name: neutron-tempest-plugin-tap-as-a-service-2025-1
+    parent: neutron-tempest-plugin-tap-as-a-service
+    nodeset: openstack-single-node-noble
+    override-checkout: stable/2025.1
diff --git a/zuul.d/base-nested-switch.yaml b/zuul.d/base-nested-switch.yaml
index f8fa799..fa5217c 100644
--- a/zuul.d/base-nested-switch.yaml
+++ b/zuul.d/base-nested-switch.yaml
@@ -18,16 +18,26 @@
         nodes:
           - controller
 
-# Base nested switch job for 2023.1 and later
+- nodeset:
+    name: neutron-nested-virt-ubuntu-noble
+    nodes:
+      - name: controller
+        label: nested-virt-ubuntu-noble
+    groups:
+      - name: tempest
+        nodes:
+          - controller
+
+# Base nested switch job for 2025.1 and later
 - job:
     name: neutron-tempest-plugin-base-nested-switch
     parent: neutron-tempest-plugin-base
     abstract: true
     branches:
-      regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed)).*$
+      regex: ^(unmaintained|stable/(victoria|wallaby|xena|yoga|zed|2023|2024)).*$
       negate: true
     # Comment nodeset and vars to switch back to non nested nodes
-    nodeset: neutron-nested-virt-ubuntu-jammy
+    nodeset: neutron-nested-virt-ubuntu-noble
     vars: &nested_virt_vars
       devstack_localrc:
         LIBVIRT_TYPE: kvm
@@ -39,6 +49,16 @@
         DEFAULT_IMAGE_NAME: cirros-0.5.3-x86_64-disk
         DEFAULT_IMAGE_FILE_NAME: cirros-0.5.3-x86_64-disk.img
 
+# Base nested switch job for 2023.1 till 2024.2
+- job:
+    name: neutron-tempest-plugin-base-nested-switch
+    parent: neutron-tempest-plugin-base
+    abstract: true
+    branches: ^(unmaintained|stable)/(2023|2024).*$
+    # Comment nodeset and vars to switch back to non nested nodes
+    nodeset: neutron-nested-virt-ubuntu-jammy
+    vars: *nested_virt_vars
+
 # Base nested switch job for yoga and zed
 - job:
     name: neutron-tempest-plugin-base-nested-switch
diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml
index 90379a1..3d4f0e9 100644
--- a/zuul.d/master_jobs.yaml
+++ b/zuul.d/master_jobs.yaml
@@ -27,9 +27,9 @@
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
         PHYSICAL_NETWORK: public
         IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
-        CIRROS_VERSION: 0.6.2
-        DEFAULT_IMAGE_NAME: cirros-0.6.2-x86_64-uec
-        DEFAULT_IMAGE_FILE_NAME: cirros-0.6.2-x86_64-uec.tar.gz
+        CIRROS_VERSION: 0.6.3
+        DEFAULT_IMAGE_NAME: cirros-0.6.3-x86_64-uec
+        DEFAULT_IMAGE_FILE_NAME: cirros-0.6.3-x86_64-uec.tar.gz
         ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
         ADVANCED_INSTANCE_TYPE: ntp_image_256M
         ADVANCED_INSTANCE_USER: ubuntu
@@ -37,14 +37,7 @@
         BUILD_TIMEOUT: 784
         # TODO(lucasagomes): Re-enable MOD_WSGI after
         # https://bugs.launchpad.net/neutron/+bug/1912359 is implemented
-        NEUTRON_DEPLOY_MOD_WSGI: false
-        # TODO(ihrachys): remove OVN_BUILD_FROM_SOURCE once the OS packages
-        # include at least OVN v22.03.3.
-        OVN_BUILD_FROM_SOURCE: True
-        # TODO(ihrachys): switch back to a tagged version when it's released
-        # OVN_BRANCH: "v22.03.3"
-        OVN_BRANCH: "36e3ab9b47e93af0599a818e9d6b2930e49473f0"
-        OVS_BRANCH: "2410b95597fcec5f733caf77febdb46f4ffacd27"
+        NEUTRON_DEPLOY_MOD_WSGI: true
       devstack_plugins:
         neutron: https://opendev.org/openstack/neutron.git
         neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
@@ -98,6 +91,7 @@
         - port-resource-request
         - port-resource-request-groups
         - port-mac-address-regenerate
+        - port-trusted-vif
         - port-security
         - port-security-groups-filtering
         - project-id
@@ -148,6 +142,7 @@
         neutron-tag-ports-during-bulk-creation: true
         neutron-ndp-proxy: true
         neutron-subnet-external-network: true
+        neutron-port-trusted-vif: true
         br-ex-tcpdump: true
         br-int-flows: true
         # Cinder services
@@ -194,19 +189,20 @@
               image_is_advanced: true
               available_type_drivers: flat,geneve,vlan,gre,local,vxlan
               provider_net_base_segm_id: 1
+              snat_rules_apply_to_nested_networks: true
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
       - ^setup.cfg$
       - ^.*\.rst$
-      - ^.*\.conf\.sample$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^tools/.*$
       - ^tox.ini$
       - ^plugin.spec$
@@ -219,16 +215,8 @@
       - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-openvswitch
@@ -264,7 +252,6 @@
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
-        NEUTRON_DEPLOY_MOD_WSGI: true
       devstack_local_conf:
         post-config:
           $NEUTRON_CONF:
@@ -285,19 +272,20 @@
             neutron_plugin_options:
               available_type_drivers: flat,vlan,local,vxlan
               firewall_driver: openvswitch
+              snat_rules_apply_to_nested_networks: true
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
       - ^setup.cfg$
       - ^.*\.rst$
-      - ^.*\.conf\.sample$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^tools/.*$
       - ^tox.ini$
       - ^plugin.spec$
@@ -326,16 +314,8 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-openvswitch-iptables_hybrid
@@ -378,7 +358,6 @@
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_openvswitch) | join(',') }}"
-        NEUTRON_DEPLOY_MOD_WSGI: true
       devstack_local_conf:
         post-config:
           $NEUTRON_CONF:
@@ -400,19 +379,20 @@
             neutron_plugin_options:
               available_type_drivers: flat,vlan,local,vxlan
               firewall_driver: iptables_hybrid
+              snat_rules_apply_to_nested_networks: true
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
       - ^setup.cfg$
       - ^.*\.rst$
-      - ^.*\.conf\.sample$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^tools/.*$
       - ^tox.ini$
       - ^plugin.spec$
@@ -442,33 +422,16 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
-    name: neutron-tempest-plugin-openvswitch-enforce-scope-old-defaults
-    parent: neutron-tempest-plugin-openvswitch
+    name: neutron-tempest-plugin-ovn-enforce-scope-old-defaults
+    parent: neutron-tempest-plugin-ovn
     vars:
       devstack_localrc:
         NEUTRON_ENFORCE_SCOPE: false
 
-
-# TODO(slaweq): remove that job's definition as soon as new job
-# "neutron-tempest-plugin-openvswitch-iptables_hybrid" will be used in the
-# neutron repo as a parent for a
-# "neutron-ovs-tempest-plugin-scenario-iptables_hybrid-nftables" job
-- job:
-    name: neutron-tempest-plugin-scenario-openvswitch-iptables_hybrid
-    parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
-
 - job:
     name: neutron-tempest-plugin-openvswitch-distributed-dhcp
     parent: neutron-tempest-plugin-openvswitch
@@ -551,7 +514,7 @@
         Q_AGENT: linuxbridge
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_linuxbridge) | join(',') }}"
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
-        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge
+        Q_ML2_PLUGIN_MECHANISM_DRIVERS: linuxbridge
       devstack_local_conf:
         post-config:
           $NEUTRON_CONF:
@@ -575,19 +538,20 @@
               available_type_drivers: flat,vlan,local,vxlan
               q_agent: linuxbridge
               firewall_driver: iptables
+              snat_rules_apply_to_nested_networks: true
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
       - ^setup.cfg$
       - ^.*\.rst$
-      - ^.*\.conf\.sample$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^tools/.*$
       - ^tox.ini$
       - ^plugin.spec$
@@ -617,23 +581,8 @@
       - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
-
-# TODO(slaweq): remove that job's definition as soon as new job
-# "neutron-tempest-plugin-linuxbridge" will be used in the neutron repo as
-# a parent for a "neutron-linuxbridge-tempest-plugin-scenario-nftables" job
-- job:
-    name: neutron-tempest-plugin-scenario-linuxbridge
-    parent: neutron-tempest-plugin-linuxbridge
 
 - job:
     name: neutron-tempest-plugin-ovn
@@ -643,16 +592,16 @@
     vars:
       network_api_extensions_ovn:
         - vlan-transparent
+        - qinq
         - external-gateway-multihoming
-      # TODO(jlibosva): Remove the NetworkWritableMtuTest test from the list
-      # once east/west fragmentation is supported in core OVN
-      tempest_exclude_regex: "\
-          (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
       devstack_localrc:
         Q_AGENT: ovn
         OVN_AGENT_EXTENSIONS: 'metadata'
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_ovn) | join(',') }}"
-        Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
+        # NOTE(ralonsoh): during the eventlet removal, the "logger" mech
+        # driver has been removed from this list. Re-add it once the removal
+        # is finished or the mech driver does not call monkey_patch().
+        Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn
         Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve
         Q_ML2_TENANT_NETWORK_TYPE: geneve
         Q_USE_PROVIDERNET_FOR_PUBLIC: true
@@ -661,14 +610,6 @@
         OVN_DBS_LOG_LEVEL: dbg
         ENABLE_TLS: True
         OVN_IGMP_SNOOPING_ENABLE: True
-        # TODO(ihrachys): remove OVN_BUILD_FROM_SOURCE once the OS packages
-        # include at least OVN v22.03.3.
-        OVN_BUILD_FROM_SOURCE: True
-        # TODO(ihrachys): switch back to a tagged version when it's released
-        # OVN_BRANCH: "v22.03.3"
-        OVN_BRANCH: "36e3ab9b47e93af0599a818e9d6b2930e49473f0"
-        OVS_BRANCH: "2410b95597fcec5f733caf77febdb46f4ffacd27"
-        OVS_SYSCONFDIR: "/usr/local/etc/openvswitch"
       devstack_services:
         br-ex-tcpdump: true
         br-int-flows: true
@@ -702,19 +643,26 @@
             DEFAULT:
               enable_dvr: false
               vlan_transparent: true
+              vlan_qinq: true
           /$NEUTRON_CORE_PLUGIN_CONF:
             ml2:
               type_drivers: local,flat,vlan,geneve
             ml2_type_vlan:
               network_vlan_ranges: foo:1:10,public
+            ovn:
+              # This feature is available in OVN v24.03.4
+              # Latest Ubuntu 24.04 provides OVN v24.03.2
+              ovn_router_indirect_snat: false
         test-config:
           $TEMPEST_CONFIG:
             network-feature-enabled:
               available_features: "{{ network_available_features | join(',') }}"
             neutron_plugin_options:
+              provider_vlans: public,
               available_type_drivers: local,flat,vlan,geneve
               is_igmp_snooping_enabled: True
               firewall_driver: ovn
+              snat_rules_apply_to_nested_networks: false
       zuul_copy_output:
         '{{ devstack_base_dir }}/data/ovs': 'logs'
         '{{ devstack_base_dir }}/data/ovn': 'logs'
@@ -728,16 +676,16 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
       - ^setup.cfg$
       - ^.*\.rst$
-      - ^.*\.conf\.sample$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^tools/.*$
       - ^tox.ini$
       - ^plugin.spec$
@@ -771,16 +719,8 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 # TODO(slaweq): remove that job's definition as soon as new job
 # "neutron-tempest-plugin-ovn" will be used in the neutron-lib repo as
@@ -789,7 +729,7 @@
     name: neutron-tempest-plugin-api
     parent: neutron-tempest-plugin-ovn
 
-- job:
+- job:  # Needed only in Neutron stable/2024.2
     name: neutron-tempest-plugin-api-ovs-wsgi
     parent: neutron-tempest-plugin-openvswitch
     voting: false
@@ -797,7 +737,7 @@
       devstack_localrc:
         NEUTRON_DEPLOY_MOD_WSGI: true
 
-- job:
+- job:  # Needed only in Neutron stable/2024.2
     name: neutron-tempest-plugin-api-ovn-wsgi
     parent: neutron-tempest-plugin-ovn
     voting: false
@@ -807,7 +747,8 @@
 
 - job:
     name: neutron-tempest-plugin-dvr-multinode-scenario
-    parent: tempest-multinode-full
+    parent: tempest-multinode-full-py3
+    timeout: 10800
     description: |
         Perform setup for Neutron tempest tests in multinode with DVR scenario
     roles:
@@ -834,9 +775,9 @@
         USE_PYTHON3: true
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_dvr) | join(',') }}"
         PHYSICAL_NETWORK: default
-        CIRROS_VERSION: 0.6.2
-        DEFAULT_IMAGE_NAME: cirros-0.6.2-x86_64-uec
-        DEFAULT_IMAGE_FILE_NAME: cirros-0.6.2-x86_64-uec.tar.gz
+        CIRROS_VERSION: 0.6.3
+        DEFAULT_IMAGE_NAME: cirros-0.6.3-x86_64-uec
+        DEFAULT_IMAGE_FILE_NAME: cirros-0.6.3-x86_64-uec.tar.gz
         IMAGE_URLS: https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
         ADVANCED_IMAGE_NAME: ubuntu-20.04-minimal-cloudimg-amd64
         ADVANCED_INSTANCE_TYPE: ntp_image_256M
@@ -855,15 +796,16 @@
       devstack_services:
         tls-proxy: true
         tempest: true
+        br-ex-tcpdump: true
+        br-int-flows: true
         # Disable OVN services
-        br-ex-tcpdump: false
-        br-int-flows: false
         ovn-controller: false
         ovn-northd: false
         ovs-vswitchd: false
         ovsdb-server: false
         q-ovn-metadata-agent: false
         # Neutron services
+        q-svc: true
         q-agt: true
         q-dhcp: true
         q-l3: true
@@ -937,12 +879,13 @@
               available_type_drivers: flat,geneve,vlan,gre,local,vxlan
               l3_agent_mode: dvr_snat
               firewall_driver: openvswitch
+              snat_rules_apply_to_nested_networks: false
     group-vars:
       subnode:
         devstack_services:
           tls-proxy: true
-          br-ex-tcpdump: false
-          br-int-flows: false
+          br-ex-tcpdump: true
+          br-int-flows: true
           # Disable OVN services
           ovn-controller: false
           ovn-northd: false
@@ -958,8 +901,11 @@
           neutron-log: true
           neutron-port-forwarding: true
           # Cinder services
+          c-api: false
           c-bak: false
+          c-sch: false
           c-vol: false
+          cinder: false
           # We don't need Swift to be run in the Neutron jobs
           s-account: false
           s-container: false
@@ -991,16 +937,16 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
       - ^setup.cfg$
       - ^.*\.rst$
-      - ^.*\.conf\.sample$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^tools/.*$
       - ^tox.ini$
       - ^plugin.spec$
@@ -1028,16 +974,8 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-designate-scenario
@@ -1068,16 +1006,16 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
       - ^setup.cfg$
       - ^.*\.rst$
-      - ^.*\.conf\.sample$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^tools/.*$
       - ^tox.ini$
       - ^plugin.spec$
@@ -1088,6 +1026,7 @@
       - ^neutron/scheduler/.*$
       - ^neutron/services/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
@@ -1121,16 +1060,8 @@
       - ^neutron/services/timestamp/.*$
       - ^neutron/services/trunk/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-sfc
@@ -1174,7 +1105,6 @@
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_sfc) | join(',') }}"
-        NEUTRON_DEPLOY_MOD_WSGI: true
       # TODO(bcafarel): tests still fail from time to time in parallel
       # https://bugs.launchpad.net/neutron/+bug/1851500
       # https://bugs.launchpad.net/networking-sfc/+bug/1660366
@@ -1182,17 +1112,18 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
-      - ^.*\.conf\.sample$
       - ^setup.cfg$
       - ^.*\.rst$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|tap_as_a_service|vpnaas).*$
@@ -1208,16 +1139,8 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-bgpvpn-bagpipe
@@ -1254,24 +1177,24 @@
         BAGPIPE_DATAPLANE_DRIVER_IPVPN: "ovs"
         BAGPIPE_BGP_PEERS: "-"
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_bgpvpn) | join(',') }}"
-        NEUTRON_DEPLOY_MOD_WSGI: true
       devstack_plugins:
         networking-bgpvpn: https://git.openstack.org/openstack/networking-bgpvpn
         networking-bagpipe: https://git.openstack.org/openstack/networking-bagpipe
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
-      - ^.*\.conf\.sample$
       - ^setup.cfg$
       - ^.*\.rst$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
@@ -1287,16 +1210,8 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-dynamic-routing
@@ -1327,17 +1242,18 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
-      - ^.*\.conf\.sample$
       - ^setup.cfg$
       - ^.*\.rst$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|sfc|tap_as_a_service|vpnaas).*$
@@ -1351,20 +1267,12 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
-    name: neutron-tempest-plugin-fwaas
-    parent: neutron-tempest-plugin-base
+    name: neutron-tempest-plugin-fwaas-ovn
+    parent: neutron-tempest-plugin-ovn
     timeout: 10800
     required-projects:
       - openstack/neutron-fwaas
@@ -1376,42 +1284,30 @@
       tempest_test_regex: ^neutron_tempest_plugin\.fwaas
       devstack_plugins:
         neutron-fwaas: https://opendev.org/openstack/neutron-fwaas.git
-        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
       network_api_extensions_fwaas:
         - fwaas_v2
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_fwaas) | join(',') }}"
-        Q_AGENT: openvswitch
-        Q_ML2_TENANT_NETWORK_TYPE: vxlan
-        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
-        NEUTRON_DEPLOY_MOD_WSGI: true
-      devstack_services:
-        # Disable OVN services
-        br-ex-tcpdump: false
-        br-int-flows: false
-        ovn-controller: false
-        ovn-northd: false
-        q-ovn-metadata-agent: false
-        # Neutron services
-        q-agt: true
-        q-dhcp: true
-        q-meta: true
-        q-metering: true
-        q-l3: true
-        neutron-log: false
-    irrelevant-files:
+      devstack_local_conf:
+        test-config:
+          $TEMPEST_CONFIG:
+            fwaas:
+              driver: ovn
+    irrelevant-files: &fwaas_irrelevant_files
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
-      - ^.*\.conf\.sample$
       - ^setup.cfg$
       - ^.*\.rst$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
@@ -1427,21 +1323,51 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
+
+- job:
+    name: neutron-tempest-plugin-fwaas-openvswitch
+    parent: neutron-tempest-plugin-openvswitch
+    required-projects:
+      - openstack/neutron-fwaas
+      - openstack/neutron
+      - openstack/neutron-tempest-plugin
+      - openstack/tempest
+    vars:
+      tempest_concurrency: 4
+      tempest_test_regex: ^neutron_tempest_plugin\.fwaas
+      devstack_plugins:
+        neutron-fwaas: https://opendev.org/openstack/neutron-fwaas.git
+      network_api_extensions_fwaas:
+        - fwaas_v2
+      devstack_localrc:
+        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_fwaas) | join(',') }}"
+      devstack_services:
+        # Neutron services
+        q-agt: true
+        q-dhcp: true
+        q-meta: true
+        q-metering: true
+        q-l3: true
+        neutron-log: false
+      devstack_local_conf:
+        test-config:
+          $TEMPEST_CONFIG:
+            fwaas:
+              driver: openvswitch
+    irrelevant-files: *fwaas_irrelevant_files
+
+# TODO(slaweq):
+# Remove this alias once jobs in fwaas project will be moved to the new names
+- job:
+    name: neutron-tempest-plugin-fwaas
+    parent: neutron-tempest-plugin-fwaas-openvswitch
 
 - job:
     name: neutron-tempest-plugin-vpnaas
     parent: neutron-tempest-plugin-base
-    timeout: 3900
+    timeout: 5400
     required-projects:
       - openstack/neutron
       - openstack/neutron-vpnaas
@@ -1462,7 +1388,6 @@
         Q_AGENT: openvswitch
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
-        NEUTRON_DEPLOY_MOD_WSGI: true
       devstack_services:
         # Disable OVN services
         br-ex-tcpdump: false
@@ -1481,17 +1406,18 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
-      - ^.*\.conf\.sample$
       - ^setup.cfg$
       - ^.*\.rst$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
@@ -1507,21 +1433,13 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-vpnaas-ovn
     parent: neutron-tempest-plugin-base
-    timeout: 3900
+    timeout: 5400
     required-projects:
       - openstack/neutron
       - openstack/neutron-vpnaas
@@ -1539,6 +1457,7 @@
       devstack_localrc:
         IPSEC_PACKAGE: strongswan
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_vpnaas) | join(',') }}"
+        Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn
       devstack_services:
         q-ovn-vpn-agent: true
       devstack_local_conf:
@@ -1551,17 +1470,18 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
-      - ^.*\.conf\.sample$
       - ^setup.cfg$
       - ^.*\.rst$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
@@ -1577,16 +1497,8 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
 
 - job:
     name: neutron-tempest-plugin-tap-as-a-service
@@ -1613,7 +1525,6 @@
         Q_AGENT: openvswitch
         Q_ML2_TENANT_NETWORK_TYPE: vxlan,vlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
-        NEUTRON_DEPLOY_MOD_WSGI: true
       devstack_local_conf:
         post-config:
           /$NEUTRON_CORE_PLUGIN_CONF:
@@ -1671,17 +1582,18 @@
     irrelevant-files:
       - ^\.pylintrc$
       - ^(test-|)requirements.txt$
-      - lower-constraints.txt
+      - ^lower-constraints.txt$
       - ^releasenotes/.*$
       - ^doc/.*$
-      - ^.*\.conf\.sample$
       - ^setup.cfg$
       - ^.*\.rst$
+      - ^.*\.sample$
       - ^neutron/locale/.*$
       - ^neutron/tests/unit/.*$
-      - ^neutron/tests/fullstack/.*
-      - ^neutron/tests/functional/.*
+      - ^neutron/tests/fullstack/.*$
+      - ^neutron/tests/functional/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|vpnaas).*$
@@ -1697,13 +1609,5 @@
       - ^playbooks/.*linuxbridge.*$
       - ^vagrant/.*$
       # Ignore everything except for zuul.d/project.yaml
-      - ^zuul.d/2023_1_jobs.yaml
-      - ^zuul.d/2023_2_jobs.yaml
-      - ^zuul.d/2024_1_jobs.yaml
+      - ^zuul.d/.*_jobs\.yaml$
       - ^zuul.d/base-nested-switch.yaml
-      - ^zuul.d/master_jobs.yaml
-      - ^zuul.d/victoria_jobs.yaml
-      - ^zuul.d/wallaby_jobs.yaml
-      - ^zuul.d/xena_jobs.yaml
-      - ^zuul.d/yoga_jobs.yaml
-      - ^zuul.d/zed_jobs.yaml
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 9a20f80..f9f70dd 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -3,29 +3,25 @@
     check:
       jobs:
         - neutron-tempest-plugin-openvswitch
-        - neutron-tempest-plugin-openvswitch-iptables_hybrid
-        - neutron-tempest-plugin-openvswitch-enforce-scope-old-defaults
         - neutron-tempest-plugin-ovn
-        - neutron-tempest-plugin-designate-scenario:
-            # TODO(slaweq) make job voting again once bug
-            # https://bugs.launchpad.net/designate/+bug/2072627 will be fixed
-            voting: false
+        - neutron-tempest-plugin-designate-scenario
     gate:
       jobs:
         - neutron-tempest-plugin-openvswitch
         - neutron-tempest-plugin-ovn
-        - neutron-tempest-plugin-openvswitch-iptables_hybrid
-        - neutron-tempest-plugin-openvswitch-enforce-scope-old-defaults
     #TODO(slaweq): Move neutron-tempest-plugin-dvr-multinode-scenario out of
     #              the experimental queue when it will be more stable
     experimental:
       jobs:
-        - neutron-tempest-plugin-linuxbridge
         - neutron-tempest-plugin-dvr-multinode-scenario
         - neutron-tempest-plugin-openvswitch-distributed-dhcp
         - neutron-tempest-plugin-openvswitch-iptables_hybrid-distributed-dhcp
-        - neutron-tempest-plugin-api-ovs-wsgi
-        - neutron-tempest-plugin-api-ovn-wsgi
+        - neutron-tempest-plugin-ovn-enforce-scope-old-defaults
+        - neutron-tempest-plugin-openvswitch-iptables_hybrid
+    periodic:
+      jobs:
+        - neutron-tempest-plugin-ovn-enforce-scope-old-defaults
+        - neutron-tempest-plugin-openvswitch-iptables_hybrid
 
 
 - project-template:
@@ -143,24 +139,6 @@
         - neutron-tempest-plugin-dvr-multinode-scenario-2023-1
 
 - project-template:
-    name: neutron-tempest-plugin-jobs-2023-2
-    check:
-      jobs:
-        - neutron-tempest-plugin-openvswitch-2023-2
-        - neutron-tempest-plugin-openvswitch-iptables_hybrid-2023-2
-        - neutron-tempest-plugin-ovn-2023-2
-        - neutron-tempest-plugin-designate-scenario-2023-2
-    gate:
-      jobs:
-        - neutron-tempest-plugin-ovn-2023-2
-    #TODO(slaweq): Move neutron-tempest-plugin-dvr-multinode-scenario out of
-    #              the experimental queue when it will be more stable
-    experimental:
-      jobs:
-        - neutron-tempest-plugin-linuxbridge-2023-2
-        - neutron-tempest-plugin-dvr-multinode-scenario-2023-2
-
-- project-template:
     name: neutron-tempest-plugin-jobs-2024-1
     check:
       jobs:
@@ -178,50 +156,92 @@
         - neutron-tempest-plugin-linuxbridge-2024-1
         - neutron-tempest-plugin-dvr-multinode-scenario-2024-1
 
+- project-template:
+    name: neutron-tempest-plugin-jobs-2024-2
+    check:
+      jobs:
+        - neutron-tempest-plugin-openvswitch-2024-2
+        - neutron-tempest-plugin-openvswitch-iptables_hybrid-2024-2
+        - neutron-tempest-plugin-ovn-2024-2
+        - neutron-tempest-plugin-designate-scenario-2024-2
+    gate:
+      jobs:
+        - neutron-tempest-plugin-ovn-2024-2
+    #TODO(slaweq): Move neutron-tempest-plugin-dvr-multinode-scenario out of
+    #              the experimental queue when it will be more stable
+    experimental:
+      jobs:
+        - neutron-tempest-plugin-linuxbridge-2024-2
+        - neutron-tempest-plugin-dvr-multinode-scenario-2024-2
+
+- project-template:
+    name: neutron-tempest-plugin-jobs-2025-1
+    check:
+      jobs:
+        - neutron-tempest-plugin-openvswitch-2025-1
+        - neutron-tempest-plugin-openvswitch-iptables_hybrid-2025-1
+        - neutron-tempest-plugin-ovn-2025-1
+        - neutron-tempest-plugin-designate-scenario-2025-1
+        - neutron-tempest-plugin-openvswitch-ubuntu-jammy-2025-1
+        - neutron-tempest-plugin-ovn-ubuntu-jammy-2025-1
+    gate:
+      jobs:
+        - neutron-tempest-plugin-ovn-2025-1
+    #TODO(slaweq): Move neutron-tempest-plugin-dvr-multinode-scenario out of
+    #              the experimental queue when it will be more stable
+    experimental:
+      jobs:
+        - neutron-tempest-plugin-dvr-multinode-scenario-2025-1
+
 - project:
     templates:
       - build-openstack-docs-pti
       - neutron-tempest-plugin-jobs
-      - neutron-tempest-plugin-jobs-2023-1
-      - neutron-tempest-plugin-jobs-2023-2
       - neutron-tempest-plugin-jobs-2024-1
+      - neutron-tempest-plugin-jobs-2024-2
+      - neutron-tempest-plugin-jobs-2025-1
       - check-requirements
       - tempest-plugin-jobs
       - release-notes-jobs-python3
     check:
       jobs:
-        - neutron-tempest-plugin-sfc:
-            # Note(lajoskatona): make it voting when #2068727
-            # is fixed.
-            voting: false
-        - neutron-tempest-plugin-sfc-2023-1
-        - neutron-tempest-plugin-sfc-2023-2
+        - neutron-tempest-plugin-sfc
         - neutron-tempest-plugin-sfc-2024-1
+        - neutron-tempest-plugin-sfc-2024-2
+        - neutron-tempest-plugin-sfc-2025-1
         - neutron-tempest-plugin-bgpvpn-bagpipe
-        - neutron-tempest-plugin-bgpvpn-bagpipe-2023-1
-        - neutron-tempest-plugin-bgpvpn-bagpipe-2023-2
         - neutron-tempest-plugin-bgpvpn-bagpipe-2024-1
-        - neutron-tempest-plugin-dynamic-routing
-        - neutron-tempest-plugin-dynamic-routing-2023-1
-        - neutron-tempest-plugin-dynamic-routing-2023-2
+        - neutron-tempest-plugin-bgpvpn-bagpipe-2024-2
+        - neutron-tempest-plugin-bgpvpn-bagpipe-2025-1
+        - neutron-tempest-plugin-dynamic-routing:
+            # TODO(ralonsoh): this job is temporarily disabled; it will be
+            # restored once [1] is merged. This patch has been successfully
+            # tested in [2]. This job is removed from the gate queue,
+            # thus **remember to restore it in this queue too**.
+            # [1]https://review.opendev.org/c/openstack/neutron/+/941202
+            # [2]https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/940906
+            voting: false
         - neutron-tempest-plugin-dynamic-routing-2024-1
-        - neutron-tempest-plugin-fwaas
-        - neutron-tempest-plugin-fwaas-2023-1
-        - neutron-tempest-plugin-fwaas-2023-2
+        - neutron-tempest-plugin-dynamic-routing-2024-2
+        - neutron-tempest-plugin-dynamic-routing-2025-1
+        - neutron-tempest-plugin-fwaas-ovn
+        - neutron-tempest-plugin-fwaas-openvswitch
         - neutron-tempest-plugin-fwaas-2024-1
+        - neutron-tempest-plugin-fwaas-2024-2
+        - neutron-tempest-plugin-fwaas-2025-1
         - neutron-tempest-plugin-vpnaas
         - neutron-tempest-plugin-vpnaas-ovn
-        - neutron-tempest-plugin-vpnaas-2023-1
-        - neutron-tempest-plugin-vpnaas-2023-2
         - neutron-tempest-plugin-vpnaas-2024-1
+        - neutron-tempest-plugin-vpnaas-2024-2
+        - neutron-tempest-plugin-vpnaas-2025-1
         - neutron-tempest-plugin-tap-as-a-service
-        - neutron-tempest-plugin-tap-as-a-service-2023-1
-        - neutron-tempest-plugin-tap-as-a-service-2023-2
         - neutron-tempest-plugin-tap-as-a-service-2024-1
+        - neutron-tempest-plugin-tap-as-a-service-2024-2
+        - neutron-tempest-plugin-tap-as-a-service-2025-1
 
     gate:
       jobs:
+        - neutron-tempest-plugin-sfc
         - neutron-tempest-plugin-bgpvpn-bagpipe
-        - neutron-tempest-plugin-dynamic-routing
-        - neutron-tempest-plugin-fwaas
+        - neutron-tempest-plugin-fwaas-ovn
         - neutron-tempest-plugin-vpnaas-ovn
diff --git a/zuul.d/victoria_jobs.yaml b/zuul.d/victoria_jobs.yaml
index 291e01d..c7bc886 100644
--- a/zuul.d/victoria_jobs.yaml
+++ b/zuul.d/victoria_jobs.yaml
@@ -207,6 +207,7 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
         # NOTE(bcafarel) guestmount binary not available on host OS
         IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
         ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
@@ -231,6 +232,8 @@
           (^neutron_tempest_plugin.scenario)|\
           (^tempest.api.compute.servers.test_attach_interfaces)|\
           (^tempest.api.compute.servers.test_multiple_create)"
+      # NOTE(ralonsoh): ``NetworkWritableMtuTest`` excluded because of https://bugs.launchpad.net/neutron/+bug/2082344
+      tempest_exclude_regex: "^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest.*"
       network_api_extensions: *api_extensions
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
@@ -242,6 +245,7 @@
         CUSTOMIZE_IMAGE: false
         OVN_BRANCH: "v21.06.0"
         OVS_BRANCH: "a4b04276ab5934d087669ff2d191a23931335c87"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_services:
         q-ovn-metadata-agent: true
         q-ovn-agent: false
@@ -314,6 +318,8 @@
     required-projects: *required-projects-victoria
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-vpnaas-victoria
diff --git a/zuul.d/wallaby_jobs.yaml b/zuul.d/wallaby_jobs.yaml
index 7df6876..5b35bbc 100644
--- a/zuul.d/wallaby_jobs.yaml
+++ b/zuul.d/wallaby_jobs.yaml
@@ -9,6 +9,8 @@
         override-checkout: 1.8.0
       - openstack/tempest
     vars:
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
       tempest_concurrency: 4
       tempest_test_regex: ^neutron_tempest_plugin\.api
       # TODO(slaweq): find a way to put this list of extensions in
@@ -158,6 +160,7 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -174,11 +177,14 @@
           (^neutron_tempest_plugin.scenario)|\
           (^tempest.api.compute.servers.test_attach_interfaces)|\
           (^tempest.api.compute.servers.test_multiple_create)"
+      # NOTE(ralonsoh): ``NetworkWritableMtuTest`` excluded because of https://bugs.launchpad.net/neutron/+bug/2082344
+      tempest_exclude_regex: "^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest.*"
       network_api_extensions: *api_extensions
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
         OVN_BRANCH: "v21.06.0"
         OVS_BRANCH: "a4b04276ab5934d087669ff2d191a23931335c87"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_services:
         q-ovn-metadata-agent: true
         q-ovn-agent: false
@@ -212,6 +218,8 @@
         override-checkout: 0.16.0
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-sfc-wallaby
@@ -243,6 +251,8 @@
     required-projects: *required-projects-wallaby
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-vpnaas-wallaby
diff --git a/zuul.d/xena_jobs.yaml b/zuul.d/xena_jobs.yaml
index e1e13c4..b03b6c5 100644
--- a/zuul.d/xena_jobs.yaml
+++ b/zuul.d/xena_jobs.yaml
@@ -9,11 +9,14 @@
         override-checkout: 2.3.0
       - openstack/tempest
     vars:
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
       tempest_concurrency: 4
       tempest_test_regex: ^neutron_tempest_plugin\.api
       # TODO(slaweq): find a way to put this list of extensions in
       # neutron repository and keep it different per branch,
       # then it could be removed from here
+      tempest_exclude_regex: "^neutron_tempest_plugin.api.admin.test_logging.LoggingTestJSON.*"
       network_api_extensions_common: &api_extensions
         - address-group
         - address-scope
@@ -153,6 +156,7 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -169,9 +173,12 @@
           (^neutron_tempest_plugin.scenario)|\
           (^tempest.api.compute.servers.test_attach_interfaces)|\
           (^tempest.api.compute.servers.test_multiple_create)"
+      # NOTE(ralonsoh): ``NetworkWritableMtuTest`` excluded because of https://bugs.launchpad.net/neutron/+bug/2082344
+      tempest_exclude_regex: "^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest.*"
       network_api_extensions: *api_extensions
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_services:
         q-ovn-metadata-agent: true
         q-ovn-agent: false
@@ -199,6 +206,8 @@
     required-projects: *required-projects-xena
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-sfc-xena
diff --git a/zuul.d/yoga_jobs.yaml b/zuul.d/yoga_jobs.yaml
index 6e0ddcd..be6c65e 100644
--- a/zuul.d/yoga_jobs.yaml
+++ b/zuul.d/yoga_jobs.yaml
@@ -9,11 +9,14 @@
         override-checkout: 2.6.0
       - openstack/tempest
     vars:
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
       tempest_concurrency: 4
       tempest_test_regex: ^neutron_tempest_plugin\.api
       # TODO(slaweq): find a way to put this list of extensions in
       # neutron repository and keep it different per branch,
       # then it could be removed from here
+      tempest_exclude_regex: "^neutron_tempest_plugin.api.admin.test_logging.LoggingTestJSON.*"
       network_api_extensions_common: &api_extensions
         - address-group
         - address-scope
@@ -158,6 +161,7 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -175,11 +179,20 @@
           (^neutron_tempest_plugin.scenario)|\
           (^tempest.api.compute.servers.test_attach_interfaces)|\
           (^tempest.api.compute.servers.test_multiple_create)"
+      # NOTE(ralonsoh): tests disabled because of https://bugs.launchpad.net/neutron/+bug/2082070
+      # NOTE(ralonsoh): ``NetworkWritableMtuTest`` excluded because of https://bugs.launchpad.net/neutron/+bug/2082344
+      tempest_exclude_regex: "\
+          (neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupIPv4Test.test_connectivity_between_vms_using_different_sec_groups)|\
+          (neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupIPv4Test.test_packets_of_any_connection_state_can_reach_dest)|\
+          (neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest.test_vlan_transparent_allowed_address_pairs)|\
+          (neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest.test_vlan_transparent_port_sec_disabled)|\
+          (neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest.*)"
       network_api_extensions: *api_extensions
       network_api_extensions_ovn:
         - vlan-transparent
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions + network_api_extensions_ovn) | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_services:
         q-ovn-metadata-agent: true
         q-ovn-agent: false
@@ -208,6 +221,8 @@
     nodeset: neutron-nested-virt-ubuntu-focal
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-sfc-yoga
diff --git a/zuul.d/zed_jobs.yaml b/zuul.d/zed_jobs.yaml
index 176527d..9ae2d87 100644
--- a/zuul.d/zed_jobs.yaml
+++ b/zuul.d/zed_jobs.yaml
@@ -168,6 +168,7 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_linuxbridge) | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -186,13 +187,20 @@
           (^neutron_tempest_plugin.scenario)|\
           (^tempest.api.compute.servers.test_attach_interfaces)|\
           (^tempest.api.compute.servers.test_multiple_create)"
+      # NOTE(ralonsoh): tests disabled because of https://bugs.launchpad.net/neutron/+bug/2082070
+      # NOTE(ralonsoh): ``NetworkWritableMtuTest`` excluded because of https://bugs.launchpad.net/neutron/+bug/2082344
       tempest_exclude_regex: "\
-          (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
+          (neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupIPv4Test.test_connectivity_between_vms_using_different_sec_groups)|\
+          (neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupIPv4Test.test_packets_of_any_connection_state_can_reach_dest)|\
+          (neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest.test_vlan_transparent_allowed_address_pairs)|\
+          (neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest.test_vlan_transparent_port_sec_disabled)|\
+          (neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest.*)"
       network_api_extensions: *api_extensions
       network_api_extensions_ovn:
         - vlan-transparent
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions + network_api_extensions_ovn) | join(',') }}"
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_services:
         q-ovn-metadata-agent: true
         q-ovn-agent: false
@@ -217,10 +225,18 @@
     name: neutron-tempest-plugin-designate-scenario-zed
     parent: neutron-tempest-plugin-designate-scenario
     override-checkout: unmaintained/zed
-    required-projects: *required-projects-zed
+    required-projects:
+      - openstack/neutron
+      - name: openstack/neutron-tempest-plugin
+        override-checkout: zed-last
+      - openstack/tempest
+      - name: openstack/designate-tempest-plugin
+        override-checkout: zed-last
     nodeset: neutron-nested-virt-ubuntu-focal
     vars:
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        NEUTRON_DEPLOY_MOD_WSGI: false
 
 - job:
     name: neutron-tempest-plugin-sfc-zed
@@ -257,6 +273,7 @@
         Q_AGENT: openvswitch
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
+        NEUTRON_DEPLOY_MOD_WSGI: false
       devstack_services:
         # Disable OVN services
         br-ex-tcpdump: false
@@ -277,7 +294,7 @@
 
 - job:
     name: neutron-tempest-plugin-fwaas-zed
-    parent: neutron-tempest-plugin-fwaas
+    parent: neutron-tempest-plugin-fwaas-openvswitch
     nodeset: openstack-single-node-focal
     override-checkout: unmaintained/zed
     required-projects: *required-projects-zed
