In the past, we did set VLAN tag on <interface type='direct'/>.
However, during rewrite (v8.1.0-rc1~191) virNetDevSetVfConfig()
was changed and a condition that was responsible for calling
a function that sets VLAN tag was changed accidentally resulting
in VLAN tag not being set anymore.
However, because of other changes in the same patchset, it may
happen that @adminMac is NULL (this is to work around yet another
broken SRIOV driver), and thus we must refrain from setting MAC
and have to set VLAN tag only.
Fixes: 73961771a1cfec3c0f43caec9d117d2fbcc7af39
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=
2075383
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
{
int ret = -1;
- if ((ret = virNetDevSetVfMac(ifname, vf, macaddr, allowRetry)) < 0)
+ if (macaddr &&
+ (ret = virNetDevSetVfMac(ifname, vf, macaddr, allowRetry)) < 0)
return ret;
if ((ret = virNetDevSetVfVlan(ifname, vf, vlanid)) < 0)
return ret;
}
}
- if (adminMAC) {
+ if (adminMAC || vlanTag) {
/* Set vlanTag and admin MAC using an RTM_SETLINK request sent to
* PFdevname+VF#, if mac != NULL this will set the "admin MAC" via
* the PF, *not* the actual VF MAC - the admin MAC only takes