fix(region): ovs offload interface get ifname from isolated devices tlb (#19147)

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
This commit is contained in:
wanyaoqi
2023-12-31 12:30:31 +08:00
committed by GitHub
parent 141f46f35d
commit ed79e40429
+16 -1
View File
@@ -611,7 +611,7 @@ func (gn *SGuestnetwork) getJsonDesc() *api.GuestnetworkJsonDesc {
if routes != nil && len(routes) > 0 {
desc.Routes = jsonutils.Marshal(routes)
}
desc.Ifname = gn.Ifname
desc.Masklen = net.GuestIpMask
desc.Driver = gn.Driver
desc.NumQueues = gn.NumQueues
@@ -626,6 +626,11 @@ func (gn *SGuestnetwork) getJsonDesc() *api.GuestnetworkJsonDesc {
desc.TeamWith = gn.TeamWith
guest := gn.getGuest()
if ifname, ok := gn.OvsOffloadIfname(); ok {
desc.Ifname = ifname
} else {
desc.Ifname = gn.Ifname
}
if guest.GetHypervisor() != api.HYPERVISOR_KVM {
manual := true
desc.Manual = &manual
@@ -657,6 +662,16 @@ func (gn *SGuestnetwork) IsSriovWithoutOffload() bool {
return true
}
func (gn *SGuestnetwork) OvsOffloadIfname() (string, bool) {
if gn.Driver != api.NETWORK_DRIVER_VFIO {
return "", false
}
if dev, _ := gn.GetIsolatedDevice(); dev != nil && dev.OvsOffloadInterface != "" {
return dev.OvsOffloadInterface, true
}
return "", false
}
func (gn *SGuestnetwork) UpdateNicTrafficUsed(rx, tx int64) error {
_, err := db.Update(gn, func() error {
gn.RxTrafficUsed = rx