diff --git a/_modules/runtest/tempest_sections/network_feature_enabled.py b/_modules/runtest/tempest_sections/network_feature_enabled.py
index 957c288..09d6d59 100644
--- a/_modules/runtest/tempest_sections/network_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/network_feature_enabled.py
@@ -15,12 +15,21 @@
         'port_security',
     ]
 
-
     @property
     def api_extensions(self):
         # We will get this when running
         # tox -evenv -- tempest verify-config -uro tempest_config_file
-        pass
+        c = conditions.BaseRule(field='keystone.client.enabled', op='eq',
+                                val=True)
+        nodes = self.get_nodes_where_condition_match(c)
+        keystone_profile_admin = self.runtest_opts.get(
+            'keystone_profile_admin', {})
+        res = self.authenticated_openstack_module_call(
+            nodes[0], 'neutronng.list_extensions',
+            profile=keystone_profile_admin)[nodes[0]].get('extensions')
+        if res:
+            extensions = ', '.join([i['alias'] for i in res])
+            return extensions
 
     @property
     def floating_ips(self):
@@ -28,11 +37,13 @@
 
     @property
     def ipv6(self):
-        pass
+        return conditions.BaseRule('*.neutron.server.enabled', 'eq', True,
+                                   multiple='any').check(self.pillar)
 
     @property
     def ipv6_subnet_attributes(self):
-        pass
+        return conditions.BaseRule('*.neutron.server.enabled', 'eq', True,
+                                   multiple='any').check(self.pillar)
 
     @property
     def port_admin_state_change(self):
