[PATCH v5 2/4] dts: add methods for runtime interface config

Dean Marx dmarx at iol.unh.edu
Fri Nov 7 22:50:16 CET 2025


Add methods to Linux Session class for setting the link
of an interface up and deleting an interface.

Signed-off-by: Dean Marx <dmarx at iol.unh.edu>
---
 dts/framework/testbed_model/linux_session.py |  8 ++++++++
 dts/framework/testbed_model/os_session.py    | 16 ++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/dts/framework/testbed_model/linux_session.py b/dts/framework/testbed_model/linux_session.py
index 1f11c3e740..711d4d97c3 100644
--- a/dts/framework/testbed_model/linux_session.py
+++ b/dts/framework/testbed_model/linux_session.py
@@ -204,6 +204,14 @@ def bring_up_link(self, ports: Iterable[Port]) -> None:
 
         del self._lshw_net_info
 
+    def set_interface_link_up(self, name: str) -> None:
+        """Overrides :meth:`~.os_session.OSSession.set_interface_link_up`."""
+        self.send_command(f"ip link set dev {name} up", privileged=True, verify=True)
+
+    def delete_interface(self, name: str) -> None:
+        """Overrides :meth:`~.os_session.OSSession.delete_interface`."""
+        self.send_command(f"ip link delete {name}", privileged=True)
+
     @cached_property
     def devbind_script_path(self) -> PurePath:
         """The path to the dpdk-devbind.py script on the node.
diff --git a/dts/framework/testbed_model/os_session.py b/dts/framework/testbed_model/os_session.py
index b41bb42205..b94c3e527b 100644
--- a/dts/framework/testbed_model/os_session.py
+++ b/dts/framework/testbed_model/os_session.py
@@ -590,6 +590,22 @@ def bring_up_link(self, ports: Iterable[Port]) -> None:
             ports: The ports to apply the link up command to.
         """
 
+    @abstractmethod
+    def set_interface_link_up(self, name: str) -> None:
+        """Send operating system specific command for bringing up link on specified interface.
+
+        Args:
+            name: String representing logical name of port to apply the link up command to.
+        """
+
+    @abstractmethod
+    def delete_interface(self, name: str) -> None:
+        """Send operating system specific command for deleting specified interface.
+
+        Args:
+            name: String representing logical name of interface to delete.
+        """
+
     @abstractmethod
     def configure_port_mtu(self, mtu: int, port: Port) -> None:
         """Configure `mtu` on `port`.
-- 
2.51.0



More information about the dev mailing list