[PATCH 0/3] Update the capability and doc for device igb

The interface model igb is added since v9.3.0, but the qemu capability and qemu supported version is missing. So I add them in this series. Han Han (3): docs: formatdomain: Mention the QEMU version for igb qemu: capabilities: Add the capability for the device igb qemu/qemu_validate: Add capability check for the model igb docs/formatdomain.rst | 2 +- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_validate.c | 7 +++++++ tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + 6 files changed, 13 insertions(+), 1 deletion(-) -- 2.41.0

Signed-off-by: Han Han <hhan@redhat.com> --- docs/formatdomain.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index cd9cb02bf8..97ab367cff 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -5446,7 +5446,7 @@ Typical values for QEMU and KVM include: ne2k_isa i82551 i82557b i82559er ne2k_pci pcnet rtl8139 e1000 virtio. :since:`Since 5.2.0` , ``virtio-transitional`` and ``virtio-non-transitional`` values are supported. See `Virtio transitional devices`_ for more details. -:since:`Since 9.3.0` igb is also supported. +:since:`Since 9.3.0(QEMU 8.0)` igb is also supported. Setting NIC driver-specific options ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- 2.41.0

On 7/28/23 10:09, Han Han wrote:
Signed-off-by: Han Han <hhan@redhat.com> --- docs/formatdomain.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index cd9cb02bf8..97ab367cff 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -5446,7 +5446,7 @@ Typical values for QEMU and KVM include: ne2k_isa i82551 i82557b i82559er ne2k_pci pcnet rtl8139 e1000 virtio. :since:`Since 5.2.0` , ``virtio-transitional`` and ``virtio-non-transitional`` values are supported. See `Virtio transitional devices`_ for more details. -:since:`Since 9.3.0` igb is also supported. +:since:`Since 9.3.0(QEMU 8.0)` igb is also supported.
Missing space to separate libvirt version and '('. But then I am wondering how useful this is. We usually don't document hypervisor version, because especially QEMU is notoriously known to have active downstream developers who backport even features (that's the whole reason we have QEMU capabilities and try to avoid version checks as much as possible). Looking from another angle, the worst thing that will happen is: QEMU refuses to start because of unknown NIC model. Well if that doesn't suggest to the user to upgrade then I don't think our docs would. Michal

Signed-off-by: Han Han <hhan@redhat.com> --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + 4 files changed, 5 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f80bdb579d..eb1dc44142 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -697,6 +697,7 @@ VIR_ENUM_IMPL(virQEMUCaps, /* 450 */ "run-with.async-teardown", /* QEMU_CAPS_RUN_WITH_ASYNC_TEARDOWN */ + "igb", /* QEMU_CAPS_IGB */ ); @@ -1385,6 +1386,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { { "virtio-crypto-device", QEMU_CAPS_DEVICE_VIRTIO_CRYPTO }, { "cryptodev-backend-lkcf", QEMU_CAPS_OBJECT_CRYPTO_LKCF }, { "pvpanic-pci", QEMU_CAPS_DEVICE_PANIC_PCI }, + { "igb", QEMU_CAPS_IGB }, }; diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index c72f73a161..1afd90a610 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -676,6 +676,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ /* 450 */ QEMU_CAPS_RUN_WITH_ASYNC_TEARDOWN, /* asynchronous teardown -run-with async-teardown=on|off */ + QEMU_CAPS_IGB, /* -device igb */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml index c43c209328..72a75d8701 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -203,6 +203,7 @@ <flag name='virtio-gpu.blob'/> <flag name='rbd-encryption-layering'/> <flag name='rbd-encryption-luks-any'/> + <flag name='igb'/> <version>8000000</version> <microcodeVersion>43100244</microcodeVersion> <package>v8.0.0</package> diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml index e656a2024a..a1faa6491e 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -204,6 +204,7 @@ <flag name='rbd-encryption-luks-any'/> <flag name='qcow2-discard-no-unref'/> <flag name='run-with.async-teardown'/> + <flag name='igb'/> <version>8000050</version> <microcodeVersion>43100245</microcodeVersion> <package>v8.0.0-2835-g361d539735</package> -- 2.41.0

Signed-off-by: Han Han <hhan@redhat.com> --- src/qemu/qemu_validate.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index d5c2b2cd44..a5eb96c9b5 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1858,6 +1858,13 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net, } } + if (net->model == VIR_DOMAIN_NET_MODEL_IGB && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_IGB)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("interface model igb is not supported with this QEMU binary")); + return -1; + } + if (net->mtu && !qemuDomainNetSupportsMTU(net->type, net->backend.type)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -- 2.41.0

On Fri, Jul 28, 2023 at 16:09:38 +0800, Han Han wrote:
Signed-off-by: Han Han <hhan@redhat.com> --- src/qemu/qemu_validate.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index d5c2b2cd44..a5eb96c9b5 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1858,6 +1858,13 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net, } }
+ if (net->model == VIR_DOMAIN_NET_MODEL_IGB && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_IGB)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("interface model igb is not supported with this QEMU binary")); + return -1; + }
NACK, this was already discussed and is not needed: https://listman.redhat.com/archives/libvir-list/2023-April/239345.html

On 7/28/23 12:59, Peter Krempa wrote:
On Fri, Jul 28, 2023 at 16:09:38 +0800, Han Han wrote:
Signed-off-by: Han Han <hhan@redhat.com> --- src/qemu/qemu_validate.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index d5c2b2cd44..a5eb96c9b5 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1858,6 +1858,13 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net, } }
+ if (net->model == VIR_DOMAIN_NET_MODEL_IGB && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_IGB)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("interface model igb is not supported with this QEMU binary")); + return -1; + }
NACK, this was already discussed and is not needed:
https://listman.redhat.com/archives/libvir-list/2023-April/239345.html
Agreed. And thus patch 2/3 is not necessary either (unless we want to report supported models in domcapabilities, but that's orthogonal - we don't do that, yet. And until somebody wants that I'd like to keep it that way.). Michal
participants (3)
-
Han Han
-
Michal Prívozník
-
Peter Krempa