diff --git a/doc/source/conf.py b/doc/source/conf.py
index 4b4189d..2349713 100755
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -36,7 +36,7 @@
 master_doc = 'index'
 
 # General information about the project.
-copyright = u'2017, OpenStack Developers'
+copyright = '2017, OpenStack Developers'
 
 # openstackdocstheme options
 openstackdocs_repo_name = 'openstack/neutron-tempest-plugin'
@@ -71,8 +71,8 @@
 latex_documents = [
     ('index',
      'openstack.tex',
-     u'openstack Documentation',
-     u'OpenStack Developers', 'manual'),
+     'openstack Documentation',
+     'OpenStack Developers', 'manual'),
 ]
 
 # Example configuration for intersphinx: refer to the Python standard library.
diff --git a/neutron_tempest_plugin/api/base.py b/neutron_tempest_plugin/api/base.py
index 07fcb0b..e080d42 100644
--- a/neutron_tempest_plugin/api/base.py
+++ b/neutron_tempest_plugin/api/base.py
@@ -142,6 +142,7 @@
         cls.trunks = []
         cls.network_segment_ranges = []
         cls.conntrack_helpers = []
+        cls.ndp_proxies = []
 
     @classmethod
     def reserve_external_subnet_cidrs(cls):
@@ -161,6 +162,10 @@
             for trunk in cls.trunks:
                 cls._try_delete_resource(cls.delete_trunk, trunk)
 
+            # Clean up ndp proxy
+            for ndp_proxy in cls.ndp_proxies:
+                cls._try_delete_resource(cls.delete_ndp_proxy, ndp_proxy)
+
             # Clean up port forwardings
             for pf in cls.port_forwardings:
                 cls._try_delete_resource(cls.delete_port_forwarding, pf)
@@ -1132,6 +1137,47 @@
         client = client or cth.get('client') or cls.client
         client.delete_conntrack_helper(cth['router_id'], cth['id'])
 
+    @classmethod
+    def create_ndp_proxy(cls, router_id, port_id, client=None, **kwargs):
+        """Creates a ndp proxy.
+
+        Create a ndp proxy and schedule it for later deletion.
+        If a client is passed, then it is used for deleting the NDP proxy too.
+
+        :param router_id: router ID where to create the ndp proxy.
+
+        :param port_id: port ID which the ndp proxy associate with
+
+        :param client: network client to be used for creating and cleaning up
+        the ndp proxy.
+
+        :param **kwargs: additional creation parameters to be forwarded to
+        networking server.
+        """
+        client = client or cls.client
+
+        data = {'router_id': router_id, 'port_id': port_id}
+        if kwargs:
+            data.update(kwargs)
+        ndp_proxy = client.create_ndp_proxy(**data)['ndp_proxy']
+
+        # save client to be used later in cls.delete_ndp_proxy
+        # for final cleanup
+        ndp_proxy['client'] = client
+        cls.ndp_proxies.append(ndp_proxy)
+        return ndp_proxy
+
+    @classmethod
+    def delete_ndp_proxy(cls, ndp_proxy, client=None):
+        """Delete ndp proxy
+
+        :param client: Client to be used
+        If client is not given it will use the client used to create
+        the ndp proxy, or cls.client if unknown.
+        """
+        client = client or ndp_proxy.get('client') or cls.client
+        client.delete_ndp_proxy(ndp_proxy['id'])
+
 
 class BaseAdminNetworkTest(BaseNetworkTest):
 
diff --git a/neutron_tempest_plugin/api/test_ndp_proxy.py b/neutron_tempest_plugin/api/test_ndp_proxy.py
new file mode 100644
index 0000000..1b2165b
--- /dev/null
+++ b/neutron_tempest_plugin/api/test_ndp_proxy.py
@@ -0,0 +1,98 @@
+# Copyright 2022 Troila
+# All Rights Reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+from neutron_lib import constants
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
+from tempest.lib import exceptions
+
+from neutron_tempest_plugin.api import base
+from neutron_tempest_plugin import config
+
+CONF = config.CONF
+
+
+class NDPProxyTestJSON(base.BaseNetworkTest):
+
+    credentials = ['primary', 'admin']
+    required_extensions = ['router', 'l3-ndp-proxy']
+
+    @classmethod
+    def resource_setup(cls):
+        super(NDPProxyTestJSON, cls).resource_setup()
+        cls.ext_net_id = CONF.network.public_network_id
+
+        # Create network, subnet, router and add interface
+        cls.network = cls.create_network()
+        cls.subnet = cls.create_subnet(
+            cls.network, ip_version=constants.IP_VERSION_6,
+            cidr='2002::abcd:0/112')
+        cls.router = cls.create_router(data_utils.rand_name('router'),
+                                       external_network_id=cls.ext_net_id,
+                                       enable_ndp_proxy=True)
+        cls.create_router_interface(cls.router['id'], cls.subnet['id'])
+
+    @decorators.idempotent_id('481bc712-d504-4128-bffb-62d98b88886b')
+    def test_ndp_proxy_lifecycle(self):
+        port = self.create_port(self.network)
+        np_description = 'Test ndp proxy description'
+        np_name = 'test-ndp-proxy'
+
+        #  Create ndp proxy
+        created_ndp_proxy = self.create_ndp_proxy(
+            name=np_name,
+            description=np_description,
+            router_id=self.router['id'],
+            port_id=port['id'])
+        self.assertEqual(self.router['id'], created_ndp_proxy['router_id'])
+        self.assertEqual(port['id'], created_ndp_proxy['port_id'])
+        self.assertEqual(np_description, created_ndp_proxy['description'])
+        self.assertEqual(np_name, created_ndp_proxy['name'])
+        self.assertEqual(port['fixed_ips'][0]['ip_address'],
+                         created_ndp_proxy['ip_address'])
+
+        # Show created ndp_proxy
+        body = self.client.get_ndp_proxy(created_ndp_proxy['id'])
+        ndp_proxy = body['ndp_proxy']
+        self.assertEqual(np_description, ndp_proxy['description'])
+        self.assertEqual(self.router['id'], ndp_proxy['router_id'])
+        self.assertEqual(port['id'], ndp_proxy['port_id'])
+        self.assertEqual(np_name, ndp_proxy['name'])
+        self.assertEqual(port['fixed_ips'][0]['ip_address'],
+                         ndp_proxy['ip_address'])
+
+        # List ndp proxies
+        body = self.client.list_ndp_proxies()
+        ndp_proxy_ids = [np['id'] for np in body['ndp_proxies']]
+        self.assertIn(created_ndp_proxy['id'], ndp_proxy_ids)
+
+        # Update ndp proxy
+        updated_ndp_proxy = self.client.update_ndp_proxy(
+                               created_ndp_proxy['id'],
+                               name='updated_ndp_proxy')
+        self.assertEqual('updated_ndp_proxy',
+                         updated_ndp_proxy['ndp_proxy']['name'])
+        self.assertEqual(
+            np_description, updated_ndp_proxy['ndp_proxy']['description'])
+        self.assertEqual(self.router['id'],
+                         updated_ndp_proxy['ndp_proxy']['router_id'])
+        self.assertEqual(port['id'], updated_ndp_proxy['ndp_proxy']['port_id'])
+        self.assertEqual(port['fixed_ips'][0]['ip_address'],
+                         updated_ndp_proxy['ndp_proxy']['ip_address'])
+
+        # Delete ndp proxy
+        self.delete_ndp_proxy(created_ndp_proxy)
+        self.assertRaises(exceptions.NotFound,
+                          self.client.get_ndp_proxy, created_ndp_proxy['id'])
diff --git a/neutron_tempest_plugin/api/test_ndp_proxy_negative.py b/neutron_tempest_plugin/api/test_ndp_proxy_negative.py
new file mode 100644
index 0000000..acbbdcb
--- /dev/null
+++ b/neutron_tempest_plugin/api/test_ndp_proxy_negative.py
@@ -0,0 +1,104 @@
+# Copyright 2022 Troila
+# All Rights Reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+from neutron_lib import constants
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
+from tempest.lib import exceptions
+
+from neutron_tempest_plugin.api import base
+from neutron_tempest_plugin import config
+
+CONF = config.CONF
+
+
+class NDPProxyNegativeTestJSON(base.BaseNetworkTest):
+
+    credentials = ['primary', 'admin']
+    required_extensions = ['router', 'l3-ndp-proxy']
+
+    @classmethod
+    def resource_setup(cls):
+        super(NDPProxyNegativeTestJSON, cls).resource_setup()
+        cls.ext_net_id = CONF.network.public_network_id
+
+        # Create network, subnet, router and add interface
+        cls.network = cls.create_network()
+        cls.subnet = cls.create_subnet(
+            cls.network, ip_version=constants.IP_VERSION_6,
+            cidr='2002::abcd:0/112')
+        cls.router = cls.create_router(
+            data_utils.rand_name('router'),
+            external_network_id=cls.ext_net_id)
+
+    @decorators.attr(type='negative')
+    @decorators.idempotent_id('a0897204-bb85-41cc-a5fd-5d0ab8116a07')
+    def test_enable_ndp_proxy_without_external_gw(self):
+        self.client.update_router(self.router['id'], external_gateway_info={})
+        self.assertRaises(exceptions.Conflict,
+            self.client.update_router,
+            self.router['id'],
+            enable_ndp_proxy=True)
+
+    @decorators.attr(type='negative')
+    @decorators.idempotent_id('26e534a0-3e47-4894-8cb5-20a078ce76a9')
+    def test_create_ndp_proxy_with_subnet_not_connect_router(self):
+        self.client.update_router(self.router['id'], enable_ndp_proxy=True)
+        port = self.create_port(self.network)
+        self.assertRaises(exceptions.Conflict,
+            self.create_ndp_proxy,
+            self.router['id'],
+            port_id=port['id'])
+
+    @decorators.attr(type='negative')
+    @decorators.idempotent_id('a0d93fd6-1219-4b05-9db8-bdf02846c447')
+    def test_create_ndp_proxy_with_different_address_scope(self):
+        self.client.update_router(self.router['id'], enable_ndp_proxy=True)
+        address_scope = self.create_address_scope(
+            "test-as", ip_version=constants.IP_VERSION_6)
+        subnet_pool = self.create_subnetpool(
+            "test-sp", address_scope_id=address_scope['id'],
+            prefixes=['2002::abc:0/112'], default_prefixlen=112)
+        network = self.create_network()
+        subnet = self.create_subnet(
+            network, ip_version=constants.IP_VERSION_6,
+            cidr="2002::abc:0/112", subnetpool_id=subnet_pool['id'],
+            reserve_cidr=False)
+        self.create_router_interface(self.router['id'], subnet['id'])
+        port = self.create_port(network)
+        self.assertRaises(exceptions.Conflict, self.create_ndp_proxy,
+                          self.router['id'], port_id=port['id'])
+
+    @decorators.attr(type='negative')
+    @decorators.idempotent_id('f9a4e56d-3836-40cd-8c05-585b3f1e034a')
+    def test_create_ndp_proxy_without_ipv6_address(self):
+        self.client.update_router(
+            self.router['id'], enable_ndp_proxy=True)
+        subnet = self.create_subnet(
+            self.network, ip_version=constants.IP_VERSION_4)
+        self.create_router_interface(self.router['id'], subnet['id'])
+        port = self.create_port(self.network)
+        self.assertRaises(exceptions.Conflict,
+                          self.create_ndp_proxy,
+                          self.router['id'], port_id=port['id'])
+
+    @decorators.attr(type='negative')
+    @decorators.idempotent_id('e035b3af-ebf9-466d-9ef5-a73b063a1f56')
+    def test_enable_ndp_proxy_and_unset_gateway(self):
+        self.assertRaises(exceptions.Conflict,
+                          self.client.update_router,
+                          self.router['id'],
+                          enable_ndp_proxy=True,
+                          external_gateway_info={})
diff --git a/neutron_tempest_plugin/common/ip.py b/neutron_tempest_plugin/common/ip.py
index 9fe49db..e2f6a4a 100644
--- a/neutron_tempest_plugin/common/ip.py
+++ b/neutron_tempest_plugin/common/ip.py
@@ -57,7 +57,7 @@
         return shell.execute(command_line, ssh_client=self.ssh_client,
                              timeout=self.timeout).stdout
 
-    def configure_vlan(self, addresses, port, vlan_tag, subport_ips):
+    def configure_vlan(self, addresses, port, vlan_tag, subport_ips, mac=None):
         port_device = get_port_device_name(addresses=addresses, port=port)
         subport_device = '{!s}.{!s}'.format(port_device, vlan_tag)
         LOG.debug('Configuring VLAN subport interface %r on top of interface '
@@ -66,6 +66,8 @@
 
         self.add_link(link=port_device, name=subport_device, link_type='vlan',
                       segmentation_id=vlan_tag)
+        if mac:
+            self.set_link_address(address=mac, device=subport_device)
         self.set_link(device=subport_device, state='up')
         for subport_ip in subport_ips:
             self.add_address(address=subport_ip, device=subport_device)
@@ -91,7 +93,8 @@
                 "Unable to get IP address and subnet prefix lengths for "
                 "subport")
 
-        return self.configure_vlan(addresses, port, vlan_tag, subport_ips)
+        return self.configure_vlan(addresses, port, vlan_tag, subport_ips,
+                                   subport['mac_address'])
 
     def configure_vlan_transparent(self, port, vlan_tag, ip_addresses):
         addresses = self.list_addresses()
@@ -133,6 +136,10 @@
             command += ['id', segmentation_id]
         return self.execute('link', *command)
 
+    def set_link_address(self, address, device):
+        command = ['set', 'address', address, 'dev', device]
+        return self.execute('link', *command)
+
     def set_link(self, device, state=None):
         command = ['set', 'dev', device]
         if state:
diff --git a/neutron_tempest_plugin/scenario/base.py b/neutron_tempest_plugin/scenario/base.py
index cf68224..b9bf36f 100644
--- a/neutron_tempest_plugin/scenario/base.py
+++ b/neutron_tempest_plugin/scenario/base.py
@@ -12,7 +12,7 @@
 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 #    License for the specific language governing permissions and limitations
 #    under the License.
-import distutils
+
 import re
 import subprocess
 
@@ -21,6 +21,7 @@
 from neutron_lib.api import validators
 from neutron_lib import constants as neutron_lib_constants
 from oslo_log import log
+from packaging import version as packaging_version
 from paramiko import ssh_exception as ssh_exc
 from tempest.common.utils import net_utils
 from tempest.common import waiters
@@ -55,7 +56,7 @@
         m = re.match(r"Ncat: Version ([\d.]+) *.", version_result)
     # NOTE(slaweq): by default lets assume we have ncat 7.60 which is in Ubuntu
     # 18.04 which is used on u/s gates
-    return distutils.version.StrictVersion(m.group(1) if m else '7.60')
+    return packaging_version.Version(m.group(1) if m else '7.60')
 
 
 def get_ncat_server_cmd(port, protocol, msg=None):
@@ -79,7 +80,7 @@
         udp = '-u'
     cmd = 'echo "knock knock" | nc '
     ncat_version = get_ncat_version()
-    if ncat_version > distutils.version.StrictVersion('7.60'):
+    if ncat_version > packaging_version.Version('7.60'):
         cmd += '-z '
     cmd += '-w 1 %(udp)s %(host)s %(port)s' % {
         'udp': udp, 'host': ip_address, 'port': port}
diff --git a/neutron_tempest_plugin/services/network/json/network_client.py b/neutron_tempest_plugin/services/network/json/network_client.py
index e177e10..a917b4f 100644
--- a/neutron_tempest_plugin/services/network/json/network_client.py
+++ b/neutron_tempest_plugin/services/network/json/network_client.py
@@ -391,6 +391,8 @@
             update_body['ha'] = kwargs['ha']
         if 'routes' in kwargs:
             update_body['routes'] = kwargs['routes']
+        if 'enable_ndp_proxy' in kwargs:
+            update_body['enable_ndp_proxy'] = kwargs['enable_ndp_proxy']
         update_body = dict(router=update_body)
         update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
@@ -1132,3 +1134,44 @@
         self.expected_success(200, resp.status)
         return service_client.ResponseBody(
             resp, jsonutils.loads(response_body))
+
+    def create_ndp_proxy(self, **kwargs):
+        uri = '%s/ndp_proxies' % self.uri_prefix
+        post_body = jsonutils.dumps({'ndp_proxy': kwargs})
+        resp, response_body = self.post(uri, post_body)
+        self.expected_success(201, resp.status)
+        body = jsonutils.loads(response_body)
+        return service_client.ResponseBody(resp, body)
+
+    def list_ndp_proxies(self, **kwargs):
+        uri = '%s/ndp_proxies' % self.uri_prefix
+        if kwargs:
+            uri += '?' + urlparse.urlencode(kwargs, doseq=1)
+        resp, response_body = self.get(uri)
+        self.expected_success(200, resp.status)
+        body = jsonutils.loads(response_body)
+        return service_client.ResponseBody(resp, body)
+
+    def get_ndp_proxy(self, ndp_proxy_id):
+        uri = '%s/ndp_proxies/%s' % (self.uri_prefix, ndp_proxy_id)
+        get_resp, response_body = self.get(uri)
+        self.expected_success(200, get_resp.status)
+        body = jsonutils.loads(response_body)
+        return service_client.ResponseBody(get_resp, body)
+
+    def update_ndp_proxy(self, ndp_proxy_id, **kwargs):
+        uri = '%s/ndp_proxies/%s' % (self.uri_prefix, ndp_proxy_id)
+        get_resp, _ = self.get(uri)
+        self.expected_success(200, get_resp.status)
+        put_body = jsonutils.dumps({'ndp_proxy': kwargs})
+        put_resp, response_body = self.put(uri, put_body)
+        self.expected_success(200, put_resp.status)
+        body = jsonutils.loads(response_body)
+        return service_client.ResponseBody(put_resp, body)
+
+    def delete_ndp_proxy(self, ndp_proxy_id):
+        uri = '%s/ndp_proxies/%s' % (
+            self.uri_prefix, ndp_proxy_id)
+        resp, body = self.delete(uri)
+        self.expected_success(204, resp.status)
+        return service_client.ResponseBody(resp, body)
diff --git a/releasenotes/source/conf.py b/releasenotes/source/conf.py
index 24a38a4..5bf1fe1 100644
--- a/releasenotes/source/conf.py
+++ b/releasenotes/source/conf.py
@@ -52,7 +52,7 @@
 master_doc = 'index'
 
 # General information about the project.
-copyright = u'2017, Neutron Tempest Plugin Developers'
+copyright = '2017, Neutron Tempest Plugin Developers'
 
 # openstackdocstheme options
 openstackdocs_repo_name = 'openstack/neutron-tempest-plugin'
@@ -190,8 +190,8 @@
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
     ('index', 'NeutronTempestPluginReleaseNotes.tex',
-     u'Neutron Tempest Plugin Release Notes Documentation',
-     u'Neutron Tempest Plugin Developers', 'manual'),
+     'Neutron Tempest Plugin Release Notes Documentation',
+     'Neutron Tempest Plugin Developers', 'manual'),
 ]
 
 # The name of an image file (relative to this directory) to place at the top of
@@ -221,8 +221,8 @@
 # (source start file, name, description, authors, manual section).
 man_pages = [
     ('index', 'NeutronTempestPluginrereleasenotes',
-     u'Neutron Tempest Plugin Release Notes Documentation',
-     [u'Neutron Tempest Plugin Developers'], 1)
+     'Neutron Tempest Plugin Release Notes Documentation',
+     ['Neutron Tempest Plugin Developers'], 1)
 ]
 
 # If true, show URL addresses after external links.
@@ -236,8 +236,8 @@
 #  dir menu entry, description, category)
 texinfo_documents = [
     ('index', 'Neutron Tempest Plugin ReleaseNotes',
-     u'Neutron Tempest Plugin Release Notes Documentation',
-     u'Neutron Tempest Plugin Developers',
+     'Neutron Tempest Plugin Release Notes Documentation',
+     'Neutron Tempest Plugin Developers',
      'NeutronTempestPluginReleaseNotes',
      'One line description of project.',
      'Miscellaneous'),
diff --git a/requirements.txt b/requirements.txt
index 21f14cc..f25caec 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,6 +10,7 @@
 oslo.log>=3.36.0 # Apache-2.0
 oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
 oslo.utils>=3.33.0 # Apache-2.0
+packaging>=20.4  # Apache-2.0
 paramiko>=2.0.0 # LGPLv2.1+
 tempest>=29.2.0 # Apache-2.0
 tenacity>=3.2.1 # Apache-2.0
diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml
index 56bd6b2..56f7a6c 100644
--- a/zuul.d/master_jobs.yaml
+++ b/zuul.d/master_jobs.yaml
@@ -79,8 +79,10 @@
         - 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
@@ -140,6 +142,7 @@
         neutron-port-forwarding: true
         neutron-conntrack-helper: true
         neutron-tag-ports-during-bulk-creation: true
+        neutron-ndp-proxy: true
         br-ex-tcpdump: true
         br-int-flows: true
         # Cinder services
@@ -208,6 +211,8 @@
       - ^neutron_lib/tests/unit/.*$
       - ^neutron_tempest_plugin/scenario/.*$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -216,6 +221,7 @@
     parent: neutron-tempest-plugin-base-nested-switch
     timeout: 10000
     vars:
+      configure_swap_size: 2048
       devstack_services:
         # Disable OVN services
         br-ex-tcpdump: false
@@ -298,6 +304,8 @@
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -306,6 +314,7 @@
     parent: neutron-tempest-plugin-base-nested-switch
     timeout: 10000
     vars:
+      configure_swap_size: 2048
       devstack_services:
         # Disable OVN services
         br-ex-tcpdump: false
@@ -396,6 +405,8 @@
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -443,6 +454,7 @@
       - zuul: openstack/neutron
     pre-run: playbooks/linuxbridge-scenario-pre-run.yaml
     vars:
+      configure_swap_size: 2048
       devstack_services:
         # Disable OVN services
         br-ex-tcpdump: false
@@ -490,6 +502,8 @@
               l3_ha: true
             AGENT:
               debug_iptables_rules: true
+            EXPERIMENTAL:
+              linuxbridge: true
           # NOTE(slaweq): We can get rid of this hardcoded absolute path when
           # devstack-tempest job will be switched to use lib/neutron instead of
           # lib/neutron-legacy
@@ -540,6 +554,8 @@
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -675,6 +691,8 @@
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -924,6 +942,8 @@
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -986,6 +1006,8 @@
       - ^tools/.*$
       - ^tox.ini$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -1044,6 +1066,8 @@
       - ^tools/.*$
       - ^tox.ini$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -1107,6 +1131,8 @@
       - ^tools/.*$
       - ^tox.ini$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -1164,6 +1190,8 @@
       - ^tools/.*$
       - ^tox.ini$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -1223,6 +1251,8 @@
       - ^tools/.*$
       - ^tox.ini$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
 
@@ -1329,5 +1359,7 @@
       - ^tools/.*$
       - ^tox.ini$
       - ^rally-jobs/.*$
+      - ^roles/.*functional.*$
+      - ^playbooks/.*functional.*$
       - ^vagrant/.*$
       - ^zuul.d/(?!(project)).*\.yaml
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 604e5d2..307355a 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -198,7 +198,6 @@
     templates:
       - build-openstack-docs-pti
       - neutron-tempest-plugin-jobs
-      - neutron-tempest-plugin-jobs-victoria
       - neutron-tempest-plugin-jobs-wallaby
       - neutron-tempest-plugin-jobs-xena
       - neutron-tempest-plugin-jobs-yoga
@@ -208,23 +207,19 @@
     check:
       jobs:
         - neutron-tempest-plugin-sfc
-        - neutron-tempest-plugin-sfc-victoria
         - neutron-tempest-plugin-sfc-wallaby
         - neutron-tempest-plugin-sfc-xena
         - neutron-tempest-plugin-sfc-yoga
         - neutron-tempest-plugin-bgpvpn-bagpipe
-        - neutron-tempest-plugin-bgpvpn-bagpipe-victoria
         - neutron-tempest-plugin-bgpvpn-bagpipe-wallaby
         - neutron-tempest-plugin-bgpvpn-bagpipe-xena
         - neutron-tempest-plugin-bgpvpn-bagpipe-yoga
         - neutron-tempest-plugin-dynamic-routing
-        - neutron-tempest-plugin-dynamic-routing-victoria
         - neutron-tempest-plugin-dynamic-routing-wallaby
         - neutron-tempest-plugin-dynamic-routing-xena
         - neutron-tempest-plugin-dynamic-routing-yoga
         - neutron-tempest-plugin-fwaas
         - neutron-tempest-plugin-vpnaas
-        - neutron-tempest-plugin-vpnaas-victoria
         - neutron-tempest-plugin-vpnaas-wallaby
         - neutron-tempest-plugin-vpnaas-xena
         - neutron-tempest-plugin-vpnaas-yoga
diff --git a/zuul.d/ussuri_jobs.yaml b/zuul.d/ussuri_jobs.yaml
index 540ddfa..28fccc6 100644
--- a/zuul.d/ussuri_jobs.yaml
+++ b/zuul.d/ussuri_jobs.yaml
@@ -6,7 +6,7 @@
     required-projects: &required-projects-ussuri
       - openstack/neutron
       - name: openstack/neutron-tempest-plugin
-        override-checkout: 1.8.0
+        override-checkout: 1.6.0
       - openstack/tempest
     vars:
       devstack_services:
@@ -113,6 +113,12 @@
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
         ML2_L3_PLUGIN: router
+        # 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
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
+        CUSTOMIZE_IMAGE: false
       devstack_local_conf:
         post-config:
           # NOTE(slaweq): We can get rid of this hardcoded absolute path when
@@ -276,7 +282,7 @@
     required-projects:
       - openstack/neutron
       - name: openstack/neutron-tempest-plugin
-        override-checkout: 1.8.0
+        override-checkout: 1.6.0
       - openstack/tempest
       - openstack/designate-tempest-plugin
     vars:
@@ -313,7 +319,7 @@
       - openstack/neutron-fwaas
       - openstack/neutron
       - name: openstack/neutron-tempest-plugin
-        override-checkout: 1.8.0
+        override-checkout: 1.6.0
       - openstack/tempest
     vars:
       branch_override: stable/ussuri
diff --git a/zuul.d/victoria_jobs.yaml b/zuul.d/victoria_jobs.yaml
index 10d58e1..67737a7 100644
--- a/zuul.d/victoria_jobs.yaml
+++ b/zuul.d/victoria_jobs.yaml
@@ -2,6 +2,11 @@
     name: neutron-tempest-plugin-api-victoria
     parent: neutron-tempest-plugin-base
     override-checkout: stable/victoria
+    required-projects: &required-projects-victoria
+      - openstack/neutron
+      - name: openstack/neutron-tempest-plugin
+        override-checkout: 1.6.0
+      - openstack/tempest
     vars:
       devstack_services:
         # Disable OVN services
@@ -107,6 +112,12 @@
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
         ML2_L3_PLUGIN: router
+        # 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
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
+        CUSTOMIZE_IMAGE: false
       devstack_local_conf:
         post-config:
           # NOTE(slaweq): We can get rid of this hardcoded absolute path when
@@ -126,6 +137,7 @@
     name: neutron-tempest-plugin-scenario-openvswitch-victoria
     parent: neutron-tempest-plugin-openvswitch
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       tempest_test_regex: "\
@@ -136,6 +148,12 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        # 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
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
+        CUSTOMIZE_IMAGE: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -148,6 +166,7 @@
     name: neutron-tempest-plugin-scenario-openvswitch-iptables_hybrid-victoria
     parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       tempest_test_regex: "\
@@ -158,6 +177,12 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        # 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
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
+        CUSTOMIZE_IMAGE: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -170,6 +195,7 @@
     name: neutron-tempest-plugin-scenario-linuxbridge-victoria
     parent: neutron-tempest-plugin-linuxbridge
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       tempest_test_regex: "\
@@ -180,6 +206,12 @@
       network_available_features: *available_features
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        # 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
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
+        CUSTOMIZE_IMAGE: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -192,6 +224,7 @@
     name: neutron-tempest-plugin-scenario-ovn-victoria
     parent: neutron-tempest-plugin-ovn
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       tempest_test_regex: "\
@@ -201,6 +234,12 @@
       network_api_extensions: *api_extensions
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
+        # 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
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
+        CUSTOMIZE_IMAGE: false
       devstack_local_conf:
         test-config:
           $TEMPEST_CONFIG:
@@ -211,6 +250,7 @@
     name: neutron-tempest-plugin-dvr-multinode-scenario-victoria
     parent: neutron-tempest-plugin-dvr-multinode-scenario
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       network_api_extensions_common: *api_extensions
       branch_override: stable/victoria
@@ -219,14 +259,29 @@
     name: neutron-tempest-plugin-designate-scenario-victoria
     parent: neutron-tempest-plugin-designate-scenario
     override-checkout: stable/victoria
+    required-projects:
+      - openstack/neutron
+      - name: openstack/neutron-tempest-plugin
+        override-checkout: 1.6.0
+      - openstack/tempest
+      - name: openstack/designate-tempest-plugin
+        override-checkout: 0.12.0
     vars:
       branch_override: stable/victoria
       network_api_extensions_common: *api_extensions
+      devstack_localrc:
+        # 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
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
+        CUSTOMIZE_IMAGE: false
 
 - job:
     name: neutron-tempest-plugin-sfc-victoria
     parent: neutron-tempest-plugin-sfc
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       network_api_extensions_common: *api_extensions
@@ -235,6 +290,7 @@
     name: neutron-tempest-plugin-bgpvpn-bagpipe-victoria
     parent: neutron-tempest-plugin-bgpvpn-bagpipe
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       network_api_extensions: *api_extensions
@@ -243,6 +299,7 @@
     name: neutron-tempest-plugin-dynamic-routing-victoria
     parent: neutron-tempest-plugin-dynamic-routing
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       network_api_extensions_common: *api_extensions
@@ -251,6 +308,7 @@
     name: neutron-tempest-plugin-vpnaas-victoria
     parent: neutron-tempest-plugin-vpnaas
     override-checkout: stable/victoria
+    required-projects: *required-projects-victoria
     vars:
       branch_override: stable/victoria
       network_api_extensions_common: *api_extensions
