diff --git a/.gitignore b/.gitignore
index a678dd2..228b0a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,7 +26,6 @@
 .coverage*
 !.coveragerc
 .tox
-nosetests.xml
 .venv
 .stestr/
 
diff --git a/neutron_tempest_plugin/api/test_ndp_proxy.py b/neutron_tempest_plugin/api/test_ndp_proxy.py
index 1b2165b..92d65c2 100644
--- a/neutron_tempest_plugin/api/test_ndp_proxy.py
+++ b/neutron_tempest_plugin/api/test_ndp_proxy.py
@@ -24,23 +24,35 @@
 CONF = config.CONF
 
 
-class NDPProxyTestJSON(base.BaseNetworkTest):
+class NDPProxyTestJSON(base.BaseAdminNetworkTest):
 
     credentials = ['primary', 'admin']
-    required_extensions = ['router', 'l3-ndp-proxy']
+    required_extensions = ['router', 'l3-ndp-proxy', 'address-scope']
 
     @classmethod
     def resource_setup(cls):
         super(NDPProxyTestJSON, cls).resource_setup()
-        cls.ext_net_id = CONF.network.public_network_id
-
+        address_scope = cls.create_address_scope(
+            "test-as", **{'ip_version': constants.IP_VERSION_6})
+        subnetpool = cls.create_subnetpool(
+            "test-subnetpool",
+            **{'address_scope_id': address_scope['id'],
+               'default_prefixlen': 112,
+               'prefixes': ['2001:abc::0/96']})
+        # Create an external network and it's subnet
+        ext_net = cls.create_network('test-ext-net', client=cls.admin_client,
+                                     external=True)
+        cls.create_subnet(
+            ext_net, client=cls.admin_client,
+            ip_version=constants.IP_VERSION_6,
+            **{'subnetpool_id': subnetpool['id'], "cidr": "2001:abc::1:0/112"})
         # 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')
+            **{'subnetpool_id': subnetpool['id'], "cidr": "2001:abc::2:0/112"})
         cls.router = cls.create_router(data_utils.rand_name('router'),
-                                       external_network_id=cls.ext_net_id,
+                                       external_network_id=ext_net['id'],
                                        enable_ndp_proxy=True)
         cls.create_router_interface(cls.router['id'], cls.subnet['id'])
 
diff --git a/neutron_tempest_plugin/api/test_ndp_proxy_negative.py b/neutron_tempest_plugin/api/test_ndp_proxy_negative.py
index acbbdcb..56188f3 100644
--- a/neutron_tempest_plugin/api/test_ndp_proxy_negative.py
+++ b/neutron_tempest_plugin/api/test_ndp_proxy_negative.py
@@ -24,16 +24,28 @@
 CONF = config.CONF
 
 
-class NDPProxyNegativeTestJSON(base.BaseNetworkTest):
+class NDPProxyNegativeTestJSON(base.BaseAdminNetworkTest):
 
     credentials = ['primary', 'admin']
-    required_extensions = ['router', 'l3-ndp-proxy']
+    required_extensions = ['router', 'l3-ndp-proxy', 'address-scope']
 
     @classmethod
     def resource_setup(cls):
         super(NDPProxyNegativeTestJSON, cls).resource_setup()
-        cls.ext_net_id = CONF.network.public_network_id
-
+        address_scope = cls.create_address_scope(
+            "test-as", **{'ip_version': constants.IP_VERSION_6})
+        subnetpool = cls.create_subnetpool(
+            "test-subnetpool",
+            **{'address_scope_id': address_scope['id'],
+               'default_prefixlen': 112,
+               'prefixes': ['2001:abc::0/96']})
+        # Create an external network and it's subnet
+        ext_net = cls.create_network('test-ext-net', client=cls.admin_client,
+                                     external=True)
+        cls.create_subnet(
+            ext_net, client=cls.admin_client,
+            ip_version=constants.IP_VERSION_6,
+            **{'subnetpool_id': subnetpool['id'], "cidr": "2001:abc::1:0/112"})
         # Create network, subnet, router and add interface
         cls.network = cls.create_network()
         cls.subnet = cls.create_subnet(
@@ -41,7 +53,7 @@
             cidr='2002::abcd:0/112')
         cls.router = cls.create_router(
             data_utils.rand_name('router'),
-            external_network_id=cls.ext_net_id)
+            external_network_id=ext_net['id'])
 
     @decorators.attr(type='negative')
     @decorators.idempotent_id('a0897204-bb85-41cc-a5fd-5d0ab8116a07')
@@ -102,3 +114,22 @@
                           self.router['id'],
                           enable_ndp_proxy=True,
                           external_gateway_info={})
+
+    @decorators.attr(type='negative')
+    @decorators.idempotent_id('194b5ee7-4c59-4643-aabf-80a125c3f688')
+    def test_enable_ndp_proxy_without_address_scope(self):
+        extnet = self.create_network("extnet", client=self.admin_client,
+                                     external=True)
+        self.create_subnet(extnet, client=self.admin_client,
+                           ip_version=constants.IP_VERSION_6,
+                           cidr='2001:abc1::0/112')
+        self.assertRaises(exceptions.Conflict,
+                          self.client.create_router,
+                          name=data_utils.rand_name('router'),
+                          enable_ndp_proxy=True,
+                          external_gateway_info={'network_id': extnet['id']})
+        router = self.create_router(data_utils.rand_name('router'))
+        self.assertRaises(exceptions.Conflict,
+                          self.client.update_router,
+                          router['id'], enable_ndp_proxy=True,
+                          external_gateway_info={'network_id': extnet['id']})
diff --git a/neutron_tempest_plugin/api/test_port_forwardings.py b/neutron_tempest_plugin/api/test_port_forwardings.py
index 79cce39..3abcd17 100644
--- a/neutron_tempest_plugin/api/test_port_forwardings.py
+++ b/neutron_tempest_plugin/api/test_port_forwardings.py
@@ -128,12 +128,17 @@
         # Check that all PFs are visible in Floating IP details
         fip = self.client.show_floatingip(fip_id)['floatingip']
         self.assertEqual(len(created_pfs), len(fip['port_forwardings']))
+        detail_enabled = utils.is_extension_enabled(
+            'floating-ip-port-forwarding-detail', service='network')
         for pf in created_pfs:
             expected_pf = {
                 'external_port': pf['external_port'],
                 'internal_port': pf['internal_port'],
                 'protocol': pf['protocol'],
                 'internal_ip_address': pf['internal_ip_address']}
+            if detail_enabled:
+                expected_pf['id'] = pf['id']
+                expected_pf['internal_port_id'] = pf['internal_port_id']
             self.assertIn(expected_pf, fip['port_forwardings'])
 
         # Test list of port forwardings
diff --git a/neutron_tempest_plugin/api/test_qos.py b/neutron_tempest_plugin/api/test_qos.py
index 2929542..372bf1e 100644
--- a/neutron_tempest_plugin/api/test_qos.py
+++ b/neutron_tempest_plugin/api/test_qos.py
@@ -1154,10 +1154,10 @@
            2-6, 42, 44, and 50-54 (which should be forbidden)
         """
 
-        def _test_update_dscp_mark_values(self, dscp_policy_id, rule_id):
-            for mark in range(n_constants.VALID_DSCP_MARKS[1],
-                              self.VALID_DSCP_MARK1 + 1):
-                if mark in n_constants.VALID_DSCP_MARKS:
+        def _test_update_dscp_mark_values(self, dscp_policy_id, rule_id,
+                                          valid_dscp_marks):
+            for mark in range(valid_dscp_marks[1], self.VALID_DSCP_MARK1 + 1):
+                if mark in valid_dscp_marks:
                     self.admin_client.update_dscp_marking_rule(
                         dscp_policy_id, rule_id, dscp_mark=mark)
 
@@ -1174,6 +1174,20 @@
                                     self.admin_client.create_dscp_marking_rule,
                                     dscp_policy_id,
                                     mark)
+
+        # Retrieve the valid range of DSCP marks from the API.
+        rule_type_details = self.admin_client.show_qos_rule_type(
+            qos_consts.RULE_TYPE_DSCP_MARKING).get('rule_type')
+        # There should be at least one driver supporting the DSCP marking rule.
+        dscp_driver = rule_type_details['drivers'][0]
+        for parameter in dscp_driver['supported_parameters']:
+            if parameter['parameter_name'] == qos_consts.DSCP_MARK:
+                valid_dscp_marks = parameter['parameter_values']
+                break
+        else:
+            self.fail('The DSCP marking rule does not have the %s parameter' %
+                      qos_consts.DSCP_MARK)
+
         # Setup network
         self.network = self.create_network()
 
@@ -1204,7 +1218,8 @@
                          retrieved_rule['dscp_mark']))
 
         # Try to set marks in range 8:56 (invalid marks should raise an error)
-        _test_update_dscp_mark_values(self, dscp_policy_id, rule_id)
+        _test_update_dscp_mark_values(self, dscp_policy_id, rule_id,
+                                      valid_dscp_marks)
 
 
 class QosMinimumBandwidthRuleTestJSON(base.BaseAdminNetworkTest):
diff --git a/neutron_tempest_plugin/common/utils.py b/neutron_tempest_plugin/common/utils.py
index c28ce74..ab99db9 100644
--- a/neutron_tempest_plugin/common/utils.py
+++ b/neutron_tempest_plugin/common/utils.py
@@ -27,6 +27,7 @@
 
 import eventlet
 
+from oslo_log import log
 from tempest.lib import exceptions
 
 from neutron_tempest_plugin import config
@@ -37,6 +38,7 @@
     "https": 443,
 }
 CONF = config.CONF
+LOG = log.getLogger(__name__)
 
 
 class classproperty(object):
@@ -202,20 +204,30 @@
                         timeout=self.test_timeout,
                         sleep=self.test_sleep)
         try:
+            LOG.info("Checking connectivity between server and client -"
+                    " attempt {}".format(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))
                 return False
             else:
                 if not self.connection_started:
                     self.connection_started = True
+                LOG.info("attempt {} succeed as it expected".format(
+                    self.test_attempt))
                 return True
         except exceptions.SSHExecCommandFailed:
             if self.should_pass:
+                LOG.warning("attempt {} failed while it should pass".format(
+                    self.test_attempt))
                 return False
             else:
+                LOG.info("attempt {} failed as it expected".format(
+                    self.test_attempt))
                 return True
         finally:
             self.test_attempt += 1
diff --git a/neutron_tempest_plugin/scenario/test_security_groups.py b/neutron_tempest_plugin/scenario/test_security_groups.py
index 05fbfe8..5af84db 100644
--- a/neutron_tempest_plugin/scenario/test_security_groups.py
+++ b/neutron_tempest_plugin/scenario/test_security_groups.py
@@ -520,12 +520,9 @@
 
         # verify that conections are not working
         for port in range(80, 84):
-            self._verify_http_connection(
-                ssh_clients[0],
-                ssh_clients[2],
-                test_ip, port,
-                servers,
-                should_pass=False)
+            with utils.StatefulConnection(
+                    ssh_clients[0], ssh_clients[2], test_ip, port) as con:
+                con.test_connection(should_pass=False)
 
         # add two remote-group rules with port-ranges
         rule_list = [{'protocol': constants.PROTO_NUM_TCP,
@@ -543,11 +540,9 @@
 
         # verify that conections are working
         for port in range(80, 84):
-            self._verify_http_connection(
-                ssh_clients[0],
-                ssh_clients[2],
-                test_ip, port,
-                servers)
+            with utils.StatefulConnection(
+                    ssh_clients[0], ssh_clients[2], test_ip, port) as con:
+                con.test_connection()
 
         # list the tcp rule id by SG id and port-range
         sg_rule_id = self.os_primary.network_client.list_security_group_rules(
@@ -559,12 +554,9 @@
 
         # verify that conections are not working
         for port in range(80, 82):
-            self._verify_http_connection(
-                ssh_clients[0],
-                ssh_clients[2],
-                test_ip, port,
-                servers,
-                should_pass=False)
+            with utils.StatefulConnection(
+                    ssh_clients[0], ssh_clients[2], test_ip, port) as con:
+                con.test_connection(should_pass=False)
 
     @decorators.idempotent_id('f07d0159-8f9e-4faa-87f5-a869ab0ad490')
     def test_intra_sg_isolation(self):
@@ -675,11 +667,13 @@
         # status can change the datapath. Let's check the rules in two
         # attempts
         for _ in range(2):
-            self._verify_http_connection(client_ssh[0], srv_ssh, srv_ip,
-                                         tcp_port, [])
+            with utils.StatefulConnection(
+                    client_ssh[0], srv_ssh, srv_ip, tcp_port) as con:
+                con.test_connection()
             for port in range(tcp_port, tcp_port + 3):
-                self._verify_http_connection(client_ssh[1], srv_ssh, srv_ip,
-                                             port, [])
+                with utils.StatefulConnection(
+                        client_ssh[1], srv_ssh, srv_ip, port) as con:
+                    con.test_connection()
 
     @decorators.idempotent_id('96dcd5ff-9d45-4e0d-bea0-0b438cbd388f')
     def test_remove_sec_grp_from_active_vm(self):
diff --git a/requirements.txt b/requirements.txt
index f25caec..34531e9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -15,7 +15,6 @@
 tempest>=29.2.0 # Apache-2.0
 tenacity>=3.2.1 # Apache-2.0
 ddt>=1.0.1 # MIT
-nose>=1.3.7 # LGPL
 testtools>=2.2.0 # MIT
 testscenarios>=0.4 # Apache-2.0/BSD
 eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml
index 8e21880..7cd5079 100644
--- a/zuul.d/master_jobs.yaml
+++ b/zuul.d/master_jobs.yaml
@@ -75,6 +75,7 @@
         - fip-port-details
         - flavors
         - floating-ip-port-forwarding
+        - floating-ip-port-forwarding-detail
         - floatingip-pools
         - ip-substring-filtering
         - l3-conntrack-helper
@@ -300,7 +301,6 @@
       - ^neutron/services/trunk/drivers/ovn/.*$
       - ^neutron/cmd/ovn/.*$
       - ^neutron/common/ovn/.*$
-      - ^neutron_tempest_plugin/api/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
@@ -402,7 +402,6 @@
       - ^neutron/services/trunk/drivers/ovn/.*$
       - ^neutron/cmd/ovn/.*$
       - ^neutron/common/ovn/.*$
-      - ^neutron_tempest_plugin/api/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
@@ -558,7 +557,6 @@
       - ^neutron/services/trunk/drivers/ovn/.*$
       - ^neutron/cmd/ovn/.*$
       - ^neutron/common/ovn/.*$
-      - ^neutron_tempest_plugin/api/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
@@ -695,7 +693,6 @@
       - ^neutron/services/trunk/drivers/linuxbridge/.*$
       - ^neutron/services/trunk/drivers/openvswitch/.*$
       - ^neutron/scheduler/.*$
-      - ^neutron_tempest_plugin/api/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
@@ -1042,6 +1039,7 @@
         q-l3: true
         q-meta: true
         q-metering: true
+      tempest_concurrency: 4
       tempest_test_regex: ^neutron_tempest_plugin\.bgpvpn
       network_api_extensions_bgpvpn:
         - bgpvpn
@@ -1214,6 +1212,7 @@
       - openstack/neutron-tempest-plugin
       - openstack/tempest
     vars:
+      tempest_concurrency: 4
       tempest_test_regex: ^neutron_tempest_plugin\.vpnaas
       devstack_plugins:
         neutron-vpnaas: https://opendev.org/openstack/neutron-vpnaas.git
@@ -1279,6 +1278,7 @@
       - openstack/tap-as-a-service
       - openstack/tempest
     vars:
+      tempest_concurrency: 4
       tempest_test_regex: ^neutron_tempest_plugin\.tap_as_a_service
       tox_envlist: all
       network_api_extensions_tempest:
diff --git a/zuul.d/queens_jobs.yaml b/zuul.d/queens_jobs.yaml
index 35fba1b..3a1c37f 100644
--- a/zuul.d/queens_jobs.yaml
+++ b/zuul.d/queens_jobs.yaml
@@ -25,6 +25,7 @@
         q-meta: true
         q-metering: true
       branch_override: stable/queens
+      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,
diff --git a/zuul.d/rocky_jobs.yaml b/zuul.d/rocky_jobs.yaml
index 62e57bf..75d7098 100644
--- a/zuul.d/rocky_jobs.yaml
+++ b/zuul.d/rocky_jobs.yaml
@@ -27,6 +27,7 @@
         q-meta: true
         q-metering: true
       branch_override: stable/rocky
+      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,
diff --git a/zuul.d/stein_jobs.yaml b/zuul.d/stein_jobs.yaml
index e9e8137..0f18a8a 100644
--- a/zuul.d/stein_jobs.yaml
+++ b/zuul.d/stein_jobs.yaml
@@ -25,6 +25,7 @@
         q-meta: true
         q-metering: true
       branch_override: stable/stein
+      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,
@@ -112,6 +113,8 @@
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
         Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
         ML2_L3_PLUGIN: router
+        ADVANCED_INSTANCE_TYPE: ds512M
+        ADVANCED_INSTANCE_USER: ubuntu
       devstack_local_conf:
         post-config:
           # NOTE(slaweq): We can get rid of this hardcoded absolute path when
@@ -285,6 +288,8 @@
         q-l3: true
         q-meta: true
         q-metering: true
+        # SG logging isn't supported by linuxbridge backend
+        neutron-log: false
       network_api_extensions: *api_extensions
       network_api_extensions_linuxbridge:
         - vlan-transparent
diff --git a/zuul.d/train_jobs.yaml b/zuul.d/train_jobs.yaml
index 961b3b7..c8c2efe 100644
--- a/zuul.d/train_jobs.yaml
+++ b/zuul.d/train_jobs.yaml
@@ -25,6 +25,7 @@
         q-meta: true
         q-metering: true
       branch_override: stable/train
+      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,
diff --git a/zuul.d/ussuri_jobs.yaml b/zuul.d/ussuri_jobs.yaml
index 28fccc6..56da160 100644
--- a/zuul.d/ussuri_jobs.yaml
+++ b/zuul.d/ussuri_jobs.yaml
@@ -25,6 +25,7 @@
         q-meta: true
         q-metering: true
       branch_override: stable/ussuri
+      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,
diff --git a/zuul.d/victoria_jobs.yaml b/zuul.d/victoria_jobs.yaml
index 67737a7..7a92403 100644
--- a/zuul.d/victoria_jobs.yaml
+++ b/zuul.d/victoria_jobs.yaml
@@ -24,6 +24,7 @@
         q-meta: true
         q-metering: true
       branch_override: stable/victoria
+      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,
diff --git a/zuul.d/wallaby_jobs.yaml b/zuul.d/wallaby_jobs.yaml
index 746ee9c..a3c07c0 100644
--- a/zuul.d/wallaby_jobs.yaml
+++ b/zuul.d/wallaby_jobs.yaml
@@ -3,6 +3,7 @@
     parent: neutron-tempest-plugin-base
     override-checkout: stable/wallaby
     vars:
+      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,
diff --git a/zuul.d/xena_jobs.yaml b/zuul.d/xena_jobs.yaml
index 1e6eb80..e0a58a7 100644
--- a/zuul.d/xena_jobs.yaml
+++ b/zuul.d/xena_jobs.yaml
@@ -3,6 +3,7 @@
     parent: neutron-tempest-plugin-base
     override-checkout: stable/xena
     vars:
+      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,
diff --git a/zuul.d/yoga_jobs.yaml b/zuul.d/yoga_jobs.yaml
index 87db14e..bc88c83 100644
--- a/zuul.d/yoga_jobs.yaml
+++ b/zuul.d/yoga_jobs.yaml
@@ -3,6 +3,7 @@
     parent: neutron-tempest-plugin-base
     override-checkout: stable/yoga
     vars:
+      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,
