[06/10] bhyve: convert to net model enum

Message ID 757fb473a128f24efaaa19e9b5c25f08a4b77a0b.1547851897.git.crobinso@redhat.com
State Superseded
Headers show
Series
  • RFC: conf: partially net model enum conversion
Related show

Commit Message

Cole Robinson Jan. 18, 2019, 11:05 p.m.
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

Signed-off-by: Cole Robinson <crobinso@redhat.com>

---
 src/bhyve/bhyve_command.c       | 15 ++++-----------
 src/bhyve/bhyve_parse_command.c | 10 ++++------
 2 files changed, 8 insertions(+), 17 deletions(-)

-- 
2.20.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Patch

diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c
index 78f8a88290..ccbd7cd2aa 100644
--- a/src/bhyve/bhyve_command.c
+++ b/src/bhyve/bhyve_command.c
@@ -56,16 +56,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;
@@ -76,9 +70,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;
     }
 
diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_command.c
index cf0b2db30a..ba1e3f2cb7 100644
--- a/src/bhyve/bhyve_parse_command.c
+++ b/src/bhyve/bhyve_parse_command.c
@@ -494,7 +494,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] */
@@ -513,9 +513,7 @@  bhyveParsePCINet(virDomainDefPtr def,
     if (VIR_STRDUP(net->data.bridge.brname, "virbr0") < 0)
         goto error;
 
-    if (virDomainNetSetModelString(net, model) < 0)
-        goto error;
-
+    net->model = mode;
     net->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
     net->info.addr.pci.slot = pcislot;
     net->info.addr.pci.bus = pcibus;
@@ -623,10 +621,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);