def METHOD_NAME(self):
    """
    Setup and install dependencies for the test.
    """
    self.test_name = "udaddy"
    self.basic = self.params.get("basic_option", default="None")
    self.ext = self.params.get("ext_option", default="None")
    self.flag = self.params.get("ext_flag", default="0")
    if self.basic == "None" and self.ext == "None":
        self.cancel("No option given")
    if self.flag == "1" and self.ext != "None":
        self.option = self.ext
    else:
        self.option = self.basic
    if process.system("ibstat", shell=True, ignore_status=True) != 0:
        self.cancel("MOFED is not installed. Skipping")
    detected_distro = distro.detect()
    pkgs = []
    smm = SoftwareManager()
    if detected_distro.name == "Ubuntu":
        pkgs.extend(["openssh-client", "iputils-ping"])
    elif detected_distro.name == "SuSE":
        pkgs.extend(["openssh", "iputils"])
    else:
        pkgs.extend(["openssh-clients", "iputils"])
    for pkg in pkgs:
        if not smm.check_installed(pkg) and not smm.install(pkg):
            self.cancel("Not able to install %s" % pkg)
    interfaces = netifaces.interfaces()
    self.iface = self.params.get("interface", default="")
    self.peer_ip = self.params.get("peer_ip", default="")
    self.peer_user = self.params.get("peer_user", default="root")
    self.peer_password = self.params.get("peer_password", '*',
                                         default="None")
    self.ipaddr = self.params.get("host_ip", default="")
    self.netmask = self.params.get("netmask", default="")
    local = LocalHost()
    if self.iface[0:2] == 'ib':
        self.networkinterface = NetworkInterface(self.iface, local,
                                                 if_type='Infiniband')
        try:
            self.networkinterface.add_ipaddr(self.ipaddr, self.netmask)
            self.networkinterface.save(self.ipaddr, self.netmask)
        except Exception:
            self.networkinterface.save(self.ipaddr, self.netmask)
    else:
        self.networkinterface = NetworkInterface(self.iface, local)
        try:
            self.networkinterface.add_ipaddr(self.ipaddr, self.netmask)
            self.networkinterface.save(self.ipaddr, self.netmask)
        except Exception:
            self.networkinterface.save(self.ipaddr, self.netmask)
    self.networkinterface.bring_up()
    self.session = Session(self.peer_ip, user=self.peer_user,
                           password=self.peer_password)
    if self.iface not in interfaces:
        self.cancel("%s interface is not available" % self.iface)
    if self.peer_ip == "":
        self.cancel("%s peer machine is not available" % self.peer_ip)
    self.timeout = "2m"
    self.local_ip = netifaces.ifaddresses(self.iface)[AF_INET][0]['addr']
    self.mtu = self.params.get("mtu", default=1500)
    self.remotehost = RemoteHost(self.peer_ip, self.peer_user,
                                 password=self.peer_password)
    self.peer_interface = self.remotehost.get_interface_by_ipaddr(self.peer_ip).name
    self.peer_networkinterface = NetworkInterface(self.peer_interface,
                                                  self.remotehost)
    if detected_distro.name == "Ubuntu":
        cmd = "service ufw stop"
    # FIXME: "redhat" as the distro name for RHEL is deprecated
    # on Avocado versions >= 50.0.  This is a temporary compatibility
    # enabler for older runners, but should be removed soon
    elif detected_distro.name in ['rhel', 'fedora', 'redhat']:
        cmd = "systemctl stop firewalld"
    elif detected_distro.name == "SuSE":
        if detected_distro.version == 15:
            cmd = "systemctl stop firewalld"
        else:
            cmd = "rcSuSEfirewall2 stop"
    elif detected_distro.name == "centos":
        cmd = "service iptables stop"
    else:
        self.cancel("Distro not supported")
    if process.system(cmd, ignore_status=True, shell=True) != 0:
        self.cancel("Unable to disable firewall")
    output = self.session.cmd(cmd)
    if not output.exit_status == 0:
        self.cancel("Unable to disable firewall on peer")