[PATCH] qemu: don't add --mac-addr option to passt commandline
Stefano Brivio
sbrivio at redhat.com
Thu Jul 27 08:28:13 UTC 2023
On Thu, 13 Jul 2023 12:30:22 -0400
Laine Stump <laine at redhat.com> wrote:
> When I implemented passt support in libvirt, I saw the --mac-addr
> option on the passt commandline, immediately assumed that this was
> used for setting the guest interface's mac address somewhere within
> passt, and read no further. As a result, "--mac-addr" is always added
> to the passt commandline, specifying the setting from
> <mac addr='blah'/> in the guest's interface config.
>
> But as pointed out in this bugzilla comment:
>
> https://bugzilla.redhat.com/2184967#c8
>
> That is *not at all* what passt's --mac-addr option does. Instead, it
> is used to force the *remote* mac address for incoming traffic to a
> specific value. So setting --mac-addr results in all traffic on the
> interface having the same (the guest's) mac address for both source
> and destination in all traffic. Surprisingly, this still works, so
> nobody noticed it during testing.
>
> The proper thing is to not specify any mac address to passt - the
> remote MAC addresses can and should remain untouched, and the local
> MAC address will end up being known to passt and beyond just by the
> guest sending out packets with that MAC address.
>
> Reported-by: Laszlo Ersek <lersek at redhat.com>
> Signed-off-by: Laine Stump <laine at redhat.com>
> ---
> src/qemu/qemu_passt.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/src/qemu/qemu_passt.c b/src/qemu/qemu_passt.c
> index 3679bf75fc..d36856e92e 100644
> --- a/src/qemu/qemu_passt.c
> +++ b/src/qemu/qemu_passt.c
> @@ -176,7 +176,6 @@ qemuPasstStart(virDomainObj *vm,
> g_autofree char *passtSocketName = qemuPasstCreateSocketPath(vm, net);
> g_autoptr(virCommand) cmd = NULL;
> g_autofree char *pidfile = qemuPasstCreatePidFilename(vm, net);
> - char macaddr[VIR_MAC_STRING_BUFLEN];
> bool needUnlink = false;
> size_t i;
>
> @@ -187,7 +186,6 @@ qemuPasstStart(virDomainObj *vm,
> virCommandAddArgList(cmd,
> "--one-off",
> "--socket", passtSocketName,
> - "--mac-addr", virMacAddrFormat(&net->mac, macaddr),
> "--pid", pidfile,
> NULL);
>
Reviewed-by: Stefano Brivio <sbrivio at redhat.com>
--
Stefano
More information about the libvir-list
mailing list