diff --git a/utils/ssh.py b/utils/ssh.py
index caca30e..20313d0 100644
--- a/utils/ssh.py
+++ b/utils/ssh.py
@@ -14,6 +14,21 @@
 logging.getLogger("paramiko").setLevel(logging.WARNING)
 
 
+def install_iperf_at_vms_and_get_mtu(vm_info):
+    transport1 = SSHTransport(vm_info['fip'], 'ubuntu', password='dd',
+                              private_key=vm_info['private_key'])
+    try:
+        IperfAtVM(vm_info['fip'], private_key=vm_info['private_key'])
+        logger.info("Getting MTU values from VMs...")
+        mtu = transport1.get_mtu_from_vm(
+            vm_info['fip'], private_key=vm_info['private_key'])
+        logger.info(f"MTU at VM {vm_info['fip']} is {mtu}")
+        return mtu
+    except Exception as e:
+        print(f"Error on VM {vm_info['fip']}: {e}")
+        return None
+
+
 class SSHTransport(object):
     def __init__(self, address, username, password=None,
                  private_key=None, look_for_keys=False, *args, **kwargs):
