[PATCH v4 1/5] dts: allow binding only a single port to a different driver

Juraj Linkeš juraj.linkes at pantheon.tech
Wed Sep 25 10:45:54 CEST 2024



On 23. 9. 2024 20:42, jspewock at iol.unh.edu wrote:
> From: Jeremy Spewock <jspewock at iol.unh.edu>
> 
> Previously the DTS framework only included methods that bind all ports
> that the test run was aware of to either the DPDK driver or the OS
> driver. There are however some cases, like creating virtual functions,
> where you would want some ports bound to the OS driver and others bound
> to their DPDK driver. This patch adds the ability to bind individual
> ports to their respective drviers to solve this problem.

Typo: drviers

> 
> Depends-on: patch-144318 ("dts: add binding to different drivers to TG
> node")
> 
> Signed-off-by: Jeremy Spewock <jspewock at iol.unh.edu>
> ---
>   dts/framework/testbed_model/node.py | 21 ++++++++++++---------
>   dts/tests/TestSuite_os_udp.py       |  4 ++--
>   2 files changed, 14 insertions(+), 11 deletions(-)
> 
> diff --git a/dts/framework/testbed_model/node.py b/dts/framework/testbed_model/node.py

> @@ -266,12 +266,15 @@ def bind_ports_to_driver(self, for_dpdk: bool = True) -> None:
>                   If :data:`False`, binds to os_driver.
>           """
>           for port in self.ports:
> -            driver = port.os_driver_for_dpdk if for_dpdk else port.os_driver
> -            self.main_session.send_command(
> -                f"{self.path_to_devbind_script} -b {driver} --force {port.pci}",
> -                privileged=True,
> -                verify=True,
> -            )
> +            self._bind_port_to_driver(port, for_dpdk)
> +
> +    def _bind_port_to_driver(self, port: Port, for_dpdk: bool = True) -> None:
> +        driver = port.os_driver_for_dpdk if for_dpdk else port.os_driver
> +        self.main_session.send_command(
> +            f"{self.path_to_devbind_script} -b {driver} --force {port.pci}",
> +            privileged=True,
> +            verify=True,
> +        )

I noticed we're doing this port by port, but we can bind multiple ports 
in one devbind run - just pass all ports to it. I think this improvement 
is well worth it.



More information about the dev mailing list