]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_capabilities: Introduce QEMU_CAPS_NETDEV_USER
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 27 Jun 2024 08:45:31 +0000 (10:45 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 1 Jul 2024 10:32:16 +0000 (12:32 +0200)
Since -netdev user can be disabled during QEMU compilation, we
can't blindly expect it to just be there. We need a capability
that tracks its presence.

For qemu-4.2.0 we are not able to detect the capability so do the
next best thing - assume the capability is there. This is
consistent with our current behaviour where we blindly assume the
capability, anyway.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
44 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_4.2.0_aarch64.xml
tests/qemucapabilitiesdata/caps_4.2.0_ppc64.xml
tests/qemucapabilitiesdata/caps_4.2.0_s390x.xml
tests/qemucapabilitiesdata/caps_4.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0_aarch64.xml
tests/qemucapabilitiesdata/caps_5.0.0_ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0_riscv64.xml
tests/qemucapabilitiesdata/caps_5.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0_sparc.xml
tests/qemucapabilitiesdata/caps_5.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_5.2.0_aarch64.xml
tests/qemucapabilitiesdata/caps_5.2.0_ppc64.xml
tests/qemucapabilitiesdata/caps_5.2.0_riscv64.xml
tests/qemucapabilitiesdata/caps_5.2.0_s390x.xml
tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml
tests/qemucapabilitiesdata/caps_6.0.0_s390x.xml
tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml
tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml
tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml
tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml
tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml
tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml
tests/qemucapabilitiesdata/caps_8.2.0_armv7l.xml
tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.xml
tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml
tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml

index 470902a4cf3d02ac304ccdb8ef7e9b079d5ed624..2c7186c14f3ece6673dbfe4fdba34035cab82442 100644 (file)
@@ -711,6 +711,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
 
               /* 460 */
               "sev-snp-guest", /* QEMU_CAPS_SEV_SNP_GUEST */
+              "netdev.user", /* QEMU_CAPS_NETDEV_USER */
     );
 
 
@@ -1575,6 +1576,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "object-add/arg-type/+iothread/thread-pool-max", QEMU_CAPS_IOTHREAD_THREAD_POOL_MAX },
     { "query-migrate/ret-type/blocked-reasons", QEMU_CAPS_MIGRATION_BLOCKED_REASONS },
     { "screendump/arg-type/format/^png", QEMU_CAPS_SCREENSHOT_FORMAT_PNG },
+    { "netdev_add/arg-type/+user", QEMU_CAPS_NETDEV_USER },
 };
 
 typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
@@ -5404,6 +5406,11 @@ virQEMUCapsInitQMPVersionCaps(virQEMUCaps *qemuCaps)
      */
     if (qemuCaps->version < 5002000)
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_ENABLE_FIPS);
+
+    /* We are not able to detect this for old QEMU. Assume the capability is
+     * there. */
+    if (qemuCaps->version < 5000000)
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_USER);
 }
 
 
index ef71e8511ee57e5d720689b134a3a0cb4e099d29..d3d4e24e580f01fefbdd2b738b5a54fb09b91744 100644 (file)
@@ -690,6 +690,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
 
     /* 460 */
     QEMU_CAPS_SEV_SNP_GUEST, /* -object sev-snp-guest */
+    QEMU_CAPS_NETDEV_USER, /* -netdev user */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index 33d06ffaceda4e0e9aaf56db0d37fc740f57c7f3..5aa5c7aeefda44dd9a704889b93d869327245bc1 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>4002000</version>
   <microcodeVersion>61700242</microcodeVersion>
   <package>v4.1.0-2221-g36609b4fa3</package>
index 80f503fc46d653d14398aedb7be3d5e6fc58c094..1248897abad9ad44018c9d9e513c21fc1ab830ec 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>4002000</version>
   <microcodeVersion>42900242</microcodeVersion>
   <package>v4.1.0-2198-g9e583f2</package>
index 20d458e55d572dfca7a5b14a8525756c53e1c37d..f63db59bcda5b2ffddac7f9b52bc7a76eec39cf0 100644 (file)
@@ -72,6 +72,7 @@
   <flag name='virtio-blk.queue-size'/>
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
+  <flag name='netdev.user'/>
   <version>4002000</version>
   <microcodeVersion>39100242</microcodeVersion>
   <package>qemu-4.2.0-20200115.0.1e4aa2da.fc31</package>
index 40e3211c5755419c8cc1fa96561fd8cbd02de3c0..a91b34b49fdd63730b43d728434ea39bef503a70 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>4002000</version>
   <microcodeVersion>43100242</microcodeVersion>
   <package>v4.2.0</package>
index 1044a4974285bf226c4ed958d02aab9d885d2eb0..b443541c23cb79b623726044376d70ed6606641b 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5000000</version>
   <microcodeVersion>61700241</microcodeVersion>
   <package>v5.0.0</package>
index 1806e6316ee27bcf49d269001f370776ec00a9c8..47f35c536a27943a774a7d8904d7473a00464bd7 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5000000</version>
   <microcodeVersion>42900241</microcodeVersion>
   <package>v5.0.0</package>
index f68d88f39bfba5f90061c46e2d324cba60690ed7..9b14ff1fffa14dabcb6a2317f0deae0ec73ce35e 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5000000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>v5.0.0</package>
index 1741c003cbd90c0c22ccaf06f42b1d2dae82ebae..84a18b516a3f15ee92d119c71b5341a6b95c3955 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5000000</version>
   <microcodeVersion>43100241</microcodeVersion>
   <package>v5.0.0</package>
index dce3a97aa556e55a6ad4929245a4983af3210756..ffa167508e6b9a2d25db12b688f828927b2d98e3 100644 (file)
@@ -45,6 +45,7 @@
   <flag name='rotation-rate'/>
   <flag name='input-linux'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='netdev.user'/>
   <version>5001000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>qemu-5.1.0-5.fc33</package>
index c863baa71c2f46a8fe9204c9c93264418f0f1bfa..ac3079f1ca1df580b9a945943af30d2bf65b309f 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5001000</version>
   <microcodeVersion>43100242</microcodeVersion>
   <package>v5.1.0</package>
index 905726f7c1fd2da0b3a86b32d3d5c2131154c51c..ae426c5f7f7bf62a2b94bf4bc58ca4f6f5489091 100644 (file)
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
   <flag name='machine.virt.ras'/>
+  <flag name='netdev.user'/>
   <version>5002000</version>
   <microcodeVersion>61700243</microcodeVersion>
   <package>v5.2.0</package>
index be3d464df3770ef2b7b0ac1c8b6f8ee7a76a3ead..d7615208b306a9458c0658f086124f1c0dbe54f7 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5002000</version>
   <microcodeVersion>42900243</microcodeVersion>
   <package>v5.2.0</package>
index 9280e92fd811d8056b97a92a66a33b9a338a4b8b..c3452815b4f0f8b62dd827e32e1b2b427f901f3d 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5002000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>v5.2.0</package>
index 0a18f55960b0cb8e3050046cb2b8bfe8c9a43950..22b2fbeb6936b3f234e9569408a38a3207fd6ffe 100644 (file)
@@ -83,6 +83,7 @@
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
   <flag name='virtio-crypto'/>
+  <flag name='netdev.user'/>
   <version>5002000</version>
   <microcodeVersion>39100243</microcodeVersion>
   <package>qemu-5.2.0-20201215.0.ba93e22c.fc32</package>
index da6229f8e2ad61d93cce44619ff69c35dc74e817..4cd05fa7ec9114950db418faa85f05d225accd4f 100644 (file)
   <flag name='usb-host.guest-resets-all'/>
   <flag name='virtio-crypto'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>5002000</version>
   <microcodeVersion>43100243</microcodeVersion>
   <package>v5.2.0</package>
index 97bbcdeb687e44806cc0e15e63028a2d9129a2c0..83439f3d63b42db96143708a5c64e0627cec45f6 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='machine.virt.ras'/>
+  <flag name='netdev.user'/>
   <version>6000000</version>
   <microcodeVersion>61700242</microcodeVersion>
   <package>v6.0.0</package>
index 94a8406f0addfa97b76c438aabb22a66e3d83379..332b8091ee97284823db282041f2fc5dc2a98ccc 100644 (file)
@@ -93,6 +93,7 @@
   <flag name='migration.blocked-reasons'/>
   <flag name='virtio-crypto'/>
   <flag name='display-reload'/>
+  <flag name='netdev.user'/>
   <version>6000000</version>
   <microcodeVersion>39100242</microcodeVersion>
   <package>qemu-6.0.0-20210517.1.4ff77070.fc33</package>
index ffaa7c2a7123fdbad0d869f0bd3d02322ab63422..dc55e0ab3fe32ed55d0187225ef0f6c285ed0812 100644 (file)
   <flag name='pvpanic-pci'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>6000000</version>
   <microcodeVersion>43100242</microcodeVersion>
   <package>v6.0.0</package>
index 22a1fc3ac74b06a73409404386406ede07917787..1d5b8ea9d230f8e31304bd752bf0e4abe3fd0e85 100644 (file)
   <flag name='virtio-gpu.blob'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>6001000</version>
   <microcodeVersion>43100243</microcodeVersion>
   <package>v6.1.0</package>
index a7a6f54019324c992d750b1ecddf36516e619db1..25049e1ab8915a422846515d975200d82e2846d4 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='machine.virt.ras'/>
+  <flag name='netdev.user'/>
   <version>6001050</version>
   <microcodeVersion>61700244</microcodeVersion>
   <package></package>
index 719e7120a385c1815d8c1d9fdf52614b959de88a..e321481949a232c016e2018e4387ab27fa55ec0d 100644 (file)
   <flag name='virtio-gpu.blob'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>6002000</version>
   <microcodeVersion>42900244</microcodeVersion>
   <package>v6.2.0</package>
index 010f142deea5a07e7b2adc75173a6d0a43f9bae1..f8f8bd95f45c13c8551309ad6dc80df15840e1f5 100644 (file)
   <flag name='virtio-gpu.blob'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>6002000</version>
   <microcodeVersion>43100244</microcodeVersion>
   <package>v6.2.0</package>
index ab21278e50bdd1bd961713d31b43a5eaf3e23980..69d0701dc9e6264be0b47cbed2de5acd12730760 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='machine.virt.ras'/>
+  <flag name='netdev.user'/>
   <version>6002092</version>
   <microcodeVersion>61700243</microcodeVersion>
   <package>v7.0.0-rc2</package>
index f53c3ddcd88f088025112811797233136e3db7bf..eaed5601edfe7c18428eeaa04406d3016ddee7cf 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='machine.virt.ras'/>
+  <flag name='netdev.user'/>
   <version>6002092</version>
   <microcodeVersion>61700243</microcodeVersion>
   <package>v7.0.0-rc2</package>
index 2efa4d6259788ef13ad7f51b8a5058144c6b80c1..a49d45a68ac4ff59d472183fe6d838822308f2fb 100644 (file)
   <flag name='virtio-gpu.blob'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7000000</version>
   <microcodeVersion>42900243</microcodeVersion>
   <package>v7.0.0</package>
index 843225b19d954f22ff79cdc00f18559fcf2e12e6..5c57ae8eb8c4a8a1751c2d3605659e960d78841e 100644 (file)
   <flag name='virtio-gpu.blob'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7000000</version>
   <microcodeVersion>43100243</microcodeVersion>
   <package>v7.0.0</package>
index 3fda8bf6eafbc9eec0a67f6dceefdff45fb9a3f1..5aeb56bac6e6dafe1c56ee2eb77ab4d436f8d5ac 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7001000</version>
   <microcodeVersion>42900244</microcodeVersion>
   <package>v7.1.0</package>
index 0d43787fa93b5b08f05f459b6ea0efaa1c8d80f1..3c589a4d612ab7dcccbed682c5317bc2059ed2a8 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7001000</version>
   <microcodeVersion>43100244</microcodeVersion>
   <package>v7.1.0</package>
index 7a73f762de0a36d10ef4794a29c51f13b30015ff..c5e1b23fb79de214d48873962f9786630f3a4daa 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7002000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>qemu-7.2.0-6.fc37</package>
index 5ba0c24a4dbdc4c14c6e5a5f7032b1e6738660e0..f78e596fcc5caa5f21d4d368906bf31de0e67296 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7002000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v7.2.0</package>
index 887cb02fa0b3ab30656ad188f40478bb7e044393..9b37253d4f71ecb96aa7c73e710628e6108f840d 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7002000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v7.2.0</package>
index 9af900aaa355a93ff0d98769eb33980895a0760f..03c0e99da56feb97ba42cf4b89c4f9080a913a81 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>7002050</version>
   <microcodeVersion>0</microcodeVersion>
   <package>v7.2.0-333-g222059a0fc</package>
index 62a42c3ab6816dd8169aa6ba3e462758e41c5b6e..bd391ca0b6f576df1780f0c2201950af463d5c26 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>8000000</version>
   <microcodeVersion>43100244</microcodeVersion>
   <package>v8.0.0</package>
index 744261be1006ff514cb968880cd246779fcebdf6..c2211bfb121aa19f7497ee1699e5bb7e1704788c 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>8001000</version>
   <microcodeVersion>39100245</microcodeVersion>
   <package>v8.1.0</package>
index 907fc39b993077b6dda01d91e93c573e8368c741..4b7809f6354965a3ac4eaae48aa16f86f66f522f 100644 (file)
   <flag name='smp-clusters'/>
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
+  <flag name='netdev.user'/>
   <version>8001000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v8.1.0</package>
index 925bfef44f4c454efd92cdcb33e27cc85a2b05b7..b856bc55b3e941a20660b0bb6f00e6a2f2c18f7c 100644 (file)
   <flag name='usb-mtp'/>
   <flag name='machine.virt.ras'/>
   <flag name='virtio-sound'/>
+  <flag name='netdev.user'/>
   <version>8002000</version>
   <microcodeVersion>61700246</microcodeVersion>
   <package>v8.2.0</package>
index ea3a76d1757d6d9e75626fd61bae13972457218e..1b95b2de85dd96df4be0c047910f529623a574e7 100644 (file)
   <flag name='usb-mtp'/>
   <flag name='machine.virt.ras'/>
   <flag name='virtio-sound'/>
+  <flag name='netdev.user'/>
   <version>8002000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>qemu-8.2.0-7.fc39</package>
index 618a7075df6827425fb32c5e3742a17fa5efddd7..aaf8f32485bd52d012ca3603b5b3bc9c60d0552b 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='virtio-sound'/>
+  <flag name='netdev.user'/>
   <version>8002000</version>
   <microcodeVersion>106300246</microcodeVersion>
   <package>v8.2.0</package>
index acf18d58969cf0af435358f380ad4ba2f7ed708e..e86088332ed8e08878b457374cc07748db9c8dac 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='virtio-sound'/>
+  <flag name='netdev.user'/>
   <version>8002000</version>
   <microcodeVersion>39100246</microcodeVersion>
   <package>v8.2.0</package>
index 5d7755a65e2deb1b20ca1b12e0899728ce3d0e2e..a1a5d6fd0f34bcc82bed2d2cad9af7f19f782b59 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='virtio-sound'/>
+  <flag name='netdev.user'/>
   <version>8002000</version>
   <microcodeVersion>43100246</microcodeVersion>
   <package>v8.2.0</package>
index 204d2432470379b23a5e5f829117ebd89d764033..ab841db53b42176e7667b21a2a8d0541ebc84208 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='virtio-sound'/>
+  <flag name='netdev.user'/>
   <version>9000000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v9.0.0</package>
index e0332ce1e876f29e043e5b076b358b50c08d0603..05cba09035d0cc2d705e3c3ec510392401134bf2 100644 (file)
   <flag name='display-reload'/>
   <flag name='usb-mtp'/>
   <flag name='virtio-sound'/>
+  <flag name='netdev.user'/>
   <version>9000050</version>
   <microcodeVersion>43100246</microcodeVersion>
   <package>v9.0.0-1388-g80e8f06021-dirty</package>