mirror of https://gitee.com/openkylin/libvirt.git
conf: clarify what is returned for actual bandwidth and vlan
In practice, if a virDomainNetDef has a virDomainActualNetDef allocated, the ActualNetDef will *always* contain the bandwidth and vlan data from the NetDef (unless there was also a portgroup involved - see networkAllocateActualDevice()). However, virDomainNetGetActual(Bandwidth|Vlan)() were coded to make it appear as if it might be possible to have a valid bandwidth/vlan in the NetDef, but a NULL in the ActualNetDef. Believing this un-truth could lead to writing unnecessarily defensive code when dealing with the virDomainGetActual*() functions, so this patch makes it more obvious: If there is an ActualNetDef, it will always have a copy of the various appropriate bits from its parent NetDef, and the virDomainGetActual* function will *always* return the data from the ActualNetDef, not from the NetDef. The reason for this effective-NOP patch is that a subsequent patch to change virDomainNetDefFormat will rely on the above rule.
This commit is contained in:
parent
60f70542f9
commit
6d4ffae4fc
|
@ -18638,8 +18638,11 @@ virDomainNetGetActualVirtPortProfile(virDomainNetDefPtr iface)
|
|||
virNetDevBandwidthPtr
|
||||
virDomainNetGetActualBandwidth(virDomainNetDefPtr iface)
|
||||
{
|
||||
/* if there is an ActualNetDef, *always* return
|
||||
* its bandwidth rather than the NetDef's bandwidth.
|
||||
*/
|
||||
if (iface->type == VIR_DOMAIN_NET_TYPE_NETWORK &&
|
||||
iface->data.network.actual && iface->data.network.actual->bandwidth) {
|
||||
iface->data.network.actual) {
|
||||
return iface->data.network.actual->bandwidth;
|
||||
}
|
||||
return iface->bandwidth;
|
||||
|
@ -18648,13 +18651,18 @@ virDomainNetGetActualBandwidth(virDomainNetDefPtr iface)
|
|||
virNetDevVlanPtr
|
||||
virDomainNetGetActualVlan(virDomainNetDefPtr iface)
|
||||
{
|
||||
virNetDevVlanPtr vlan = &iface->vlan;
|
||||
|
||||
/* if there is an ActualNetDef, *always* return
|
||||
* its vlan rather than the NetDef's vlan.
|
||||
*/
|
||||
if (iface->type == VIR_DOMAIN_NET_TYPE_NETWORK &&
|
||||
iface->data.network.actual &&
|
||||
iface->data.network.actual->vlan.nTags > 0)
|
||||
return &iface->data.network.actual->vlan;
|
||||
if (iface->vlan.nTags > 0)
|
||||
return &iface->vlan;
|
||||
return 0;
|
||||
iface->data.network.actual)
|
||||
vlan = &iface->data.network.actual->vlan;
|
||||
|
||||
if (vlan->nTags > 0)
|
||||
return vlan;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Return listens[i] from the appropriate union for the graphics
|
||||
|
|
Loading…
Reference in New Issue