diff --git a/CHANGES.rst b/CHANGES.rst index 25e699250..e90648f6d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -14,6 +14,10 @@ New Features in 24.0 used to pass additional options for the disk directly to QEMU - labgrid-client now has a ``write-files`` subcommand to copy files onto mass storage devices. +- The `QEMUDriver` now supports a ``netdev`` argumet which can be added to the + ``tadd_port_forward`` in case there are more than one network interfaces + defined. + Bug fixes in 24.0 ~~~~~~~~~~~~~~~~~ diff --git a/labgrid/driver/qemudriver.py b/labgrid/driver/qemudriver.py index c151125d9..3b0d7160c 100644 --- a/labgrid/driver/qemudriver.py +++ b/labgrid/driver/qemudriver.py @@ -310,15 +310,15 @@ def monitor_command(self, command, arguments={}): "Can't use monitor command on non-running target") return self.qmp.execute(command, arguments) - def _add_port_forward(self, proto, local_address, local_port, remote_address, remote_port): + def _add_port_forward(self, proto, local_address, local_port, remote_address, remote_port, netdev): self.monitor_command( "human-monitor-command", - {"command-line": f"hostfwd_add {proto}:{local_address}:{local_port}-{remote_address}:{remote_port}"}, + {"command-line": f"hostfwd_add {netdev} {proto}:{local_address}:{local_port}-{remote_address}:{remote_port}" }, ) - def add_port_forward(self, proto, local_address, local_port, remote_address, remote_port): - self._add_port_forward(proto, local_address, local_port, remote_address, remote_port) - self._forwarded_ports[(proto, local_address, local_port)] = (proto, local_address, local_port, remote_address, remote_port) + def add_port_forward(self, proto, local_address, local_port, remote_address, remote_port, netdev=""): + self._add_port_forward(proto, local_address, local_port, remote_address, remote_port, netdev) + self._forwarded_ports[(proto, local_address, local_port)] = (proto, local_address, local_port, remote_address, remote_port, netdev) def remove_port_forward(self, proto, local_address, local_port): del self._forwarded_ports[(proto, local_address, local_port)]