From: "Daniel P. Berrange" <berrange(a)redhat.com>
In preparation for code re-organization, rename the Macvtap
management APIs to have the following patterns
virNetDevMacVLanXXXXX - macvlan/macvtap interface management
virNetDevVPortProfileXXXX - virtual port profile management
* src/util/macvtap.c, src/util/macvtap.h: Rename APIs
* src/conf/domain_conf.c, src/network/bridge_driver.c,
src/qemu/qemu_command.c, src/qemu/qemu_command.h,
src/qemu/qemu_driver.c, src/qemu/qemu_hotplug.c,
src/qemu/qemu_migration.c, src/qemu/qemu_process.c,
src/qemu/qemu_process.h: Update for renamed APIs
---
src/conf/domain_conf.c | 10 +-
src/libvirt_private.syms | 4 +-
src/network/bridge_driver.c | 8 +-
src/qemu/qemu_command.c | 20 +-
src/qemu/qemu_command.h | 4 +-
src/qemu/qemu_driver.c | 12 +-
src/qemu/qemu_hotplug.c | 12 +-
src/qemu/qemu_migration.c | 24 ++--
src/qemu/qemu_process.c | 12 +-
src/qemu/qemu_process.h | 2 +-
src/util/macvtap.c | 388 ++++++++++++++++++++++---------------------
src/util/macvtap.h | 100 ++++++-----
tests/qemuxml2argvtest.c | 2 +-
tests/qemuxmlnstest.c | 2 +-
14 files changed, 308 insertions(+), 292 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 6b78d97..9528697 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3102,7 +3102,7 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
mode = virXPathString("string(./source[1]/@mode)", ctxt);
if (mode) {
int m;
- if ((m = virMacvtapModeTypeFromString(mode)) < 0) {
+ if ((m = virNetDevMacVLanModeTypeFromString(mode)) < 0) {
virDomainReportError(VIR_ERR_INTERNAL_ERROR,
_("Unkown mode '%s' in interface
<actual> element"),
mode);
@@ -3416,14 +3416,14 @@ virDomainNetDefParseXML(virCapsPtr caps,
if (mode != NULL) {
int m;
- if ((m = virMacvtapModeTypeFromString(mode)) < 0) {
+ if ((m = virNetDevMacVLanModeTypeFromString(mode)) < 0) {
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unkown mode has been specified"));
goto error;
}
def->data.direct.mode = m;
} else
- def->data.direct.mode = VIR_MACVTAP_MODE_VEPA;
+ def->data.direct.mode = VIR_NETDEV_MACVLAN_MODE_VEPA;
def->data.direct.virtPortProfile = virtPort;
virtPort = NULL;
@@ -9713,7 +9713,7 @@ virDomainActualNetDefFormat(virBufferPtr buf,
virBufferEscapeString(buf, " dev='%s'",
def->data.direct.linkdev);
- mode = virMacvtapModeTypeToString(def->data.direct.mode);
+ mode = virNetDevMacVLanModeTypeToString(def->data.direct.mode);
if (!mode) {
virDomainReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected source mode %d"),
@@ -9818,7 +9818,7 @@ virDomainNetDefFormat(virBufferPtr buf,
virBufferEscapeString(buf, " <source dev='%s'",
def->data.direct.linkdev);
virBufferAsprintf(buf, " mode='%s'",
- virMacvtapModeTypeToString(def->data.direct.mode));
+ virNetDevMacVLanModeTypeToString(def->data.direct.mode));
virBufferAddLit(buf, "/>\n");
virBufferAdjustIndent(buf, 6);
if (virNetDevVPortProfileFormat(def->data.direct.virtPortProfile, buf) <
0)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 7b96a3c..03aa711 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -739,8 +739,8 @@ virLogUnlock;
# macvtap.h
-virVMOperationTypeFromString;
-virVMOperationTypeToString;
+virNetDevVPortProfileOpTypeFromString;
+virNetDevVPortProfileOpTypeToString;
# memory.h
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 15b52ce..5c84d86 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -2781,16 +2781,16 @@ networkAllocateActualDevice(virDomainNetDefPtr iface)
iface->data.network.actual->type = VIR_DOMAIN_NET_TYPE_DIRECT;
switch (netdef->forwardType) {
case VIR_NETWORK_FORWARD_BRIDGE:
- iface->data.network.actual->data.direct.mode =
VIR_MACVTAP_MODE_BRIDGE;
+ iface->data.network.actual->data.direct.mode =
VIR_NETDEV_MACVLAN_MODE_BRIDGE;
break;
case VIR_NETWORK_FORWARD_PRIVATE:
- iface->data.network.actual->data.direct.mode =
VIR_MACVTAP_MODE_PRIVATE;
+ iface->data.network.actual->data.direct.mode =
VIR_NETDEV_MACVLAN_MODE_PRIVATE;
break;
case VIR_NETWORK_FORWARD_VEPA:
- iface->data.network.actual->data.direct.mode = VIR_MACVTAP_MODE_VEPA;
+ iface->data.network.actual->data.direct.mode =
VIR_NETDEV_MACVLAN_MODE_VEPA;
break;
case VIR_NETWORK_FORWARD_PASSTHROUGH:
- iface->data.network.actual->data.direct.mode =
VIR_MACVTAP_MODE_PASSTHRU;
+ iface->data.network.actual->data.direct.mode =
VIR_NETDEV_MACVLAN_MODE_PASSTHRU;
break;
}
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 2fbf691..db65035 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -138,7 +138,7 @@ qemuPhysIfaceConnect(virDomainDefPtr def,
struct qemud_driver *driver,
virDomainNetDefPtr net,
virBitmapPtr qemuCaps,
- enum virVMOperationType vmop)
+ enum virNetDevVPortProfileOp vmop)
{
int rc;
#if WITH_MACVTAP
@@ -149,14 +149,14 @@ qemuPhysIfaceConnect(virDomainDefPtr def,
net->model && STREQ(net->model, "virtio"))
vnet_hdr = 1;
- rc = openMacvtapTap(net->ifname, net->mac,
- virDomainNetGetActualDirectDev(net),
- virDomainNetGetActualDirectMode(net),
- vnet_hdr, def->uuid,
- virDomainNetGetActualDirectVirtPortProfile(net),
- &res_ifname,
- vmop, driver->stateDir,
- virDomainNetGetActualBandwidth(net));
+ rc = virNetDevMacVLanCreate(net->ifname, net->mac,
+ virDomainNetGetActualDirectDev(net),
+ virDomainNetGetActualDirectMode(net),
+ vnet_hdr, def->uuid,
+ virDomainNetGetActualDirectVirtPortProfile(net),
+ &res_ifname,
+ vmop, driver->stateDir,
+ virDomainNetGetActualBandwidth(net));
if (rc >= 0) {
virDomainAuditNetDevice(def, net, res_ifname, true);
VIR_FREE(net->ifname);
@@ -3233,7 +3233,7 @@ qemuBuildCommandLine(virConnectPtr conn,
const char *migrateFrom,
int migrateFd,
virDomainSnapshotObjPtr snapshot,
- enum virVMOperationType vmop)
+ enum virNetDevVPortProfileOp vmop)
{
int i;
struct utsname ut;
diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
index bfdaff9..dbe2fb2 100644
--- a/src/qemu/qemu_command.h
+++ b/src/qemu/qemu_command.h
@@ -50,7 +50,7 @@ virCommandPtr qemuBuildCommandLine(virConnectPtr conn,
const char *migrateFrom,
int migrateFd,
virDomainSnapshotObjPtr current_snapshot,
- enum virVMOperationType vmop)
+ enum virNetDevVPortProfileOp vmop)
ATTRIBUTE_NONNULL(1);
/* With vlan == -1, use netdev syntax, else old hostnet */
@@ -135,7 +135,7 @@ int qemuPhysIfaceConnect(virDomainDefPtr def,
struct qemud_driver *driver,
virDomainNetDefPtr net,
virBitmapPtr qemuCaps,
- enum virVMOperationType vmop);
+ enum virNetDevVPortProfileOp vmop);
int qemuOpenVhostNet(virDomainDefPtr def,
virDomainNetDefPtr net,
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 5f4a18d..3e5cbf6 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -1325,7 +1325,7 @@ static virDomainPtr qemudDomainCreate(virConnectPtr conn, const char
*xml,
if (qemuProcessStart(conn, driver, vm, NULL,
(flags & VIR_DOMAIN_START_PAUSED) != 0,
(flags & VIR_DOMAIN_START_AUTODESTROY) != 0,
- -1, NULL, NULL, VIR_VM_OP_CREATE) < 0) {
+ -1, NULL, NULL, VIR_NETDEV_VPORT_PROFILE_OP_CREATE) < 0) {
virDomainAuditStart(vm, "booted", false);
if (qemuDomainObjEndJob(driver, vm) > 0)
qemuDomainRemoveInactive(driver, vm);
@@ -4099,7 +4099,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
/* Set the migration source and start it up. */
ret = qemuProcessStart(conn, driver, vm, "stdio", true,
- false, *fd, path, NULL, VIR_VM_OP_RESTORE);
+ false, *fd, path, NULL, VIR_NETDEV_VPORT_PROFILE_OP_RESTORE);
if (intermediatefd != -1) {
if (ret < 0) {
@@ -4619,7 +4619,7 @@ static char *qemuDomainXMLToNative(virConnectPtr conn,
if (!(cmd = qemuBuildCommandLine(conn, driver, def,
&monConfig, monitor_json, qemuCaps,
- NULL, -1, NULL, VIR_VM_OP_NO_OP)))
+ NULL, -1, NULL,
VIR_NETDEV_VPORT_PROFILE_OP_NO_OP)))
goto cleanup;
ret = virCommandToString(cmd);
@@ -4701,7 +4701,7 @@ qemuDomainObjStart(virConnectPtr conn,
}
ret = qemuProcessStart(conn, driver, vm, NULL, start_paused,
- autodestroy, -1, NULL, NULL, VIR_VM_OP_CREATE);
+ autodestroy, -1, NULL, NULL,
VIR_NETDEV_VPORT_PROFILE_OP_CREATE);
virDomainAuditStart(vm, "booted", ret >= 0);
if (ret >= 0) {
virDomainEventPtr event =
@@ -10052,7 +10052,7 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr
snapshot,
rc = qemuProcessStart(snapshot->domain->conn, driver, vm, NULL,
true, false, -1, NULL, snap,
- VIR_VM_OP_CREATE);
+ VIR_NETDEV_VPORT_PROFILE_OP_CREATE);
virDomainAuditStart(vm, "from-snapshot", rc >= 0);
detail = VIR_DOMAIN_EVENT_STARTED_FROM_SNAPSHOT;
event = virDomainEventNewFromObj(vm,
@@ -10142,7 +10142,7 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr
snapshot,
qemuDomainEventQueue(driver, event);
rc = qemuProcessStart(snapshot->domain->conn, driver, vm, NULL,
paused, false, -1, NULL, NULL,
- VIR_VM_OP_CREATE);
+ VIR_NETDEV_VPORT_PROFILE_OP_CREATE);
virDomainAuditStart(vm, "from-snapshot", rc >= 0);
if (rc < 0) {
if (!vm->persistent) {
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 959fa85..47ece57 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -678,7 +678,7 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
} else if (actualType == VIR_DOMAIN_NET_TYPE_DIRECT) {
if ((tapfd = qemuPhysIfaceConnect(vm->def, driver, net,
priv->qemuCaps,
- VIR_VM_OP_CREATE)) < 0)
+ VIR_NETDEV_VPORT_PROFILE_OP_CREATE)) < 0)
goto cleanup;
iface_connected = true;
if (qemuOpenVhostNet(vm->def, net, priv->qemuCaps, &vhostfd) < 0)
@@ -1911,11 +1911,11 @@ int qemuDomainDetachNetDevice(struct qemud_driver *driver,
#if WITH_MACVTAP
if (virDomainNetGetActualType(detach) == VIR_DOMAIN_NET_TYPE_DIRECT) {
- delMacvtap(detach->ifname, detach->mac,
- virDomainNetGetActualDirectDev(detach),
- virDomainNetGetActualDirectMode(detach),
- virDomainNetGetActualDirectVirtPortProfile(detach),
- driver->stateDir);
+ ignore_value(virNetDevMacVLanDelete(detach->ifname, detach->mac,
+ virDomainNetGetActualDirectDev(detach),
+ virDomainNetGetActualDirectMode(detach),
+
virDomainNetGetActualDirectVirtPortProfile(detach),
+ driver->stateDir));
VIR_FREE(detach->ifname);
}
#endif
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 30f805d..2525210 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1147,7 +1147,7 @@ qemuMigrationPrepareAny(struct qemud_driver *driver,
*/
if (qemuProcessStart(dconn, driver, vm, migrateFrom, true,
true, dataFD[0], NULL, NULL,
- VIR_VM_OP_MIGRATE_IN_START) < 0) {
+ VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START) < 0) {
virDomainAuditStart(vm, "migrated", false);
/* Note that we don't set an error here because qemuProcessStart
* should have already done that.
@@ -2522,12 +2522,12 @@ qemuMigrationVPAssociatePortProfiles(virDomainDefPtr def) {
for (i = 0; i < def->nnets; i++) {
net = def->nets[i];
if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_DIRECT) {
- if (vpAssociatePortProfileId(net->ifname,
- net->mac,
- virDomainNetGetActualDirectDev(net),
-
virDomainNetGetActualDirectVirtPortProfile(net),
- def->uuid,
- VIR_VM_OP_MIGRATE_IN_FINISH) < 0)
+ if (virNetDevVPortProfileAssociate(net->ifname,
+
virDomainNetGetActualDirectVirtPortProfile(net),
+ net->mac,
+ virDomainNetGetActualDirectDev(net),
+ def->uuid,
+
VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_FINISH) < 0)
goto err_exit;
}
last_good_net = i;
@@ -2539,11 +2539,11 @@ err_exit:
for (i = 0; i < last_good_net; i++) {
net = def->nets[i];
if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_DIRECT) {
- vpDisassociatePortProfileId(net->ifname,
- net->mac,
- virDomainNetGetActualDirectDev(net),
- virDomainNetGetActualDirectVirtPortProfile(net),
- VIR_VM_OP_MIGRATE_IN_FINISH);
+ ignore_value(virNetDevVPortProfileDisassociate(net->ifname,
+
virDomainNetGetActualDirectVirtPortProfile(net),
+ net->mac,
+
virDomainNetGetActualDirectDev(net),
+
VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_FINISH));
}
}
}
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 2882ef8..4dc9357 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -2816,7 +2816,7 @@ int qemuProcessStart(virConnectPtr conn,
int stdin_fd,
const char *stdin_path,
virDomainSnapshotObjPtr snapshot,
- enum virVMOperationType vmop)
+ enum virNetDevVPortProfileOp vmop)
{
int ret;
off_t pos = -1;
@@ -3412,11 +3412,11 @@ void qemuProcessStop(struct qemud_driver *driver,
virDomainNetDefPtr net = def->nets[i];
#if WITH_MACVTAP
if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_DIRECT) {
- delMacvtap(net->ifname, net->mac,
- virDomainNetGetActualDirectDev(net),
- virDomainNetGetActualDirectMode(net),
- virDomainNetGetActualDirectVirtPortProfile(net),
- driver->stateDir);
+ ignore_value(virNetDevMacVLanDelete(net->ifname, net->mac,
+ virDomainNetGetActualDirectDev(net),
+ virDomainNetGetActualDirectMode(net),
+
virDomainNetGetActualDirectVirtPortProfile(net),
+ driver->stateDir));
VIR_FREE(net->ifname);
}
#endif
diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h
index ef422c4..062d79e 100644
--- a/src/qemu/qemu_process.h
+++ b/src/qemu/qemu_process.h
@@ -53,7 +53,7 @@ int qemuProcessStart(virConnectPtr conn,
int stdin_fd,
const char *stdin_path,
virDomainSnapshotObjPtr snapshot,
- enum virVMOperationType vmop);
+ enum virNetDevVPortProfileOp vmop);
void qemuProcessStop(struct qemud_driver *driver,
virDomainObjPtr vm,
diff --git a/src/util/macvtap.c b/src/util/macvtap.c
index bc23520..c793493 100644
--- a/src/util/macvtap.c
+++ b/src/util/macvtap.c
@@ -52,7 +52,7 @@
#include "macvtap.h"
#include "virnetdev.h"
-VIR_ENUM_IMPL(virMacvtapMode, VIR_MACVTAP_MODE_LAST,
+VIR_ENUM_IMPL(virNetDevMacVLanMode, VIR_NETDEV_MACVLAN_MODE_LAST,
"vepa",
"private",
"bridge",
@@ -101,15 +101,17 @@ enum virNetDevVPortProfileLinkOp {
# if WITH_MACVTAP
-/* Open the macvtap's tap device.
+/**
+ * virNetDevMacVLanTapOpen:
+ * Open the macvtap's tap device.
* @ifname: Name of the macvtap interface
* @retries : Number of retries in case udev for example may need to be
* waited for to create the tap chardev
* Returns negative value in case of error, the file descriptor otherwise.
*/
static
-int openTap(const char *ifname,
- int retries)
+int virNetDevMacVLanTapOpen(const char *ifname,
+ int retries)
{
FILE *file;
char path[64];
@@ -173,7 +175,7 @@ int openTap(const char *ifname,
/**
- * configMacvtapTap:
+ * virNetDevMacVLanTapSetup:
* @tapfd: file descriptor of the macvtap tap
* @vnet_hdr: 1 to enable IFF_VNET_HDR, 0 to disable it
*
@@ -187,7 +189,7 @@ int openTap(const char *ifname,
* macvtap device should not be used.
*/
static int
-configMacvtapTap(int tapfd, int vnet_hdr)
+virNetDevMacVLanTapSetup(int tapfd, int vnet_hdr)
{
unsigned int features;
struct ifreq ifreq;
@@ -233,15 +235,15 @@ configMacvtapTap(int tapfd, int vnet_hdr)
}
-static const uint32_t modeMap[VIR_MACVTAP_MODE_LAST] = {
- [VIR_MACVTAP_MODE_VEPA] = MACVLAN_MODE_VEPA,
- [VIR_MACVTAP_MODE_PRIVATE] = MACVLAN_MODE_PRIVATE,
- [VIR_MACVTAP_MODE_BRIDGE] = MACVLAN_MODE_BRIDGE,
- [VIR_MACVTAP_MODE_PASSTHRU] = MACVLAN_MODE_PASSTHRU,
+static const uint32_t modeMap[VIR_NETDEV_MACVLAN_MODE_LAST] = {
+ [VIR_NETDEV_MACVLAN_MODE_VEPA] = MACVLAN_MODE_VEPA,
+ [VIR_NETDEV_MACVLAN_MODE_PRIVATE] = MACVLAN_MODE_PRIVATE,
+ [VIR_NETDEV_MACVLAN_MODE_BRIDGE] = MACVLAN_MODE_BRIDGE,
+ [VIR_NETDEV_MACVLAN_MODE_PASSTHRU] = MACVLAN_MODE_PASSTHRU,
};
/**
- * openMacvtapTap:
+ * virNetDevMacVLanCreate:
* Create an instance of a macvtap device and open its tap character
* device.
* @tgifname: Interface name that the macvtap is supposed to have. May
@@ -260,18 +262,17 @@ static const uint32_t modeMap[VIR_MACVTAP_MODE_LAST] = {
* negative value otherwise with error reported.
*
*/
-int
-openMacvtapTap(const char *tgifname,
- const unsigned char *macaddress,
- const char *linkdev,
- enum virMacvtapMode mode,
- int vnet_hdr,
- const unsigned char *vmuuid,
- virNetDevVPortProfilePtr virtPortProfile,
- char **res_ifname,
- enum virVMOperationType vmOp,
- char *stateDir,
- virNetDevBandwidthPtr bandwidth)
+int virNetDevMacVLanCreate(const char *tgifname,
+ const unsigned char *macaddress,
+ const char *linkdev,
+ enum virNetDevMacVLanMode mode,
+ int vnet_hdr,
+ const unsigned char *vmuuid,
+ virNetDevVPortProfilePtr virtPortProfile,
+ char **res_ifname,
+ enum virNetDevVPortProfileOp vmOp,
+ char *stateDir,
+ virNetDevBandwidthPtr bandwidth)
{
const char *type = "macvtap";
int c, rc;
@@ -285,7 +286,7 @@ openMacvtapTap(const char *tgifname,
*res_ifname = NULL;
- VIR_DEBUG("%s: VM OPERATION: %s", __FUNCTION__,
virVMOperationTypeToString(vmOp));
+ VIR_DEBUG("%s: VM OPERATION: %s", __FUNCTION__,
virNetDevVPortProfileOpTypeToString(vmOp));
/** Note: When using PASSTHROUGH mode with MACVTAP devices the link
* device's MAC address must be set to the VMs MAC address. In
@@ -294,7 +295,7 @@ openMacvtapTap(const char *tgifname,
* This is especially important when using SRIOV capable cards that
* emulate their switch in firmware.
*/
- if (mode == VIR_MACVTAP_MODE_PASSTHRU) {
+ if (mode == VIR_NETDEV_MACVLAN_MODE_PASSTHRU) {
if (ifaceReplaceMacAddress(macaddress, linkdev, stateDir) < 0) {
return -1;
}
@@ -334,11 +335,11 @@ create_name:
cr_ifname = ifname;
}
- if (vpAssociatePortProfileId(cr_ifname,
- macaddress,
- linkdev,
- virtPortProfile,
- vmuuid, vmOp) < 0) {
+ if (virNetDevVPortProfileAssociate(cr_ifname,
+ virtPortProfile,
+ macaddress,
+ linkdev,
+ vmuuid, vmOp) < 0) {
rc = -1;
goto link_del_exit;
}
@@ -348,9 +349,9 @@ create_name:
goto disassociate_exit;
}
- rc = openTap(cr_ifname, 10);
+ rc = virNetDevMacVLanTapOpen(cr_ifname, 10);
if (rc >= 0) {
- if (configMacvtapTap(rc, vnet_hdr) < 0) {
+ if (virNetDevMacVLanTapSetup(rc, vnet_hdr) < 0) {
VIR_FORCE_CLOSE(rc); /* sets rc to -1 */
goto disassociate_exit;
}
@@ -370,11 +371,11 @@ create_name:
return rc;
disassociate_exit:
- vpDisassociatePortProfileId(cr_ifname,
- macaddress,
- linkdev,
- virtPortProfile,
- vmOp);
+ ignore_value(virNetDevVPortProfileDisassociate(cr_ifname,
+ virtPortProfile,
+ macaddress,
+ linkdev,
+ vmOp));
link_del_exit:
ifaceLinkDel(cr_ifname);
@@ -393,25 +394,29 @@ link_del_exit:
* it with the switch if port profile parameters
* were provided.
*/
-void
-delMacvtap(const char *ifname,
- const unsigned char *macaddr,
- const char *linkdev,
- int mode,
- virNetDevVPortProfilePtr virtPortProfile,
- char *stateDir)
+int virNetDevMacVLanDelete(const char *ifname,
+ const unsigned char *macaddr,
+ const char *linkdev,
+ int mode,
+ virNetDevVPortProfilePtr virtPortProfile,
+ char *stateDir)
{
- if (mode == VIR_MACVTAP_MODE_PASSTHRU) {
+ int ret = 0;
+ if (mode == VIR_NETDEV_MACVLAN_MODE_PASSTHRU) {
ifaceRestoreMacAddress(linkdev, stateDir);
}
if (ifname) {
- vpDisassociatePortProfileId(ifname, macaddr,
- linkdev,
- virtPortProfile,
- VIR_VM_OP_DESTROY);
- ifaceLinkDel(ifname);
+ if (virNetDevVPortProfileDisassociate(ifname,
+ virtPortProfile,
+ macaddr,
+ linkdev,
+ VIR_NETDEV_VPORT_PROFILE_OP_DESTROY) <
0)
+ ret = -1;
+ if (ifaceLinkDel(ifname) < 0)
+ ret = -1;
}
+ return ret;
}
# endif /* WITH_MACVTAP */
@@ -425,7 +430,7 @@ static struct nla_policy ifla_port_policy[IFLA_PORT_MAX + 1] =
static uint32_t
-getLldpadPid(void) {
+virNetDevVPortProfileGetLldpadPid(void) {
int fd;
uint32_t pid = 0;
@@ -458,7 +463,7 @@ getLldpadPid(void) {
/**
- * getPortProfileStatus
+ * virNetDevVPortProfileGetStatus:
*
* tb: top level netlink response attributes + values
* vf: The virtual function used in the request
@@ -470,11 +475,11 @@ getLldpadPid(void) {
* case of success, < 0 otherwise with error having been reported
*/
static int
-getPortProfileStatus(struct nlattr **tb, int32_t vf,
- const unsigned char *instanceId,
- bool nltarget_kernel,
- bool is8021Qbg,
- uint16_t *status)
+virNetDevVPortProfileGetStatus(struct nlattr **tb, int32_t vf,
+ const unsigned char *instanceId,
+ bool nltarget_kernel,
+ bool is8021Qbg,
+ uint16_t *status)
{
int rc = -1;
const char *msg = NULL;
@@ -557,16 +562,16 @@ err_exit:
static int
-doPortProfileOpSetLink(bool nltarget_kernel,
- const char *ifname, int ifindex,
- const unsigned char *macaddr,
- int vlanid,
- const char *profileId,
- struct ifla_port_vsi *portVsi,
- const unsigned char *instanceId,
- const unsigned char *hostUUID,
- int32_t vf,
- uint8_t op)
+virNetDevVPortProfileOpSetLink(const char *ifname, int ifindex,
+ bool nltarget_kernel,
+ const unsigned char *macaddr,
+ int vlanid,
+ const char *profileId,
+ struct ifla_port_vsi *portVsi,
+ const unsigned char *instanceId,
+ const unsigned char *hostUUID,
+ int32_t vf,
+ uint8_t op)
{
int rc = -1;
struct nlmsghdr *resp;
@@ -685,7 +690,7 @@ doPortProfileOpSetLink(bool nltarget_kernel,
}
if (!nltarget_kernel) {
- pid = getLldpadPid();
+ pid = virNetDevVPortProfileGetLldpadPid();
if (pid == 0)
goto err_exit;
}
@@ -747,16 +752,16 @@ buffer_too_small:
/* Returns 0 on success, -1 on general failure, and -2 on timeout */
static int
-doPortProfileOpCommon(bool nltarget_kernel,
- const char *ifname, int ifindex,
- const unsigned char *macaddr,
- int vlanid,
- const char *profileId,
- struct ifla_port_vsi *portVsi,
- const unsigned char *instanceId,
- const unsigned char *hostUUID,
- int32_t vf,
- uint8_t op)
+virNetDevVPortProfileOpCommon(const char *ifname, int ifindex,
+ bool nltarget_kernel,
+ const unsigned char *macaddr,
+ int vlanid,
+ const char *profileId,
+ struct ifla_port_vsi *portVsi,
+ const unsigned char *instanceId,
+ const unsigned char *hostUUID,
+ int32_t vf,
+ uint8_t op)
{
int rc;
unsigned char *recvbuf = NULL;
@@ -765,16 +770,16 @@ doPortProfileOpCommon(bool nltarget_kernel,
uint16_t status = 0;
bool is8021Qbg = (profileId == NULL);
- rc = doPortProfileOpSetLink(nltarget_kernel,
- ifname, ifindex,
- macaddr,
- vlanid,
- profileId,
- portVsi,
- instanceId,
- hostUUID,
- vf,
- op);
+ rc = virNetDevVPortProfileOpSetLink(ifname, ifindex,
+ nltarget_kernel,
+ macaddr,
+ vlanid,
+ profileId,
+ portVsi,
+ instanceId,
+ hostUUID,
+ vf,
+ op);
if (rc < 0) {
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
_("sending of PortProfileRequest failed."));
@@ -783,12 +788,12 @@ doPortProfileOpCommon(bool nltarget_kernel,
while (--repeats >= 0) {
rc = ifaceMacvtapLinkDump(nltarget_kernel, NULL, ifindex, tb,
- &recvbuf, getLldpadPid);
+ &recvbuf, virNetDevVPortProfileGetLldpadPid);
if (rc < 0)
goto err_exit;
- rc = getPortProfileStatus(tb, vf, instanceId, nltarget_kernel,
- is8021Qbg, &status);
+ rc = virNetDevVPortProfileGetStatus(tb, vf, instanceId, nltarget_kernel,
+ is8021Qbg, &status);
if (rc < 0)
goto err_exit;
if (status == PORT_PROFILE_RESPONSE_SUCCESS ||
@@ -828,8 +833,8 @@ err_exit:
# ifdef IFLA_VF_PORT_MAX
static int
-getPhysdevAndVlan(const char *ifname, int *root_ifindex, char *root_ifname,
- int *vlanid)
+virNetDevVPortProfileGetPhysdevAndVlan(const char *ifname, int *root_ifindex, char
*root_ifname,
+ int *vlanid)
{
int ret;
unsigned int nth;
@@ -858,10 +863,10 @@ getPhysdevAndVlan(const char *ifname, int *root_ifindex, char
*root_ifname,
/* Returns 0 on success, -1 on general failure, and -2 on timeout */
static int
-doPortProfileOp8021Qbg(const char *ifname,
- const unsigned char *macaddr,
- const virNetDevVPortProfilePtr virtPort,
- enum virNetDevVPortProfileLinkOp virtPortOp)
+virNetDevVPortProfileOp8021Qbg(const char *ifname,
+ const unsigned char *macaddr,
+ const virNetDevVPortProfilePtr virtPort,
+ enum virNetDevVPortProfileLinkOp virtPortOp)
{
int rc = 0;
@@ -888,8 +893,8 @@ doPortProfileOp8021Qbg(const char *ifname,
char physdev_ifname[IFNAMSIZ] = { 0, };
int vf = PORT_SELF_VF;
- if (getPhysdevAndVlan(ifname, &physdev_ifindex, physdev_ifname,
- &vlanid) < 0) {
+ if (virNetDevVPortProfileGetPhysdevAndVlan(ifname, &physdev_ifindex,
physdev_ifname,
+ &vlanid) < 0) {
rc = -1;
goto err_exit;
}
@@ -918,16 +923,16 @@ doPortProfileOp8021Qbg(const char *ifname,
goto err_exit;
}
- rc = doPortProfileOpCommon(nltarget_kernel,
- physdev_ifname, physdev_ifindex,
- macaddr,
- vlanid,
- NULL,
- &portVsi,
- virtPort->u.virtPort8021Qbg.instanceID,
- NULL,
- vf,
- op);
+ rc = virNetDevVPortProfileOpCommon(physdev_ifname, physdev_ifindex,
+ nltarget_kernel,
+ macaddr,
+ vlanid,
+ NULL,
+ &portVsi,
+ virtPort->u.virtPort8021Qbg.instanceID,
+ NULL,
+ vf,
+ op);
err_exit:
@@ -939,9 +944,9 @@ err_exit:
# ifdef IFLA_VF_PORT_MAX
static int
-getPhysfnDev(const char *linkdev,
- int32_t *vf,
- char **physfndev)
+virNetDevVPortProfileGetPhysfnDev(const char *linkdev,
+ int32_t *vf,
+ char **physfndev)
{
int rc = -1;
@@ -975,11 +980,11 @@ err_exit:
/* Returns 0 on success, -1 on general failure, and -2 on timeout */
static int
-doPortProfileOp8021Qbh(const char *ifname,
- const unsigned char *macaddr,
- const virNetDevVPortProfilePtr virtPort,
- const unsigned char *vm_uuid,
- enum virNetDevVPortProfileLinkOp virtPortOp)
+virNetDevVPortProfileOp8021Qbh(const char *ifname,
+ const unsigned char *macaddr,
+ const virNetDevVPortProfilePtr virtPort,
+ const unsigned char *vm_uuid,
+ enum virNetDevVPortProfileLinkOp virtPortOp)
{
int rc = 0;
@@ -1003,7 +1008,7 @@ doPortProfileOp8021Qbh(const char *ifname,
int ifindex;
int vlanid = -1;
- rc = getPhysfnDev(ifname, &vf, &physfndev);
+ rc = virNetDevVPortProfileGetPhysfnDev(ifname, &vf, &physfndev);
if (rc < 0)
goto err_exit;
@@ -1020,40 +1025,43 @@ doPortProfileOp8021Qbh(const char *ifname,
goto err_exit;
}
- rc = doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
- macaddr,
- vlanid,
- virtPort->u.virtPort8021Qbh.profileID,
- NULL,
- vm_uuid,
- hostuuid,
- vf,
- (virtPortOp ==
VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE_RR) ?
- PORT_REQUEST_PREASSOCIATE_RR
- : PORT_REQUEST_ASSOCIATE);
+ rc = virNetDevVPortProfileOpCommon(NULL, ifindex,
+ nltarget_kernel,
+ macaddr,
+ vlanid,
+ virtPort->u.virtPort8021Qbh.profileID,
+ NULL,
+ vm_uuid,
+ hostuuid,
+ vf,
+ (virtPortOp ==
VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE_RR) ?
+ PORT_REQUEST_PREASSOCIATE_RR
+ : PORT_REQUEST_ASSOCIATE);
if (rc == -2)
/* Association timed out, disassociate */
- doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
- NULL,
- vlanid,
- NULL,
- NULL,
- NULL,
- NULL,
- vf,
- PORT_REQUEST_DISASSOCIATE);
+ virNetDevVPortProfileOpCommon(NULL, ifindex,
+ nltarget_kernel,
+ NULL,
+ vlanid,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ vf,
+ PORT_REQUEST_DISASSOCIATE);
break;
case VIR_NETDEV_VPORT_PROFILE_LINK_OP_DISASSOCIATE:
- rc = doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
- NULL,
- vlanid,
- NULL,
- NULL,
- NULL,
- NULL,
- vf,
- PORT_REQUEST_DISASSOCIATE);
+ rc = virNetDevVPortProfileOpCommon(NULL, ifindex,
+ nltarget_kernel,
+ NULL,
+ vlanid,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ vf,
+ PORT_REQUEST_DISASSOCIATE);
break;
default:
@@ -1071,7 +1079,7 @@ err_exit:
}
/**
- * vpAssociatePortProfile
+ * virNetDevVPortProfileAssociate:
*
* @macvtap_ifname: The name of the macvtap device
* @virtPort: pointer to the object holding port profile parameters
@@ -1088,21 +1096,21 @@ err_exit:
* having been reported.
*/
int
-vpAssociatePortProfileId(const char *macvtap_ifname,
- const unsigned char *macvtap_macaddr,
- const char *linkdev,
- const virNetDevVPortProfilePtr virtPort,
- const unsigned char *vmuuid,
- enum virVMOperationType vmOp)
+virNetDevVPortProfileAssociate(const char *macvtap_ifname,
+ const virNetDevVPortProfilePtr virtPort,
+ const unsigned char *macvtap_macaddr,
+ const char *linkdev,
+ const unsigned char *vmuuid,
+ enum virNetDevVPortProfileOp vmOp)
{
int rc = 0;
VIR_DEBUG("Associating port profile '%p' on link device
'%s'",
virtPort, macvtap_ifname);
- VIR_DEBUG("%s: VM OPERATION: %s", __FUNCTION__,
virVMOperationTypeToString(vmOp));
+ VIR_DEBUG("%s: VM OPERATION: %s", __FUNCTION__,
virNetDevVPortProfileOpTypeToString(vmOp));
- if (!virtPort || vmOp == VIR_VM_OP_NO_OP)
+ if (!virtPort || vmOp == VIR_NETDEV_VPORT_PROFILE_OP_NO_OP)
return 0;
switch (virtPort->virtPortType) {
@@ -1111,20 +1119,20 @@ vpAssociatePortProfileId(const char *macvtap_ifname,
break;
case VIR_NETDEV_VPORT_PROFILE_8021QBG:
- rc = doPortProfileOp8021Qbg(macvtap_ifname, macvtap_macaddr,
- virtPort,
- (vmOp == VIR_VM_OP_MIGRATE_IN_START)
- ? VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE
- : VIR_NETDEV_VPORT_PROFILE_LINK_OP_ASSOCIATE);
+ rc = virNetDevVPortProfileOp8021Qbg(macvtap_ifname, macvtap_macaddr,
+ virtPort,
+ (vmOp ==
VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START)
+ ?
VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE
+ :
VIR_NETDEV_VPORT_PROFILE_LINK_OP_ASSOCIATE);
break;
case VIR_NETDEV_VPORT_PROFILE_8021QBH:
- rc = doPortProfileOp8021Qbh(linkdev, macvtap_macaddr,
- virtPort, vmuuid,
- (vmOp == VIR_VM_OP_MIGRATE_IN_START)
- ? VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE_RR
- : VIR_NETDEV_VPORT_PROFILE_LINK_OP_ASSOCIATE);
- if (vmOp != VIR_VM_OP_MIGRATE_IN_START && !rc) {
+ rc = virNetDevVPortProfileOp8021Qbh(linkdev, macvtap_macaddr,
+ virtPort, vmuuid,
+ (vmOp ==
VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START)
+ ?
VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE_RR
+ :
VIR_NETDEV_VPORT_PROFILE_LINK_OP_ASSOCIATE);
+ if (vmOp != VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START && !rc) {
/* XXX bogus error handling */
ignore_value(virNetDevSetOnline(linkdev, true));
}
@@ -1137,7 +1145,7 @@ vpAssociatePortProfileId(const char *macvtap_ifname,
/**
- * vpDisassociatePortProfile
+ * virNetDevVPortProfileDisassociate:
*
* @macvtap_ifname: The name of the macvtap device
* @macvtap_macaddr : The MAC address of the macvtap
@@ -1148,18 +1156,18 @@ vpAssociatePortProfileId(const char *macvtap_ifname,
* having been reported.
*/
int
-vpDisassociatePortProfileId(const char *macvtap_ifname,
- const unsigned char *macvtap_macaddr,
- const char *linkdev,
- const virNetDevVPortProfilePtr virtPort,
- enum virVMOperationType vmOp)
+virNetDevVPortProfileDisassociate(const char *macvtap_ifname,
+ const virNetDevVPortProfilePtr virtPort,
+ const unsigned char *macvtap_macaddr,
+ const char *linkdev,
+ enum virNetDevVPortProfileOp vmOp)
{
int rc = 0;
VIR_DEBUG("Disassociating port profile id '%p' on link device
'%s' ",
virtPort, macvtap_ifname);
- VIR_DEBUG("%s: VM OPERATION: %s", __FUNCTION__,
virVMOperationTypeToString(vmOp));
+ VIR_DEBUG("%s: VM OPERATION: %s", __FUNCTION__,
virNetDevVPortProfileOpTypeToString(vmOp));
if (!virtPort)
return 0;
@@ -1170,18 +1178,18 @@ vpDisassociatePortProfileId(const char *macvtap_ifname,
break;
case VIR_NETDEV_VPORT_PROFILE_8021QBG:
- rc = doPortProfileOp8021Qbg(macvtap_ifname, macvtap_macaddr,
- virtPort,
VIR_NETDEV_VPORT_PROFILE_LINK_OP_DISASSOCIATE);
+ rc = virNetDevVPortProfileOp8021Qbg(macvtap_ifname, macvtap_macaddr,
+ virtPort,
VIR_NETDEV_VPORT_PROFILE_LINK_OP_DISASSOCIATE);
break;
case VIR_NETDEV_VPORT_PROFILE_8021QBH:
/* avoid disassociating twice */
- if (vmOp == VIR_VM_OP_MIGRATE_IN_FINISH)
+ if (vmOp == VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_FINISH)
break;
ignore_value(virNetDevSetOnline(linkdev, false));
- rc = doPortProfileOp8021Qbh(linkdev, macvtap_macaddr,
- virtPort, NULL,
- VIR_NETDEV_VPORT_PROFILE_LINK_OP_DISASSOCIATE);
+ rc = virNetDevVPortProfileOp8021Qbh(linkdev, macvtap_macaddr,
+ virtPort, NULL,
+
VIR_NETDEV_VPORT_PROFILE_LINK_OP_DISASSOCIATE);
break;
}
@@ -1190,12 +1198,12 @@ vpDisassociatePortProfileId(const char *macvtap_ifname,
#endif /* WITH_MACVTAP || WITH_VIRTUALPORT */
-VIR_ENUM_IMPL(virVMOperation, VIR_VM_OP_LAST,
- "create",
- "save",
- "restore",
- "destroy",
- "migrate out",
- "migrate in start",
- "migrate in finish",
- "no-op")
+VIR_ENUM_IMPL(virNetDevVPortProfileOp, VIR_NETDEV_VPORT_PROFILE_OP_LAST,
+ "create",
+ "save",
+ "restore",
+ "destroy",
+ "migrate out",
+ "migrate in start",
+ "migrate in finish",
+ "no-op")
diff --git a/src/util/macvtap.h b/src/util/macvtap.h
index a6b00fe..5c5d84a 100644
--- a/src/util/macvtap.h
+++ b/src/util/macvtap.h
@@ -29,65 +29,73 @@
# include "virnetdevvportprofile.h"
/* the mode type for macvtap devices */
-enum virMacvtapMode {
- VIR_MACVTAP_MODE_VEPA,
- VIR_MACVTAP_MODE_PRIVATE,
- VIR_MACVTAP_MODE_BRIDGE,
- VIR_MACVTAP_MODE_PASSTHRU,
+enum virNetDevMacVLanMode {
+ VIR_NETDEV_MACVLAN_MODE_VEPA,
+ VIR_NETDEV_MACVLAN_MODE_PRIVATE,
+ VIR_NETDEV_MACVLAN_MODE_BRIDGE,
+ VIR_NETDEV_MACVLAN_MODE_PASSTHRU,
- VIR_MACVTAP_MODE_LAST,
+ VIR_NETDEV_MACVLAN_MODE_LAST,
};
-enum virVMOperationType {
- VIR_VM_OP_CREATE,
- VIR_VM_OP_SAVE,
- VIR_VM_OP_RESTORE,
- VIR_VM_OP_DESTROY,
- VIR_VM_OP_MIGRATE_OUT,
- VIR_VM_OP_MIGRATE_IN_START,
- VIR_VM_OP_MIGRATE_IN_FINISH,
- VIR_VM_OP_NO_OP,
+enum virNetDevVPortProfileOp {
+ VIR_NETDEV_VPORT_PROFILE_OP_CREATE,
+ VIR_NETDEV_VPORT_PROFILE_OP_SAVE,
+ VIR_NETDEV_VPORT_PROFILE_OP_RESTORE,
+ VIR_NETDEV_VPORT_PROFILE_OP_DESTROY,
+ VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_OUT,
+ VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START,
+ VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_FINISH,
+ VIR_NETDEV_VPORT_PROFILE_OP_NO_OP,
- VIR_VM_OP_LAST
+ VIR_NETDEV_VPORT_PROFILE_OP_LAST
};
# if WITH_MACVTAP
-int openMacvtapTap(const char *ifname,
- const unsigned char *macaddress,
- const char *linkdev,
- enum virMacvtapMode mode,
- int vnet_hdr,
- const unsigned char *vmuuid,
- virNetDevVPortProfilePtr virtPortProfile,
- char **res_ifname,
- enum virVMOperationType vmop,
- char *stateDir,
- virNetDevBandwidthPtr bandwidth);
+int virNetDevMacVLanCreate(const char *ifname,
+ const unsigned char *macaddress,
+ const char *linkdev,
+ enum virNetDevMacVLanMode mode,
+ int vnet_hdr,
+ const unsigned char *vmuuid,
+ virNetDevVPortProfilePtr virtPortProfile,
+ char **res_ifname,
+ enum virNetDevVPortProfileOp vmop,
+ char *stateDir,
+ virNetDevBandwidthPtr bandwidth)
+ ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(6)
+ ATTRIBUTE_NONNULL(8) ATTRIBUTE_NONNULL(10) ATTRIBUTE_RETURN_CHECK;
-void delMacvtap(const char *ifname,
- const unsigned char *macaddress,
- const char *linkdev,
- int mode,
- virNetDevVPortProfilePtr virtPortProfile,
- char *stateDir);
+int virNetDevMacVLanDelete(const char *ifname,
+ const unsigned char *macaddress,
+ const char *linkdev,
+ int mode,
+ virNetDevVPortProfilePtr virtPortProfile,
+ char *stateDir)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
+ ATTRIBUTE_NONNULL(6) ATTRIBUTE_RETURN_CHECK;
-int vpAssociatePortProfileId(const char *macvtap_ifname,
- const unsigned char *macvtap_macaddr,
- const char *linkdev,
- const virNetDevVPortProfilePtr virtPort,
- const unsigned char *vmuuid,
- enum virVMOperationType vmOp);
+int virNetDevVPortProfileAssociate(const char *ifname,
+ const virNetDevVPortProfilePtr virtPort,
+ const unsigned char *macaddr,
+ const char *linkdev,
+ const unsigned char *vmuuid,
+ enum virNetDevVPortProfileOp vmOp)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4)
+ ATTRIBUTE_NONNULL(5) ATTRIBUTE_RETURN_CHECK;
-int vpDisassociatePortProfileId(const char *macvtap_ifname,
- const unsigned char *macvtap_macaddr,
- const char *linkdev,
- const virNetDevVPortProfilePtr virtPort,
- enum virVMOperationType vmOp);
+int virNetDevVPortProfileDisassociate(const char *ifname,
+ const virNetDevVPortProfilePtr virtPort,
+ const unsigned char *macaddr,
+ const char *linkdev,
+ enum virNetDevVPortProfileOp vmOp)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4)
+ ATTRIBUTE_RETURN_CHECK;
# endif /* WITH_MACVTAP */
-VIR_ENUM_DECL(virVMOperation)
-VIR_ENUM_DECL(virMacvtapMode)
+VIR_ENUM_DECL(virNetDevVPortProfileOp)
+VIR_ENUM_DECL(virNetDevMacVLanMode)
#endif /* __UTIL_MACVTAP_H__ */
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index d9a6e8d..5d3b74c 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -124,7 +124,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
if (!(cmd = qemuBuildCommandLine(conn, &driver,
vmdef, &monitor_chr, json, extraFlags,
migrateFrom, migrateFd, NULL,
- VIR_VM_OP_NO_OP)))
+ VIR_NETDEV_VPORT_PROFILE_OP_NO_OP)))
goto fail;
if (!!virGetLastError() != expectError) {
diff --git a/tests/qemuxmlnstest.c b/tests/qemuxmlnstest.c
index b13b409..ee3ad1b 100644
--- a/tests/qemuxmlnstest.c
+++ b/tests/qemuxmlnstest.c
@@ -124,7 +124,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
if (!(cmd = qemuBuildCommandLine(conn, &driver,
vmdef, &monitor_chr, json, extraFlags,
migrateFrom, migrateFd, NULL,
- VIR_VM_OP_NO_OP)))
+ VIR_NETDEV_VPORT_PROFILE_OP_NO_OP)))
goto fail;
if (!!virGetLastError() != expectError) {
--
1.7.6.4