type: int
unit: bytes
default: -
+ length - length of buffer to read or write,
+ (default 128 KB for TCP, 8 KB for UDP)
+ type: int
+ unit: k
+ default: -
+ window - set window size / socket buffer size
+ set TCP windows size. for UDP way to test, this will set to accept UDP
+ packet buffer size, limit the max size of acceptable data packet.
+ type: int
+ unit: k
+ default: -
"""
__scenario_type__ = "Iperf3"
# If there are no options specified
if not options:
- options = ""
+ options = {}
use_UDP = False
- if "udp" in options:
- cmd += " --udp"
- use_UDP = True
- if "bandwidth" in options:
- cmd += " --bandwidth %s" % options["bandwidth"]
- else:
- # tcp obviously
+ try:
+ protocol = options.get("protocol")
+ bandwidth = options.get('bandwidth')
+ use_UDP = protocol == 'udp'
+ if protocol:
+ cmd += " --" + protocol
+ if use_UDP and bandwidth:
+ cmd += " --bandwidth " + bandwidth
+ # if nodelay in the option, protocal maybe null or 'tcp'
if "nodelay" in options:
cmd += " --nodelay"
+ except AttributeError:
+ LOG.warning("Can't parser the options in your config file!!!")
# these options are mutually exclusive in iperf3
if time:
elif "blockcount" in options:
cmd += " --blockcount %d" % options["blockcount"]
+ if "length" in options:
+ cmd += " --length %s" % options["length"]
+
+ if "window" in options:
+ cmd += " --window %s" % options["window"]
+
LOG.debug("Executing command: %s", cmd)
status, stdout, stderr = self.host.execute(cmd)