mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-27 07:22:07 +03:00
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: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
0f8358555a
commit
c0cf17c280
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user