}
+static void
+qemuDomainNetDeviceVportRemove(virDomainNetDefPtr net)
+{
+ virNetDevVPortProfilePtr vport = virDomainNetGetActualVirtPortProfile(net);
+ const char *brname;
+
+ if (!vport)
+ return;
+
+ if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_MIDONET) {
+ ignore_value(virNetDevMidonetUnbindPort(vport));
+ } else if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) {
+ brname = virDomainNetGetActualBridgeName(net);
+ ignore_value(virNetDevOpenvswitchRemovePort(brname, net->ifname));
+ }
+}
+
+
int
qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
size_t queueSize = 0;
char *nicstr = NULL;
char *netstr = NULL;
- virNetDevVPortProfilePtr vport = NULL;
int ret = -1;
int vlan;
bool releaseaddr = false;
cfg->stateDir));
}
- vport = virDomainNetGetActualVirtPortProfile(net);
- if (vport) {
- if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_MIDONET) {
- ignore_value(virNetDevMidonetUnbindPort(vport));
- } else if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) {
- ignore_value(virNetDevOpenvswitchRemovePort(
- virDomainNetGetActualBridgeName(net),
- net->ifname));
- }
- }
+ qemuDomainNetDeviceVportRemove(net);
}
virDomainNetRemoveHostdev(vm->def, net);
{
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
qemuDomainObjPrivatePtr priv = vm->privateData;
- virNetDevVPortProfilePtr vport;
virObjectEventPtr event;
char *hostnet_name = NULL;
char *charDevAlias = NULL;
cfg->stateDir));
}
- vport = virDomainNetGetActualVirtPortProfile(net);
- if (vport) {
- if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_MIDONET) {
- ignore_value(virNetDevMidonetUnbindPort(vport));
- } else if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) {
- ignore_value(virNetDevOpenvswitchRemovePort(
- virDomainNetGetActualBridgeName(net),
- net->ifname));
- }
- }
+ qemuDomainNetDeviceVportRemove(net);
networkReleaseActualDevice(vm->def, net);
virDomainNetDefFree(net);