diff --git a/manila_tempest_tests/config.py b/manila_tempest_tests/config.py
index 616cb19..8873ef6 100644
--- a/manila_tempest_tests/config.py
+++ b/manila_tempest_tests/config.py
@@ -79,9 +79,18 @@
     cfg.ListOpt("enable_ro_access_level_for_protocols",
                 default=["nfs", ],
                 help="List of protocols to run tests with ro access level."),
-    cfg.StrOpt("storage_protocol",
+
+    # Capabilities
+    cfg.StrOpt("capability_storage_protocol",
+               deprecated_name="storage_protocol",
                default="NFS_CIFS",
                help="Backend protocol to target when creating volume types."),
+    cfg.BoolOpt("capability_snapshot_support",
+                help="Defines extra spec that satisfies specific back end "
+                     "capability called 'snapshot_support' and will be used "
+                     "for setting up custom share type. Defaults to value of "
+                     "other config option 'run_snapshot_tests'."),
+
     cfg.StrOpt("share_network_id",
                default="",
                help="Some backend drivers requires share network "
@@ -124,6 +133,8 @@
                 help="Defines whether to run manage/unmanage tests or not. "
                      "These test may leave orphaned resources, so be careful "
                      "enabling this opt."),
+
+    # Switching ON/OFF test suites filtered by features
     cfg.BoolOpt("run_extend_tests",
                 default=True,
                 help="Defines whether to run share extend tests or not. "
@@ -147,6 +158,7 @@
     cfg.BoolOpt("run_migration_tests",
                 default=False,
                 help="Enable or disable migration tests."),
+
     cfg.StrOpt("image_with_share_tools",
                default="manila-service-image",
                help="Image name for vm booting with nfs/smb clients tool."),
diff --git a/manila_tempest_tests/plugin.py b/manila_tempest_tests/plugin.py
index 3a8550b..4880940 100644
--- a/manila_tempest_tests/plugin.py
+++ b/manila_tempest_tests/plugin.py
@@ -37,5 +37,14 @@
         config.register_opt_group(conf, config_share.share_group,
                                   config_share.ShareGroup)
 
+        # NOTE(vponomaryov): set opt 'capability_snapshot_support' by
+        # default equal to opt 'run_snapshot_tests'.
+        if conf.share.capability_snapshot_support is None:
+            conf.set_default(
+                "capability_snapshot_support",
+                conf.share.run_snapshot_tests,
+                group="share",
+            )
+
     def get_opt_lists(self):
         return [(config_share.share_group.name, config_share.ShareGroup)]
diff --git a/manila_tempest_tests/tests/api/admin/test_share_manage.py b/manila_tempest_tests/tests/api/admin/test_share_manage.py
index 4100b2e..bb04dc7 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_manage.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_manage.py
@@ -13,6 +13,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import six
 from tempest import config  # noqa
 from tempest import test  # noqa
 from tempest_lib.common.utils import data_utils  # noqa
@@ -48,12 +49,16 @@
         cls.st_name = data_utils.rand_name("manage-st-name")
         cls.st_name_invalid = data_utils.rand_name("manage-st-name-invalid")
         cls.extra_specs = {
-            'storage_protocol': CONF.share.storage_protocol,
-            'driver_handles_share_servers': False
+            'storage_protocol': CONF.share.capability_storage_protocol,
+            'driver_handles_share_servers': False,
+            'snapshot_support': six.text_type(
+                CONF.share.capability_snapshot_support),
         }
         cls.extra_specs_invalid = {
-            'storage_protocol': CONF.share.storage_protocol,
-            'driver_handles_share_servers': True
+            'storage_protocol': CONF.share.capability_storage_protocol,
+            'driver_handles_share_servers': True,
+            'snapshot_support': six.text_type(
+                CONF.share.capability_snapshot_support),
         }
 
         cls.st = cls.create_share_type(
diff --git a/manila_tempest_tests/tests/api/admin/test_share_types.py b/manila_tempest_tests/tests/api/admin/test_share_types.py
index 1f4d6a0..ceed68b 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_types.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_types.py
@@ -93,7 +93,7 @@
         share_name = data_utils.rand_name("share")
         shr_type_name = data_utils.rand_name("share-type")
         extra_specs = self.add_required_extra_specs_to_dict({
-            "storage_protocol": CONF.share.storage_protocol,
+            "storage_protocol": CONF.share.capability_storage_protocol,
         })
 
         # Create share type
diff --git a/manila_tempest_tests/tests/api/admin/test_shares_actions.py b/manila_tempest_tests/tests/api/admin/test_shares_actions.py
index 0ce3d68..5cc41f5 100644
--- a/manila_tempest_tests/tests/api/admin/test_shares_actions.py
+++ b/manila_tempest_tests/tests/api/admin/test_shares_actions.py
@@ -35,7 +35,7 @@
         # create share type for share filtering purposes
         cls.st_name = data_utils.rand_name("tempest-st-name")
         cls.extra_specs = cls.add_required_extra_specs_to_dict(
-            {'storage_protocol': CONF.share.storage_protocol})
+            {'storage_protocol': CONF.share.capability_storage_protocol})
         cls.st = cls.create_share_type(
             name=cls.st_name,
             cleanup_in_class=True,
@@ -163,7 +163,9 @@
     @test.attr(type=["gate", ])
     def test_list_shares_with_detail_filter_by_extra_specs(self):
         filters = {
-            "extra_specs": {'storage_protocol': CONF.share.storage_protocol}
+            "extra_specs": {
+                "storage_protocol": CONF.share.capability_storage_protocol,
+            }
         }
         share_type_list = self.shares_client.list_share_types()["share_types"]
 
diff --git a/manila_tempest_tests/tests/api/base.py b/manila_tempest_tests/tests/api/base.py
index 825b6e0..3c422b8 100644
--- a/manila_tempest_tests/tests/api/base.py
+++ b/manila_tempest_tests/tests/api/base.py
@@ -520,10 +520,12 @@
 
     @staticmethod
     def add_required_extra_specs_to_dict(extra_specs=None):
-        value = six.text_type(CONF.share.multitenancy_enabled)
+        dhss = six.text_type(CONF.share.multitenancy_enabled)
+        snapshot_support = six.text_type(
+            CONF.share.capability_snapshot_support)
         required = {
-            "driver_handles_share_servers": value,
-            "snapshot_support": 'True',
+            "driver_handles_share_servers": dhss,
+            "snapshot_support": snapshot_support,
         }
         if extra_specs:
             required.update(extra_specs)
