/*
- * Copyright (C) 2009-2011 Red Hat, Inc.
+ * Copyright (C) 2009-2012 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
goto error;
}
- virtPort->u.virtPort8021Qbg.managerID = (uint8_t)val;
+ virtPort->managerID = (uint8_t)val;
if (virStrToLong_ui(virtPortTypeID, NULL, 0, &val)) {
virReportError(VIR_ERR_XML_ERROR, "%s",
goto error;
}
- virtPort->u.virtPort8021Qbg.typeID = (uint32_t)val;
+ virtPort->typeID = (uint32_t)val;
if (virStrToLong_ui(virtPortTypeIDVersion, NULL, 0, &val)) {
virReportError(VIR_ERR_XML_ERROR, "%s",
goto error;
}
- virtPort->u.virtPort8021Qbg.typeIDVersion = (uint8_t)val;
+ virtPort->typeIDVersion = (uint8_t)val;
if (virtPortInstanceID != NULL) {
if (virUUIDParse(virtPortInstanceID,
- virtPort->u.virtPort8021Qbg.instanceID)) {
+ virtPort->instanceID)) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("cannot parse instanceid parameter as a uuid"));
goto error;
}
} else {
- if (virUUIDGenerate(virtPort->u.virtPort8021Qbg.instanceID)) {
+ if (virUUIDGenerate(virtPort->instanceID)) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("cannot generate a random uuid for instanceid"));
goto error;
case VIR_NETDEV_VPORT_PROFILE_8021QBH:
if (virtPortProfileID != NULL) {
- if (virStrcpyStatic(virtPort->u.virtPort8021Qbh.profileID,
+ if (virStrcpyStatic(virtPort->profileID,
virtPortProfileID) != NULL) {
virtPort->virtPortType = VIR_NETDEV_VPORT_PROFILE_8021QBH;
} else {
case VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH:
if (virtPortInterfaceID != NULL) {
if (virUUIDParse(virtPortInterfaceID,
- virtPort->u.openvswitch.interfaceID)) {
+ virtPort->interfaceID)) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("cannot parse interfaceid parameter as a uuid"));
goto error;
}
} else {
- if (virUUIDGenerate(virtPort->u.openvswitch.interfaceID)) {
+ if (virUUIDGenerate(virtPort->interfaceID)) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("cannot generate a random uuid for interfaceid"));
goto error;
}
/* profileid is not mandatory for Open vSwitch */
if (virtPortProfileID != NULL) {
- if (virStrcpyStatic(virtPort->u.openvswitch.profileID,
+ if (virStrcpyStatic(virtPort->profileID,
virtPortProfileID) == NULL) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("profileid parameter too long"));
goto error;
}
} else {
- virtPort->u.openvswitch.profileID[0] = '\0';
+ virtPort->profileID[0] = '\0';
}
break;
switch (virtPort->virtPortType) {
case VIR_NETDEV_VPORT_PROFILE_8021QBG:
- virUUIDFormat(virtPort->u.virtPort8021Qbg.instanceID,
+ virUUIDFormat(virtPort->instanceID,
uuidstr);
virBufferAsprintf(buf,
" <parameters managerid='%d' typeid='%d' "
"typeidversion='%d' instanceid='%s'/>\n",
- virtPort->u.virtPort8021Qbg.managerID,
- virtPort->u.virtPort8021Qbg.typeID,
- virtPort->u.virtPort8021Qbg.typeIDVersion,
+ virtPort->managerID,
+ virtPort->typeID,
+ virtPort->typeIDVersion,
uuidstr);
break;
case VIR_NETDEV_VPORT_PROFILE_8021QBH:
virBufferAsprintf(buf,
" <parameters profileid='%s'/>\n",
- virtPort->u.virtPort8021Qbh.profileID);
+ virtPort->profileID);
break;
case VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH:
- virUUIDFormat(virtPort->u.openvswitch.interfaceID,
+ virUUIDFormat(virtPort->interfaceID,
uuidstr);
- if (virtPort->u.openvswitch.profileID[0] == '\0') {
+ if (virtPort->profileID[0] == '\0') {
virBufferAsprintf(buf, " <parameters interfaceid='%s'/>\n",
uuidstr);
} else {
virBufferAsprintf(buf, " <parameters interfaceid='%s' "
"profileid='%s'/>\n", uuidstr,
- virtPort->u.openvswitch.profileID);
+ virtPort->profileID);
}
break;
char *vmid_ex_id = NULL;
virMacAddrFormat(macaddr, macaddrstr);
- virUUIDFormat(ovsport->u.openvswitch.interfaceID, ifuuidstr);
+ virUUIDFormat(ovsport->interfaceID, ifuuidstr);
virUUIDFormat(vmuuid, vmuuidstr);
if (virAsprintf(&attachedmac_ex_id, "external-ids:attached-mac=\"%s\"",
if (virAsprintf(&vmid_ex_id, "external-ids:vm-id=\"%s\"",
vmuuidstr) < 0)
goto out_of_memory;
- if (ovsport->u.openvswitch.profileID[0] != '\0') {
+ if (ovsport->profileID[0] != '\0') {
if (virAsprintf(&profile_ex_id, "external-ids:port-profile=\"%s\"",
- ovsport->u.openvswitch.profileID) < 0)
+ ovsport->profileID) < 0)
goto out_of_memory;
}
cmd = virCommandNew(OVSVSCTL);
- if (ovsport->u.openvswitch.profileID[0] == '\0') {
+ if (ovsport->profileID[0] == '\0') {
virCommandAddArgList(cmd, "--", "--may-exist", "add-port",
brname, ifname,
"--", "set", "Interface", ifname, attachedmac_ex_id,
break;
case VIR_NETDEV_VPORT_PROFILE_8021QBG:
- if (a->u.virtPort8021Qbg.managerID != b->u.virtPort8021Qbg.managerID ||
- a->u.virtPort8021Qbg.typeID != b->u.virtPort8021Qbg.typeID ||
- a->u.virtPort8021Qbg.typeIDVersion != b->u.virtPort8021Qbg.typeIDVersion ||
- memcmp(a->u.virtPort8021Qbg.instanceID, b->u.virtPort8021Qbg.instanceID, VIR_UUID_BUFLEN) != 0)
+ if (a->managerID != b->managerID ||
+ a->typeID != b->typeID ||
+ a->typeIDVersion != b->typeIDVersion ||
+ memcmp(a->instanceID, b->instanceID, VIR_UUID_BUFLEN) != 0)
return false;
break;
case VIR_NETDEV_VPORT_PROFILE_8021QBH:
- if (STRNEQ(a->u.virtPort8021Qbh.profileID, b->u.virtPort8021Qbh.profileID))
+ if (STRNEQ(a->profileID, b->profileID))
return false;
break;
int rc = -1;
int op = PORT_REQUEST_ASSOCIATE;
struct ifla_port_vsi portVsi = {
- .vsi_mgr_id = virtPort->u.virtPort8021Qbg.managerID,
- .vsi_type_version = virtPort->u.virtPort8021Qbg.typeIDVersion,
+ .vsi_mgr_id = virtPort->managerID,
+ .vsi_type_version = virtPort->typeIDVersion,
};
bool nltarget_kernel = false;
int vlanid;
if (vlanid < 0)
vlanid = 0;
- portVsi.vsi_type_id[2] = virtPort->u.virtPort8021Qbg.typeID >> 16;
- portVsi.vsi_type_id[1] = virtPort->u.virtPort8021Qbg.typeID >> 8;
- portVsi.vsi_type_id[0] = virtPort->u.virtPort8021Qbg.typeID;
+ portVsi.vsi_type_id[2] = virtPort->typeID >> 16;
+ portVsi.vsi_type_id[1] = virtPort->typeID >> 8;
+ portVsi.vsi_type_id[0] = virtPort->typeID;
switch (virtPortOp) {
case VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE:
vlanid,
NULL,
&portVsi,
- virtPort->u.virtPort8021Qbg.instanceID,
+ virtPort->instanceID,
NULL,
vf,
op,
nltarget_kernel,
macaddr,
vlanid,
- virtPort->u.virtPort8021Qbh.profileID,
+ virtPort->profileID,
NULL,
vm_uuid,
hostuuid,