[v8,2/7] dts: limit EAL parameters to DPDK apps and add parameters to all apps
Checks
Commit Message
From: Jeremy Spewock <jspewock@iol.unh.edu>
Changed the factory method for creating interactive apps in the SUT Node
so that EAL parameters would only be passed into DPDK apps since
non-DPDK apps wouldn't be able to process them. Also modified
interactive apps to allow for the ability to pass parameters into the
app on startup so that the applications can be started with certain
configuration steps passed on the command line.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu>
---
dts/framework/remote_session/testpmd_shell.py | 2 +-
dts/framework/testbed_model/sut_node.py | 16 ++++++++++------
2 files changed, 11 insertions(+), 7 deletions(-)
@@ -118,7 +118,7 @@ def _start_application(self, get_privileged_command: Callable[[str], str] | None
Also find the number of pci addresses which were allowed on the command line when the app
was started.
"""
- self._app_args += " -- -i --mask-event intr_lsc"
+ self._app_args += " -i --mask-event intr_lsc"
self.number_of_ports = self._app_args.count("-a ")
super()._start_application(get_privileged_command)
@@ -430,7 +430,8 @@ def create_interactive_shell(
shell_cls: Type[InteractiveShellType],
timeout: float = SETTINGS.timeout,
privileged: bool = False,
- eal_parameters: EalParameters | str | None = None,
+ app_parameters: str = "",
+ eal_parameters: EalParameters | None = None,
) -> InteractiveShellType:
"""Extend the factory for interactive session handlers.
@@ -449,20 +450,23 @@ def create_interactive_shell(
eal_parameters: List of EAL parameters to use to launch the app. If this
isn't provided or an empty string is passed, it will default to calling
:meth:`create_eal_parameters`.
+ app_parameters: Additional arguments to pass into the application on the
+ command-line.
Returns:
An instance of the desired interactive application shell.
"""
- if not eal_parameters:
- eal_parameters = self.create_eal_parameters()
-
- # We need to append the build directory for DPDK apps
+ # We need to append the build directory and add EAL parameters for DPDK apps
if shell_cls.dpdk_app:
+ if not eal_parameters:
+ eal_parameters = self.create_eal_parameters()
+ app_parameters = f"{eal_parameters} -- {app_parameters}"
+
shell_cls.path = self.main_session.join_remote_path(
self.remote_dpdk_build_dir, shell_cls.path
)
- return super().create_interactive_shell(shell_cls, timeout, privileged, str(eal_parameters))
+ return super().create_interactive_shell(shell_cls, timeout, privileged, app_parameters)
def bind_ports_to_driver(self, for_dpdk: bool = True) -> None:
"""Bind all ports on the SUT to a driver.