diff --git a/tcp_tests/fixtures/underlay_fixtures.py b/tcp_tests/fixtures/underlay_fixtures.py
index 4e2fa95..182e3f9 100644
--- a/tcp_tests/fixtures/underlay_fixtures.py
+++ b/tcp_tests/fixtures/underlay_fixtures.py
@@ -150,10 +150,25 @@
     request.addfinalizer(test_fin)
 
 
+@pytest.fixture(scope="function")
+def underlay_actions(config):
+    """Fixture that provides SSH access to underlay objects.
+
+    :param config: oslo_config object that keeps various parameters
+                   across the fixtures, tests and test runs.
+                   All SSH data is taken from the provided config.
+    :rtype UnderlaySSHManager: Object that encapsulate SSH credentials;
+                               - provide list of underlay nodes;
+                               - provide SSH access to underlay nodes using
+                                 node names or node IPs.
+    """
+    return underlay_ssh_manager.UnderlaySSHManager(config)
+
+
 @pytest.mark.revert_snapshot(ext.SNAPSHOT.underlay)
 @pytest.fixture(scope="function")
 def underlay(request, revert_snapshot, config, hardware):
-    """Fixture that should provide SSH access to underlay objects.
+    """Fixture that bootstraps the environment underlay.
 
     - Starts the 'hardware' environment and creates 'underlay' with required
       configuration.
@@ -183,7 +198,7 @@
             roles=config.underlay.roles)
 
         LOG.info("Config - {}".format(config))
-        underlay = underlay_ssh_manager.UnderlaySSHManager(config)
+        underlay = underlay_actions(config)
 
         if not config.underlay.lvm:
             underlay.enable_lvm(hardware.lvm_storages())
@@ -201,7 +216,7 @@
         config.underlay.ssh = hardware.get_ssh_data(
             roles=config.underlay.roles)
 
-        underlay = underlay_ssh_manager.UnderlaySSHManager(config)
+        underlay = underlay_actions(config)
 
         LOG.info("Generate MACs for MaaS")
         macs = {
@@ -242,7 +257,7 @@
         # 1. hardware environment created and powered on
         # 2. config.underlay.ssh contains SSH access to provisioned nodes
         #    (can be passed from external config with TESTS_CONFIGS variable)
-        underlay = underlay_ssh_manager.UnderlaySSHManager(config)
+        underlay = underlay_actions(config)
 
     return underlay
 
