def test(self, test, params, env): iperf_src_path = os.path.join(test.virtdir, "deps") self.iperf_b_path = os.path.join("iperf-2.0.4", "src", "iperf") error.context("Install iperf to vms machine.") utils_misc.ForAllP( self.machines).compile_autotools_app_tar(iperf_src_path, "iperf-2.0.4.tar.gz") allow_iperf_firewall(self.host) utils_misc.ForAllP(self.mvms).cmd("iptables -F") self.start_servers() # Test TCP bandwidth error.context("Test iperf bandwidth tcp.") speeds = self.test_bandwidth() logging.info("TCP Bandwidth from vm->host: %s", speeds[0]) logging.info("TCP Bandwidth from host->vm: %s", speeds[1]) logging.info("TCP Bandwidth from vm->vm: %s", speeds[2]) # test udp bandwidth limited to 1Gb error.context("Test iperf bandwidth udp.") speeds = self.test_bandwidth("-u -b 1G") logging.info("UDP Bandwidth from vm->host: %s", speeds[0]) logging.info("UDP Bandwidth from host->vm: %s", speeds[1]) logging.info("UDP Bandwidth from vm->vm: %s", speeds[2])
def start_servers(self): utils_misc.ForAllP( self.machines).cmd_in_src("%s -s &> /dev/null &" % (self.iperf_b_path)) utils_misc.ForAllP( self.machines).cmd_in_src("%s -s -u &> /dev/null &" % (self.iperf_b_path))
def setup(self, test, params, env): self.br0_name = "br0-%s" % (utils_misc.generate_random_string(3)) while self.br0_name in utils_net.get_net_if(): self.br0_name = "br0-%s" % (utils_misc.generate_random_string(3)) self.br0_ip = params.get("bridge_ip", "192.168.250.1") self.ovs = None error.context("Try to log into guest.") self.vms = [env.get_vm(vm) for vm in params.get("vms").split()] for vm in self.vms: vm.verify_alive() error.context("Start OpenVSwitch.") self.ovs = versionable_class.factory(openvswitch.OpenVSwitchSystem)() self.ovs.init_system() self.ovs.check() error.context("Add new bridge %s." % (self.br0_name)) self.ovs.add_br(self.br0_name) utils_net.set_net_if_ip(self.br0_name, self.br0_ip) utils_net.bring_up_ifname(self.br0_name) self.dns_pidf = (utils_net.check_add_dnsmasq_to_br(self.br0_name, test.tmpdir)) error.context("Add new ports from vms %s to bridge %s." % (self.vms, self.br0_name)) for vm in self.vms: utils_net.change_iface_bridge(vm.virtnet[1], self.br0_name, self.ovs) logging.debug(self.ovs.status()) self.host = ovs_utils.Machine(src=test.srcdir) self.mvms = [ovs_utils.Machine(vm) for vm in self.vms] self.machines = [self.host] + self.mvms # ForAllP(self.mvms).cmd("dhclinet") time.sleep(5) utils_misc.ForAllP(self.machines).fill_addrs()