]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virrandom: Accept "nodedev" driver in virRandomGenerateWWN()
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 17 Jul 2023 13:05:11 +0000 (15:05 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 25 Jul 2023 12:54:37 +0000 (14:54 +0200)
The virRandomGenerateWWN() is used solely by nodedev driver to
autogenerate WWNN and WWNP when parsing a nodedev XML. Now, the
idea was (at least during monolithic daemon) that depending on
which hypervisor driver called the nodedev XML parsing (and
virRandomGenerateWWN() under the hood) the corresponding OUI is
used (e.g. "001a4a" for the QEMU driver).

But in era of split daemons things are not that easy. We do not
know which hypervisor driver called us. And there might be no
hypervisor driver at all - users are allowed to connect to
individual drivers directly (e.g. "nodedev:///system").

In this case, we can't use proper OUI. Well, do the next best
thing: pick one (QUMRANET_OUI).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/util/virrandom.c

index f719af35f6c2c7e3074409fc55bda282692e9744..11f3a94611bf14d00a88300b1b025cfb8a17068f 100644 (file)
@@ -139,7 +139,13 @@ virRandomGenerateWWN(char **wwn,
         return -1;
     }
 
-    if (STREQ(virt_type, "QEMU")) {
+    /* In case of split daemon we don't really see the hypervisor
+     * driver that just re-routed the nodedev driver API. There
+     * might not be any hypervisor driver even. Yet, we have to
+     * pick OUI. Pick "QEMU". */
+
+    if (STREQ(virt_type, "QEMU") ||
+        STREQ(virt_type, "nodedev")) {
         oui = QUMRANET_OUI;
     } else if (STREQ(virt_type, "Xen") ||
                STREQ(virt_type, "xenlight")) {