提交 c0cf17c2 编写于 作者: C Cole Robinson

bhyve: convert to net model enum

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: NMichal Privoznik <mprivozn@redhat.com>
Signed-off-by: NCole Robinson <crobinso@redhat.com>
上级 0f835855
......@@ -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;
}
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册