]> xenbits.xensource.com Git - libvirt.git/commitdiff
bhyve: convert to net model enum
authorCole Robinson <crobinso@redhat.com>
Fri, 18 Jan 2019 00:59:21 +0000 (19:59 -0500)
committerCole Robinson <crobinso@redhat.com>
Tue, 16 Apr 2019 17:11:08 +0000 (13:11 -0400)
The bhyve driver only works with the virtio and e1000 models,
which we already have in the enum. Some error reporting is
slightly downgraded to avoid some subtle usage of modelstr

Acked-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
src/bhyve/bhyve_command.c
src/bhyve/bhyve_parse_command.c

index d3d790f6b6060073c653f89d596e474b2fc10797..219e2b8d9ef1b25f2731d7eb8fabdd2cd4aa56b1 100644 (file)
@@ -57,16 +57,10 @@ bhyveBuildNetArgStr(virConnectPtr conn,
     int ret = -1;
     virDomainNetType actualType = virDomainNetGetActualType(net);
 
-    if (!virDomainNetGetModelString(net)) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                       _("NIC model must be specified"));
-        return -1;
-    }
-
-    if (virDomainNetStreqModelString(net, "virtio")) {
+    if (net->model == VIR_DOMAIN_NET_MODEL_VIRTIO) {
         if (VIR_STRDUP(nic_model, "virtio-net") < 0)
             return -1;
-    } else if (virDomainNetStreqModelString(net, "e1000")) {
+    } else if (net->model == VIR_DOMAIN_NET_MODEL_E1000) {
         if ((bhyveDriverGetCaps(conn) & BHYVE_CAP_NET_E1000) != 0) {
             if (VIR_STRDUP(nic_model, "e1000") < 0)
                 return -1;
@@ -77,9 +71,8 @@ bhyveBuildNetArgStr(virConnectPtr conn,
             return -1;
         }
     } else {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("NIC model '%s' is not supported"),
-                       virDomainNetGetModelString(net));
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("NIC model is not supported"));
         return -1;
     }
 
index 60eb4c5412341d0de8147963ac084620218e6b75..490381688ca0e9645965221103355852603fc8ff 100644 (file)
@@ -492,7 +492,7 @@ bhyveParsePCINet(virDomainDefPtr def,
                  unsigned pcislot,
                  unsigned pcibus,
                  unsigned function,
-                 const char *model,
+                 int model,
                  const char *config)
 {
     /* -s slot,virtio-net,tapN[,mac=xx:xx:xx:xx:xx:xx] */
@@ -511,9 +511,7 @@ bhyveParsePCINet(virDomainDefPtr def,
     if (VIR_STRDUP(net->data.bridge.brname, "virbr0") < 0)
         goto error;
 
-    if (virDomainNetSetModelString(net, model) < 0)
-        goto error;
-
+    net->model = model;
     net->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
     net->info.addr.pci.slot = pcislot;
     net->info.addr.pci.bus = pcibus;
@@ -621,10 +619,10 @@ bhyveParseBhyvePCIArg(virDomainDefPtr def,
                           conf);
     else if (STREQ(emulation, "virtio-net"))
         bhyveParsePCINet(def, xmlopt, caps, pcislot, bus, function,
-                         "virtio", conf);
+                         VIR_DOMAIN_NET_MODEL_VIRTIO, conf);
     else if (STREQ(emulation, "e1000"))
         bhyveParsePCINet(def, xmlopt, caps, pcislot, bus, function,
-                         "e1000", conf);
+                         VIR_DOMAIN_NET_MODEL_E1000, conf);
 
     VIR_FREE(emulation);
     VIR_FREE(slotdef);