]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Add VIR_DOMAIN_DEF_FEATURE_NET_MODEL_STRING
authorCole Robinson <crobinso@redhat.com>
Fri, 18 Jan 2019 20:57:32 +0000 (15:57 -0500)
committerCole Robinson <crobinso@redhat.com>
Tue, 16 Apr 2019 17:11:08 +0000 (13:11 -0400)
This requires drivers to opt in to handle the raw modelstr
network model, all others will error if a passed in XML value
is not in the model enum.

Enable this feature for libxl/xen/xm and qemu drivers

Acked-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/libxl/libxl_domain.c
src/qemu/qemu_domain.c
src/security/virt-aa-helper.c

index 88e722ae34f1aa7bf8ec490285f8b50382be6c1e..980642cee87d5d531e8365f04f3327230a01af71 100644 (file)
@@ -5365,6 +5365,15 @@ virDomainDeviceDefPostParseCheckFeatures(virDomainDeviceDefPtr dev,
         virDomainDeviceDefCheckUnsupportedMemoryDevice(dev) < 0)
         return -1;
 
+    if (UNSUPPORTED(VIR_DOMAIN_DEF_FEATURE_NET_MODEL_STRING) &&
+        dev->type == VIR_DOMAIN_DEVICE_NET &&
+        dev->data.net->modelstr) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       _("driver does not support net model '%s'"),
+                       dev->data.net->modelstr);
+        return -1;
+    }
+
     return 0;
 }
 #undef UNSUPPORTED
index 2c22860af8b963f1b496e96dad9d965d41fc9e73..2755c74924892d8b42f0dbcfbb0915849c091ddf 100644 (file)
@@ -2580,6 +2580,7 @@ typedef enum {
     VIR_DOMAIN_DEF_FEATURE_USER_ALIAS = (1 << 5),
     VIR_DOMAIN_DEF_FEATURE_NO_BOOT_ORDER = (1 << 6),
     VIR_DOMAIN_DEF_FEATURE_FW_AUTOSELECT = (1 << 7),
+    VIR_DOMAIN_DEF_FEATURE_NET_MODEL_STRING = (1 << 8),
 } virDomainDefFeatures;
 
 
index f9ab06b916ec8a0072c2aa466d53b6308437a6ca..2d8569e5921949df65de3efa492bfdbfbcb7d6ed 100644 (file)
@@ -431,6 +431,7 @@ virDomainDefParserConfig libxlDomainDefParserConfig = {
     .macPrefix = { 0x00, 0x16, 0x3e },
     .devicesPostParseCallback = libxlDomainDeviceDefPostParse,
     .domainPostParseCallback = libxlDomainDefPostParse,
+    .features = VIR_DOMAIN_DEF_FEATURE_NET_MODEL_STRING,
 };
 
 
index 0882bf8fd05a6f2d0a422bebc388b74830f3bd66..960aaff3c7ad5aa3762ad04d33b4da44b1d04896 100644 (file)
@@ -6962,7 +6962,8 @@ virDomainDefParserConfig virQEMUDriverDomainDefParserConfig = {
                 VIR_DOMAIN_DEF_FEATURE_OFFLINE_VCPUPIN |
                 VIR_DOMAIN_DEF_FEATURE_INDIVIDUAL_VCPUS |
                 VIR_DOMAIN_DEF_FEATURE_USER_ALIAS |
-                VIR_DOMAIN_DEF_FEATURE_FW_AUTOSELECT,
+                VIR_DOMAIN_DEF_FEATURE_FW_AUTOSELECT |
+                VIR_DOMAIN_DEF_FEATURE_NET_MODEL_STRING,
 };
 
 
index 158b614757f4984130a828199161dc4a0f0d055f..d0fe86cefccd8f5dc2ca7d7bb53ed9a0b13cb8bc 100644 (file)
@@ -645,7 +645,8 @@ caps_mockup(vahControl * ctl, const char *xmlStr)
 virDomainDefParserConfig virAAHelperDomainDefParserConfig = {
     .features = VIR_DOMAIN_DEF_FEATURE_MEMORY_HOTPLUG |
                 VIR_DOMAIN_DEF_FEATURE_OFFLINE_VCPUPIN |
-                VIR_DOMAIN_DEF_FEATURE_INDIVIDUAL_VCPUS,
+                VIR_DOMAIN_DEF_FEATURE_INDIVIDUAL_VCPUS |
+                VIR_DOMAIN_DEF_FEATURE_NET_MODEL_STRING,
 };
 
 static int