def get_eal_options(**kwargs): """Create EAL parameters options (including -v). :param kwargs: Dict of testpmd parameters. :type kwargs: dict :returns: EAL parameters. :rtype: OptionString """ options = OptionString(prefix='-') options.add('v') # Set the hexadecimal bitmask of the cores to run on. options.add_with_value_from_dict('l', 'eal_corelist', kwargs) # Set master core. options.add_with_value('-master-lcore', '0') # Load an external driver. Multiple -d options are allowed. options.add_with_value_if_from_dict('d', '/usr/lib/librte_pmd_virtio.so', 'eal_driver', kwargs, True) options.add_if_from_dict('-in-memory', 'eal_in_memory', kwargs, False) return options
def get_eal_options(**kwargs): """Create EAL parameters options (including -v). :param kwargs: Dict of testpmd parameters. :type kwargs: dict :returns: EAL parameters. :rtype: OptionString """ options = OptionString(prefix=u"-") options.add(u"v") # Set the hexadecimal bitmask of the cores to run on. options.add_with_value_from_dict(u"l", u"eal_corelist", kwargs) # Add a PCI device in white list. options.add_with_value_from_dict(u"a", u"eal_pci_whitelist0", kwargs) options.add_with_value_from_dict(u"a", u"eal_pci_whitelist1", kwargs) # Load an external driver. Multiple -d options are allowed. options.add_with_value_if_from_dict(u"d", u"/usr/lib/librte_pmd_virtio.so", u"eal_driver", kwargs, True) options.add_if_from_dict(u"-in-memory", u"eal_in_memory", kwargs, False) return options
def iperf3_cmdline(**kwargs): """Get iPerf3 server command line. :param kwargs: List of iPerf3 server parameters. :type kwargs: dict :returns: iPerf3 server command line. :rtype: OptionString """ cmd = OptionString() if kwargs['namespace']: cmd.add(f"ip netns exec {kwargs['namespace']}") cmd.add(f"iperf3") cmd_options = OptionString(prefix=u"--") # Run iPerf in server mode. (This will only allow one iperf connection # at a time) cmd_options.add(u"server") # Run the server in background as a daemon. cmd_options.add_if_from_dict(u"daemon", u"daemon", kwargs, True) # Write a file with the process ID, most useful when running as a # daemon. cmd_options.add_with_value_from_dict(u"pidfile", u"pidfile", kwargs, f"/tmp/iperf3_server.pid") # Send output to a log file. cmd_options.add_with_value_from_dict(u"logfile", u"logfile", kwargs, f"/tmp/iperf3.log") # The server port for the server to listen on and the client to # connect to. This should be the same in both client and server. # Default is 5201. cmd_options.add_with_value_from_dict(u"port", u"port", kwargs, 5201) # Set the CPU affinity, if possible (Linux and FreeBSD only). cmd_options.add_with_value_from_dict(u"affinity", u"affinity", kwargs) # Output in JSON format. cmd_options.add_if_from_dict(u"json", u"json", kwargs, True) # Give more detailed output. cmd_options.add_if_from_dict(u"verbose", u"verbose", kwargs, True) return cmd.extend(cmd_options)
def get_cmd_options(**kwargs): """Create parameters options. :param kwargs: Dict of cmd parameters. :type kwargs: dict :returns: Cmd parameters. :rtype: OptionString """ cmd = OptionString() cmd.add(u"python3") dirname = f"{Constants.REMOTE_FW_DIR}/resources/tools/ab" cmd.add(f"{dirname}/ABFork.py") cmd_options = OptionString(prefix=u"-") # Number of requests to perform. cmd_options.add_with_value_from_dict(u"r", u"requests", kwargs) # Server port number to use. cmd_options.add_with_value_from_dict(u"p", u"port", kwargs) # Number of clients being processed at the same time. cmd_options.add_with_value_from_dict(u"c", u"clients", kwargs) # Filename to be requested from the servers. cmd_options.add_with_value_from_dict(u"f", u"files", kwargs) # Server ip address. cmd_options.add_with_value_from_dict(u"i", u"ip", kwargs) # tg ip address. cmd_options.add_with_value_from_dict(u"g", u"tip", kwargs) # Specify SSL/TLS cipher suite. cmd_options.add_with_value_from_dict(u"z", u"cipher", kwargs, default=0) # Specify SSL/TLS protocol. cmd_options.add_with_value_from_dict(u"t", u"protocol", kwargs, default=0) # Mode: RPS or CPS. cmd_options.add_with_value_from_dict(u"m", u"mode", kwargs) return cmd.extend(cmd_options)
def iperf3_cmdline(**kwargs): """Get iperf_client driver command line. :param kwargs: List of iperf_client driver parameters. :type kwargs: dict :returns: iperf_client driver command line. :rtype: OptionString """ cmd = OptionString() cmd.add(u"python3") dirname = f"{Constants.REMOTE_FW_DIR}/resources/tools/iperf" cmd.add(f"'{dirname}/iperf_client.py'") cmd_options = OptionString(prefix=u"--") # Namespace to execute iPerf3 client on. cmd_options.add_with_value_from_dict(u"namespace", u"namespace", kwargs) # Client connecting to an iPerf3 server running on host. cmd_options.add_with_value_from_dict(u"host", u"host", kwargs) # Client bind IP address. cmd_options.add_with_value_from_dict(u"bind", u"bind", kwargs) # Use UDP rather than TCP. cmd_options.add_if_from_dict(u"udp", u"udp", kwargs, False) # Set the CPU affinity, if possible. cmd_options.add_with_value_from_dict(u"affinity", u"affinity", kwargs) # Time expressed in seconds for how long to send traffic. cmd_options.add_with_value_from_dict(u"duration", u"duration", kwargs) # Send bi- (2) or uni- (1) directional traffic. cmd_options.add_with_value_from_dict(u"traffic_directions", u"traffic_directions", kwargs, 1) # Traffic warm-up time in seconds, (0=disable). cmd_options.add_with_value_from_dict(u"warmup_time", u"warmup_time", kwargs, 5.0) # L2 frame size to send (without padding and IPG). cmd_options.add_with_value_from_dict(u"frame_size", u"frame_size", kwargs) # Traffic rate expressed with units. cmd_options.add_with_value_from_dict(u"rate", u"rate", kwargs) # If enabled then don't wait for all incoming traffic. cmd_options.add_if_from_dict(u"async_start", u"async_call", kwargs, False) # Number of iPerf3 client parallel instances. cmd_options.add_with_value_from_dict(u"instances", u"instances", kwargs, 1) # Number of iPerf3 client parallel flows. cmd_options.add_with_value_from_dict(u"parallel", u"parallel", kwargs, 8) return cmd.extend(cmd_options)