From a8262cb331db0f1a706edbadffc2cd5b01e44be6 Mon Sep 17 00:00:00 2001 From: Laine Stump Date: Thu, 13 Jul 2023 11:51:28 -0400 Subject: [PATCH] qemu: don't add --mac-addr option to passt commandline 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 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 just by the guest sending out packets with that MAC address. Reported-by: Laszlo Ersek Signed-off-by: Laine Stump Reviewed-by: Laszlo Ersek Reviewed-by: Stefano Brivio --- 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 99636a3a49..c364fba4e7 100644 --- a/src/qemu/qemu_passt.c +++ b/src/qemu/qemu_passt.c @@ -169,7 +169,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]; size_t i; cmd = virCommandNew(PASST); @@ -179,7 +178,6 @@ qemuPasstStart(virDomainObj *vm, virCommandAddArgList(cmd, "--one-off", "--socket", passtSocketName, - "--mac-addr", virMacAddrFormat(&net->mac, macaddr), "--pid", pidfile, NULL); -- 2.47.2