The vz driver only handles three models: virtio, e1000, and rtl8139.
Add enum values for those models, and convert the vz driver to
handling net->model natively
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
src/conf/domain_conf.c | 3 +++
src/conf/domain_conf.h | 3 +++
src/vz/vz_driver.c | 7 +++----
src/vz/vz_sdk.c | 17 +++++++----------
4 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 571f2eea39..854b8eb045 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -475,6 +475,9 @@ VIR_ENUM_IMPL(virDomainNet, VIR_DOMAIN_NET_TYPE_LAST,
VIR_ENUM_IMPL(virDomainNetModel, VIR_DOMAIN_NET_MODEL_LAST,
"unknown",
"netfront",
+ "rtl8139",
+ "virtio",
+ "e1000",
);
VIR_ENUM_IMPL(virDomainNetBackend, VIR_DOMAIN_NET_BACKEND_TYPE_LAST,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 92d54b0348..780f878fd8 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -964,6 +964,9 @@ typedef enum {
typedef enum {
VIR_DOMAIN_NET_MODEL_UNKNOWN,
VIR_DOMAIN_NET_MODEL_NETFRONT,
+ VIR_DOMAIN_NET_MODEL_RTL8139,
+ VIR_DOMAIN_NET_MODEL_VIRTIO,
+ VIR_DOMAIN_NET_MODEL_E1000,
VIR_DOMAIN_NET_MODEL_LAST
} virDomainNetModelType;
diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
index 66d019378f..00ee87c8d1 100644
--- a/src/vz/vz_driver.c
+++ b/src/vz/vz_driver.c
@@ -265,10 +265,9 @@ vzDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
if (dev->type == VIR_DOMAIN_DEVICE_NET &&
(dev->data.net->type == VIR_DOMAIN_NET_TYPE_NETWORK ||
dev->data.net->type == VIR_DOMAIN_NET_TYPE_BRIDGE) &&
- !virDomainNetGetModelString(dev->data.net) &&
- def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
-
virDomainNetSetModelString(dev->data.net, "e1000") < 0)
- return -1;
+ dev->data.net->model == VIR_DOMAIN_NET_MODEL_UNKNOWN &&
+ def->os.type == VIR_DOMAIN_OSTYPE_HVM)
+ dev->data.net->model = VIR_DOMAIN_NET_MODEL_E1000;
return 0;
}
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
index ed8345a874..2316ca5a31 100644
--- a/src/vz/vz_sdk.c
+++ b/src/vz/vz_sdk.c
@@ -1104,16 +1104,13 @@ prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net,
bool isCt)
switch ((int)type) {
case PNT_RTL:
- if (virDomainNetSetModelString(net, "rtl8139") < 0)
- goto cleanup;
+ net->model = VIR_DOMAIN_NET_MODEL_RTL8139;
break;
case PNT_E1000:
- if (virDomainNetSetModelString(net, "e1000") < 0)
- goto cleanup;
+ net->model = VIR_DOMAIN_NET_MODEL_E1000;
break;
case PNT_VIRTIO:
- if (virDomainNetSetModelString(net, "virtio") < 0)
- goto cleanup;
+ net->model = VIR_DOMAIN_NET_MODEL_VIRTIO;
break;
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -3377,15 +3374,15 @@ static int prlsdkConfigureNet(vzDriverPtr driver
ATTRIBUTE_UNUSED,
goto cleanup;
if (isCt) {
- if (virDomainNetGetModelString(net))
+ if (net->model != VIR_DOMAIN_NET_MODEL_UNKNOWN)
VIR_WARN("Setting network adapter for containers is not "
"supported by vz driver.");
} else {
- if (virDomainNetStreqModelString(net, "rtl8139")) {
+ if (net->model == VIR_DOMAIN_NET_MODEL_RTL8139) {
pret = PrlVmDevNet_SetAdapterType(sdknet, PNT_RTL);
- } else if (virDomainNetStreqModelString(net, "e1000")) {
+ } else if (net->model == VIR_DOMAIN_NET_MODEL_E1000) {
pret = PrlVmDevNet_SetAdapterType(sdknet, PNT_E1000);
- } else if (virDomainNetStreqModelString(net, "virtio")) {
+ } else if (net->model == VIR_DOMAIN_NET_MODEL_VIRTIO) {
pret = PrlVmDevNet_SetAdapterType(sdknet, PNT_VIRTIO);
} else {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
--
2.20.1